I need help dumping text gba with Cartographer ?

KatoriVN

New Member
OP
Newbie
Joined
Oct 18, 2021
Messages
2
Trophies
0
Age
24
XP
47
Country
Vietnam
I'm newbie. I have problem with translating pokemon gba game, specifically pointer, I don't understand what pointer table start is, the font I edited and have a table with corresponding characters. Now I use Cartographer and atlas to dump text but I don't understand pointer table start and pointer table end. I read cartographer's readme but I don't understand. Can someone point me specifically, how to "get" pointer table start ?
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Depending upon what pokemon game it is then do check to see if there are not already tools to handle text -- pokemon is quite advanced when it comes to hacking tools, and also one of the harder series to hack from a general hacking perspective.

GBA pointers then.
The GBA ROM is visible in memory between 08000000 and 09FFFFFF in memory, and a few other mirror locations that nobody really uses. 09000000 through 09FFFFFF corresponds to 16 megabytes and above (any hacker or homebrew type can use this space to expand into trivially if they want though) which means the vast majority of pointers start with 08 and have 6 numbers after them that correspond to the location in the ROM.

You then have two, maybe three methods of searching for things.

1) If you know where the text is then either the start of the text or end of the line is where the pointers will correspond to. This means you can generate what you think will be the pointer and search for that.
1a). As above then pointers are typically going to have 08 with a gap of 6 between them. Search for 08 and if you find a run of them spaced about that far apart (08 is a valid, indeed quite probable, thing to have in pointers so it does not have to be exactly 6 every time). Said pointers will also often be just before the text as well.
2) Tracing. You know where the text is (relative search, mathematical methods, inference, corruption, more tracing... it really does not matter). Now you can find a debugging emulator and set a break on read for the text, get to a point in the game where the text is loaded up and the emulator will stop proceedings, say something just read the area you told me to watch. You go back up the instructions that proceeded it and something will have generated the read request, this will necessarily have been the pointer you are after which in most cases will have started life also in the ROM.
https://www.romhacking.net/documents/361/ is my usual link for tracing, it covers finding graphics but the principle is much the same (find something in RAM or ROM and follow it back up through reading). The emulator it uses is a very old one and today most will be using no$gba debug version, or possibly mgba with something like https://wrongbaud.github.io/posts/ghidra-debugger/
This will involve learning some assembly but basic tracing does not need a particularly in depth understanding.


Again I will also note there are tools here to handle text, probably even for the oddball pokemon branded games (all mainline pokemon titles should be handled, mystery dungeon likely has some things and no idea about pinball). If you absolutely insist on not using them for your translation (they are pretty stable these days compared to the buggy ones of old) then you can still use them to figure out pointers -- find a line of text, make it longer than the original and what changed in the ROM will be your text change and the pointer handling it/what follows it.

I am somewhat hazy on atlas and cartographer these days and the whole 08 thing above (technically an offset if you want to think of it that way - add 08000000 to the location in the ROM, accounting for endianness of course, and you have the pointer) did make things harder vs the NES and SNES stuff those tools were mostly aimed at (though they are very powerful general purpose tools so can probably get it done if they have to). Some prefer kruptar7 and oriton but most will tend to make custom tools really for any serious editing work.
 
  • Love
Reactions: KatoriVN

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    realtimesave @ realtimesave: I have it in my hands