
Finding Xanadu: Inside a JRPG classic translation 15 years in the making
Plus this oversized issue features interviews for *two more* human-made fan translations that prove the world hasn't fully gone to slop.
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
Plus this oversized issue features interviews for two more human-made fan translations that prove the world hasn't fully gone to slop.
When I started putting together this issue of ROM, I was seeing a lot of headlines and social media posts about stuff that, frankly, bummed me out. Surely exaggerated claims that it's joever for the Switch 2 ("Nintendo's worst nightmare!") because you can emulate it now (AI). A dozen new recomps a day (AI). A launcher for said recomps (AI). Play this or that in your browser (AI).
Instead of trying to pick apart the kinda-yuck from the very-yuck, I decided to do something else this issue instead: ignore it all and write about something completely different.
This week, even more than usual, is about carrying the torch for human ingenuity, steadfast effort, and collaboration. When I saw that three really noteworthy fan translations had all come out since last issue, I decided to feature them all, and speak to the people who made them without surrendering their brains. Hope you enjoy.
In the span of two years from the summer of 2015 to 2017, a thread on the PC Engine Fans forum accrued more than 600 posts about The Legend of Xanadu II, a 1995 Nihon Falcom RPG that had proven a beast of a game to hack. Halfway through that span, though, Xanadu had seemingly been conquered, with most of the posts devoted to redoing the pixel art title screen with new English lettering that matched the exact vibe of the original Japanese. The translation of Xanadu II, and its much larger predecessor released in 1994, seemed to no longer be in doubt.
"No problems so far ... once the voice-over is recorded, processed and inserted, it shouldn't be too long before we can release these (well, that means hopefully this year from my POV)," wrote hacker Elmer, in September 2016.
10 years and one month later, it finally happened: The Legend of Xanadu is here, and Xanadu II will follow soon. But you have to go back half a decade further to see where the project really began.
In 2011, young translator SamIAm, who'd just graduated from college with a degree in Japanese a few years before, bought a PC Engine and a copy of The Legend of Xanadu II. It was a system he'd long coveted.
"When I was a teenager and I was starting to study Japanese, one of the most exciting things was looking at all of the software that came out only in Japan and discovering what at the time was like hidden treasure," he says. "And the PC Engine had loads of it. I had played a lot of the Super Nintendo RPGs, stuff like Chrono Trigger and Final Fantasy VI. And I had also tried some of the fan translations that had come out, mostly on emulation. That scene was just getting going in the late '90s, and I was really impressed with what I saw. I knew that it was something that I wanted to do someday."
Partially drawn to Xanadu II's fantastic artwork, SamIAm found a willing partner for hacking the game: EsperKnight, a longtime translation scene figure who I spoke with at length about their work on the remarkable RPG Linda Cube Again. They seemed to be making fast progress at first, and were able to dump some of the Japanese text out of the game. Sam started translating — but when Esper tried to reinsert the new English script into the game, everything started breaking, and he didn't know how to fix it. When real life distractions for Esper like a new job and a young family reared their head, the project fizzled out.
So did progress on another game SamIAm and EsperKnight had hoped to translate: Chōjin Heiki Zeroigar, a 1997 shmup for the PC-FX. That's where things sat until Elmer entered the picture in 2015.
"Sam had made a bunch of posts about the work, and I could see that he was an intelligent, well-spoken fellow, Elmer says. "He was just stuck, not through his own unwillingness or inability to do it. And I thought that Zeroigar in particular would be fun to work on. And, you know, this guy needed help."
Today, Elmer is a retired game programmer with time on his hands to hack even the most confounding decade-old games. He started his career in the early 1980s, and still remembers how impressive the PC Engine and its CD add-on were when they arrived on the scene later in the decade.
"It was just night and day versus everything else that was out there at the time," he says. "Just seeing this thing, hearing actual music for the first time out of a home computer, instead of beep beep bop, hearing voices, was incredible. Hearing voices and then seeing something that, from a console point of view, looked very much like arcades at the time. So it was amazing. Always had a love for it, never got to program on it."
For the rest of us, that missed opportunity in Elmer's career turned out to be a good thing — the PC Engine is one of the few consoles he "never signed an NDA on."
"So I'm allowed to mess with it as much as I like."
Hundreds of hours of hacking on Xanadu across months of effort in 2015 eventually gave Elmer the confidence to promise that a fan translation would truly be possible. It was his first time hacking a PC Engine game, and it wasn't an easy starting point. But his experience from decades in the industry gave him the baseline skills he needed.
"Most of the PC Engine games that I've seen that were produced by Hudson for their RPGs tended to use large blocks of memory that stored strings — you would get a string block followed by a string block followed by a string block followed by a string block, all separately in their own big huge chunk of memory with no code or anything. So once you found out where the first block was and where the last block was, how much extra memory you've got for your translation, just take those, decompress them, and then you can change them to your heart's content.
"Falcom's engine was very, very, very different. It looks like the whole thing was put together in an assembler. So it's mixing code and strings willy-nilly. They often did put chunks of their script at the end, but it's only small parts of it. And because it's executable as well, the script can call assembly language functions and then come back into the script. Since it's all interleaved, it's not easy. So I had to write a complete script decompiler and another recompiler for it all afterwards."
Using emulator Medanfen, Elmer set to work figuring out exactly how the Xanadu games loaded their data, then faced down the challenge of how to fit his code changes and the inevitably more voluminous English text into the game's very limited memory. That required implementing his own compression method more efficient than the one Falcom used, shrinking the entire game's code down to make more space. Here's an excerpt from his development blog in late 2015:
Finally, Elmer had a proof of concept: He'd give Sam a bit of text to translate and then insert it into the game to prove it was working. That back-and-forth kept them motivated to make more progress. But once the tools were in place to dump all the text, those hundreds of hours of hacking culminated in a baton passing. "I literally dumped hundreds of files on Sam and walked away," Elmer says with a chuckle.
At that point it was clear they'd be able to tackle both games, with the plan to release Xanadu I first. That would mean a whole lot more text to get through: about 240,000 Japanese characters for the first, and another 95,000 for Xanadu II. Along the way Sam also realized he'd need to throw out much of the work he'd done for Xanadu II when he and EsperKnight first attempted it, as many of his assumptions about details referencing the first game's plot weren't quite right.
Looking back, Sam says, he'd probably translate the Xanadu games by playing through them on one monitor and referencing the untranslated script on another. But back in 2015 he was just focused on the raw text files.
"I probably shouldn't say this, but I did a lot of the work on the translation while I was at my job, during downtime, which I had a lot of," says Sam. He was living and working in Japan at the time, so text files full of Japanese text and little bits of code didn't exactly draw scrutiny. Then he could run a small script inserter code that Elmer had created to insert the text into the game. It worked.
Sam wrote a complete script, translating both games line-by-line. Then he played through them slowly, tweaking English lines as he went and reinserting them until he was happy with how they looked — avoiding single words dangling on extra lines, for example — and how naturally they read in English. That process took months, and he'd occassionally deliver a new chapter to Elmer to play through and test as well. Along the way Elmer also made improvements to the hack, like a variable-width font with some nice, subtle drop shadowing that made the text more legible.
With a first English draft complete, one major piece of the project still loomed over Sam: Recording an English dub. The Xanadu games have quite a few cutscenes, and those cutscenes flexed the impressive-at-the-time power of the PC Engine to include voiced dialogue in Japanese. Your first reaction to the idea of creating a fan dub might be eww, don't waste your time — just let me listen to the Japanese voices with subtitles! But the problem was, those cutscenes didn't include text accompanying them.
With some audio editing experience and copies of the soundtrack CDs, Sam reckoned he could create a dub that would be quite easy to insert into the game, swapping out the audio files like-for-like. They put out the call for volunteer actors.
"It just always seemed to be the only sane way to do it," Elmer says.
But a decade later, with the patches still unfinished, they decided to do it the insane way instead.
"We did get a bunch of very talented people who were very willing to help us, and did," Sam says. "But how did we end up doing it the insane way? Well, it's harder to do a dub than it might seem. We were depending on a lot of people... I should have taken it upon myself to be stricter with people and tell them that if they weren't in a position to actually record for us, we needed to move on and find someone else."
Despite the best intentions of Sam and the volunteers, recording progress stalled out; Sam also had his first kid in 2016, and a second joined the family three years later. Even with much of the game translated and essentially "done," minus some needed polish, the cutscenes were too important to simply not translate. Time slipped by. While Xanadu was in stasis, though, other things were happening in the PC Engine translation scene.
"There are a couple Discords I'm part of, and I'd see people working on translations," Elmer says. "The translator Supper, it was just a shock when he did his first translation with [cutscene] subtitles, and I'm going why would you do that? How did you do that? I remember looking at it and thinking, 'okay, maybe I should take a look at Xanadu and see if it's possible, because it's obvious the dubbing has hit a roadblock. This would be a way to get the project finished.
"Amazingly enough, I didn't expect it, but there were ways to make memory available. There were ways to add code into each of the visual cutscenes. And the one thing that really surprised me was there were just about palette entries that I could use to display sprites. I thought they pretty much filled up the entire VRAM and used the entire palettes, but they hadn't."
With that breakthrough, adding subtitles for the cutscenes essentially became a tedious exercise in timing when the text should display alongside each bit of voice acting, and tweaking the timing of the cutscenes themselves to, for example, pause for an extra second or two between speakers so that the text is on screen for long enough. Sam would record clips of himself playing and then count the frames to determine exactly how a piece of a scene needed to be retimed.
"Falcom, in 1993, had limited tools and time and so wha
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。