Frame Generation and Retroarch - get 120 fps in retro games

Maybe try and test it with games that would benchmark latency, and that you’re familiar with, like some Donkey Kong Country barrel level or some Punch Out. You’ll then see for yourself.

Mostly two, intensity varies per case:

  1. Uneven responsiveness. Since there’s only so much real frames, the fake ones (logically) do not accept inputs. The player may be slightly thrown off about when to react, as the graphical fluidity does not translate to the controller inputs.
  2. Uncanny animations. As with any generative algorithm, the more data you feed it, the better the results. Unlike modern PC games which can steadily deliver more than a hundred frames per second (thus, providing precious data about what to expect from the animation), retro games are limited to 60 frames per second… at best, if it even reaches that or maintain that value. As consequence, the algorithm has to “guess” a lot more, generating weird frames that do not look necessarily good.

Regardless of any reasoning: if you like it, then you like it, end of story. It’s no crime and it’s not wrong. However, varying results and operation conditions below the ideal make frame generation for retro gaming just an option, not an improvement. It’s not unmistakably better, it needs to fit into one’s preference and needs.

1 Like

These are good replies and I appreciate it. Mainly, for myself, I want the best playing experience I can have. So, I’m looking for things to looks out for that I might not otherwise notice. The animations have been ok so far, but I need to keep an eye on input issues (which I haven’t really seen yet, but my testing has been pretty limited). I did have a hellish time wrestling with the sounds settings (as I mentioned above) to get it right, but that’s ok now.

1 Like

I tried some Punch Out tonight to test it out and it seemed fine. I’m no champ at that game and I just did the first couple guys but I was able to wait until the last moment and dodge. I’ll keep an eye on it though. I think people that aren’t able to keep a solid fps might see some problems, but it’s been ok so far.

It’s unlikely that frame generation will make input latency worse; it’s intended to be exactly the same. What may tick some people off is perceived responsiveness (subjective value), as the on-screen fluidity does not translate to the inputs. However, 60 FPS games (like NES Metroid) are already good enough, so there’s less chance to affect you. Even with poor-framerate games (like many 5th-gen ones), it will still be a subjective issue, albeit harsher; so, I wouldn’t be surprised if a given user is unaffected at all, because they can adapt to different timings (which is a good skill to have).

My post was just to shed some light upon the challenges frame generation has with retro gaming, which is generally not noticeable with modern content (provided the base performance isn’t bad).

1 Like

Definitely… I’m just testing this out to see how viable it is for people playing the older games. I did play some nes Ghosts n Goblins tonight and the horizontal scrolling looked terrible and choppy, so it’s not all a rose garden. I’ll keep testing it out though.

1 Like

As a post-proc effect, it necessarily has to add at least a half frame of latency (at 120 FPS) since it’s comparing the previous frame to the most recently displayed full frame to generate motion vectors that are then used to make the intermediate frame(s). So, for half of a frame, it’s showing the intermediate frame that then switches to the actual latest frame.

That said, you should still be able to use runahead/preemptive frames, since the framegen stuff is all post-proc anyway. It won’t even be aware of the rollbacks that never make it to the display.

3 Likes

Thanks, Hunter. I’ve been running the preemptive frames with it and it does seem to be fine.

I totally agree. There’s nothing wrong with using Lossless Scaling, but in the same way that perceived responsiveness, which I agree is subjective, can be felt negatively, it is also true when discussing if playability is improved by it. I dont think it is.

If the program is adding one frame of lag, that’s 16ms of additionnal frametime for a 60 fps game. I’ve played rythm games where perfect notes would only register with the same time windows.

So all in all, I think Lossless Scaling is aptly named, in the sense that with its scaling you dont have to trade for anything. But it’s not named Lossless Framegen.

1 Like

The program has been getting better and better since I first posted this. Now I can use shaders with scanlines while up to version 3.1 it was a glitch fest. Now it’s not perfect but it’s almost there.

Regarding lag, you can play with settings like Queue Target and Max Frame Latency, depending on what you can get away with your system of course.

I wish I could use some black frame insertion shader but those do not work correctly with my system, and my Asus monitor only gets lots of image retention with those shaders. Lossless Scaling is great, you can enable or disable it with a keyboard shortcut if needed, no big deal.

That’s because Ghost N’ Goblins scrolling is not smooth at all. I would avoid using this app if I don’t get perfect 60 fps from the game itself.

This hack makes it run at real 60fps:

https://romhack.ing/database/content/entry/V9Nu5JQBNs8FWu0Cmmyp/makaimura-arcade-conversion

3 Likes