Blue Dragon is here! Blue Dragon is here!

This issue is going to be just a tad bit leaner than usual, as I'm off traveling for my first honest-to-god extended vacation in more than a year. But I wasn't going to pass up the chance to dig into the first major, fully featured PC port to come out of ReXGlue, especially as lead developer Tom and I have been talking about his work on the project on and off since March. Dang, time flies!

Consider this issue of ROM a part two (or a supplement) to my feature on the port on PC Gamer published on Wednesday. While that was an announcement of the port's imminent release and a breakdown of what its whole deal is for the general PC gaming audience, this newsletter will of course be for da sickos interested in a bit more of the technical stuff.

Blue Dragon is finally free from the Xbox 360: a fantastic PC port unlocks the FPS, goes 4K, and more
This Xbox 360 recompilation proves how good fan ports can be when they aren’t vibe-coded.

Not featured in-depth in this issue, but way too big a deal to skip over, is this late-breaking bit of news: the completely AI-free Donkey Kong 64 recomp surprise dropped on Saturday. Don't ask me which one you should play first! I'm also unsure if someone needs to be flogged or applauded for naming it "Rekongpiled."

GitHub - Rainchus/Donkey-Kong-64-Recompiled
Contribute to Rainchus/Donkey-Kong-64-Recompiled development by creating an account on GitHub.

Read on for a quick Super Famicom translation spotlight and some PC-98 art to see us out. Oh, and you can play Third Strike on your MiSTer now. A non-slop version. Nice.

💸
If you enjoy ROM, I'd love it if you'd consider a small tip to help me cover my monthly costs. (Follow the link and click 'change amount' to whatever you want).

The Big Two

1. Re:Blue is here, so let's spend a little more time talking about ReXGlue's first landmark release

ReXGlue may have technically been available on GitHub for most of the year, but in a sense it's properly launching this week, with Blue Dragon PC port re:Blue showing just what the toolset is capable of. This is the first Xbox 360 port since Sonic Unleashed kicked this whole phenomenon off to feature a native renderer and all the bells and whistles you could realistically ask for — and probably a few more that you wouldn't even think to. Here's the link, if you missed it.

ReXGlue creator Tom isn't himself a Blue Dragon superfan, though he played and enjoyed the game back on the 360. He saw it and its undocumented engine as an ideal challenge for a meaty ReXGlue project, but he also had a superfan ready to work as his right-hand man. "The people I met, like rcold and InfernoZotza, were great to work with. And their passion for the game and the history behind it, wanting to make something cool, really inspired me and drove me to finish this," he said.

rcold hadn't programmed "a day in his life" before jumping into re:Blue, and is currently getting his PhD in aerospace engineering. But he's loved Blue Dragon for years, and before long was knee deep in RenderDoc helping bugfix and spot differences between the in-progress PC port and the original game.

"I was really working with intuition," he says. "I presented Tom with one of my Python scripts to reverse-engineer the 3D model files or textures, etc. It was a total mess, but fortunately Tom did not stop at that first impression and taught me a lot."

rcold has been studying Blue Dragon for years, so when he saw the recompilation project kicking off, he knew he had to join in. Together they started taking Blue Dragon apart, and soon started learning some fun tidbits about the engine. Here's Tom:

"The first thing a lot of people do in reverse-engineering is look at the strings that are embedded in the binary. That's what I did. It's pretty interesting, because this was a game developed by Japanese people, but it was handed off, I think, another company that specialized in localizing it for the global market. So there's a lot of romaji in there. You'll see stuff like 'fonction,' for example, had an O in it. I guess if somebody was speaking Japanese, that's how it would sound phonetically? There's a lot of funny stuff: one of the characters is named Kluke, and in the game code it's written like 'Crock'. As well as the pre-localization names, there are some pretty wild enemy names that you don't see because they were touched up by the English localization team. One of the locations is the Debbie Nest instead of Deeve."

A big point of discussion around re:Blue, and ReXGlue more broadly, has been the distinction between using Xbox 360 emulator Xenia's backend for displaying the game's graphics and creating a native renderer. A key component of N64 Recompiled, for example, is RT64, which has been years in development.

When Tom started work on Blue Dragon, he figured a lot of the work he did on it would be transferable to other 360 games. And there is still stuff that will feed back into the project, but not as neatly as he originally thought:

