barbudreadmon / fbalpha-backup-dontuse-ty

Deprecated port of Final Burn Alpha to Libretro (v0.2.97.43).
61 stars 43 forks source link

Slowdows in Strikers 1945 Plus #119

Closed ghost closed 7 years ago

ghost commented 7 years ago

Playing Strikers 1945 Plus has frequent slowdowns, most noticeable when hitting enemies that requires multiple hits. a discussion is already done in forums: https://forums.libretro.com/t/question-about-a-specific-game-strikers-1945-plus/8898/7

cannot seem to find a setting that can remove or at least reduce the slowdowns. comparing it to mame_libretro(0.182), mame has decent game speed with no said slowdowns.

it seems that the update to 2.97.38 has introduced this slowdown in fba. First bad commit : https://github.com/libretro/fbalpha/commit/b55216c1582313bb770a7d8d2032acd384537387

tests are done in windows using latest retroarch and fba commits

RaduNastase commented 7 years ago

The android FBA core (.38) suffers from this issue as well.

barbudreadmon commented 7 years ago

Did you check if fba standalone have this issue ?

barbudreadmon commented 7 years ago

I confirm this issue in standalone, and it doesn't seem like something related to a lack of resources (i have those slowdowns on my computer while the game runs at a constant 60 fps and is using around 5% of 1 cpu core). I'll ask upstream if they know about this.

barbudreadmon commented 7 years ago

The answer here : http://neosource.1emulation.com/forums/index.php?topic=1731.msg23319#msg23319 It seems this game is properly emulated, if you don't want the slowdown, you'll have to use the cpu overclock feature in core options.

ghost commented 7 years ago

using an overclock of 200 the game performs better, but not near as smooth as its older 0.2.97.37 build(comparing to standalone and libretro_core version using previous commits). it stills staggers at about 3rd stage and later levels. considering that USE_SPEEDHACKS seems to still be included in neo_run(which has specific entry for s1945p), neo_sprite core and during build(makefile) and it looks like it was never touched during the 0.2.97.38 upgrade, it shouldp robably still worked without the need of overclock. i dont think running a hack on top of overclock(which is another hack) is a good idea, considering overclock can break other games too.

ghost commented 7 years ago

i narrowed this down and isolated it on a single line of code that causes this

https://hastebin.com/atuyeqowuf.cs

Sadly, as noted this breaks other games (Karnov's Revenge for example will not have ingame audio)

there must be a way to satisfy both conditions without breaking others, like probably a condition that enables this when running s1945p and disables it when not until fba-team does find a proper way to satisfy this.

(i would love to post this on fba forums but im having issue creating an account)

barbudreadmon commented 7 years ago

Thanks for this information, i submitted it to dink, he'll probably come up with a solution.

RaduNastase commented 7 years ago

Wow, great job guys. This game's emulation issues come and go with each new FBA release. Hopefully next time it will be fixed for good :D

barbudreadmon commented 7 years ago

Solved, let me know if there are any other neogeo game who suffered from this .37 to .38 update.

ghost commented 7 years ago

post retracted--now testing :D

update: works great. i can switch between Karnov Revenge and Strikers 1945 Plus without causing issue with one another.

@RaduNastase

barbudreadmon commented 7 years ago

As i said, dink would come up with a solution :)

barbudreadmon commented 7 years ago

dink came up with a proper fix for the z80 cpu core, i commited it, it probably fixed other games affected by the same issue. I close.

ghost commented 7 years ago

great really nice of them to have come up with a fix this fast. i thought from reading on the forums that fixes will be done on next release.

barbudreadmon commented 7 years ago

I regularily betatest things for dink, so i get some fixes before the releases.