Text Encoding in Kingdom Hearts
Over the past few weeks, I’ve taken a look at the way text is stored in the game Kingdom Hearts. Like other games made by Square, Kingdom Hearts uses a special character map for strings throughout the game. The US and PAL versions of the game use a character map consisting of Latin characters and common symbols. The Japanese releases use a different table containing Japanese characters as well as uppercase Latin letters (there are a few lower case ones though, but not a full alphabet). Most text is compressed using a LZSS-like algorithm, but I was able to poke around at some of the non-compressed areas. For example, the menu items on the pause screen are not compressed and can be modified if you know the correct characters to enter. So far I am able to change these items as long as my modification’s don’t overlap any neighboring strings._
_
I started with the original Japanese release of Kingdom Hearts and was able to do this by modifying the game’s ISO:
I created a tool that can convert plaintext to the character set used in the game. If you’re interested you can download it here. It requires .NET Framework 4.0 SP1 and currently cannot convert Japanese characters. A table created by Falo can be used to manually convert them by hand. I’ve tested it on these versions of the game:
- Kingdom Hearts (SLUS-20370) USA
- Kingdom Hearts (SLPM-66122) Japanese (Uses Shift-JIS encoding)
- Kingdom Hearts Final Mix (SLPM-66123) Japanese (Uses Shift-JIS encoding)
I’m hoping someone will see this post and be motivated to continue work on a full translation patch some day for Final Mix. I don’t have the time to do it myself and it might be pointless to pursue it once Kingdom Hearts HD 1.5 is released in the US, since that contains the additions that were present in Final Mix. KH-Vids.net user Hidden Smithery has already offered help and was able to translate the following for the Japanese versions of the game:
Item: エーテル ETHER Code: E3 55 F2 19 08 32 41 35 32 3F Item:メガエーテル MEGA-ETHER (name is too long) 19 01 19 0E E3 55 F2 19 08 3A 32 34 2E 2C 32 41 35 32 3F Item:ポーション POTION Code:19 27 55 EB 19 2F 19 0D 3D 3C 41 36 3C 3B 01 01 Item:メガポーション MEGA-POTION Code:19 01 19 0E 19 27 55 EB 19 2F 19 0D 3A 32 34 2E 2C 3D 3C 41 36 3C 3B 01 スロット SLOT EC 19 0A 19 30 F3 40 39 3C 41 01 01 ソラ SORA (too long) EE 19 06 40 3C 3F 2E たたかう ATK (the word "ATTACK" is too long) 9F 9F 95 92 2E 41 38 01 まほう MGC (the word "MAGIC" is too long) AE AD 92 3A 34 30