Frame Generation and Retroarch - get 120 fps in retro games

It runs minimised to tray, maybe there’s some ahk script that can do what you want.

I have this basically set up, but my frames seem to be locked to 50/100. Is there an obvious way to get this to 60/120?

Is the game you are running a PAL version? Because it seems the base FPS is 50, and the software is just doubling it.

1 Like

Kind of… it turns out Nestopia’s auto region was playing “world” games as PAL (so you called it in that aspect), and I had to set it to force NTSC. I realized it after I tested a game that is NTSC only and it played in 60/120.

I got everything set up properly now. I found that you can auto start lossless scaling with retroarch by setting up a profile within the app to start running with the retroarch.exe (that was one of my questions above).

It took some experimenting with the settings, but it actually runs the games very smoothly. I have an ethical dilemma because this basically blows the top off of emulator accuracy because it’s no longer accurate at all, technically… but from a playability perspective it does a good job. I’ve run it on games that had problems with motion, like Sonic and Super Mario World for example, and they play and look a lot better.

2 Likes

Nice that you liked it, And each update makes Lossless Scaling much better.

1 Like

I am noticing the game music is kind of weird and warbly. I’m not sure if that could be because of LS or just some other issue I’m having.

No issues with music here at all.

I have that problem with the WASAPI audio driver. I use xaudio instead without issues.

If you have any suggestions, that’s helpful.

Yeah, it’s the wasapi driver because I have an external DAC the xaudio just doesn’t work at all… sounds terrible. So, I use the wasapi and it’s passable, but sounds warbly. I read this morning that there is problems with it in general but I don’t know if that’s true. Anyway, I spent some time fooling with settings but haven’t been able to get it ironed out.

In my experience it doesn’t really improve gameplay. I play a lot of rythm games where high framerates really matter for both comfort and gameplay, also in VR, and I can usually detect latency issues. If I’ve got CPU to spare I’d be more comfortable playing with Retroarch’s pre-emptive frames.

Lossless Scaling is still fine for making cinematic experiences like ICO or Shadow of the Colossus more fluid. But like any postprocess it adds latency, but with that tool you cant compensate with preemptive frames.

1 Like

Indeed. Frame generation is best used for modern 60+ FPS games. It’s intended for situations in which responsiveness is already good, but the framerate is below the monitor’s refresh rate, as some of them goes pretty high for a GPU to handle. Basically, scenarios like you running a game at 100FPS, but your monitor has 180Hz. Frame generation covers for that 80-frames gap and it works, but it’s no magic. You can’t turn a 20 FPS retro game into a 60 FPS modern experience without any shortcoming.

tl;dr: use frame generation if you already have a high framerate, but needs an even higher one and your hardware cannot do it the traditional way.

I played through nes Metroid last night with LS and had a very smooth experience. What are the shortcomings you guys are talking about? I’m not saying that there aren’t any, but I’m interested to know what I might be missing.

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.