A reverse of a reverse
· workbench
FlashPV translated Feda: The Emblem of Justice into French back in 2017, on top of an English hack, ran into problems with the hack, and asked me for help. There's a finished French script; the problem is everything underneath it.
An oracle first¶
The original toolchain is a pile of DOS programs driven by one batch file. Before touching anything, I needed to know exactly what it produces. So it runs headless in DOSBox-X, and its output ROM is the oracle.
The batch file also calls xkas, an old SNES assembler. Those steps now run natively through a port of xkas v0.06, and the result matches the 2012 xkas.exe build byte for byte. One less thing running in an emulator.
Then the patches, one at a time¶
The hack is a set of IPS patches with no source. Each one gets disassembled back into a816 source, reading the DOS tools in Ghidra where the patches don't explain themselves. The rule is strict: swap the rebuilt patch in, run the oracle, and the ROM has to come out identical before the old patch goes.
Once the build is understood, fixing it is ordinary work: drawing the French accents into the fonts (É, À, â and the rest), moving messages that overflowed into free space, shortening names that didn't fit their records, and kintsuki tests that check the French text on screen.
The inherited ROM had been hand-edited too (YES/NO and PRESS START in French). Those edits now live in their own small patch instead of hiding in a binary.
Also new on the bench¶
- Cachegard, my own Super Famicom RPG.
- Tunes, the music server and apps that led to Chikuma.
- katsuji and SD2SnesCommander on the tools page.