Quad rendering bug

Technical discussion for those interested in Supermodel development and Model 3 reverse engineering. Prospective contributors welcome.
Forum rules
Keep it classy!

  • No ROM requests or links.
  • Do not ask to be a play tester.
  • Do not ask about release dates.
  • No drama!

Re: Quad rendering bug

Postby Bart » Fri Apr 07, 2017 1:04 pm

Another thing you can do is put some printf() statements in TestPolygonHeaderBits() to see if it even executes. Is it crashing?
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Quad rendering bug

Postby HarryTuttle » Fri Apr 07, 2017 1:06 pm

Bart wrote:What does the error log say? Is there any printed output to console?


Nope, no output :(

Bart wrote:Another thing you can do is put some printf() statements in TestPolygonHeaderBits() to see if it even executes. Is it crashing?


I'll try and let you know soon
User avatar
HarryTuttle
 
Posts: 646
Joined: Thu Mar 09, 2017 8:57 am

Re: Quad rendering bug

Postby Bart » Fri Apr 07, 2017 1:12 pm

Definitely want to help you get this working. I think you would find it quite handy and convenient.
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Quad rendering bug

Postby HarryTuttle » Fri Apr 07, 2017 1:31 pm

1st Update:
I've put a printf as the first thing inside the function "TestPolygonHeaderBits", and another just before calling it. But it quits, so it seems it doesn't even get there, I'm currently trying to figure out where exactly it fails.
User avatar
HarryTuttle
 
Posts: 646
Joined: Thu Mar 09, 2017 8:57 am

Re: Quad rendering bug

Postby Ian » Fri Apr 07, 2017 1:38 pm

Paste your command line
Works here, just need create the analysis directory
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Quad rendering bug

Postby HarryTuttle » Fri Apr 07, 2017 1:46 pm

2nd Update

commandline:
Code: Select all
supermodel.exe roms\scud.zip -gfx-state=saves\scud.st0


It crashes here:
Code: Select all
IEmulator *Model3 = s_gfxStatePath.empty() ? static_cast<IEmulator *>(new CModel3(s_runtime_config)) : static_cast<IEmulator *>(new CModel3GraphicsState(s_runtime_config, s_gfxStatePath));


and in particular when doing:
Code: Select all
static_cast<IEmulator *>(new CModel3GraphicsState(s_runtime_config, s_gfxStatePath));
User avatar
HarryTuttle
 
Posts: 646
Joined: Thu Mar 09, 2017 8:57 am

Re: Quad rendering bug

Postby HarryTuttle » Fri Apr 07, 2017 1:51 pm

Update, my debug.log:
Code: Select all
Supermodel v0.3a-WIP Debug Log
------------------------------

Info: Started as:
Info:   argv[0] = supermodel.exe
Info:   argv[1] = roms\scud.zip
Info:   argv[2] = -gfx-state=saves\scud.st0
Info:
Info: Opened .\roms\scud.zip.
Info: scud:
Info:   banked_crom: stride=8, chunk size=2, byte swap=1
Info:     mpr-19661.04, crc32=0x8e3fd241, offset=0x00000000
Info:     mpr-19660.03, crc32=0xd999c935, offset=0x00000002
Info:     mpr-19659.02, crc32=0xc47e7002, offset=0x00000004
Info:     mpr-19658.01, crc32=0xd523235c, offset=0x00000006
Info:     mpr-19665.08, crc32=0xf97c78f9, offset=0x01000000
Info:     mpr-19664.07, crc32=0xb9d11294, offset=0x01000002
Info:     mpr-19663.06, crc32=0xf6af1ca4, offset=0x01000004
Info:     mpr-19662.05, crc32=0x3c700eff, offset=0x01000006
Info:     mpr-19669.12, crc32=0xcdc43c61, offset=0x02000000
Info:     mpr-19668.11, crc32=0x0b4dd8d5, offset=0x02000002
Info:     mpr-19667.10, crc32=0xa8676799, offset=0x02000004
Info:     mpr-19666.09, crc32=0xb53dc97f, offset=0x02000006
Info:   crom: stride=8, chunk size=2, byte swap=1
Info:     epr-19734.20, crc32=0xbe897336, offset=0x00000000
Info:     epr-19733.19, crc32=0x6565e29a, offset=0x00000002
Info:     epr-19732.18, crc32=0x23e864bb, offset=0x00000004
Info:     epr-19731.17, crc32=0x3ee6447e, offset=0x00000006
Info:   driveboard_program: stride=1, chunk size=1, byte swap=0
Info:     epr-19338a.bin, crc32=0xc9fac464, offset=0x00000000
Info:   mpeg_music: stride=1, chunk size=1, byte swap=0
Info:     mpr-19603.57, crc32=0xb1b1765f, offset=0x00000000
Info:     mpr-19604.58, crc32=0x6ac85b49, offset=0x00200000
Info:     mpr-19605.59, crc32=0xbec891eb, offset=0x00400000
Info:     mpr-19606.60, crc32=0xadad46b2, offset=0x00600000
Info:   mpeg_program: stride=1, chunk size=1, byte swap=0
Info:     epr-19612.2, crc32=0x13978fd4, offset=0x00000000
Info:   sound_program: stride=1, chunk size=1, byte swap=1
Info:     epr-19692.21, crc32=0xa94f5521, offset=0x00000000
Info:   sound_samples: stride=1, chunk size=1, byte swap=1
Info:     mpr-19670.22, crc32=0xbd31cc06, offset=0x00000000
Info:     mpr-19671.24, crc32=0x8e8526ab, offset=0x00400000
Info:   vrom: stride=32, chunk size=2, byte swap=0
Info:     mpr-19672.26, crc32=0x588c29fd, offset=0x00000000
Info:     mpr-19673.27, crc32=0x156abaa9, offset=0x00000002
Info:     mpr-19674.28, crc32=0xc7b0f98c, offset=0x00000004
Info:     mpr-19675.29, crc32=0xff113396, offset=0x00000006
Info:     mpr-19676.30, crc32=0xfd852ead, offset=0x00000008
Info:     mpr-19677.31, crc32=0xc6ac0347, offset=0x0000000a
Info:     mpr-19678.32, crc32=0xb8819cfe, offset=0x0000000c
Info:     mpr-19679.33, crc32=0xe126c3e3, offset=0x0000000e
Info:     mpr-19680.34, crc32=0x00ea5cef, offset=0x00000010
Info:     mpr-19681.35, crc32=0xc949325f, offset=0x00000012
Info:     mpr-19682.36, crc32=0xce5ca065, offset=0x00000014
Info:     mpr-19683.37, crc32=0xe5856419, offset=0x00000016
Info:     mpr-19684.38, crc32=0x56f6ec97, offset=0x00000018
Info:     mpr-19685.39, crc32=0x42b49304, offset=0x0000001a
Info:     mpr-19686.40, crc32=0x84eed592, offset=0x0000001c
Info:     mpr-19687.41, crc32=0x776ce694, offset=0x0000001e
Info: Runtime configuration:
Info:   GameXMLFile=Config/Games.xml
Info:   MultiThreaded=1
Info:   GPUMultiThreaded=1
Info:   PowerPCFrequency=66
Info:   MultiTexture=0
Info:   VertexShader=./shaders/vertexShader.glsl
Info:   FragmentShader=./shaders/fragmentShader.glsl
Info:   EmulateSound=0
Info:   Balance=0
Info:   EmulateDSB=0
Info:   SoundVolume=75
Info:   MusicVolume=100
Info:   ForceFeedback=0
Info:   New3DEngine=1
Info:   XResolution=496
Info:   YResolution=384
Info:   FullScreen=0
Info:   WideScreen=0
Info:   VSync=0
Info:   Throttle=1
Info:   ShowFrameRate=1
Info:   Crosshairs=3
Info:   FlipStereo=1
Info:   InputSystem=xinput
Info:   DirectInputConstForceLeftMax=100
Info:   DirectInputConstForceRightMax=100
Info:   DirectInputSelfCenterMax=100
Info:   DirectInputFrictionMax=100
Info:   DirectInputVibrateMax=100
Info:   XInputConstForceThreshold=0
Info:   XInputConstForceMax=100
Info:   XInputVibrateMax=100
Info:   Outputs=none
Info:   DisableDebugger=0
Info:   EnterDebugger=0
Info:   InputStart1=KEY0_1,JOY1_BUTTON8
Info:   InputStart2=KEY0_2
Info:   InputCoin1=KEY0_5,JOY1_BUTTON7
Info:   InputCoin2=KEY0_6
Info:   InputServiceA=KEY0_9
Info:   InputServiceB=KEY0_0
Info:   InputTestA=KEY0_F2
Info:   InputTestB=KEY0_F3
Info:   InputJoyDown=JOY1_POV1_DOWN
Info:   InputJoyDown2=KEY0_DOWN
Info:   InputJoyLeft=JOY1_POV1_LEFT
Info:   InputJoyLeft2=KEY0_LEFT
Info:   InputJoyRight=JOY1_POV1_RIGHT
Info:   InputJoyRight2=KEY0_RIGHT
Info:   InputJoyUp=JOY1_POV1_UP
Info:   InputJoyUp2=KEY0_UP
Info:   InputEscape=JOY1_BUTTON6
Info:   InputEscape2=KEY0_KEYPAD0
Info:   InputGuard=JOY1_BUTTON1
Info:   InputGuard2=KEY0_KEYPAD3
Info:   InputKick=JOY1_BUTTON4
Info:   InputKick2=KEY0_KEYPAD2
Info:   InputPunch=JOY1_BUTTON3
Info:   InputPunch2=KEY0_KEYPAD1
Info:   InputBeat=JOY1_BUTTON3
Info:   InputCharge=JOY1_BUTTON1
Info:   InputJump=JOY1_BUTTON2,JOY1_BUTTON4
Info:   InputShift=JOY1_BUTTON6
Info:   InputLongPass=JOY1_BUTTON4
Info:   InputLongPass2=NONE
Info:   InputShortPass=JOY1_BUTTON3
Info:   InputShortPass2=NONE
Info:   InputShoot=JOY1_BUTTON1
Info:   InputShoot2=NONE
Info:   InputSteering=JOY1_XAXIS
Info:   InputSteeringLeft=NONE
Info:   InputSteeringRight=NONE
Info:   InputBrake=JOY1_ZAXIS_POS
Info:   InputAccelerator=JOY1_RZAXIS_POS
Info:   InputGearShiftDown=JOY1_BUTTON3
Info:   InputGearShiftUp=JOY1_BUTTON1
Info:   InputGearShift1=JOY1_RXAXIS_NEG+JOY1_RYAXIS_NEG,KEY0_K
Info:   InputGearShift2=JOY1_RXAXIS_NEG+JOY1_RYAXIS_POS,KEY0_I
Info:   InputGearShift3=JOY1_RXAXIS_POS+JOY1_RYAXIS_NEG,KEY0_J
Info:   InputGearShift4=JOY1_RXAXIS_POS+JOY1_RYAXIS_POS,KEY0_L
Info:   InputGearShiftN=JOY1_BUTTON12,!KEY0_K+!KEY0_I+!KEY0_J+!KEY0_L
Info:   InputVR1=JOY1_POV1_LEFT,KEY0_Z,KEY0_W
Info:   InputVR2=JOY1_POV1_DOWN,KEY0_X,KEY0_S
Info:   InputVR3=JOY1_POV1_RIGHT,KEY0_C
Info:   InputVR4=JOY1_POV1_UP,KEY0_V
Info:   InputViewChange=JOY1_BUTTON4
Info:   InputHandBrake=JOY1_BUTTON5
Info:   InputRearBrake=JOY1_BUTTON5
Info:   InputMusicSelect=JOY1_BUTTON2
Info:   InputTwinJoyCrouch=NONE
Info:   InputTwinJoyForward=NONE
Info:   InputTwinJoyJump=NONE
Info:   InputTwinJoyReverse=NONE
Info:   InputTwinJoyStrafeLeft=NONE
Info:   InputTwinJoyStrafeRight=NONE
Info:   InputTwinJoyTurnLeft=NONE
Info:   InputTwinJoyTurnRight=NONE
Info:   InputTwinJoyLeft1=JOY1_XAXIS_NEG
Info:   InputTwinJoyLeft2=JOY1_RXAXIS_NEG
Info:   InputTwinJoyRight1=JOY1_XAXIS_POS
Info:   InputTwinJoyRight2=JOY1_RXAXIS_POS
Info:   InputTwinJoyUp1=JOY1_YAXIS_NEG
Info:   InputTwinJoyUp2=JOY1_RYAXIS_NEG
Info:   InputTwinJoyDown1=JOY1_YAXIS_POS
Info:   InputTwinJoyDown2=JOY1_RYAXIS_POS
Info:   InputTwinJoyShot1=JOY1_ZAXIS_POS
Info:   InputTwinJoyShot2=JOY1_RZAXIS_POS
Info:   InputTwinJoyTurbo1=JOY1_BUTTON5
Info:   InputTwinJoyTurbo2=JOY1_BUTTON6
Info:   InputAnalogJoyUp=NONE
Info:   InputAnalogJoyDown=NONE
Info:   InputAnalogJoyLeft=NONE
Info:   InputAnalogJoyRight=NONE
Info:   InputAnalogJoyX=JOY1_XAXIS
Info:   InputAnalogJoyY=JOY1_YAXIS
Info:   InputAnalogJoyTrigger=JOY1_ZAXIS_POS
Info:   InputAnalogJoyEvent=JOY1_BUTTON5
Info:   InputAnalogJoyTrigger2=JOY1_RZAXIS_POS
Info:   InputAnalogJoyEvent2=JOY1_BUTTON6
Info:   InputGunDown=NONE
Info:   InputGunDown2=NONE
Info:   InputGunLeft=NONE
Info:   InputGunLeft2=NONE
Info:   InputGunRight=NONE
Info:   InputGunRight2=NONE
Info:   InputGunUp=NONE
Info:   InputGunUp2=NONE
Info:   InputGunX=MOUSE_XAXIS
Info:   InputGunX2=MOUSE_XAXIS
Info:   InputGunY=MOUSE_YAXIS
Info:   InputGunY2=MOUSE_YAXIS
Info:   InputOffscreen=MOUSE_RIGHT_BUTTON
Info:   InputOffscreen2=MOUSE_RIGHT_BUTTON
Info:   InputTrigger=MOUSE_LEFT_BUTTON
Info:   InputTrigger2=MOUSE_LEFT_BUTTON
Info:   InputAutoTrigger=1
Info:   InputAutoTrigger2=1
Info:   InputAnalogGunLeft=NONE
Info:   InputAnalogGunRight=NONE
Info:   InputAnalogGunUp=NONE
Info:   InputAnalogGunDown=NONE
Info:   InputAnalogGunX=JOY1_XAXIS
Info:   InputAnalogGunY=JOY1_YAXIS
Info:   InputAnalogTriggerLeft=JOY1_RZAXIS_POS
Info:   InputAnalogTriggerRight=JOY1_ZAXIS_POS
Info:   InputAnalogGunLeft2=NONE
Info:   InputAnalogGunRight2=NONE
Info:   InputAnalogGunUp2=NONE
Info:   InputAnalogGunDown2=NONE
Info:   InputAnalogGunX2=NONE
Info:   InputAnalogGunY2=NONE
Info:   InputAnalogTriggerLeft2=NONE
Info:   InputAnalogTriggerRight2=NONE
Info:   InputSkiLeft=NONE
Info:   InputSkiRight=NONE
Info:   InputSkiUp=NONE
Info:   InputSkiDown=NONE
Info:   InputSkiX=JOY1_XAXIS
Info:   InputSkiY=JOY1_YAXIS
Info:   InputSkiPollLeft=JOY1_BUTTON5
Info:   InputSkiPollRight=JOY1_BUTTON6
Info:   InputSkiSelect1=JOY1_BUTTON3
Info:   InputSkiSelect2=JOY1_BUTTON1
Info:   InputSkiSelect3=JOY1_BUTTON2
Info:   InputMagicalLeverUp1=NONE
Info:   InputMagicalLeverDown1=NONE
Info:   InputMagicalLeverUp2=NONE
Info:   InputMagicalLeverDown2=NONE
Info:   InputMagicalPedal1=JOY1_BUTTON3
Info:   InputMagicalPedal2=JOY2_BUTTON3
Info:   InputMagicalLever1=JOY1_YAXIS
Info:   InputMagicalLever2=JOY2_YAXIS
Info:   InputFishingRodLeft=NONE
Info:   InputFishingRodRight=NONE
Info:   InputFishingRodUp=NONE
Info:   InputFishingRodDown=NONE
Info:   InputFishingStickLeft=JOY1_POV1_LEFT
Info:   InputFishingStickRight=JOY1_POV1_RIGHT
Info:   InputFishingStickUp=JOY1_POV1_UP
Info:   InputFishingStickDown=JOY1_POV1_DOWN
Info:   InputFishingRodX=JOY1_XAXIS
Info:   InputFishingRodY=JOY1_YAXIS
Info:   InputFishingStickX=NONE
Info:   InputFishingStickY=NONE
Info:   InputFishingReel=JOY1_RYAXIS_POS
Info:   InputFishingCast=JOY1_BUTTON3
Info:   InputFishingSelect=JOY1_BUTTON4
Info:   InputJoy1XDeadZone=0
Info:   InputJoy1XOffVal=0
Info:   InputJoy1YDeadZone=0
Info:   InputJoy1YOffVal=0
Info:   InputJoy1RXDeadZone=0
Info:   InputJoy1RYDeadZone=0
Info:   InputJoy1ZMinVal=0
Info:   InputJoy1ZDeadZone=0
Info:   InputJoy1ZOffVal=0
Info:   InputJoy1RZMinVal=0
Info:   InputJoy1RZDeadZone=0
Info:   InputJoy1RZOffVal=0
Info:
Built IRQ controller
Built Tile Generator
Built Real3D
Initialized Tile Generator (allocated 2.8 MB and connected to IRQ controller)
Initialized Real3D (allocated 35.0 MB)
Real3D set to Step 1.5
Loaded NVRAM from 'NVRAM/scud.nv'.
Info: OpenGL information:
Info:   Vendor                   : ATI Technologies Inc.
Info:   Renderer                 : ATI Radeon HD 4800 Series
Info:   Version                  : 3.3.11672 Compatibility Profile Context
Info:   Shading Language Version : 3.30
Info:   Maximum Vertex Array Size: 2147483647 vertices
Info:   Maximum Texture Size     : 8192 texels
Info:   Maximum Vertex Attributes: 29
Info:   Maximum Vertex Uniforms  : 16384
Info:   Maximum Texture Img Units: 16
Info:
Info: Audio device information:
Info:     Frequency: 44100
Info:      Channels: 2
Info: Sample Format: 32784
Info:
Built Render2D
Render2D initialized (allocated 1.5 MB)
Render2D attached VRAM
Render2D attached palette
Render2D attached registers
Tile Generator attached a Render2D object
Real3D attached a Render3D object
User avatar
HarryTuttle
 
Posts: 646
Joined: Thu Mar 09, 2017 8:57 am

Re: Quad rendering bug

Postby Bart » Fri Apr 07, 2017 2:29 pm

That's bizarre. Are you absolutely sure you've done a clean build (deleted *all* the .o files)? CModel3GraphicsState is derived from IEmulator, so the static_cast is perfectly fine.
User avatar
Bart
Site Admin
 
Posts: 3086
Joined: Thu Sep 01, 2011 2:13 pm
Location: Reno, Nevada

Re: Quad rendering bug

Postby Ian » Fri Apr 07, 2017 2:32 pm

Why is the pointer cast there
Ian
 
Posts: 2044
Joined: Tue Feb 23, 2016 9:23 am

Re: Quad rendering bug

Postby HarryTuttle » Fri Apr 07, 2017 2:38 pm

Bart wrote:That's bizarre. Are you absolutely sure you've done a clean build (deleted *all* the .o files)? CModel3GraphicsState is derived from IEmulator, so the static_cast is perfectly fine.


Done, but no go :(

I use also "-DSUPERMODEL_DEBUGGER", otherwise doesn't compile.

Also if I don't add the "-gfx-state" option works fine; I think because if this is true: "s_gfxStatePath.empty()" it does:
Code: Select all
static_cast<IEmulator *>(new CModel3(s_runtime_config));
User avatar
HarryTuttle
 
Posts: 646
Joined: Thu Mar 09, 2017 8:57 am

PreviousNext

Return to The Dark Room

Who is online

Users browsing this forum: No registered users and 1 guest

cron