"Almost everything in re:Blue can be generalized in principle... But when it comes down to making it look nice and the features, that's all going to be game-specific." he said. "Every game you port tells the SDK where its seams are in the wrong place, and that was the biggest thing: where are these boundaries we've created in the SDK causing pinch points when people are using it to extend [Xbox 360 games]. It's meant to be the backbone, as well as provide for extensibility. Things that might look game-specific in one title might turn out to be a platform that belongs in ReXGlue. File I/O, input and device hot plugging, the list goes on. Those are things that generally turn out to be something that could be pulled back [into ReXGlue]. The end state is to basically have as much as we can generalized, but not too general where it's still enforcing a specific paradigm and how you use it."

rcold added that they got very lucky with Blue Dragon because they found a number of debug menus that help them test how different maps loaded, toggle on and off shaders and effects, and more. Ultimately that sort of testing is critical to a quality PC port.

re:Blue's native renderer was actually up and running, and in good shape, within a couple months. But it took far longer to make it really shine "and not still look like an Xbox 360 game" on PC.

"It was arguably correct, but it didn't look good," Tom said. Bloom, specular intensity, and gamma all had to be adjusted because the expectations for displays were so different 20 years ago. They wrote new shaders to fix some rendering bugs. With those major issues solved, many of the port's fancier features were then driven by playtester feedback. The mod tools that rcold and Tom collaborated on was "probably harder than the entirety of the recompilation:"

"That's what we bonded over. Cold has the skeleton key of knowledge, if you will. That is madman stuff. If you ever ask anybody how they feel about reverse-engineering mesh formats, it is a nightmare. [But] yeah, we call it Shadow Forge, it's a fully featured toolset for extracting the models, textures, we can import brand new models with animations. We're able to decompile all the scene scripting and recompile and put it in. There's a custom mod loader that works in-game. It's essentially a fancy overlay: think Skyrim or Fallout where you've got a mod list and it loads the mods in order."

rcold added that they could add a whole new dungeon to the game, or rebalance it or change the AI behaviors, which I can imagine there being demand for considering Blue Dragon's notoriously easy on its default difficulty.

Speaking of AI: that was a reference to Blue Dragon's monsters, but of course we talked about the generative stuff, too. Boo, hiss, etc. But it felt important in this case, since Blue Dragon is the big proving ground for ReXGlue. Back in July Tom put out a statement in the ReXGlue Discord not banning AI or castigating developers for using it, but articulating that its use can take harm the advancement of the recompilation scene if vibe coders don't know what their agents are doing, while also making the project look bad.

I asked how he's currently feeling about generative AI and "vibe coded" recompilation/decompilation efforts as the creator of a tool that several people have chosen to use in that way.

"As a fellow gamer, it's very annoying, because people like when this stuff comes out, and to always be disappointed, it makes you feel, wow, is any of this shit worthwhile? It puts a bad taste in a lot of people's mouth, I think, especially when they see it came from my project," he said.

As the maintainer of ReXGlue, Tom discourages using AI, but also says he understands it:

"I always say 'keep it in your own backyard.' Ship it outward only when you're certain of what you've got. The problem isn't that the model wrote it: the problem is when nobody can tell you why it's correct, why it doesn't run, or why it might be correct. It's very frustrating. It's one thing to get a 1 or 2 line fix that's trivial end-to-end. I can look at it and go 'yup, looks good.' And at that point I don't really care who wrote it. If it's right, it's right. If somebody put effort into finding an issue and resolving it, if they used AI to help, I don't think that should be a knock against them.

But on the other hand, a pull request with hundreds of thousands of lines, most of them being generated comments, that's not very reviewable by anybody. It's frustrating. So I disapprove the mass garbage pumping out, but I don't disapprove using it as a tool; we've got to be real with the age we live in that it can be a very helpful tool. But it's all about responsible use."

That answer won't be popular with folks who'd prefer to see a hardline stance against AI, which would be my preference, too, given who currently owns and stands to profit from these tools, how the LLMs were created, and their potential environmental impact. Tom and I agreed, though, on how many issues can stand in the way of generative AI use actually being responsible.

When I brought up the N64 Recompiled project's stance against using AI for, among other reasons, how difficult it will make projects to maintain long-term, he said using it is actually "even more dangerous than that."

