Frame Generation and Retroarch - get 120 fps in retro games

Testing the Lossless Scaling app from Steam, I was able to get sweet 120 fps in Retroarch for 60 fps games, using the Vulkan driver. Have you guys tried this? I got some stutters but changing the Vsync Swap Interval to 2 gave me perfect 120 fps. I think it’s pretty awesome.

1 Like

And, does this Frame Generation work? it would be good to see some video.

The ‘Frame Generation’ that I have seen only duplicate the frames and in some frames generate a kind of interlacing and of very bad quality.

They say that “fashions always come back”, usually good things come back, interlacing was never good.

But if you are interested in the subject, in the shaders you have some interlaced and other experimental ones that duplicate and merge for progressive contents, visually they produce better aesthetics.

I haven’t used this myself, but I know some people who have and they raved about it. As with any motion interpolation, there are some artifacts but it sounds like it works pretty well overall and does what it says on the tin.

1 Like

It’s also not just duplicating the frames, but truly creates new animations inbetween. This should in theory look smoother with high refresh monitors, that’s the goal. And this is not something we can do with Shaders (yet, not sure if its possible). But it can lead to frame pacing issues, image artifacts and increase of input latency. But despite these points, if its implemented well, some people like the effect of it.

AMD has this (or will have it) at driver level for all games, but I don’t use Windows and cannot test this. Curious to how it compares to the application from Steam.

I tried AMD’s AFMF and believe me, it looks terrible for Retroarch (and PC games suck too, you have to disable vsync and get tears all over the place). The good thing about this other app, is that it lets you add frames without scaling, and then artifacts are not that bad and it really looks awesome. No vsync weirdness either.

The only way I was able to get this running smoothly in Retroarch is with the DirectX driver, for some reason it gets rid of weird stutters that I see in vulkan (glcore does not work). Latency is not bad either, I played many games and shootemups just fine. I think it looks quite amazing. And it works for videos, heck, even the browser too.

This is related to newer tech, like AFMF from AMD, DLSS, FSR 3. The thing is that the algorithm is way better. Basically I’m doing with Retroarch what I already do with the latest Yakuza PC game (Like a Dragon Gaiden) with FSR 3. I lock the fps to 60 and get buttery smooth 120 fps.

Interpolation is a way to create frames.

I honestly don’t think this can generate new animations, by emulation physically this is not possible and editing images, requires extremely powerful hardware. But I have seen so many things in this life that nothing would surprise me. :man_shrugging:t2:

Shader interpolation works in a very random way, it depends a lot on the type of game but you can achieve amazing results.

Can you upload a video at 120fps? I’ve seen some amd and nvidia ones from 30 to 60. I’d like to take a look at it on steam, but I can’t at the moment.

Don’t forget these interpolation methods use AI technology with lots of predictions using their trained models, so it’s not easily comparable to what we know with straight forward Shaders. I personally did not experiment with this kind of Shader setup, so cannot really talk about it yet, but I’m interested … for science!

Unfortunately people who don’t understand this think is the same as having more “native” game frames. And it should be used with 60 fps and upwards to begin with, not with less fps. This will increase input latency, not reduce it. I searched a bit the web if I can find a comparison. YouTube itself does not support 120 fps right now and I could not find other uploads. But here is someone comparing it from 30 to 60 and explaining the steps to configure it (which is annoying to me).

Edit: I know its not RetroArch, but thought might be interesting.

Using machine learning to create frame rate interpolation algorithms has changed a lot of things. Generating animation is now possible. FSR and DLSS use motion vectors of individual in-game objects supplied by the game to be able to generate animation.

When you don’t have access to motion vectors, then the algorithm needs to figure them out. This is from 2021. It has improved a lot since then, but even back then it looked impressive:

Doing this in real-time so that it’s suitable for applying to video and games will probably happen at some point.

2 Likes

Let me see if I can upload a video. The app is super easy to use, it runs behind scenes and whenever you hit CTRL+ALT+S you activate it for the current display. I’m suprised because previously I tested AMD’s AFMF preview driver, and while that somewhat works for new games, it sucks for Retroarch, artifacts everywhere plus forget about having any vsync. Now, this other app lets me disable the scaling part and just generates frames, with vsync. The only caveat is that I have to cap my frame rate to 120 instead of the usual 144. You do see some weird artifacts from time to time (actually quite a few, but it’s expected at this point) and particularly with brownish colors, but most of the time it’s just great. And about latency, I’m glad to report that it is not that terrible, I was playing Terra Diver with it just fine. Love seeing bullets at double the frame rate.

It can be really decent to go 120fps from 60fps, with the benefit of reducing screen blur a lot.
From 30fps source it can be hit or miss.

The bad side is the added lag, with a part of it probably caused by having to run RA in windowed mode.

For the next frame on screen, I usually get around 25ms in fullscreen + gsync.
I recorded my monitor with “lossless scaling” at its fastest settings (default with scale x1), I get around 60ms.

(RA windowed at 120hz, sync swap interval 2 as it’s the smoothest it can be)

1 Like

How did you measure the lag? I would like to measure that myself. I do not use any scaling, just the frame generation at max refresh rate, forcing my desktop at 120 hz.

Video recording at 240fps with my smartphone in front of the screen + gamepad.
Then going frame to frame in a video player to count how many frames between my finger hitting the button and a change on my monitor.

1 Like

Of all (few) videos on the internet, you put me this one, the 30fps video has interpolation. YT does not reproduce 120 fps, but what you can do is to lower the video speed by half to ne 60fps and be able to see every frame in detail.

I just want to see a video in action. Try it later, when I get off work. The videos I’ve seen on the internet are interpolation, it’s kind of weird because it seems to be based on the luma channel and then the other colors.

2021? Amazing video. I’m kind of curious in today’s technologically created videos don’t achieve half the quality.

Fact: The Enhancer for YouTube extension is very useful for viewing videos frame by frame.

I just tested it now, in my opinion, it turned out very well, but does anyone know how I can put it in full-screen? I could only get it to work in windowed mode.

1 Like

You will have to use windowed fullscreen for this one to work. I was just testing it a bit more and it’s definitely a keeper for me. My monitor is a 2560x1440 monitor and I force 120 hz, if I keep 144 hz this does not work. Had to change from Vulkan to DirectX and now everything runs fine with Guest’s CRT shader. The only problem would be Dreamcast since Flycast does not really work that well for me with DirectX. Latency is not a big deal here, I keep frame delay as 0 in the video settings, and Vsync Swap Interval to 2.

Edit: I disabled windowed fullscreen and still seems to work, weird.

1 Like

Windowed fullscreen doesn’t work for me on nvidia/gsync screen.
I have to go windowed and disable decoration and menu, then choose the maximum usable scale.
A bit annoying.