2014-04-15, 04:44 AM
Haha, sure. I'm on a work trip, so I don't have access to any screen shots of the game at the moment. But I can at least describe how I'm doing stuff...
Basically, I'm just using a couple of short python scripts I wrote. This is almost definitely a more tedious method than it could be, but I like it because I know it's doing exactly what I tell it. (and I like python...)
- First, I scanned through the PACK.DAT binary in MadEdit (Just searching for some common Japanese characters), and wrote down the start and end positions of some blocks. I doubt I'll do this for ALL of the gajilions of text blocks, but I wanted to get started on some real translation, and it was easy to find blocks I wanted containing specific words (like the menu stuff).
- Next, I just read the PACK.DAT file into python, copy the byte streams based on the start/stop positions, and save the text, positions, etc. as a csv file. This way, I can easily work on any given text block independently, without having to worry about the others.
- I do all the translation from the csv in a spreadsheet, so that I can make comments, see the length available real-time, search, copy and paste easily, etc...
- Finally, when I have a block all finished, I reinsert the text blocks to PACK.DAT in python. It's easy-peasy to just read in PACK.DAT and the translated block(s), swap out the block bytes (since I have the locations in a nice list), and close the file. Then I load the iso file as binary in python, and directly swap all the bytes of PACK.DAT. It's memory intensive and it's not efficient by any means, but it only takes a minute or so, and this way I know there will not be any issues with checksums, etc.
Perhaps over-complicated, and I may streamline this for later, but works like a charm!
One added benefit to doing it this way is that it would be much easier to translate to yet another language: I can share my csv files, and the translator can simply open them up, translate (with the built-in "how many characters do I have left" cells), and swap out the iso data with the scripts.
Basically, I'm just using a couple of short python scripts I wrote. This is almost definitely a more tedious method than it could be, but I like it because I know it's doing exactly what I tell it. (and I like python...)
- First, I scanned through the PACK.DAT binary in MadEdit (Just searching for some common Japanese characters), and wrote down the start and end positions of some blocks. I doubt I'll do this for ALL of the gajilions of text blocks, but I wanted to get started on some real translation, and it was easy to find blocks I wanted containing specific words (like the menu stuff).
- Next, I just read the PACK.DAT file into python, copy the byte streams based on the start/stop positions, and save the text, positions, etc. as a csv file. This way, I can easily work on any given text block independently, without having to worry about the others.
- I do all the translation from the csv in a spreadsheet, so that I can make comments, see the length available real-time, search, copy and paste easily, etc...
- Finally, when I have a block all finished, I reinsert the text blocks to PACK.DAT in python. It's easy-peasy to just read in PACK.DAT and the translated block(s), swap out the block bytes (since I have the locations in a nice list), and close the file. Then I load the iso file as binary in python, and directly swap all the bytes of PACK.DAT. It's memory intensive and it's not efficient by any means, but it only takes a minute or so, and this way I know there will not be any issues with checksums, etc.
Perhaps over-complicated, and I may streamline this for later, but works like a charm!
One added benefit to doing it this way is that it would be much easier to translate to yet another language: I can share my csv files, and the translator can simply open them up, translate (with the built-in "how many characters do I have left" cells), and swap out the iso data with the scripts.