"Emulation and recompilation in general is a hostile domain for generated code because ground truth lives in the assembly. The disassembly you're looking at to make the emulation make sense, that's something a model never sees. It's never trained on that stuff. So to try to get it to understand in the moment, it might do a pretty good job based on what it knows about reverse-engineering, generate output that compiles, looks idiomatic, and nothing is confidently wrong in its default failure mode. It looks fine. In most software, a bad guess produces an error. Here, it's subtly wrong for the entirety that it's in the codebase until somebody realizes it was a bad edit."

Likewise, he sees the AI pull requests with miles of comments as irresponsible if someone can't explain what it's doing and why, as is so often the case.

While Tom wants to give some benefit of the doubt to current AI tools being trained on open source software, following those projects' stated licenses, and essentially resembling a large scale version of how he got his own start as a programmer by copy/pasting code from Stack Overflow as he learned, he knows that the lack of transparency around the tech makes that all unclear.

"I'm hoping some of the new regulatory things that are in play will help discern that line, but only time will tell," he said. "It's such a new thing.

"I wouldn't be where I'm at today if it weren't for the guys who took the time to do it right and give me an example to look at and to drive future improvements off of. In my mind that's always been the goal of open source. Somebody makes something cool, and you build on it. I think that's what's founded a lot of the great software in our time, that collaboration and building — not shitting out something that is just a Frankenstein of a bunch of other peoples' repositories put together in a way that mathematically is correct, but is not correct in terms of how we do things."

As of the time this newsletter's going out, he's been spending the weekend hard at work on fixes unearthed by the wider range of players jumping into re:Blue with the arrival of 1.0. Check out the nightly releases from GitHub for the latest and greatest.

Releases · zolaware/reblue
Recompilation of Blue Dragon. Contribute to zolaware/reblue development by creating an account on GitHub.

2. Finishing the Super Robot Wars

"To be honest I don't remember when this one started. I have individual text dump files with 'modified' dates in 2005, but that may or may not be accurate," says longtime romhacker Gideon Zhi. A few days ago, he published his eighth fan translation of a Super Robot Wars game, this one capping off a run of the tactical RPG series' mainline series on the Super Famicom. There are so, so many of these games, and long before they started getting consistent official releases in the west, Aeon Genesis was carrying the torch for them.

Aeon Genesis ~ Super Robot Wars 4

Super Robot Wars 4 concludes a sort of trilogy with 2 & 3, released in 1991 and 1993, and it introduces some features that would wind up sticking around: "SRW4 is interesting because it's the first game in the series that lets players create their own main character insert," says Gideon. "There's name entry, gender, character portrait, personality archetype, birthday, blood type, and whether they pilot a real or super robot (which the player also gets to name and pick the color scheme for.) Name entry limits for both character and robot were a significant challenge for this one that none of the earlier games had. AFAIK only 4, F/FF, and Alpha go quite this far — future games still have main character selections but they're all generally pretty well pre-defined.

From a technical challenge perspective there's also the karaoke mode, which had unique discovery work around highlight re-timing for romanized lyrics, and there's animation on the title screen that had to be redone as well. SRW4 also adds new mechanical features that remain to this day. The big one is that during the enemy turn phase, when one of your units gets attacked you can pick whether to counter, evade, or defend; prior games just let you specify orders for your entire squad that were carried out automatically. SRW4 also adds database entries for background and trivia on all included characters and robots, something that a lot of the following games continued to feature."

As far back as 2018 Gideon was posting progress updates for Super Robot Wars 4, but it's finally done thanks to help from a team including translator TheMajinZenki, a frequent collaborator on the series. Another member of the scene also helped this one finally get over the finish line.

"BobSchneeder45 (Clock Tower hacker) is credited on asm assistance –– he helped diagnose and fix a pre-existing race condition in the game's battle scene engine that would cause soft-locks when strings were too long, a consequence of the proportional font print routine taking longer to render than the original text display routine," Gideon says.

Next up: Crime Crackers!?


Patching In

shadps4 v0.18.0 - codename UltraPersona is more itself than ever – Get it? Ahem. Broken video playback in some games now works properly, and an issue crashing Shadow of the Colossus has been fixed. "Another big feature is the experimental red zone protection, which fixes an issue specific to 12th generation and onwards Intel CPUs exclusively on Windows, that was causing crashes and other undefined behaviour in lots of games that were not expecting to have their stacks' red zone clobbered by Windows exception handling," writes developer George Moralis. "A few more fixes on GPU are included, such as fixing shadows in Persona games, or some effects in inFAMOUS and Gravity Rush 2."

