AMD Ryzen – Emulator developers see tons of potential in the Steam Deck
TTE, or Time To Emulator, isn’t an official metric by which new gaming hardware is judged. But if it was, I have a feeling the Steam Deck would set a new record later this year. Every new game console is built to play new games, yet inevitably it will attract a community of amazing homebrew programmers eager to tap into that power to play old games, too. The Steam Deck, though, will be the first prominent handheld device poised to support a huge swath of existing emulators from day one. It was a big deal when emulator authors got Super Nintendo games running on Sony’s PSP or Vita, but the Steam Deck may well be able to play decades of games—even from the Nintendo Switch—and play them well.
“Everyone I know has relatively high hopes for the Steam Deck right now,” says JMC4789, a contributor to GameCube/Wii emulator Dolphin. JMC4789 is optimistic about how well Dolphin could run on the Steam Deck—and so are the developers of Yuzu, the leading Nintendo Switch emulator.
“We believe that the hardware should likely be capable enough to run some games pretty well right out of the box, and potentially run Yuzu very well with optimizations to the emulator,” the developers say in a joint statement to PC Gamer.
Dolphin is probably the most prominent game emulator today thanks to its long history and insightful progress report blogs written by JMC4789. It also works on a wide range of hardware, including Android phones. That makes Dolphin a particularly useful case study for the challenges emulators face on different systems, and how well-suited the Steam Deck is to becoming an all-in-one gaming machine.
AMD and emulation
“The AMD graphics are a bigger hurdle than the actual specs,” JMC4789 says. “With emulation, people tend to (rightfully) focus on CPU performance, but a hidden problem is GPU driver efficiency.”
Emulators often ask your graphics card to do things that a PC game typically wouldn’t, which can reveal quirks, bugs, and inefficiencies in graphics card drivers that you’d never run into otherwise. The graphics API a game or emulator uses can make a big difference in performance, too.
“One of the reasons that Nvidia has given us a smoother experience in general is that the drivers were much more efficient at doing the things we needed to do, which lowered CPU overhead,” JMC4789 says. “Nowadays with Vulkan and D3D11/12 in Dolphin, the playing field has leveled out a lot. But when OpenGL was king, AMD struggled mightily.”
There are a few important takeaways from this explanation. The first one is that emulators generally need much more powerful CPUs than the original console processors—your PC’s CPU is doing a lot of work to replicate the behavior of that different CPU architecture. But in Dolphin’s case, years of improvements to the emulator (and years of improving hardware) have actually made CPU requirements pretty reasonable.
In the 2010s I emulated many games on an Intel Core i5-2500k, and even though its clock speed was similar to the Steam Deck’s, a Passmark benchmark comparison shows that AMD’s new Zen 2 architecture is about three times more efficient than my old processor. It’s not a perfect comparison because Valve and AMD designed a custom, lower-power system-on-a-chip, but the quick takeaway is the CPU should be more than powerful enough to run the vast majority of GameCube and Wii games at full speed.
JMC4789 mentioned a couple other concerns: GPU driver efficiency and AMD’s past struggles with OpenGL. If you aren’t familiar, OpenGL is an open source API that was once a common alternative to Microsoft’s DirectX. OpenGL had a few major supporters, like id Software, but has never been hugely popular for games. Vulkan is a much newer open source API built to be better performing for games, and AMD had a major hand in its development. Vulkan performance with AMD’s graphics drivers is great, but AMD’s OpenGL performance in Windows is notoriously poor, which was a major issue for emulators that tried to build on that open standard. (Today most have added Vulkan support.)
One of the Steam Deck’s great strengths is that you’ll be able to install and run Windows on it, opening the door to emulators for every game system you can think of. Wii U emulator Cemu is currently only built for Windows, for example, and for a few years only had an OpenGL backend. That could’ve been a death sentence for performance on the Steam Deck given AMD’s OpenGL drivers, but Cemu has had much faster Vulkan support since 2019.
Drivers can make or break emulator performance, and both Dolphin and Yuzu have run into compatibility issues in the past with AMD’s Windows drivers. But as JMC explains, they’re still far ahead of mobile devices when it comes to emulators, which illustrates how tricky compatibility can be. “As much as mobile drivers have improved, Dolphin is very demanding in ways that their drivers aren’t designed to handle,” JMC4789 says.
Because the GameCube and Wii have a shared memory pool between their CPU and GPU, Dolphin often has to quickly store a GPU command in RAM, swap over to the CPU to check it, and then bounce back to the GPU. This is essentially instant with the GameCube/Wii’s shared memory, but pretty slow on a PC or phone, especially if the GPU drivers aren’t designed to do it efficiently.
So even on very fast mobile chips, performance for emulators like Dolphin is still a struggle. The good news, says JMC4789, is that “AMD and NVIDIA are head and shoulders above every other driver manufacturer.”
The Nvidia Shield TV is a prime point of comparison: Even though it runs on a chip made in 2015, which is eons in mobile hardware, Nvidia’s drivers are great. “Those drivers take a lot of pressure off of the relatively weak, and now extremely dated CPU. If the same thing happens to the Steam Deck with the Ryzen processor + AMD graphics chip, it could be a force to be reckoned with.”
Linux is simply better for emulation
For most people interested in turning the Steam Deck into an emulation device, installing Windows on it shouldn’t even be necessary. Valve’s SteamOS is built on top of a distro called Arch Linux, and many popular emulators have Linux versions:
- Higan – Multi-system emulator supporting NES, Super NES, Game Boy, Master System and more. (Offshoot bsnes also runs on Linux)
- Dolphin – GameCube and Wii
- Citra – 3DS
- DuckStation – PlayStation
- PCSX2 – PlayStation 2
- Yuzu – Switch
- RPCS3 – PlayStation 3
SteamOS should make for easy compatibility with many popular emulators. The developers of Yuzu definitely see Linux as a plus here. “It would be ideal for the Steam Deck to run the native Linux version of Yuzu. At this time, Wine, the compatibility layer to run Windows applications and used by Proton, does not support a Windows 10 feature used by Yuzu for fast memory access. We could disable this feature, but games would run slower. Overall, there should be no benefit to running the Windows version of Yuzu using Proton.”
As the Yuzu developers explain, the issues with AMD drivers they’ve had are specific to Windows, while AMD’s open source Mesa drivers on Linux are “excellent overall.” If you try to use a Windows-based emulator on the Steam Deck that only runs on OpenGL, it’s likely going to struggle.
But outside that, performance should be fantastic. Linux’s popularity among emulator developers will almost certainly make the Steam Deck a better emulation device than Windows-based handhelds like the GPD Win or the Onexplayer.
The Steam Deck seems like such an ideal emulation device that I think it’s even possible we’ll see more emulators added to the Steam store for easier installation. Despite emulators often being blamed for piracy, they’re completely legal as long as they don’t contain proprietary code or information gleaned from illegally obtained documents. Most emulation projects are open source, meaning console makers can scrutinize them and confirm every line of code is original (Wii U emulator Cemu, somewhat controversially, is closed source, but has never faced any legal threats).
“Up until now, we’ve largely been focusing on making the emulator as accurate as possible to the real Nintendo Switch, and furthermore optimizing it to the point that games can be enjoyed even on modest hardware,” say the Yuzu developers. “Now that we’re quite far along with these goals, we’ve been exploring new ways to make Yuzu more enjoyable and accessible for different platforms and setups. For example, we recently rebuilt our implementation for ‘in game UI,’ which includes such things as the Switch’s software keyboard and error prompts, to be a controller-friendly overlay and near-identical to the real Switch experience. We plan to keep making similar improvements like this. While we do not want to make any promises in time for the Steam Deck’s release, it is possible that we will have a Steam version of the emulator by then!”
JMC4789 says it’s possible Dolphin could be added to Steam someday, too, but it will likely only happen if a particular contributor takes it on as a passion project—that’s often how things happen in open source development. Unlike emulator frontend RetroArch, which is on Steam, Dolphin doesn’t have a “big picture” UI that would work well on a TV or the Steam Deck. That might currently be its biggest obstacle.
“Unlike with a lot of the previous Steam hardware, I’m seeing a lot of engagement from our circles,” JMC4789 says. “I have a Steam Controller, and it’s… interesting. I have a Steam Link and it was… interesting. But this feels different in a way. The potential of the Steam Deck is really high. The hardware sounds too good to be true, but Valve can kind of get away with selling the hardware at a loss and banking on software sales. A mobile device that’s essentially a near gaming PC? If that’s what it is, then it’ll be great.”