this post was submitted on 02 Aug 2024
590 points (94.6% liked)

RetroGaming

19602 readers
382 users here now

Vintage gaming community.

Rules:

  1. Be kind.
  2. No spam or soliciting for money.
  3. No racism or other bigotry allowed.
  4. Obviously nothing illegal.

If you see these please report them.

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Kolanaki@yiffit.net 8 points 3 months ago* (last edited 3 months ago) (2 children)

I never really cared until I emulated Super Mario RPG and literally could not make a specific jump in Booster's Castle because of the frame skipping. I never have any trouble on an actual SNES there. Can't ever make it emulated. :/

[–] Mozingo@lemmy.world 5 points 3 months ago (1 children)

Why do you even have frameskipping enabled on a snes game? Surely you can emulate it at full speed?

[–] Kolanaki@yiffit.net 2 points 3 months ago (1 children)

Can't turn it off on the android version of snes9x, where I usually emulate retro games.

[–] mightyfoolish@lemmy.world 4 points 3 months ago (1 children)

I would try RetroArch personally. It's more complicated to set up (due to it being a mult-system emulator) but the pay off is worth it.

[–] DadVolante@sh.itjust.works 3 points 3 months ago (1 children)

There's also emulation station for Android now, as well! On top of retroarch, it makes for a great experience

[–] mightyfoolish@lemmy.world 2 points 3 months ago (1 children)

Emulation Station is such a better way to launch games compared to RetroArch. I didn't know it got an Android port, thank you. Is there something like emudeck on Android to even make the process even more easier?

[–] DadVolante@sh.itjust.works 2 points 3 months ago

Not that I'm aware of. Still easy though. Download arch, download Emulation station, then play to your heart's content

[–] Redkey@programming.dev 2 points 3 months ago* (last edited 3 months ago) (1 children)

I have been emulating many different systems (including SNES) on lots of platforms, and have almost never been bothered by lag in the emulation itself.

But one day someone was harping on about lag in an SNES game, so I loaded it up (Android RA SNES9x core) just to double-check before arguing with them... and indeed found the lag quite noticeable. But I also found two ways to reduce the lag significantly.

The first thing is to try different cores. There are multiple versions of SNES9x available on most versions of Retroarch, and there's a reason for it. The different cores can give surprisingly different results for a single game.

The second thing (which had the greater impact for me) is to enable Retroarch's look-ahead emulation for one or two frames. Just as it sounds, this will cause the core to emulate the next n frames with every possible combination of inputs. It increases the processing requirements exponentially, but for something like the SNES, many platforms can handle it. I know it seems counterintuitive (if it can emulate hundreds or thousands of possible frames in realtime, why can't it do just one?) but it worked for me. It must be some kind of throughput vs. latency thing.

[–] Mozingo@lemmy.world 3 points 3 months ago* (last edited 3 months ago) (1 children)

Sorry, that's almost it but they don't emulate hundreds or thousands of frames, you're right in thinking that would be implausible. Basically what happens is retroarch makes a savestate every frame and keeps a running list of the last few. When you press a button, retroarch will load one of those states from a few frames ago, press the same button then, then disable video and re-emulate those "rewound" few frames in fast forward. Then once it's caught up to the present it re-enable video rendering. The end result is that you see the effect of your input happening the frame after you press it, instead of the normal input delay of 2 or more frames. It's pretty neat. But yea, this means that they're only emulating an extra 3-5 frames or so not hundreds, and they only have to do it when you press a button, not all the time.

[–] Redkey@programming.dev 3 points 3 months ago

Ah, that makes much more sense. Thanks!