narzoul / DDrawCompat

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

eXceed - Gun Bullet Children #80

Closed avo323 closed 3 years ago

avo323 commented 3 years ago

I've been trying to run eXceed - Gun Bullet Children at proper speed (60/61fps) under Windows 10. With DDrawCompat the speed improvement is very noticeable, concretely when using your experimental release. There are still some slowdowns to 50/55fps when the screen has more bullets and effects going on, mostly during boss fights. I hope you can improve the compatibility. I'm aware this game is niche, so I'll keep my fingers crossed.

Thank you so much for the fantastic job you're doing with this wrapper, @narzoul. I managed to make many old games run perfectly using it. Keep up the good work.

narzoul commented 3 years ago

I guess the frame rate depends on the refresh rate (and apparently so does the game's speed). I just went through the first practice map (Skyscraper) but I'm getting solid 144 fps without any dips all the way through with the latest experimental release. Natively it's about 30 fps.

What are your system specs?

avo323 commented 3 years ago

My current box is pretty outdated, so that could be it:

Intel Core i3 2120 4,00GB Dual-Channel DDR3 1024MB NVIDIA GeForce 210

I can run its 2 sequels at steady 60fps, though. But those don't need any wrappers, at least on my side.

narzoul commented 3 years ago

I found another optimization possibility that should improve performance a bit. Please check the latest experimental release. Hopefully it'll be enough to get you to stable 60 fps, since I don't see what else I can do to improve things further at the moment.

avo323 commented 3 years ago

That definitely improved the speed, but now most sprites (player, enemies and enemy bullets) show a big black opaque box around it. The boxes move and rotate with the sprites. Looks like my graphics card isn't using transparency where it should.

Playing like that was hilariously difficult, but my test have shown that the game ran 61-60 fps all the time through stage one, boss included.

narzoul commented 3 years ago

Interesting. This issue doesn't happen on either my Intel or AMD GPUs, so it's probably an NVIDIA specific driver detail. My best guess is that the NVIDIA driver disables the color key when changing textures, while the other drivers simply leave it as it was.

I made a small correction based on that assumption on top of the latest commit (f6ed6bc), with the following diff: diff.txt For now, I'll just attach the new version here for testing: ddraw.zip

If you can confirm it fixes the issue, I'll add it to the "official" experimental release. Thanks in advance!

avo323 commented 3 years ago

Pretty good guess, I must say. That last correction fixed the color key issue. Performance is now improved without any side effects.

I played a bit further and I've only seen slight slowdowns during some extreme screen-fill moments against the 2nd and 3rd boss, those moments didn't last much and it was perfectly playable. Having my system specs into account, I bet you've done all that can be done. I'll be checking out your releases to see if you come up with some fresh optimization ideas, but I think the issue can be considered solved.

Thank you for all the help. I hope you keep improving your wrapper, it's a really useful piece of software.

narzoul commented 3 years ago

Thanks for the feedback! Updated the experimental release with the fix now.