narzoul / DDrawCompat

DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11
BSD Zero Clause License
880 stars 67 forks source link

Superbike 2001 always crashes #254

Closed BEENNath58 closed 7 months ago

BEENNath58 commented 7 months ago

The game fails with whatever I try. If I run natively, I get a Primary surface error and the game crashes.

If I run with dgVoodoo2 or DxWnd, the game plays the EA logo and then crashes.

If I use DDC, the game freezes after the EA logo.

I logged the game using DxWnd, there is a DDERR_UNSUPPORTED relative to a UNSUPP(orted) return value from DxWnd that only relates to the screen position and resolution (saying because I never saw an error in this form).

I also attached the DDC log. DDrawCompat-SBK2001.log

narzoul commented 7 months ago

It seems to suffer from random memory errors. I got farther with the FaultTolerantHeap shim, but it still randomly locks up in the menu, and it always freezes at the end of loading a track.

narzoul commented 7 months ago

With dgVoodoo, the first frame of the race can be seen, then it crashes in mssds3ds.m3d, which seems to be a component of Miles Sound System. But even after I turned sound and music off, it still crashes there. This looks like a fairly hopeless case.

BEENNath58 commented 7 months ago

Apparently the game works when run through a debugger and an error is skipped https://sourceforge.net/p/dxwnd/discussion/general/thread/83109ba2ef/#9464

BEENNath58 commented 7 months ago

Update: The crash seems to be fixed with Win98 mode, and more specifically as I suspected: EmulateHeap

However DDC runs the game at 4x speed than dgV2 on Win10.

Thanks for the help.