Switch emulation still has its paradise – Despite the recent hubbub around Nintendo DMCAing a bunch of Yuzu forks on GitHub, the real surviving Switch emulation projects continue. Eden, for example, is quite active, just not on GitHub. Most of the commits are above my head, but a recent one that stood out to me was improved image quality on mobile when using Snapdragon Game Super Resolution upscaling. Another improved the carousel library view, and another fixed the software keyboard in Monster Hunter Generations. Nice to see that Eden has a strict AI policy: "No LLM or AI usage, *period*, for patches, pull requests, issues, comments, debugging, brainstorming, etc."

Ares now supports the Atari 5200 – The multi-system emulator takes on another console, including save states and support for the CX53 Trak-Ball, which, if you haven't seen it, is an absolute unit.


Core Report

Third Strike at last – Jotego's CPS3 beta core finally arrives at the game. Street Fighter 3: Third Strike. Now playable for Patreon supporters, eventually for everyone. A little trivia from Jotego: "Third Strike is the biggest game supported by a JT core so far. The stream file from your SD card to the FPGA is 82,432 KiB. Before including CPS3, this honor fell onto Vampire Savior, with 45,320 KiB. Third Strike is almost twice as large. The smallest game we have in the catalogue is Konami's Ping-Pong 48 KiB (2,000 times smaller)."

Neo Geo Pocket Color gets a new core – Developer Kitrinx released a new core for the handheld, though it's not the first — Jotego had one in the works awhile back. For the moment I'll leave it to the Neo Geo heads out there to determine what the improvements are here, but this one support savestates and cheats, so some fundamentals are covered.

MiSTer's SNES core saves saves in Mega Man X2/3 – Contributor Fred B. Night added savestate support for SNES games that use Capcom's CX4 co-processor, used in the second and third Mega Man X games on the console. This sweet chip is (I assume) a major reason why those games are so damn expensive.


Translation Station

Not-so-innocent PC-98 RPG Innocent Tour gets the deluxe treatment – An impressively robust translation effort here from a pair of translators to tackle this '90s boardgame RPG and recreate a whole manual telling you how to play it, complete with B&W screenshots. Note that, like practically every PC-98 game, this is a naughty one, so I particularly appreciate this option for the translation patch: "For the Patch file, pick the downloaded file Eng.ips (regular PC-98 version) or EngCensored.ips (PC-98 version using censored graphics from the Korean DOS version)." Some art from it down below!

Become a Pachi-Pro with Pachi-kun – Longtime translation scene member Filler translated the script for this Famicom pachinko game way back in 2019, but only got around to turning it into a patch recently. Note that they used Codex AI for "Technical implementation" and "script insertion."

Yu-Gi-Oh! Duel Monsters 4: Battle of Great Duelist gets thoroughly translated – This Game Boy Color Yu-Gi-Oh! game got its first English translation last year with the official compilation Konami released on Steam etc., but fan nyuu was working on their own patch beforehand, and just kept on trucking. They put an impressive amount of work into it, including a whole-ass companion website and some nuances that I'm sure make it different from the official release:

"We have attempted to preserve context and feel. So: Japanese names rather than localized ones, generally keeping onomatopoeia and sound effects, maintaining speech patterns, and declining cultural substitution. We do one class of deviation. Sometimes the base text is ambiguous or even flatly wrong. So, when writing a card’s effect-text, we take into account what the effect actually does and describe that. When “deviating”, we still try to preserve what we can; many of these rules-texts have flavor or voice that can be used while not-misleading."

Rezel Cross gets an A+ for human effort – A poster on the RetroGameTalk forums recently shared their translation for Rezel Cross, saying "I'm really proud because I did it 100% myself — without any AI! I even rewrote the text three times because I just wasn't satisfied with it." Hell yeah to that — though a quick look at their screenshots of the PSP RPG makes me think this one might need some more polishing. They're also currently distributing it as a patched ISO of the whole game, which prooobably needs to change. Hopefully some folks chip in for an edit pass!


Good pixels

Share this post