(Fuuka and Desuko-hen... I didn't know this existed. Good to know, I guess!)
Some news regarding the 2-letters-per-glyph hack I suggested.
I've compiled (and improved) the scripts I used for my tests into a single multipurpose script -- see attached file. It can be used to convert "talk.dat" to and from an editable text format, generate glyph pairs from the strings it contains, and generate a modified "font.lzs" from previously obtained pairs.
Also, it can be used to convert ASCII strings into pseudo-SJIS strings using previously obtained "font.lzs". Finally, for those who frown upon this whole "letter pair" hack, it can be used to substitute ASCII letters by full-width SJIS romajis, as Tidusnake666 suggested. (Please note that the "talk.dat" conversion part has required quite a bit of research. You may want to read the source regarding that aspect if you're curious.) You'll need perl to run this script.
First and foremost, it seems the "talk.dat" from the US version can be simply used instead of the Japanese one, once its strings are converted. This is a bit surprising, since the number of conversation entry points differ between the two files. So I'll suppose to have the US version of the game as well, and that you have extracted "talk.dat" from "start.dat" and renamed it "talk-us.dat".
Here are a few recipies. If you simply want to substitute all the ASCII letters by 2-byte SJIS equivalents (aka. Tidus method), just run:
Code:
perl d4tool detalk talk-us.dat -o talk-us.tlk
perl d4tool retalk talk-us.tlk -o talk.dat -2
(That's it, the generated "talk.dat" is ready for use with the Japanese version.)
If you want to try this "paired letters" thing, extract EXTRA_STRINGS and PRESERVED_GLYPHS from d4tool.zip as well, and prepare the "font.lzs" and "font.ffm" from the Japanese version. I'll suppose you've renamed them "font-jp.lzs" and "font-jp.ffm" for clarity sake. Just run:
Code:
perl d4tool detalk talk-us.dat -o talk-us.tlk
perl d4tool make-pairs talk-us.tlk -o font.pairs -m font-jp.ffm -k PRESERVED_GLYPHS -x EXTRA_STRINGS
perl d4tool make-font font-jp.lzs -Q 254 -o font.lzs -p font.pairs
perl d4tool retalk talk-us.tlk -o talk.dat -p font.pairs
(If everything went well, you should have a new "font.lzs" and "talk.dat" in the directory you've run those commands in. Simply put those two in "start.dat" with the other files. Please note also that the PRESERVED_GLYPHS is only useful to avoid overwriting some specific kanjis, and EXTRA_STRINGS to allow some interesting letter pairs used in some ".dat" files but unused in "talk.dat". Feel free not to use them if you don't care.)
Once you've generated "font.pairs" and "font.lzs", it is also interesting to substitute the ASCII strings by SJIS 2-letter-per-glyph strings in the other ".dat" files. This avoids double spacing between words, and allows the use apostrophes, slashes, and other characters that didn't work previously. It is possible to perform this substitution automatically if the original and patched files have the same size. For instance, this can be used on "zukan.dat" (supposing "zukan-jp.dat" is the original and "zukan-translated.dat" is the version from the patch):
Code:
perl d4tool diff-str zukan-jp.dat zukan-translated.dat -o zukan.diff -N
perl d4tool patch -p font.pairs zukan-translated.dat zukan.diff -o zukan.dat -P
(The generated "zukan.dat" is ready for use with the corresponding "font.lzs".)
The ".dat" files for which this trick can be used are: char.dat, charhelp.dat, charPersonal.dat, comb.dat, committee.dat, GE.dat, HABIT.dat, magic.dat, mitem.dat, mskill.dat, music.dat, MapEditMap.dat, MapEditShop.dat, MinistryMap.dat, nameplate.dat, pirate.dat, RelatedChart.dat, senator.dat, ShipParts.dat, THIEF.dat, Torture.dat, TortureNegotiation.dat, WISH.dat, and of course zukan.dat. Since the original and patched "name.dat" have different sizes, this does not work for them.
Warning: it is a bad idea to transcode the strings that will be stored in the save file, because they will become garbage should the font.pairs/font.lzs change (for one reason or another, such as preserving more kanjis). It is in particular the case of item names. Therefore, I recommend excluding the item names (but not the descriptions) from "mitem.diff". This can be either done by hand, or using the "-l 24" argument (since all item names have fewer than 24 bytes, and all descriptions have more than 24). In summary, "mitem.diff" should be generated as follows:
Code:
perl d4tool diff-str mitem-jp.dat mitem-translated.dat -o mitem.diff -N -l 24
If you've used the provided PRESERVED_GLYPHS file during the letter pairing, most of the kanjis used in the original Japanese EBOOT.bin should have been left untouched. This means that the kanjis in the yet untranslated parts of the patched EBOOT.bin are untouched as well! What's more, with EXTRA_STRINGS, buggy parts of item descriptions (e.G., "HP/SP", apostrophes, percent symbols) should have been fixed, assuming you patched the corresponding files to use letter pairs.
Finally, if you're feeling adventurous, you can try:
Code:
perl d4tool diff-str EBOOT-jp.elf EBOOT-translated.elf -o EBOOT.diff
perl d4tool patch -p font.pairs EBOOT-patched.elf EBOOT.diff -o EBOOT.elf
make_self_or_something EBOOT.elf EBOOT.bin
This may just work... But it didn't test it. I don't have a working make_self_or_something program.
Invoke d4tool without any arguments if you want to know what else it is capable of.