How the Cemu emulator's devs got Zelda: Breath of the Wild running in just a few hours
And some early answers about the long, long road to fully playable compatibility.
The Legend of Zelda: Breath of the Wild released for the Wii U and the Nintendo Switch on Friday, March 3. By Sunday, it was running in Cemu, a Wii U emulator that's been in development since 2015. Cemu developer Exzap posted a short video of Breath of the Wild's opening on Reddit, showing remarkable progress for a brand new game in a relatively young emulator. Where plenty of games can't get past the opening menu or crash on boot, here was Breath of the Wild running on a PC with an i7-4790K and a GTX 780. That's the good news.
The bad news is that "running" and "playable" are very different things, and Breath of the Wild is crawling along at about 10-15 frames per second in Exzap's video. Emulating a console is an incredibly complex process, and throwing more horsepower at the game won't be enough to make it run smoothly. "Audio is muted because it is just white noise," Exzap wrote on reddit. "Lots of bugs that make the game unplayable. Physic glitches, rune abilities that require object selection don't work, no water collision, etc. Essentially it's impossible to leave the tutorial area without using a save."
My dreams of emulating Breath of the Wild at 4K, 60 fps? Not exactly crushed, but most definitely delayed. I reached out to Exzap to find out how much work it took to get Breath of the Wild to work in Cemu, how he did it so quickly, and how long the road to full compatibility will be.
Surprisingly, it took only a few hours to get Breath of the Wild to boot in Cemu—it didn't take a lot of specialized work to make it run at the most basic level in the emulator. "The game pretty much ran this way out of the box after the few issues were resolved that prevented it from going in-game. I was actually very surprised to see it running this good with no extra work required," Exzap wrote.
Exzap pointed out that Cemu emulates the Wii U as a piece of hardware. But different games use that hardware in different ways, so "getting a specific game to run, like BotW, means that we look into what the game does differently from other games and why it fails." Exzap wrote that "BotW was missing certain rarely used OS API functions that caused the game to softlock after the menus." That was a relatively quick fix to bring the engine up and running.
Understanding the ins and outs of a piece of hardware as complex as the Wii U is a process that can take years. The GameCube/Wii emulator Dolphin, which has been in open source development since 2008 (and around since 2003) only recently reached the milestone of being able to boot every single GameCube game. Some emulator development will improve performance and compatibility for all games, while some fixes more accurately emulate specific attributes of the original hardware that individual games used in a particular way. I've previously written about how Dolphin's contributors made massive performance improvements to some games with new code.
For Breath of the Wild to run at its intended 30 frames per second, Cemu will likely need both general and specific improvements. Exzap wrote that it was too early to say what Breath of the Wild will need, specifically. "I don't yet know precise details about why the game is running slow," he wrote. "That said, CPU bound games usually profit from improvements to the recompiler/JIT core. Additionally, Cemu is rather young so there is also optimization potential almost everywhere in the code. My guess is that we will see small incrementals in speed for almost every future Cemu release."
Right now, Link's suite of rune abilities don't work at all in Cemu, enemies sometimes fall through floors, grass often doesn't render and lighting effects are wrong. And those are just the obvious issues. There are likely smaller, more nefarious bugs hiding in Breath of the Wild's vast world, and there's a very good chance that Nintendo used its hardware in ways no other Wii U game has before. I asked Exzap if he's already encountered anything interesting about how Breath of the Wild was programmed, and he said one thing did stick out.
"Every public technical specification about Wii U states that the GPU only supports 16 texture mapping units per shader stage. Yet, BotW uses up to 18 in some cases. So in a way the game pushes the hardware beyond what we assumed where the hard limits."
Anecdotally, I've noticed while playing Breath of the Wild on Wii U that it takes an unusually long time to load after pulling up the OS's Home menu. I'm no engineer, but it seems like Nintendo might be using memory typically allocated to the OS, just to eke out every bit of performance they can. Even then, Breath of the Wild's framerate dips into the low 20s in some busy scenes. Ideally those performance problems will disappear in Cemu, but only time will tell.
A bit more good news, though—because Breath of the Wild is heavily CPU limited, which is common in emulation, running it at resolutions higher than its native 720p should have little impact on performance. Exzap wrote that he expects Zelda to perform similarly to Xenoblade Chronicles X, which Cemu users have been able to run just as well at 4K as they have at 720p.
But how long will it take until Breath of the Wild is playable at full speed, without all those bugs and the inevitable ones that haven't been discovered yet? I knew putting a date to that goal would be impossible, so I asked Exzap how optimistic he was about getting there. Weeks? Months? Years?
"Giving ETAs on anything is always very difficult," he wrote. "A lot of emulation development is just research, like figuring out why softlocks occur or why a specific graphic effect is broken. It's impossible to know the amount of time required to come to the solution if both the cause and the solution is not known. The most realistic answer I can give is that it will take AT LEAST several weeks to fix the remaining problems. But it could take years as well. Also, there is this common misconception that because the game runs so well already, it will run perfectly equally soon. In reality, there is no correlation."
The next build of Cemu, 1.7.3, releases on March 10 for Patreon backers. Here's an indicator of just how hostly anticipated emulation of Breath of the Wild currently is: since the end of February, Cemu has picked up nearly 400 new backers and increased monthly donations from around $5900 to $7400 per month.
沒有留言:
張貼留言