All right, there are a few burning 'issues' with the text in the system.
First we don't really need to convert the FF7 text to ascii (just the other way around) however this is not a good idea to convert FF7 just to ascii (my view).
I believe what is needed is unicode to FF7 text conversion instead.
Reasons?
1) this expands the number of symbols that can be used in the engine to an international set of symbols for testing or what have you
2) it will help debug (debunk) the proper Kanji Katakana Hiragana etc. symbols used
We
want SYMETRICAL functions for this. That is we should be able to take Unicode and make an FF7 string, then take an FF7 string and make Unicode output. For the actual engine this is not particularly useful generating unicode symbols from FF7 text that is. The former is useful for handling XML data to be inserted into the engine for debugging. However generating unicode to some sort of debugging console I think is useful for finding out the Japanese encoding. Anything the FF7 to unicode function cannot translate should be hexencode like Postscript (IE 0xEA, 0x02 is emitted "<EA02>").
Since I do not have the Japanese Version of FF7 (or International version), this makes for a few problems for me, I am not able to do any of the symbology matching with the code set. I'm fairly certain the US version and the Japanese version have a similiar set of symbols, the US version likely just has the 2 byte prefix symbols removed for the Katakana Hiragana and Kanji symbols. Micky made a table to convert FF7 code to Unicode, I'm not sure if this is a full symbol set (all 256 base codes). I don't think it covers the prefix symbols for multibyte encoded symbols (like Japanese symbols would be). If it covers the full 256 symbol set, then running FF7 Japanese will require the engine to actually know it's running the Japanese version (which to be blunt would suck because I would rather the engine be version agnostic for that).
This really only applies for debugging dialog output.
Now what to call this function.
FF7TextToDebug?
FF7TextToUnicode?
For debug output it would be good for specialized text for cloud tifa cid etc output (party1 party2 party3) color indicators etc. so that there is some sense to what someone is looking at. For converting to just unicode I suppose that hexcode output will work (IE <B2> <B3> <D2> instead of {DialogBegin} {DialogEnd} {Grey}).
Do we need 2 functions (debug and unicode output) or just one with a flag of the type of output?
FF7TextToUnicode(void *FF7Text, int Conversion)
where conversion is
FF7None {any symbols that cannot convert to unicode are ignored}
FF7Unicode {any symbols that connot convert to unicode are in HEX format}
FF7Debug {any symbols that cannot convert to unicode are in detailed debug format}
Before the going with this dicusion becomes weird I am reading
this FAQ about unicode and Linux, obviously we want to make this code more universal than would be otherwise using windows specific code.
For UTF8 enoding I don't think this will be too big an issue since most of the symbols in FF7 fit within the UCS encoding ranges (maybe even Circle Square Triangle X too
).
Anyhow this is something that likely needs to be done. As far as I know there are only 3 official translations. Europe, US, and Japan? Unless Europe had further subdivided versions? I can't seem to find a list of the number of offical translations. So if anyone knows what languages it was officially translated into, I would be glad to here about this.
Cyb