hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
10.77k stars 2.12k forks source link

30fps games running at 60fps. #19256

Open foxsevent opened 3 weeks ago

foxsevent commented 3 weeks ago

Game or games this happens in

ULUS10200 Bltiz Overtime, ULES00841 Brain Lara 2007 Preasure

What area of the game

The entire game.

What happens

Both are 30fps games but run at 60fps doubling the game logic speed.

What should happen

Both games should run at 30fps. https://youtu.be/kywy1fe8XOQ?si=XrC0fnPcUZDpPb4j https://youtu.be/QrLOGQAURT8

GE frame capture

No response

Platform

Windows

Mobile device model or graphics card (GPU)

AMD RX7900GRE

PPSSPP version affected

1.17.1

Last working version

v1.17.1-727

Graphics backend (3D API)

Direct3D 11

Checklist

LunaMoo commented 3 weeks ago

Since it looks as a timing issue that's not fixable in an easy way I provided cwcheat workarounds for both of those in my repo long time ago: https://github.com/LunaMoo/PPSSPP_workarounds

Double-0-seven7 commented 3 weeks ago

Since it looks as a timing issue that's not fixable in an easy way I provided cwcheat workarounds for both of those in my repo long time ago: https://github.com/LunaMoo/PPSSPP_workarounds

Also happens in Crazy Taxi but there is no cwcheat in your repo. Also same thing for a few other games but only in adhoc mode.

LunaMoo commented 3 weeks ago

Also happens in Crazy Taxi but there is no cwcheat in your repo.

Never said it is. Merely mentioned those two games you initially wrote about as I remembered making workarounds for them.

This is a valid issue, it's just that as I said, those are timing issues, it's not about some code working incorrectly that could be found and fixed, but about PPSSPP being faster than the real console and some very poorly coded games, depend on it and that means it will not be fixed easily if at all.

Edit: I guess the easiest way to deal with it would be GOW-kind of solution as that's pretty much what my workarounds are doing, maybe renaming the disabled by default GOW 30 fps hack to just 30 fps hacks and add similar per-game hacks via function replacements for games needing this. The unfortunate part is that each game needing it will need it's own function replacement, but at least it should be easy to find and already found in my workaround patches. Alternative would be to create some univeral way to add wait for vblank and make the wait user selectable to deal with both, games running too fast and games having high requirements due to high fps, but I have no idea how to make that universal, per game solution is much simpler.