Cxbx-Reloaded / Cxbx-Reloaded

Xbox (Original) Emulator
https://cxbx-reloaded.co.uk
GNU General Public License v2.0
2.17k stars 256 forks source link

Burnout 1 Crash #69

Closed escape209 closed 7 years ago

escape209 commented 7 years ago

This is with Cxbx-Reloaded ea95cfc (25 Dec 2016.) I'm able to go through all the menus and even choose a car and track before the crash, although there are quite a lot of graphical issues, and there's no sound.

Here's the last bit of the log when it crashes:

EmuMain (0x1B98): Recieved Exception (Code := 0xC0000005)

EIP := 0x6CA17EA0 EFL := 0x00010282 EAX := 0x83BDFD6D EBX := 0x0AD421FC ECX := 0x6C9F1070 EDX := 0x7FFFFFFF ESI := 0x00000000 EDI := 0x00000004 ESP := 0x0E45FB34 EBP := 0x0E45FB38 CR2 := 0x00000000

cxbx_burnoutcrash

The reason I'm reporting this is because of how similar it is to #63 (at least to a black-box tester of Cxbx like me.)

PatrickvL commented 7 years ago

Thanks for reporting this - yet another title to test with!

escape209 commented 7 years ago

Not sure if this is of much use, but whenever I'm in the car select, I get a perfectly consistent spam of this in the console:

[0x2098] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! [0x2098] EmuWarn: We're lying about setting a pixel shader! [0x2098] EmuWarn: Not setting palette [0x2098] EmuWarn: Not setting palette [0x2098] EmuWarn: Not setting palette [0x2098] EmuWarn: Not setting palette [0x2098] EmuWarn: Not setting palette [0x2098] EmuWarn: EmuX86_Write32(0x0000042C, 0x00000001) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000430, 0x00000000) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000434, 0x001A6848) [Unknown address] [0x2098] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! [0x2098] EmuWarn: We're lying about setting a pixel shader! [0x2098] EmuWarn: EmuX86_Write32(0x0000042C, 0x00000001) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000430, 0x00000000) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000434, 0x001A6848) [Unknown address] [0x2098] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! [0x2098] EmuWarn: We're lying about setting a pixel shader! [0x2098] EmuWarn: EmuX86_Write32(0x0000042C, 0x00000001) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000430, 0x00000000) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000434, 0x001A6938) [Unknown address] [0x2098] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! [0x2098] EmuWarn: We're lying about setting a pixel shader! [0x2098] EmuWarn: EmuX86_Write32(0x0000042C, 0x00000001) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000430, 0x00000000) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000434, 0x001A6848) [Unknown address] [0x2098] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! [0x2098] EmuWarn: We're lying about setting a pixel shader! [0x2098] EmuWarn: EmuX86_Write32(0x0000042C, 0x00000001) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000430, 0x00000000) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000434, 0x001A6848) [Unknown address] [0x2098] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! [0x2098] EmuWarn: We're lying about setting a pixel shader! [0x2098] EmuWarn: EmuX86_Write32(0x0000042C, 0x00000001) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000430, 0x00000000) [Unknown address] [0x2098] EmuWarn: EmuX86_Write32(0x00000434, 0x001A6938) [Unknown address]

This goes away when I go back to the main menu.

LukeUsher commented 7 years ago

The EmuX86 lines imply we are missing some HLE patches for this XDK, this could possibly 'fix itself' as we improve the HLE Database/function detection

jarupxx commented 7 years ago

I checked xdk 4361 and added a missing symbol. The EmuX 86 line has disappeared, but it crashes as well.

If interested, we can test it here. https://github.com/jarupxx/Cxbx-Reloaded/commits/fnc-3

LukeUsher commented 7 years ago

Is this crash dump (EIP := 0x6CA17EA0, etc) identical to the one documented in this issue, or did the details change after adding the missing symbol?

jarupxx commented 7 years ago

Crash dumps are different from documented. The value seems to change every time it is executed.

[0x24AC] EmuMain: Recieved Exception (Code := 0xC0000005)

 EIP := 0x66E47EA0 EFL := 0x00010202
 EAX := 0x63311791 EBX := 0x00000000 ECX := 0x66E47E90 EDX := 0x66E21070
 ESI := 0x0F0AFACC EDI := 0x0F0AFB74 ESP := 0x0F0AFAB4 EBP := 0x0F0AFAB8
 CR2 := 0x00000000

