What's... what's that sound?
A distant rumble? The tremor of barely contained enthusiasm?
Wait, maybe that should say Read Only Memo? I’ve already blown through my gif budget for this edition of the newsletter soooooo yeeeeeah let’s get on with it.
Hello! This is Read Only Memo, a news digest about emulators and the astonishing stuff people do with them to play old videogames on less-old computers. You can read the longer pitch on the About page. I love finding out about new emulation projects or new developments in old ones, and I’m guessing you do, too. But some of the best bits of this hobby are hidden away in little pockets of the internet where they’re particularly tough to find. If I’m doing this right, you’ll learn about at least one thing every issue that you didn’t know you wanted to know. Go ahead and pass it off to your friends as knowledge you plucked from the ether. I’m your guy on the inside. (Did you have to get such a thin monitor, though? It is tight in here).
Sincerely, though, if you’re reading this and hit that email subscribe button: Thank you. I don’t know what to expect; I’ve been writing professionally for so long it feels strange as hell to do it just for myself and whoever’s out there to find it. Scary! Tingly? Instead of “scangly” or something let’s just go with exciting.
All right, this is meant to be breezy, so let’s get to it.
The Big Two
1. More speed, less fiddle: SteamOS 3.5 will fix SMT bug that caused Steam Deck emulation stutters
For the day job I talked to Valve’s Proton guru Pierre-Loup Griffais last week, and he explained the source of a problem that’s vexed Steam Deck emulation for the last year. SMT, or simultaneous multithreading, should just make modern CPUs flat-out faster. But in a few particular use cases it actually slowed things down. Processor paradox!
What was going on? Why’d it take a whole dang year to fix? It was actually an obscure bug in the Linux kernel for AMD’s CPUs.
“There used to be a hardcoded behavior in the Linux kernel on the AMD side, where if a core goes to sleep, it invalidates its cache, because by the time it wakes up the cache might not be valid … It turns out that when you have two threads on the same core, and one thread is still working on something, and the second SMT thread goes to sleep, it throws away its cache using the same logic. So the thread that's running suddenly loses its L3 cache. In terms of CPU, that's really bad. It has to kind of refetch everything from memory. Lots of latency … and your frametime goes to shit. So that's what was happening."
AMD fixed the issue some time back, but the upcoming SteamOS 3.5 release includes the first kernel update since the Deck’s launch. Once it rolls out (in preview, beta and then stable) SMT should regain its rightful role as solely a speed solution.
Why was this especially thorny for emulators? The short version is that they typically use only a couple cores; old consoles weren’t exactly built for multithreading. Some Deck players have used PowerTools to disable SMT, which tosses the in-this-case-useless extra threads in favor of faster raw speed, keeping the cores pegged at max turbo. That may still prove useful even after the kernel update for games that are especially demanding — we’ll know before long.
2. We rollin’: Duckstation gets rollback netcode
Fighting game players have been feasting the last couple years with game after game being moved onto rollback netcode. Older games are being reinvigorated. SNK’s Samurai Shodown, Arc System Works’ Dragon Ball FighterZ and Guilty Gears… hell, even Super Smash Bros. Melee has rollback netcode now. How does a game that didn’t even support online play have rollback netcode? Thanks to the developers behind Slippi building an entire online infrastructure specifically for emulated SSBM play, complete with matchmaking and custom UI work in-game. And now DuckStation, the most prominent modern PlayStation 1 emulator, is getting something similar.
DuckStation is already really slick, with an interface so user-friendly that I could see it becoming somewhat standardized across other emulators. DuckStation developer Stenzek even designed a similar interface for PS2 emu PCSX2 last year, replacing its ancient and convoluted interface. Anyway, what were we talking about? Oh yeah: netcode.
DuckStation is very much Stenzek’s project, but this awesome feature is actually the work of HeatXD, who released a DuckStation fork with integrated GGPO netcode. The gist of emulator netplay is that it’s tricking games running on separate emulators on separate computers into believing they’re one singular console. So while you’re playing your favorite PS1 fighter (say it with me now: Masters of Teräs Käsi) cross-continent, your virtual PlayStation’s none the wiser. Expect bugs and rough edges at this point, but follow the dev above or the Github to watch it progress.
DirkSimple - Ever wanted to play Lupin III laserdisc game Cliff Hanger without hunting down one of the like idk mere dozens(!) of original arcade machines out there? Popular emulator frontend Retroarch just got a new core for Dragon’s Lair that’ll also run Lupin. Huzzah!
Ares v132 - A significant update to multi-system emulator ares, which was created by late emu author Near and continues development in open source. There are UI changes and big compatibility improvements for Neo Geo games in this release. I’m personally just happy to see Near’s work carried on.
Outrun - The famous sunny vibes arcade racer is finally about to work on the MiSTer thanks to MiSTer core superstar Jotego. It’s been a tough nut to crack, apparently. As Jotego wrote on Patreon, it was unstable at 96MHz on the MiSTer, but running it at 48MHz introduced glitches, too.
“Overall, the memory bandwidth (speed) required by this game makes it impossible to have everything running off a single SDRAM chip,” Jotego writes. “The frame buffer sections has to be taken out of the SDRAM. That requires a second external memory chip.” The short version: Outrun on the MiSTer has to rely on the DDR4 memory, but because it’s hard to nail down the exact timing of data transfers to/from the DDR, using it for the framebuffer has been (highly technical terminology coming up) a pain in the ass. Jotego’s still predicting a core release on March 24.
Boku no Natsuyasumi 2 - Oh hell yes. The idyllic “My Summer Vacation” series is one of a few holy grails that’s never made its way west (not counting a couple more recent spin-offs). A translation of the first game has been in the works for a solid 2 years, but I expect this one will arrive sooner despite just being announced, because it’s from Hilltop Works, who’s already blazed through another holy grail, Square Enix’s carPG Racing Lagoon. Volunteers rallied to help get Racing Lagoon translated, and the same’s true with Boku, as well. It’s not a one-man job, but Hilltop does extensive hacking, translation and graphic work: check out this behind-the-scenes YouTube explainer.
I asked Hilltop to say a few words about why he’s tackling this game:
“I was led to the Boku series when I was examining the elements that I really liked about my favorite games. One of my favorites is Gregory Horror Show on PS2, and it always struck me how much I loved every tiny detail of it. In that game you get intimately familiar with a very dense, enclosed location (a haunted hotel), you deal with other NPCs that have their own complex schedules independent of the player, progress happens very naturally based on knowledge you gain about the world and its inhabitants as opposed to arbitrary gating, and it has a very unique and charming artstyle. Boku inhabits all of these things and so, so much more. Everything in Boku feels so real, so textured, so diagetic. At a time when the public is harboring an ever growing ennui toward the thin plastic worlds that AAA Player Investment Designers are serving them, Boku feels like the perfect antithesis. I'm translating Boku because I want more games like it to exist.”
More on Boku 2 in future posts as it progresses!
Tactics Ogre - ICYMI, the wonderful PSP script for Tactics Ogre: Let Us Cling Together by Alexander O. Smith and & Joseph Reeder was recently backported to the Sega Saturn — the superior version of the original game, which was only released in Japan (the west got it on PS1).
Of course there’s more to this fan translation than that, including a nice little resolution bump and the not-insubstantial hacking required to get English characters to fit in a version of a game they weren’t written for. A sweet companion to the freshly remastered and much-tweaked Tactics Ogre: Reborn.
Yeah, Metroid Prime on the Switch is cool… but is it as cool as Metroid Prime 1-3 with HD-ified textures? Throw in a mouse hack and baby, you got a stew.