james194zt wrote:Hi Codestation,
This plugin you have written looks perfect for translating other games, how did you come up with initial text file with the memory offsets in it that the plugin then then uses to translate the text I presume you have some sort of process running in the background of the game that is acquiring this information for you or similar. I am interested in seeing if this would be usable in other games as it is an ingenious idea that looks to save hours unpacking and messing with files and the ability to play original UMD disks is great.
For this specific game i just allocate a block of memory, copy all the translated strings in there then overwrite all the string pointers in the eboot so they point to the translated strings. To get the strings i just use a hex editor and a mips dissasembler, is a boring task since it cannot be fully automated (thankfully this game has the strings packed together in big groups so i can make 20-50 at once).
For other games where the text is in separate files in the umd i just intercept the read request and redirect it to a file in the memory stick so the game still thinks that is reading its data from the disk.
You are right that these methods save a LOT of time in translation and testing, but the way of finding the text and move it around in the game so it still works is still hard. The source code of both methods is available on my github (prxpatch project, under divapatch and mhp3loader).
Anyway, i hope that i can use my plugins without major modifications since i want to translate one more game on psp when it comes out (megpoid the Music#).