The Witcher 3 on Switch: what do you gain by modding and overclocking?
Enhanced settings, improved performance, extra detail, locked 720p - the choice is yours.
We've looked at the process of overclocking the Nintendo Switch in the past. We know that Nintendo chose to use Nvidia's Tegra X1 below its stock specification to preserve battery life and to more effectively manage thermals. But once you've overclocked a compromised unit, you can't help but wonder just how much extra performance you can unlock in any given game - and few titles challenge the Switch more than Saber Interactive and CD Projekt RED's port of The Witcher 3. Adding further spice is that a range of mods have emerged for the Switcher port, meaning that we can actually scale the game along with CPU and GPU clock speeds.
First of all though, let's be clear. Even without mods, The Witcher 3 is something of a miraculous conversion bearing in mind the limited capabilities of the Switch. Coders of Nintendo's hybrid have become quite accomplished at scaling down graphics to the Maxwell-based mobile GPU but smart coding has seen the game somehow squeezed into running at a respectable frame-rate on just three available ARM Cortex A57 CPU cores running at a seemingly paltry 1.0GHz. If you own a Switch, we highly recommend this conversion as a handheld experience, though blown up large on your 4K TV, the blur factor in the visuals is just too much. But perhaps with some mods and an overclock, we can actually improve the docked experience? At the very least, perhaps we can get more of an idea of the kind of Witcher experience possible if Nintendo had stuck to Nvidia's stock CPU and GPU clocks - 1785MHz and 921Mhz respectively.
Before we go on, you should be aware of the dangers and challenges in overclocking Switch hardware. Only select models can be exploited, for starters, and once you start delving into areas of the Horizon OS and its software that you have no business meddling with, Nintendo is will within its rights to ban your console from access to its online services. Also worth mentioning is that overclocking obviously draws extra power and creates extra heat that the Switch may have trouble dissipating. I mean, we are talking about an extra 75 per cent of CPU power paired with a 20 point upclock on the graphics core.
My first test was all about using a mod to remove the 30fps frame-rate cap and to run the game at stock clocks and with the full-blast OC engaged. In addition to removing the cap, further mods can engage the game's internal fps counter and reveal the exact resolution employed by the DRS system. It's fascinating stuff, showing just how dynamic the dynamic resolution system truly is and how rarely the stock Switch hits native 720p. More often than not, in docked mode, we're lurking at 548p in places like Crookback Bog or 636p in the early Griffin battle. Resolution is always in flux, showing just how much stress the GPU is put through.
With access to these stats, we can see just how crucial dynamic resolution scaling is - it's the key to the mostly decent performance we see in the final game. However, DRS is all about scaling load for the GPU and doing something similar for the CPU is a lot more challenging. That's why visiting Novigrad - our old benchmarking stomping ground - can cause real performance issues. The sheer volume of NPCs (matching PS4 and Xbox One) is an challenge for a tri-core 1GHz mobile CPU - a factor in the game dropping to 25fps. Changing the resolution won't do anything; this is a fundamental aspect of the game's design that can't be swapped out or changed. The only way around these drops is to overclock the system, something we couldn't wait to try out.
Performance gains via the unlocked frame-rate are fairly minimal, but what you do get is the DRS system tapping into the extra GPU power to interesting effect. Resolution is higher across the board, to the point where in one extraordinary scenario, pixel count increased by 45 per cent. Elsewhere, while performance gains are limited, they are still there - anything up to 4fps. It's still an upgrade, but as you might expect, the much higher gain in CPU clocks via the OC yields more impressive results with the Novigrad market run now delivering an 8fps advantage. Not surprisingly, running the Switch flat-out like this sees the fan ratchet up to a degree I've never seen before - you can't help but worry a little about the extra loud fan speeds and the extra heat the system must be kicking out.
The overclock solves one big problem: sub-30fps drops in CPU-bottlenecked environments. However, the extra power can also be deployed elsewhere via the various mods available online, in order to tackle other challenges the stock Switch has to contend with. The DRS system can be disabled completely, locking the output to native 720p (I even tried pushing higher than this, but the game tops out at this pixel count). Regardless, what you get is a clear improvement in image quality. Especially in the stress points where the res would buckle to its lowest, we get a huge gulf in clarity all round. The zoomer images directly below give some idea of the improvement but seeing it in motion is something else.
Is the overclock providing a free lunch then - a better experience with no drawbacks? Well, the improvement is palpable but it does come at a cost. Regardless of the system clock speeds, The Witcher 3 is a challenging game built around dynamic resolution for a reason - it's really heavy on effects and the system really does need some level of scalability in its pixel-pushing. In most cases it's fine, but honestly, forcing the max pixel count is a recipe for disaster if you want to hold 30fps in spots like Crookback Bog. Frame-rate can drop to the low 20s at that point, a performance level lower than the stock experience.
Getting the game to render at 720p is an interesting experiment but there are more direct ways to boost visual settings. Thanks to an enhanced settings mod, you can actually play with a more fleshed-out graphics options menu. This is still work in progress and most of the toggles you'd find on PC don't work much - or at all - on Switch. The textures, for example, are locked in place at one setting since there aren't better assets present on the cartridge or in the download. What this enhanced settings mod does add are toggles for foliage visibility, light shafts, anti-aliasing, water quality, depth of field, sharpening, and bloom. That's on top of the existing motion blur options, included out of the box by the developers. Admittedly, most of these are post-process effects with only a fractional impact on performance - but the foliage setting is extremely powerful. It aims to fix one of the issues I had with the game: the level of pop-in.
You get four presets, from low to ultra, though Switch runs at the high setting by default and so the scope for improvement isn't huge. Even so, the jump from low to medium shows how it affects grass tuft density on the ground, as well as the rendering of trees on the horizon. Moving to ultra fills out the scene with more foliage over the base game and you can see a little more detail added across the board. Perhaps not surprisingly, this most dramatic of modded settings has the highest impact on performance. Going from low to ultra, you can lose around 3-4fps on average - so this is not a choice to take lightly. Still, it's fascinating to see the game being tuned like this. The mod is only adding an option, the actual code for scaling this setting is seemingly baked into the game itself - it's just that the developers don't use it.
Another tweak that makes a tangible change is the sharpening filter. It's popular in the modding community and the performance hit is minimal, really. High contrast points are boosted when enabled, it gives the impression of a sharper image at 720p - something you'll see on the comparison images on this page. There's more shimmer as a result but it's a neat option to have nonetheless. The anti-aliasing toggle is there too if you want to go all the way - it's not recommended, but it is an option if you want to see the game 'raw'.
There are some interesting effects here but fundamentally, the Switch version has compromises that cannot be mitigated with existing mods. While the original, less compressed audio can be modded back in, textures will always be equivalent to the PC's minimum - the Switch doesn't have the memory to deliver much more. CPU optimisations like half-rate animation on distant NPCs are also hard-coded in. However, we do have some level of scalability in terms of meddling with the DRS system, tweaking visual settings and of course, ramping up CPU and GPU clock speeds. All of which raises the question: could we get The Witcher 3 running at 60fps?
This seems impossible from the outset given that 30fps is enough of a challenge but with an overclock in place we are closer than you might think. Dropping the post-process effects settings doesn't help much but the foliage draw mod definitely does boost performance, so I ran that at the low settings. DRS is tweaked to a nigh-on constant 832x468 with only minor fluctuations. The results are obviously blurry to the extreme, the lowest point the DRS can drop to while docked. From here we have our best shot at hitting a full 60Hz refresh.
You can see the results in the embedded video. The White Orchard area is the most impressive showcase for how close it gets: as The Witcher 3 operates mostly between 55-60fps. Yes, it looks somewhat plain and barren, but it's still remarkable how smooth the game suddenly becomes. Where the experience starts to unravel is in later, more challenging areas. The outskirts of Novigrad run between 45-60fps but even with the fluctuation it still feels better to play than the regular setup.
All of this is predicated on the game being GPU-bound and using the lower resolution as a crutch to get a better frame-rate. It's a flawed approach across the whole game when you factor in big towns and cities, where the CPU time is the bottleneck. At lowest we're back down to 30fps anyway in the busiest areas of Novigrad, and likewise for the village in the White Orchard. Even with max horsepower via overclocking, the Switch just can't pull this off - but the fact we're getting results like this at all is quite astonishing. After all, there was a time where even the concept of The Witcher 3 running on the system at all seemed almost ludicrous.
And as much as we pushed the Switch's clocks to the limits, pushing resolution, frame-rate and visual features to the max, perhaps the biggest takeaway from our experiments here is just how solid the port running on standard hardware actually is, especially in handheld mode where the blurry image quality isn't quite as impactful on the experience. The core fundamentals are there - the value of the mods is actually fairly limited and perhaps the biggest win comes from how the OC augments the existing tech via improved performance and noticeably higher resolution.
All of which brings us to the continued stories about a mooted Switch Pro - a unit Nintendo has categorically ruled out for 2020. Even without next-gen silicon, the latest Mariko chip in the latest Switch kit is specced to push max GPU clocks to over 1.2GHz - it's just that Nintendo has chosen not to access this extra performance, opting for improved battery life instead. The option is there for an improved model though, maybe even a micro console - and our experiments with The Witcher 3 prove two things. First of all, extra power can benefit existing games with no extra development effort required from the developer. Secondly, overclocking the Tegra doesn't seem to cause any compatibility or stability problems - we've tested a range of games with no problems. Whether any of our conclusions will ever translate into an actual official product though remains to be seen.