libretro / LRPS2

GNU General Public License v2.0
173 stars 49 forks source link

Framerate versus total frames #285

Open ghbrown opened 2 months ago

ghbrown commented 2 months ago

Description

By timing in game tasks/cycles in both RetroArch and standalone PCSX2 it seems RA is running much slower than its framerate would suggest. This resulted in at least one game actually being unbeatable on RA. This issue first occurred in RA PCSX2 core, but after updating to make this post, it also occurs in LRPS2 core (so I figured I would file here). No such problems on standalone PCSX2.

Expected behavior

I expect the number of frames for in game events/cycles to be constant so that the real time increases as the framerate decreases. For example, a 600 frame event should take 10 seconds at 60 FPS or 12 seconds at 50 FPS. As such, games should still be beatable even if they do not run at exactly 60 FPS.

Actual behavior

Timings and framerates to run down a long hall in God of War 1 for PS2:

Application Real time Reported FPS Computed total frames
LRPS2 5.8 s 60 348
RetroArch 8.2 s > 56 > 459

As you can see, the computed total frames are not close. This suggests that the core is not reporting the correct framerate, or perhaps something more complicated. Practically, this means that timed in-game events are harder, and actually resulted in the inability to jump a gap in RetroArch (I assume due to reduced in game velocities), making the game unbeatable.

Steps to reproduce the bug

  1. Run God of War 1 on PCSX2 core, time a cycle or in-game event and also record frame rate.
  2. Run God of War 1 on standalone PCSX2 core, time the same in-game event and record frame rate.
  3. Compute total number of frames needed for each application and observe the difference.

Version/Commit

Environment information

Caveat