I recommend using Crystal Tile 2. It is the super best, easiest to use application.
You can find it in the utility section here on RHDN: http://www.romhacking.net/utilities/818/
If you use it and mosey over to offset $10B19 and use 1bpp mode, you will see the whole, uncompressed Japanese alphabet
This worked quite well. On the Japanese version, it showed the font perfectly. When I tried it on the English version just to see if it'd work, it seemed to start drawing the alphabet characters 1 pixel too low, as the top pixel of the font characters were cut off. Not a big deal, but anyway...
From your screenshot, it looks like you managed to create a complete table. That was probably hard without knowing the order of the letters? But kudos to you for doing it.
What I did was just create 2 savefiles and compare the bytes. I did this initially to find the location of the character names in the files. To start with, I named the character アイウエオ. This revealed that those bytes started at 80 and ended at 84. Then I tested characters in the K category, and saw that it started just after オ, from the bytes 85 to 59. Then I created a generic table starting from what I knew, A-O and KA-KO, and did S, T, N, H, M, and so on relative to this data. It required a bit of time to get the rest of the characters, since they weren't as intuitively placed.
After I got the entire library of obvious characters, I opened it up and looked for the intro dialogue while running the game. From there, I just looked for patterns to determine what certain bytes did. It took me quite awhile to realize the specific functions of the "end" codes. I still am pretty sure I don't fully "get" them. I tested out the "fade out" byte, but the fade only occurred when it normally did during the intro (meaning it probably isn't a dialogue function, but the function of the game itself). I found all it did by putting it in there was end that dialogue (with a pause), and then jump to the next dialogue.
I also found out that there is a special code, represented with [50], that seems to act like a kind of reference character. For example, when it occurs in dialogue, when it gets to the byte sequence [50 14 00], it plays the Nidorino growl sound. You can play with the second byte to make it play different sounds, though certain ones make it start printing stuff beyond the dialogue box and eventually crash, or sometimes completely skip the intro dialogue, assigning specific values for your name and your rival's name. [50 01 68 CD 00] seems to be a reference to the pokemon your rival picks during the opening bit ("(Rival) received (pokemon) from Oak").
Still not entirely sure how the references work, but yeah.
To make an English font, it is as easy as just pasting in a 1bpp bitmap of your font. I literally just type out the alphabet in photoshop, copy it, and paste it directly into Crystal Tile 2, starting wherever the Japanese alphabet started (though it could be anywhere, that is just a convenient place). Be sure to save the ROM afterward.
If the katakana alphabet started with アイウエオ, then in your table, script, and WindHex you can see those letters correspond to values 30, 31, 32, 33, 34 (hypothetically). If you pasted your alphabet starting with "abcde" on top of those letters, now, those values correspond to your English letters. If you think about "7F" not referring to ま, but referring to the tile which stores some graphical data that happens to look like ま, it should be easier to understand. If you put a heart image in that same box and then you run the game, all ま letters would be turned into hearts.
Yeah, I just played with it a little and replaced some characters. Ultimately, once I replace all the font characters, I'll have to retype every line of dialogue. I will probably write a program to do this for me, so I don't have to do it all in a hex editor... I hope I'm competent enough to do so. Probably just a simple command line program.
Everyone else on this board is smarter than I am, and I'm sleepy, so I'll leave my explanation as it is. If no one has told you how to deal with pointers by the morning, I'll share what I know on that end.
I really appreciate the help, too. With the ability to edit the font, I could theoretically begin translating right now. The only problem being I don't know how feasible it is to translate with the current string lengths. Converting ”グリーンは オーキドから ヒトカゲを もらった!” to "Green received Charmander from Oak!" would be impossible, for example. Even if I just reduce it to "Green received Charmander!", it's still too long! Not to mention the maximum name length is 5 characters! huhuhuhuuuuuu......
