寻找Xanadu:深入一款历时15年翻译的JRPG经典
Finding Xanadu: Inside a JRPG classic translation 15 years in the making

原始链接: https://readonlymemo.com/legend-of-xanadu-pc-engine-fan-translation-interview-making-of/

本期 ROM 问题聚焦三个人工制作的粉丝翻译。《The Legend of Xanadu》是由 SamIAm 和 Elmer 主导的长期 PC Engine RPG 项目,经过多年的破解、翻译和过场动画字幕制作后终于发布;《Xanadu II》即将跟进。《The Curse of Ogaeritō》是一款受 Lovecraft 启发的 PS1 JRPG,获得了完整英文补丁,其本地化经过精心打造,体现 Lovecraft 风格。《Time Twist》是一款有争议的任天堂 Famicom Disk System 冒险游戏,在 AI 尝试受系统限制困扰后,获得了人工翻译补丁。本期还提到 Eden 中的早期 Switch 2 模拟工作、Azahar 拒绝支持 Anbernic 的 RG DDS、Xemu 图形修复、PCSX2 UI 调整、Jotego 注重质量的 FPGA 工作、Console Mode 更新、MAME Cruis’n 改进,以及 Kunio-kun 躲避球游戏的重新翻译。

黑客新闻 最新 | 过去 | 评论 | 提问 | 展示 | 工作 | 提交 登录 寻找 Xanadu:一款 JRPG 经典翻译的 15 年历程 (readonlymemo.com) 10 分 由 speckx 1 小时前 隐藏 | 过去 | 收藏 | 讨论 帮助 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

WHEW — this is a long one!

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.

The Big Three

1. Where nobody dared to go, the love that we came to know: They called it (The Legend of) Xanaduuuu

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.

legend-of-xanadu-translation / legend-of-xanadu1-english · GitLab

GitLab.com

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.

A Legend of Xanadu magazine ad, via TurboPlay magazine archive

"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.

The Legend of Xanadu II's intro

"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:

The script table that is used to locate each item's description has been moved into some of my extremely-precious free space in the CD Boot Code section. That means that it is always available for reference/modification, which is needed for when the Game Code loads the level-specific item descriptions and overwrites some of the table entries.

The item descriptions themselves have been moved into the bank of extra memory that I've freed by recompressing all of the game's data (the META_BLOCKs) with the more-efficient SWD5 compression.

I've written some new code that's been added to the Boot Code itself to actually load those item descriptions and then copy them into that bank.

All the "names" and "common" scripts are still in the Game Code overlay, and now that the item descriptions have been removed from it, there's plenty of room in the overlay for the larger translations.

FYI ... the current English translations that have been inserted are sometimes taking up to 50% more space than the original Japanese scripts.

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.

"I probably shouldn't say this, but I did a lot of the work on the translation while I was at my job"

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.

联系我们 contact @ memedata.com