Text in GBA FE games is Huffman-compressed using a custom Huffman table which encodes 2-byte "symbols". The same table is applied to every text item.


0x08AEAE8D to 0x08B7D71C - Text Data (Huffman compressed)
0x08B7D71C to 0x08B808AC - Huffman Tree
0x08B808AC to 0x08B855A4 - Text Array


Each element of the Text Array is a pointer into the Text Data. In each case, the uncompressed data is a null-terminated string. The Huffman tree is stored "upside-down", with leaves at the beginning and the root at the end. The nodes of the tree are in the following format:

* If an internal node: 2 bytes index to left child, 2 bytes index to right child
* If a leaf: 2 bytes string data, 2 bytes always 0xFFFF

Thus each node occupies 4 bytes. The indices assume an element size of 4 bytes and index relative to the start of the Huffman Tree area (0xB7D71C).