Copy the BPS/IPS patch release for your chosen language and apply it to the original game ROM.
Run make help
in top level directory to learn about build configuration and supported targets.
Run ./build/shpn_tool
to learn about tool usage.
Project structure:
src
: tool source codeagb
: GBA ROM code patchesscripts
: translation scriptstest
: tool tests
The preferred approach is to simply copy and modify an existing translation:
Harry
orCybil
are the respective character scenarios, obtained from script disassembly. The strings present in the script can be translated directly. Additionally, the script itself may be modified if needed. Note thatshpn_tool
performs automated text wrapping when embedding a script, so the long lines should not be split manually unless non-standard layout is needed.strtab_menu
andstrtab_script
contain additional strings that are not referenced directly in the scripts.
Historically, the first translation was bootstrapped as follows:
- Embed the fully translated strtabs.
- Dump the resulting scripts.
Obtain the target command address ADDR
by dumping the script and inspecting the generated
commentary. Play until a HandleInput, connect via gdb, and execute
p *(int*)0x3002070=ADDR
to set the next command address to ADDR
.
See script/ACKNOWLEDGEMENTS.