Up. I had way more problems with text than I expected. And it doesn't work so well now...
I also added some features to facilitate the edition. You can sort spells, commands and enemies by alphabetical order and you can also make enemy changes faster with the option "Edit similar enemies" which make the stat changes shared by every enemies with the same name and level (to avoid changing every Beatrix fights together, for instance).
The bugs/problems there are with texts for now :
- You can't export them as .ppf : I saw there was a bug with ppf exporting so I'll try to fix that before I continue it,
- You may only shorten the texts : I need much more investigation on how texts are coded and I don't want to work on the saving feature until I've went further. However, you can export texts as a .txt file so you can begin to work on it if you want to translate FF9,
- Not all the texts are available. All the dialogs are, but pretty much everything related to the menu are not (the menu sections, obviously, but also the item names and such...),
- The special character µ is shown as plain text, as well as the code it calls. Shortly, that means that µ and some of the following characters (at least 1 but often more) are to be ignored,
- As a side effect of the previous bug, some few texts are misread and shortened while some others are longer than they should (you'll see what I mean if you encounter it),
- The first text block is incomprehensible. I don't know what purpose it serves.
Actually, I was more willing to work on scripts and opcodes. Anyone who has infos on how texts work would have my eternal gratitude, because that quiet bores me to find it ^^'
The rest of the post is some boring data informations I know.
So, about the 0x06 chunks, here is what I know :
2 bytes TextAmount
2 bytes Unknown/Unused
[
2 bytes TextOffset (from the first text offset position)
1 byte Some Flag?
1 byte Some Flag?
] x TextAmount OR TextAmount x 2
Remaining Texts
Sometimes, the datas are doubled. It might be when the 2nd flag is 0 that the current and the previous texts are linked but I don't really know... For what I saw, dialogs and field texts are doubled while battle texts are not. When texts are doubled, it seems the 2nd offset is the one used...
Here are the opcodes I know, occuring after the character µ (0xF9) :
- 2 (0x02) : slow text apparition (takes 1 argument),
- 4 (0x04) : tokenize the text (1st argument is the number of tokens and following 2 bytes-long arguments are their offset),
- 8 (0x08) : add multiple-choices feature (no argument),
- % (0x0E) : insert text specified in the script file by the command 0x66 (takes 1 argument),
- A-I (0x10-0x18) : insert the name of a team member (no argument),
- U-Z (0x24-0x29) : change the text color (no argument),
- È, Ó and - (0x55, 0x5C and 0x0B) : terminate text (no argument),
- Ü (0x63) : insert the pad square button picture (no argument),
- ò (0x71) : new line for multiple-choices feature (no argument).
EDIT : minor update to fix my chartable. Some special characters were somehow wrong or missing.