Dev Resources

This page contains resources to aid in the reverse engineering of the game. It serves as my own notes to help me keep track of certain things, and to help others who may also want to do a similar project.

The tools I've used here are cross-platform, with the exception of BizHawk, which I used for debugging and inspecting/dumping memory.

Cross-Platform Tools

 * jpsxdec: Java program to extract images, video, and audio. https://github.com/m35/jpsxdec


 * psximager: build and rebuild PSX CD-ROM images in the proper format. https://github.com/cebix/psximager


 * SJIS/Hex: online tool to quickly convert hex to shift-jis and vice-versa. Very helpful for debugging. http://freaka.freehostia.com/charset_js2.html


 * Everything You Have Always Wanted to Know about the Playstation But Were Afraid to Ask.: The most helpful guide ever in anything related to modding PSX games. http://www.raphnet.net/electronique/psx_adaptor/Playstation.txt


 * onlinedisassembler.com: online tool for disassembly. Supports MIPS architecture. https://onlinedisassembler.com/odaweb


 * sym: a parser for Playstation  files. https://github.com/sanctuary/sym


 * binwalk: tool for analyzing any kind of data. Very helpful for general analysis and determining if data is compressed and/or encrypted https://github.com/ReFirmLabs/binwalk

Extraction/Replacement of Text
To extract text from the game in UTF-8 format, run this command:

You may want to cleanup any non-character data by running something like

Once you have the text you want with translations, you can replace it back in by overwriting each sequence of bytes with a new sequence of bytes (as long as the new one is equal or smaller size). If it's smaller, remember to "clear" out any unused bytes by padding with spaces. In Python, you can just use, then.

The above works for uncompressed data. For compressed data, the new text also has to be compressed, and in such a way that work's with the game's implementation of the compression algorithm.

As far as the location of text (specifically for this game):


 * Most dialogue is in the  files.
 * Constants/global text for things like item names can be found in.
 * Monster Book entries are located in, in a compressed format. The compression appears to be LZSS. You can get the uncompressed version by doing a memory dump.

Full & Demo Game Differences

 * The demo has a data file not in the full version of the game,.