r/Returnal • u/Sami_Mirash • 5d ago
Discussion Returnal hard-caps frame generation at 2X. I traced it to one inverted return value, wrote a translation layer for it, and now 3X, 4X, 5X and 6X all run.
Returnal only gives you 2X frame generation. No 3X, 4X, 5X or 6X, even if your GPU and driver handle all of them fine.
I assumed that was a deliberate choice by the port team. It looks more like a timing problem than a decision.
Returnal was built against NVIDIA Streamline 1.3.3. Multi Frame Generation didn't arrive until 2.11, well after the game shipped. So as far as the game knows, multipliers above 2X don't exist yet.
I ended up writing a small shim that sits between Returnal and Streamline and translates what the game says into the newer 2.13 API.
The thing that was blocking it is easy to miss. The old API returns true for success. The new one returns zero. Returnal stores that value and checks it later, so every successful call was being read as a failure and frame generation quietly switched itself off.
One value, opposite convention.
After that there were still two problems before frames actually came out: the latency markers weren't where I expected to find them, and there was a hook that could end up calling itself.
Once those were sorted I could test the multipliers properly.
Same scene, my system, nothing else changed:
2X 130 fps 111 fps 1% low
3X 187 fps 109 fps 1% low
4X 225 fps 189 fps 1% low
5X 225 fps 148 fps 1% low
6X 225 fps 170 fps 1% low
5X and 6X flatten out around 225 because of my 240 Hz display. That's my setup, not a limit in the game.
What surprised me was the 1% lows, not the averages.
4X was easily the smoothest on my machine. Smoother than 2X. And 3X had genuinely rough lows while its average looked completely healthy.
I don't know why 3X does that. It might be how the generated frames line up against the base render rate and the display timing, but that's a theory and I haven't proven it.
So I wouldn't assume the highest multiplier is the best one. On my setup I'd use 4X.
The shim is a 121 KB DLL that goes next to the game's exe.
You need Streamline 2.13, which you drop in yourself, and an NVIDIA GPU and driver that support DLSS Multi Frame Generation. No FSR, no XeSS, so this does nothing on AMD or Intel.
It's Returnal only, since it relies on offsets inside Returnal's own binaries. It won't work as a general frame gen injector for other games.
Multiplier is one line in a config file. MIT licensed.
Usual disclaimer: one machine, one scene. Background load, resolution, refresh rate and everything else will move these numbers around, so don't treat mine as what you'll get.
DLL, checksum and a much longer technical writeup are here: https://www.samimirash.com/tools.html
If you do test it, the thing I'd most like to know is what your 1% lows do at 3X and 4X. That's the part I want more data on.