narzoul / DDrawCompat

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

Road Rash (1996 PC Game) crashes after a while being in the menus #197

Closed De-M-oN closed 7 months ago

De-M-oN commented 1 year ago

I first said that Road Rash runs flawless, but I was wrong because I wasnt long in the menus and directly started the race. It crashes after a while navigating through the menus, It can be after 10 seconds, sometimes about 30 seconds. I tried single core. I tried 60fps Limit. I tried borderless, I tried software device at "app". in-race it works stable. Its just the menus being high danger.

The game works 100% stable if you run it native without your wrapper, but it would be better if it would work either with your program or with dgvoodoo2 to avoid that low resolution. But both have issues with the menus :-(

Also OBS cant capture the game with game capture. With Monitor capture it works, but its a bit slow at transitions (menu to videoclip, videoclip to in-race and so on) so that I would prefer game capture. Not sure if you can do sth about this.

narzoul commented 1 year ago

Does it crash or does it freeze? I can only repro the freeze. It's a GDI deadlock caused by display scaling I think. I already fixed it in my dev version. I think you can work around it in the meantime by using DisplayResolution=app.

OBS likely only works in Display Capture mode. Game capture probably uses DX hooks which could be incompatible with DDrawCompat's hooks. Such cases are not supported, as per the readme.

De-M-oN commented 1 year ago

It freezes, yeah. Music keeps playing, but mouse is frozen and task manager says its not responding and I have to kill the task (by navigating to the taskmanager via the alt+tab thumbs, then use arrow keys and check again in alt+tab thumbs if I highlighted roadrash, and then I can kill it with ALT+E :D

Well on DisplayResolution app I'm on 640x480 again. But 8x MSAA seems still applied though at least if I didnt observe wrong.

Game Capture of course tries to hook into the game renderer. Display capture would be ok if it wouldnt be so slow on the said transitions. Maybe I can improve that with borderless idk.

De-M-oN commented 1 year ago

I tried now DisplayResolution App a bit more, and it freezes the very same. The only difference is that the mouse still can be moved (but menu doesnt react to mouse movements or anything)

narzoul commented 1 year ago

Strange, maybe you're also using ResolutionScale? Anyway, this temporary fix should work with both display and resolution scaling: ddraw.zip (diff.txt compared to v0.4.0)

De-M-oN commented 1 year ago

That one works 👍 When will the next version round about being released? or completely unknown for now? Because I really would like to have the stretching to fullscreen. Then I could continue my "lets play" to the game.

narzoul commented 1 year ago

I don't know yet. Too many issues, too little time.

But if that's all you need, it can be hardcoded very easily. Here you go: ddraw.zip (diff.txt compared to v0.4.0)

De-M-oN commented 1 year ago

you're a life saver, thank you so much 😍

narzoul commented 7 months ago

The deadlock is fixed in v0.5.0. Also you can use the DisplayAspectRatio setting to stretch to full screen.