From Software’s infamous 30fps stutter fixed – but only for hacked PS4 consoles
One of the most perplexing technical mysteries of the last console generation is simply this: why do all From Software titles on PlayStation 4 and Xbox One stutter so noticeably? From the studio’s 2014 PS4 debut – Bloodborne – to this year’s Elden Ring, From Software’s 30fps frame rate solution just doesn’t look or feel right on any of the games.
At Digital Foundry, we call this phenomenon ‘inconsistent frame-pacing’ – where even though you’re getting 30 new frames per second, the staccato, inconsistent delivery of each new frame gives the illusion of much lower performance. But here’s the thing: unofficial patches for every From game exist for hacked PlayStation 4s, and surprisingly, it’s a simple, rudimentary code fix. I’ve tested these patches – and they work, giving a much smoother, strain-free effect. All of this made me wonder why From Software hasn’t fixed their own games if it’s that easy. Are there any notches on these patches?
I first heard about this story from noted From Software ‘code archaeologist’ Lance McDonaldcreator of the Bloodborne 60fps patch we’ve seen run flawlessly via back-compat on PlayStation 5. He highlighted the work of a hacker called Illusion, whose blog contains a wealth of patches to unlock performance on a wide variety of PlayStation 4 titles. or quality-of-life improvements like – yes – frame rate fixes for every PS4 From Software title.
Getting any of these updates to work isn’t a process for the faint of heart: First, you’ll need a PlayStation 4 console running firmware 9.0 or lower, which requires an exploit run through the PS4 browser that installs a payload from a USB stick. This allows users to install unsigned code in a manner similar to Sony’s development consoles. However, installing the exploit is only the beginning of the tasks required: beyond that, you must dump and decrypt the games you patch before installing them on your hacked machine. None of this is particularly simple, and for the purposes of this piece, further explanation isn’t really relevant. As for the patched From Software titles, it’s simply a means of putting the theory to the test: that the studio’s signature dodgy 30fps cap can actually be fixed.
According to Illusion, the problem is quite simple. From’s vanilla frame rate cap does little more than its name suggests – it ensures that no more than 30 frames per second are displayed. What it does not do is evaluate when each new frame must be delivered. In theory, a 30fps game should show a new frame on every other screen refresh – every 33.3ms – but instead, Fra titles see new frames displayed at 16.7ms, 33.3ms or 50ms intervals. This is the classic Digital Foundry nemesis – inconsistent or “bad” framerate.
In the video embedded above, I’ve attempted to explain and demonstrate the issue, but if that’s not an option for you, check out the image below, which compares the unpatched version of Bloodborne to Illusion’s patched alternative. I’ve left out the frame rate graph because it’s irrelevant – both renders run at 30 frames per second. It is frame time that is most important. On the left you can see the refresh rate of the vanilla version with the inconsistent frame delivery – which actually gives the illusion of much lower performance. On the right, with Illusion’s patch, the line is perfectly straight. Every single frame comes every 33.3 ms. This is 30 frames per second as it should be.
That’s the technical explanation – but how does this affect the quality of the experience? I played patched versions of every single From Software game and the difference is often night and day. Stutter on Bloodborne, Dark Souls 3 and Sekiro are gone – the only drops in performance are actual GPU bottlenecks in the most demanding scenes. Only the Elden Ring network test can be examined on a hacked PlayStation 4 (the new game runs on a firmware higher than the exploited 9.0), but this too provides a more consistent experience – although overall performance is more affected due to the higher requirements of open world. Even so, the patched version is still an improvement over the shipping game. Overall, in every title I sampled, it’s hard to see the patched rendering as anything other than the experience as we should have played it.
In fact, there is such a dramatic change in the presentation of the game, it suggests a significant reworking of the game code – the improvement is that pronounced. However, Illusion’s tweaks are very simple: the update removes the call to From’s own 30fps cap, and replaces it with a call to a Sony system library called SceVideoOutFlipRate – which do implement consistent frame-pacing where From’s alternative does not. Instead of delivering a new frame for the next screen refresh – whenever that may be – the Sony system call ensures that each frame is delivered at 33.3ms intervals. Is the patch really that simple then – literally changing one instruction for another?
“There’s a two-line solution there,” Illusion told me over Discord. “Basically, the previously inconsistent 30fps cap has to be lifted first and then replaced, the system’s SDK API calls are instead… [it] usually a total of three lines of patched instructions.”
Illusion speculates on his blog that From may have chosen this 30fps implementation over platform-specific system calls to facilitate cross-platform development, but it turns out that Microsoft has its own library for a consistent 30fps – IDXGISwapChain::Present for Xbox One and Xbox Series consoles. There is no hack or exploit for Microsoft console hardware, but it may well be the case that similar patches may be possible for the Xbox One versions of Dark Souls 3, Sekiro and Elden Ring.
Of course, From Software itself has moved on from the 30 fps caps. It started with support for last-gen enhanced consoles, where the developer switched to an unlocked frame rate instead – an improvement over the flawed 30 fps, but still far from ideal. In Elden Ring on current-gen consoles, the idea of unlocked framerate was retained, but with quality and performance modes. The former does not look good as it presents itself as a 30 fps game with extra fixing. The latter is not ideal as there are far too many drops from the ideal 60 fps.
It’s at this point where Bluepoint Games’ brilliant Demon’s Souls Remake for PlayStation 5 enters the conversation. It offers a 4K quality mode that runs at a perfectly consistent 30fps, along with a 1440p temporarily upscaled performance option that runs beautifully at 60fps. Demon’s Souls demonstrates that locking performance isn’t the best solution: targeting at a consistent 30fps can produce great results, but spending time and effort targeting and achieving a near-locked 60fps with TAA upscaling makes a big difference. This is how these games should be presented for optimal effect.
Going back to From Software’s problematic 30fps cap, if there’s a feeling that Illusion’s patches seem too good to be true, well – you’re right. The patches add significant input lag. Before testing it out, I was reminded of the original beta release for the first Destiny, where Digital Foundry took Bungie to task for its inconsistent frame-pacing, the company taking on the challenge and fixing the problem, saying at the time that they did so while it wasn’t easy to keep input latency low – then I’d assume their solutions were more than a simple update to call the system library.
Input lag testing yielded some notable results. While input lag varied widely on retail code, the patched Bloodborne averaged 78ms slower to respond, dropping to 50ms slower on Elden Ring (although the later game is apparently more lager than the likes of Dark Souls 3 and Bloodborne). This presents us with a dilemma: without Bungie level optimization, the patches basically provide a much better looking game, but at the cost of slower feedback from the controls. Did Bluepoint fix the problem with its Demon’s Souls Remake? I don’t think so: the 30fps mode in that game is as laggy as the patches, and amazingly, switching to performance mode – the way the game should be played – reduces input lag by 85ms (!). If you own Demon’s Souls Remake, try the 30fps mode: it’s very similar to the patched From experience on last-gen machines.
So what have we learned from this experience? The latest generation From game highlights how an inconsistent 30fps presents itself very closely to a game that doesn’t actually run at 30fps. It looks bad and ruins an entire generation of games. In that respect, being able to play these games with a fixed presentation is a real game changer – I wasn’t prepared for how much prettier the games become. However, this three-line code fix only takes you so far, and the input lag hit is very high. I think Demon’s Souls Remake lays out the template for where From should go next: consistent performance levels in both modes, with 60fps locked as the target – but it looks like even Bluepoint struggled with input lag in its otherwise flawless 4K30 quality mode. On the off chance that the studio is working on a Bloodborne Remake, picking this up would be welcome!
Other experiences? An initial attempt to work with a hacked PS4 opens up a number of fascinating mods and patches, many of which come from Illusion itself, usually available on Github. DriveClub unlocked runs tantalizingly close to 60fps on PlayStation 4 Pro via Boost mode, while it’s interesting to see resolution scaling working alongside a framerate unlock on the likes of Assassin’s Creed Unity and Batman Arkham Knight. How much overhead does GTA5 have above 30fps? Updated code reveals all. The disadvantages are obvious: the risk of being banned from the PlayStation Store and the inability to run games beyond firmware 9.0 to name just two of them. Usually you have to compile your own patches as well – it’s not easy and definitely not recommended for your primary PS4 console.