The fan translation of 'The Legend of Xanadu' took over a decade to complete because the game's engine was built in a way that mixed executable code and text strings 'willy-nilly,' making it one of the most difficult titles to hack in the PC Engine library. The project, which began in 2011, required the creation of entirely new tools to decompile and recompile the game's script before a single line of English could be inserted.

This image shows the original game state before the 15-year translation project began.
Overcoming a Non-Standard Engine
Unlike many PC Engine RPGs that stored text in large, separate blocks of memory, 'The Legend of Xanadu' used a complex structure where scripts were mixed with assembly language functions. This meant that simply finding a text block and replacing it would break the game's execution.
Chart drawn by HN Digest from figures reported by readonlymemo.com; values are shown as written in the source.
To solve this, retired programmer Elmer developed a complete script decompiler and a corresponding recompiler. These tools allowed the team to isolate the script data from the executable code, enabling them to modify the text without crashing the game engine.

This image provides a visual example of the script data that required a custom decompiler to isolate from the executable code.
“It looks like the whole thing was put together in an assembler. So it's mixing code and strings willy-nilly.”
— Finding Xanadu: Inside a JRPG classic translation 15 years in the making
Memory Management and Compression
English translations often require significantly more space than the original Japanese text. In this project, some English segments were up to 50% more voluminous than the original scripts, creating a severe memory deficit on the PC Engine's limited hardware.
Elmer addressed this by implementing a custom compression method (SWD5) that was more efficient than the one used by the original developers. By recompressing the game's data blocks, the team freed up enough 'precious' space to house the expanded English dialogue.
The Subtitle Workaround
The game featured voiced cutscenes that lacked accompanying text, creating a dilemma for the translators. While a full English dub was the ideal solution, the team found it technically difficult to coordinate with enough volunteer actors to complete the project.
The team eventually opted for a 'hard' technical solution: they discovered that the game's VRAM had unused palette entries that could be used to display sprites. They used these entries to display subtitles, which required the team to manually count frames and retime the cutscenes to ensure the text appeared in sync with the Japanese voice acting.