News: 11 March 2016 - Forum Rules

Author Topic: How do I identify Text in a Japanese GBA game?  (Read 1148 times)

Pridetoons

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
How do I identify Text in a Japanese GBA game?
« on: September 21, 2021, 01:18:45 pm »
So I'm trying to make a Table for a Japanese GBA game. Is there a way to identify in-game text within Hexadecimal code?

FAST6191

  • Hero Member
  • *****
  • Posts: 3280
    • View Profile
Re: How do I identify Text in a Japanese GBA game?
« Reply #1 on: September 21, 2021, 10:41:02 pm »
Same as any other console. The DS started to commonly use shiftJIS and it is not unheard of on the GBA but the GBA was mostly still quite custom and gets to be treated accordingly. Outside of homebrew then don't expect any file systems either.

The GBA had enough storage, CPU grunt and memory that you could more reasonably expect 16 bit encodings for Japanese vs only kana and/or 8 bit table swapping of some older devices (though I could probably get some GBA examples if you wanted) but it is all the same as anything else; you can try relative search (hard for Japanese but not impossible), font inference (and font orders help many times in Japanese relative search), pointer inference*, compression searching (GBA has a variety of (de)compression methods built into the BIOS and you can search for the fingerprints, or indeed note all the calls to them as they will in turn have the type, location and amount of data wanted), high score/name entry (many times it will be the same encoding and you can change it), corruption, elimination (know what something is and it is not text then don't check it for text), tracing ( https://www.romhacking.net/documents/361/ , though get no$gba debug ), statistical methods (in English most common character is space, every word has a vowel or y, most words are not more than 8 characters, RSTLNE, q followed by u, most double letters are one of a few main choices...), if you manage to find some text then altering the game to see what goes, and all the other things table finding guides teach.

*it is said that GBA pointers start with 08, this is not strictly true (there are alternative mirrors, though very seldom used, and anything over 16 megs will need things in the 09 region) but as a rule of thumb it is good. Find something that is random but still text lengths generally counting upwards (graphics would tend to be more fixed sizes after all) in a sea of 08 values with generally 3 bytes between them (08080808 is a valid pointer, and indeed 08 is more likely than some other values to be in the main pointer).

I have a worked guide for some things on the GBA and DS http://www.romhacking.net/forum/index.php/topic,14708.0.html

filler

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 989
  • "WINNERS DON'T SELL REPROS"
    • View Profile
    • Filler's Translation Projects
Re: How do I identify Text in a Japanese GBA game?
« Reply #2 on: September 21, 2021, 10:58:24 pm »
I made a short video series on finding and dumping text using a custom text encoding: https://youtube.com/playlist?list=PLkybU1NLulWjcsr1mN6rKcVJBnMsF2Efs

I also go through a similar process with a game that includes a lot of kanji here: https://youtu.be/MPKfhdwWupM

You might find those helpful.

Pridetoons

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Re: How do I identify Text in a Japanese GBA game?
« Reply #3 on: September 22, 2021, 10:52:32 pm »
Same as any other console. The DS started to commonly use shiftJIS and it is not unheard of on the GBA but the GBA was mostly still quite custom and gets to be treated accordingly. Outside of homebrew then don't expect any file systems either.

This link doesn't work.
"http://www.romhacking.net/forum/index.php/topic,14708.0.html"
The GBA had enough storage, CPU grunt and memory that you could more reasonably expect 16 bit encodings for Japanese vs only kana and/or 8 bit table swapping of some older devices (though I could probably get some GBA examples if you wanted) but it is all the same as anything else; you can try relative search (hard for Japanese but not impossible), font inference (and font orders help many times in Japanese relative search), pointer inference*, compression searching (GBA has a variety of (de)compression methods built into the BIOS and you can search for the fingerprints, or indeed note all the calls to them as they will in turn have the type, location and amount of data wanted), high score/name entry (many times it will be the same encoding and you can change it), corruption, elimination (know what something is and it is not text then don't check it for text), tracing ( https://www.romhacking.net/documents/361/ , though get no$gba debug ), statistical methods (in English most common character is space, every word has a vowel or y, most words are not more than 8 characters, RSTLNE, q followed by u, most double letters are one of a few main choices...), if you manage to find some text then altering the game to see what goes, and all the other things table finding guides teach.

*it is said that GBA pointers start with 08, this is not strictly true (there are alternative mirrors, though very seldom used, and anything over 16 megs will need things in the 09 region) but as a rule of thumb it is good. Find something that is random but still text lengths generally counting upwards (graphics would tend to be more fixed sizes after all) in a sea of 08 values with generally 3 bytes between them (08080808 is a valid pointer, and indeed 08 is more likely than some other values to be in the main pointer).

I have a worked guide for some things on the GBA and DS http://www.romhacking.net/forum/index.php/topic,14708.0.html

Pridetoons

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Re: How do I identify Text in a Japanese GBA game?
« Reply #4 on: September 22, 2021, 10:56:23 pm »
I made a short video series on finding and dumping text using a custom text encoding: https://youtube.com/playlist?list=PLkybU1NLulWjcsr1mN6rKcVJBnMsF2Efs

I also go through a similar process with a game that includes a lot of kanji here: https://youtu.be/MPKfhdwWupM

You might find those helpful.

Thank You these videos are pretty helpful. I'll sit down and watch them
for later.  :)