TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.14k stars 380 forks source link

Rewinding while the emulator is paused has much worse performance. #3053

Open dacin21 opened 2 years ago

dacin21 commented 2 years ago

Summary

If the emulator is paused while you're holding down the rewind key, the rewind performance is much worse. (If anything, I would expect pausing to slightly improve the performance.) This in particular happens if you're TASing something with frame advance and rewind without first unpausing the emulator.

Repro

  1. Download a fresh copy of Bizhawk 2.7
  2. File > Rom..., Open a vanilla Super Mario World rom.
  3. Let the emulator run for 1k frames to fill the rewind buffer. (You can fast-forward to speed this up if you want.)
  4. Press and hold shift + R + Tab to fast-forward rewind. Note the FPS that you get (in my case 235, close to the cap of 240)
  5. Let the emulator run for 1k frames to fill the rewind buffer. (You can fast-forward to speed this up if you want.)
  6. Pause the emulator.
  7. Press and hold shift + R + Tab to fast-forward rewind. Note that the FPS is much lower now (in my case 67) and the rewound game play looks much slower (so it's not just a bug with the fps counter).

Also happens on the BSNES core (might make it easier to see if you're hitting the cap of 240 fps on the snes9x core). There I'm getting 89 fps without pausing and 46 fps with pausing. In particular, this has has effect even without fast-forward here.

Also happens with delta compression (might make it easier to see as you can rewind for 37k frames, not just 1.3k).

Host env.

vadosnaprimer commented 1 year ago

Consider 007442773a35c213257f8462b2b948bdddefe5fa a proper pull request that was reviewed and rejected because the author failed to fix the bugs introduced by the fix.