Text pointer questions

So i’m trying to make a program in python to edit ROMs in a more user friendly way than with FEditor, nightmare and the buildfile method, i kinda have the basic setup to edit characters, but i haven’t been able to figure where do the name and description pointers actually point.
I have tried to look for names in hxd but i just get the names weirdly placed.
So, anyone could explain me how the text table/text pointers work?

The text table (starts at 0xB808AC for FE7, 0x15D48C for FE8) is a table of pointers to text data. The pointed text data is huffman encoded (see GBATEK for details about how data should be laid out), which means you can’t just open up a hex editor and search for raw ascii text. FEditor & buildfile users patch the ROM with a anti-huffman patch to allow writing raw text without having to compress it (I believe to differentiate compressed and non-compressed text we OR some value to the pointer? I’m not sure on this one). You could look at the FEditor source to see how text is read there from the ROM (handling huffman decompression).

Hope this all helped :slight_smile:

here’s python code to un-huffmanize a string using a ripped huffman table from an FE7 ROM. For FE8 you’d have to find where the tree is located. It takes a string of hex digits which is inefficient; it’s be presumably easy to modify to just take integers.

Thank you both, i’ll start looking onto it ASAP