Hello everyone, first of all, English is not my native language, and I'm a newcomer to this forum, so please forgive my poor English and breaking the forum's rules, sincerely thanks.
Due to hobbies, I’m attempting to make a Chinese translation hack, the game is Ryuusei no Rockman: Ice Pegasus (also named as Megaman Starforce), presented by CAPCOM.
For preparation, I have read some tutorials (like gba-and-ds-rom-hacking-guide). By glance over the whole rom, I’ve found kinds of fonts like below. These fonts were stored in arm9.bin.
Presuming that the table was sorted by the same order, I choose a word and using the relative searching for verification. Indeed this is the table. But there are 483 kinds of characters (space included) and the game used only 2 bytes to represent a character (maximum 256 kinds), so I created a .txt table file range in 00 to FF, 00 = (space), 01 = 0 , 02= 1, etc. And leaving an question.
Furthermore, by relative searching I’ve found all messages were stored in mess.bin (mes = message, s for plural, strange naming)
Here is the progolue in game
By compare these nonsense I’ve got some information:
Red box: In game the message was “220X年…”. Compare one by one, E4 95 = 年, so we can learn that E3 = ぱ, E4 00 = ぅ, E4 01 = ぁ, etc. 8A = “.” But there is 00 between these dots, I don’t know what represented it was. By the way, E9 00 represents enter.
Green box: 9D AE E4 02 05 9D = “うちゅう”. From the table we know E4 05 = ゅ, but it was E4 02 05, 02 between E4 and 05.
Blue box: the text in game was “ニホンうちゅうかがくきゅく” and it used 20 23 to represent “うちゅう”. How odd it is! What a nightmare, there are many similar situations in the text.
Also I’ve tried to replace some bytes, expecting the right reaction. Found that if the 00 or 02 has been changed, the text will rolling endlessly, like overflow.
Frankly I’m wondering the feasibility of making a translation hack.
1) Chinese translation needs thousands of characters. I doubt that one character set has up to 244 elements (0XE4 = 244d). But E5 to FF are probably control codes so maybe I can’t create a new character set.
2) The game has 3 kinds of fonts, all of them were stored in arm9.bin so I'm wondering that is the arm9.bin can be expanded
3) The mess.bin is unreadable. There are a lots of 00 in sentences, and some bytes between sentences, sometimes 4 bytes, sometimes 6 bytes. The most tricky question I’ve mentioned above, is 20 23 = “うちゅう”, looks like no rules to follow.
Can you give me some advices? Thanks for the help!
Due to hobbies, I’m attempting to make a Chinese translation hack, the game is Ryuusei no Rockman: Ice Pegasus (also named as Megaman Starforce), presented by CAPCOM.
For preparation, I have read some tutorials (like gba-and-ds-rom-hacking-guide). By glance over the whole rom, I’ve found kinds of fonts like below. These fonts were stored in arm9.bin.
Presuming that the table was sorted by the same order, I choose a word and using the relative searching for verification. Indeed this is the table. But there are 483 kinds of characters (space included) and the game used only 2 bytes to represent a character (maximum 256 kinds), so I created a .txt table file range in 00 to FF, 00 = (space), 01 = 0 , 02= 1, etc. And leaving an question.
Furthermore, by relative searching I’ve found all messages were stored in mess.bin (mes = message, s for plural, strange naming)
Here is the progolue in game
By compare these nonsense I’ve got some information:
Red box: In game the message was “220X年…”. Compare one by one, E4 95 = 年, so we can learn that E3 = ぱ, E4 00 = ぅ, E4 01 = ぁ, etc. 8A = “.” But there is 00 between these dots, I don’t know what represented it was. By the way, E9 00 represents enter.
Green box: 9D AE E4 02 05 9D = “うちゅう”. From the table we know E4 05 = ゅ, but it was E4 02 05, 02 between E4 and 05.
Blue box: the text in game was “ニホンうちゅうかがくきゅく” and it used 20 23 to represent “うちゅう”. How odd it is! What a nightmare, there are many similar situations in the text.
Also I’ve tried to replace some bytes, expecting the right reaction. Found that if the 00 or 02 has been changed, the text will rolling endlessly, like overflow.
Frankly I’m wondering the feasibility of making a translation hack.
1) Chinese translation needs thousands of characters. I doubt that one character set has up to 244 elements (0XE4 = 244d). But E5 to FF are probably control codes so maybe I can’t create a new character set.
2) The game has 3 kinds of fonts, all of them were stored in arm9.bin so I'm wondering that is the arm9.bin can be expanded
3) The mess.bin is unreadable. There are a lots of 00 in sentences, and some bytes between sentences, sometimes 4 bytes, sometimes 6 bytes. The most tricky question I’ve mentioned above, is 20 23 = “うちゅう”, looks like no rules to follow.
Can you give me some advices? Thanks for the help!