Discover more from Read Only Memo
The big Tears of the Kingdom catch-up: Emulation and modding 1 month later
Plus: ROM's first mini guest column, from Noclip's Danny O'Dwyer, a hot new Taito MiSTer core and two sweet fan translations.
Phew, it feels like it’s been a minute since I’ve done this! Hope you enjoyed last week’s deep dive into the fan translation of Rent-a-Hero No.1, while I spent the weekend in LA attending Summer Game Fest and eating killer street tacos (it’s more tiring than it sounds, I promise).
I’ve been eager to really dig into Tears of Kingdom emulation progress for the last few weeks but just haven’t been able to devote the time to it… until now. 😈 This issue’s focus is the progress in Yuzu & Ryujinx, the issues still outstanding, and where the mod scene is after this first month. So much has happened I’ve tried to really zero in on the most important (or entertaining) stuff here. We’ll revisit TotK modding, especially, when some of the mods reach a finished state; right now the most complex ones, like getting TotK to run with a variable framerate, are still very much work in progress.
Personally I’ve been holding off diving into TotK until the mods really mature, and also because I’m still afraid of sinking all my free time into it. But I think the moment’s close at hand. This weekend, though, I’m enjoying replaying Breath of Fire: Dragon Quarter on my Steam Deck. Truly ahead of its time and one of the boldest games ever made, though I’ve shamefully never finished it. If I stick with it this time maybe I’ll write a bit more about it next issue.
Right now I’m excited to introduce a new ROM mini-column debuting with this issue: Guest.cue! I’ve been reaching out to writers, game and emulator developers, and other folks I admire to share a short story about a game they have fond memories of emulating, or a gem they’d recommend playing via emulation today. I’m pairing their writeup with some trivia about that game or system’s emulation history so we all learn a little something. Hope you enjoy!
Oh, and one last thing before we get to it: I want to give special mention to all the emulation communities on Discord that are celebrating Pride this month with custom icons. A tiny gesture perhaps, but seeing Dolphin, PCSX2, Yuzu, Ryujinx, and MiSTer FPGA all making the effort at a time of increasing hostility towards the LGBTQIA+ community is a welcome show of solidarity. 🏳🌈
Guest.cue: Danny O’Dwyer recalls Putty
Putty | 1992 | Developer: System 3 | Vertical platformer
When I was a teenager it was easy to find emulators and ROMs for Mega Drive and SNES games. The irony of being a kid that grew up playing games on a Commodore Amiga (the computer with the worst copy protection of all time) was that finding methods of emulating Amiga games was incredibly complicated. Not only was I incapable of sourcing a Kickstart ROMs to get WinUAE to boot up, but the ROMs were impossible to find too. In years since a lot of this stuff has been streamlined and you can grab ZIP files full of Amiga collections — but there was a 20 year gap in my life where I hadn't played a lot of these games. And the game I missed the most was Putty.
Putty is a weird game, but back then all games were weird. You play as a blue ball of putty who is able to squish and stretch himself into all manner of shapes. You can stretch across wide gaps, slop down into a puddle to avoid coming into contact with wandering foes. You can even create a fist to bash enemies. Your goal is to save a bunch of weird robot-looking guys by picking them off and dropping them at the end of the level. But the thing that stands out the most to me is how esoteric the world of Putty was. Especially the enemies.
If I remember correctly enemies included a sausage with a fork sticking out of his back, Uzi packing carrots, a spaceman with a stick who would shout "en garde!", a green guy in a window who just spit at you, a Viking picking his nose - that sort of thing. Many of these have incredible memorable sound effects, creating what was back in the mid ‘90s an audiovisual feast of the senses. Playing it 20 years later really puts into perspective just how "ruleless" game design was back then. In many ways we have codified the "right" and "wrong" ways to make these games - but there was a mad freedom to that generation of games that I do miss. While many classic games reappear as remakes, these tend to be the ones that still appeal to modern sensibilities. Emulation is great because you get to experience the unfiltered reality of that era. And to me, Putty is a game of its era that we are never likely to see again. — Danny O’Dwyer
Because the Amiga used several custom chips, emulating the ‘80s PC posed performance challenges even into the early 2000s. Check out Amiga Forever for more.
The sequel to Putty, Putty Squad, was meant to release on the Amiga in 1994 but didn’t make it to market. It was finally made available as a digital download in 2013.
The first release of Amiga emulator UAE was in 1995, while the Windows version came along soon after
Major twist: Original WinUAE author Mathias Ortmann was arrested in 2012, alongside Kim Dotcom, for his role as CTO of Megaupload. He was convicted in 2022 of participating in an organized criminal group.
The Big Two
1. Yuzu & Ryujinx: Finishing the sprint and starting the marathon
Tears of the Kingdom is the kind of game emulator developers will likely be discovering little bugs and inaccuracies in for years to come, because it’s just so complex. On the other hand, Breath of the Wild gave them an excellent baseline to work from, and it’s run extremely well from practically day one. There’s just still a big gap between “extremely well” and “perfect.”
I recommend reading the just-published Ryujinx May progress report for an overview of all the things the dev team had to fix, from funky textures in The Depths to to funky lighting in Vulkan to memory buffer issues tanking performance to Z-fighting (flickering resulting from geometry clipping) on distant terrain.
Yuzu just published their May progress report as well, going over their own accomplishments, including performance transcoding highly compressed ASTC textures, shader issues causing missing geometry. And I love a good typo story, so I have to single this fix out:
While investigating bugs related to Tears of the Kingdom, a copy-paste error hidden in the code for 3 years was also found. In the shader recompilation code, Rodrigo copied over the wrong value from one line to the next. This is another interesting case of the problem not being an issue until now, as no one noticed this bug until Zelda needed rescuing again… By changing a single character, byte solved the terrain gaps that could be spotted from a distance all over the map, but most noticeably in The Depths.
A round of applause for all the work poured into each emulator in May and June. Now: What’s still on the horizon?
I chatted briefly with Yuzu contributor byte, who mentioned a few specific bugs that don’t yet have fixes. Thankfully they’re mostly minor graphical glitches. Here’s an example:
“People have spotted this glitch in other contexts and called it ‘Z-fighting’, but it's actually a different issue,” byte says. “Technically I already ‘fixed’ it but the fix is unworkable because it nukes performance.”
Ryujinx project lead gdkchan said that he isn’t aware of any significant bugs in Ryujinx right now. There are some crash reports, but because so many users run mods, it’ll take some deeper investigation to confirm the causes.
Right now only a tip-top PC has a chance of running Tears of the Kingdom at 60 fps, and even then likely with frequent dips. byte suspects that further development will not significantly change that, at least anytime soon. Long-term? That’s a more complex “maybe”:
"The game is almost entirely CPU-bound on powerful systems at this point, my expectation is that there's very little low-hanging fruit left to optimize. Maybe long term, there is a path to optimize Dynarmic, but nothing concrete for now.
The Switch hardware uses an ARM processor which is a different architecture than the x86-64 processors used in typical desktops, and since it is a different architecture there are many challenges in running machine code for it and many approaches to doing so.
Dynarmic takes the approach of recompiling the ARM instructions to x86-64 code and then executing it directly, which helps the recompiled code run somewhat faster. But there are features that ARM has which there are no direct equivalents for, and are comparatively very slow to emulate.
gdkchan had a similar answer for Ryujinx:
"In the long term, yes. I'm not sure if there's much we can do in the short term to improve the performance. These Zelda games have always been rather different from other games in that they access both buffer and texture data from CPU a lot. This is not very good on PC since it requires a copy from VRAM to memory that the CPU can access, unlike the console where the same memory is shared between the CPU and GPU and there's no dedicated GPU memory. We have plans to improve that, but it's going to take a while.
Some of the stuttering issues are related to the way the emulator manages the lifetime of textures on the cache, that too is going to take a while to fix. When changing how the texture cache works we need to consider how the many different Switch games handle textures, and make sure the cache is neither keeping the textures for too long (which causes high VRAM usage and potentially crashes) or for too short (which would cause stuttering since it would have to constantly re-create the textures that have been deleted).
I suspect that for the next couple years, the biggest performance gains for Tears of the Kingdom emulation will be coming from successive generations of Intel and AMD processors rather than the emulators themselves. Hardware is making really impressive leaps right now.
2. Modtopia: A 60 fps Kingdom in progress
One month in, have we reached the promised neverland of Flawless 60 FPS? Perfect 4K and beyond? As-good-as-native dynamic framerate?
Alas, none of these things are yet working with zero drawbacks. Playable, though? Absolutely.
Dynamic FPS 1.5.3 - Likely the most complex mod for TotK in development currently, because it has to account for everything in the game that was built for a locked 30 FPS and make sure it doesn’t break at, say, 34 FPS or 53 FPS. There are known physics issues, including Link having trouble with ladders. But given how difficult it is to run the game at a locked 60 FPS, this mod is practically essential for going over 30.
Graphical fixes galore - There are tons of these scattered around from multiple modders, so I’m linking to a Github collection for simplicity here. There are fixes for the outlines of islands appearing in the sky when upscaling, disabling Nintendo’s FSR downscaling for better image quality, increasing the internal resolution without breaking ambient occlusion in Yuzu, improving LOD, increasing shadow res, and even taking higher-quality JPEGs with the internal camera.
Camera sensitivity - Several options for lookin’ faster.
Mod manager - This bespoke mod manager on Github pulls in mods from another Github to make it way easier to install and update all the above, and more, specifically for TotK. It works for Yuzu & Ryujinx, and can merge mods/detect compatibility to ensure everything works together. Pretty cool! Though it does mean you’re far removed from the source of the mods. The two downsides there are knowing whose countless hours of hard work you’re benefiting from, and that the person rehosting the mod could up and vanish at any time. But for now, you can’t beat this convenience.
That’s a selection of the basic “make it better via emulation” mods out there, but of course people are also modding the contents of Tears of the Kingdom already too. If you want to add lipstick to Link or selectively increase the durability of certain weapons, check out the GameBanana page. Meanwhile, well-known BotW modder Waikuteru has put out an early build of a randomizer already:
RPCS3 v0.0.28 - The PS3 emulator’s first “landmark” release in 3 months, though if you’re a RPCS3 user you’ll know that the devs recommend always updating to the latest near-daily build; wait around for a stable release and you might die of old age. So what’s noteworthy in this release? A few merges of dozens:
Fixed a MGS4 crash
Significant performance improvement for loading on HDD/NAS
Frametime improvements in Vulkan
Most importantly: DJ Hero turntable binding corrected
Fresh outta the oven - The Taito System SJ core for MiSTer was just released on Saturday. What games used this 1982 core? Well, here are some you may have heard of.
The MiSTer N64 core can run a graphics demo now. Closer…
Cosmic Guerilla’s MiSTer core now lets you toggle the background from black to blue, because author macro noticed a real-life cocktail cabinet displayed the game that way. Detail.
Fancy using the giant Steel Battalion mech controller on the MiSTer? Well, meet sonik_br.
Nakoruru: The Fan Translation She Gave Me - When I think beloved fighting game character, I think visual novel on the Dreamcast. You too, right? No? Well I’ll be damned if it ain’t a thing: this adventure game about fan-fave friend-to-birds Nakoruru took two years to translate. The team even included an existing fansub of the 30 minute OVA that went along with the game to round out the package.
Some tidbits from the delightfully detailed Github:
“Unlike previous English translation patches I've developed, this game required extensive Hitachi SH4 Assembly work to implement a multitude of changes and quality-of-life improvements. To get the job done, I spent countless hours combing through Hitachi's technical documentation to soak up as much as I could. By combining Ghidra, Cheat Engine, and the Demul emulator, I was able to devise a functional workflow for reverse-engineering, modifying, and testing.” - Derek Pascarella
“The Learn the Lyrics mini-game previously functioned as a basic Kana lesson for players, and has been modified to teach the player the Ainu phonetics for Nakoruru's secret song.”
“Quiz mini-game questions completely rewritten as to give players the ability to answer them correctly, while also learning about Japanese and Ainu culture, food, and history.”
“A brand-new Bonus Disc was created to provide players with a 100% fully-unlocked save, two playable songs from the game, and the first and only episode of the official Nakoruru: The Gift She Gave Me OVA. All of this content is enjoyable directly from the Bonus Disc itself on real Dreamcast hardware”
Ecsaform - And another one! How ‘bout an “obscure SRPG that's got a great story, music and art” made by Bandai for the PS1 in 1999? Props to Garrett Greenwalt for dropping this surprise.
Keeping in the Zelda spirit, but without making this whole thing a Tears of the Kingdom fest… how gorgeous did that Link’s Awakening remake look at 4K?
Jesus Chain-Chomping Christ.
Thanks for reading Read Only Memo! Subscribe for free to receive new posts and support my work.