Not sure if this is useful, but before the crash Microsoft Visual C ++ Runtime Library Debug Error! Appears. If I Ignore this error, causes Line: 1175 similar Debug Error!

---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Debug Error!

Program: D:\Git\Cxbx-Reloaded-fnc-3\build\win32\Debug\CxbxKrnl.dll
Module: D:\Git\Cxbx-Reloaded-fnc-3\build\win32\Debug\CxbxKrnl.dll
File: d:\git\cxbx-reloaded-fnc-3\src\cxbxkrnl\emud3d8.cpp
Line: 1163

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

(Press Retry to debug the application)

---------------------------
Abort (A) Retry (R) Ignore (I)
---------------------------

https://github.com/jarupxx/Cxbx-Reloaded/blob/fnc-3/src/CxbxKrnl/EmuD3D8.cpp#L1163

escape209 commented 7 years ago

Oddly enough, Burnout 3 crashes on startup with a relatively similar error:

[0x141C] EmuMain: Recieved Exception (Code := 0xC0000005)

 EIP := 0x00351A3A EFL := 0x00010286
 EAX := 0x80000000 EBX := 0x00080000 ECX := 0x00000000 EDX := 0x00000000
 ESI := 0x00000000 EDI := 0x00000000 ESP := 0x0E50FD94 EBP := 0x00080000
 CR2 := 0x00000000
escape209 commented 7 years ago

The intro logos and title screen now display, which didn't happen before because they didn't display if you didn't have a save. The game used to black screen after the initial load screen if you had a saved game.

crit title

But when you press Start on the start screen, you get this message: unusable

Update: I also transferred my Burnout save from my Xbox and used that instead of creating the save in Cxbx, but I still got the same message.

escape209 commented 7 years ago

There's been a regression, and now I can't get past the first loading screen. burnout_crash

KrnlDebug.txt

PatrickvL commented 7 years ago

Can you re-test this with build https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/commit/6e250dc345f0c538238070ebf9b933dba348a114 or later?

escape209 commented 7 years ago

@PatrickvL The regression has been fixed.

PatrickvL commented 7 years ago

Cool! Thanks for testing. So now it's back to its initially reported behavior?

escape209 commented 7 years ago

@PatrickvL Yep!

escape209 commented 7 years ago

I'm not sure when this happened, but the issue where Burnout would fail to load the save game has been fixed. "Load Successful!" now displays before moving onto the main menu.

PatrickvL commented 7 years ago

I suspect this commit fixed that : https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/commit/eec43cf5ac5a59b3bb867df9afdc75351f09e6aa

escape209 commented 7 years ago

deferred

The game now crashes immediately with this error. I traced this back to 574d1f89cd29a0c5d64701033b8d24ff013504ad.

I hadn't been testing for a while, but I also found out that for a little while before 574d1f89cd29a0c5d64701033b8d24ff013504ad, the game crashed with a 0xC0000005.

LukeUsher commented 7 years ago

This has been fixed in the latest versions, it was only broken by that single commit. You can try cleaning the HLE cache manually. Settings -> Cache -> Clear

escape209 commented 7 years ago

I'm still getting that error message, though. Clearing HLE cache doesn't work.

escape209 commented 7 years ago

I'm still getting the same error on the latest build, but now I get this error after running the game right after clearing HLE cache: image

Each time after that, I get the same error as before.

escape209 commented 7 years ago

As of now, there is no longer an error message box when attempting to run the game, but the game still gives a black screen. I don't know when the above issue resolved itself though.

KrnlDebug.txt

BelleNottelling commented 7 years ago

@UlsterRose no error but still a black screen? Press f11 to toggle wireframe mode

escape209 commented 7 years ago

By black screen I mean Cxbx displays a black screen for about 20 seconds, then goes back to the default state with the Cxbx logo. I should've been clearer about that. F11 doesn't do anything, probably because the game doesn't seem to start now. The copy I'm using works perfectly fine on a real Xbox, so I don't think a bad rip is the problem.

PatrickvL commented 7 years ago

This issue was moved to Cxbx-Reloaded/game-compatibility#197