Jump to content

FE5 pointer tables


js394
 Share

Recommended Posts

Hey guys, as some of you know, I'm working on an update to the FE5 translation patch- http://serenesforest.net/forums/index.php?showtopic=40124

I'm trying to find the pointer tables for the text, but with no success. I'm a noob when it comes to SNES hacking, and there's not many documents covering this topic out there. Could someone either tell me the offsets of them or point me in the right direction to find them?

Link to comment
Share on other sites

Which ones?

Dialogue or menu text? Or both?

I don't have the info on me, but I remember menu pointers are easy. Dialogue pointers I never quite figured out, but DarkTwilkitri gave me a lecture on those.

If you're lucky, I should have it saved somewhere...

Link to comment
Share on other sites

Aha, found DT's words of wisdom:

Pointers.

They're relatively wierd.

Well, first an overview of the basics:

Take the ROM address 0A:AB43.

First, the FE5 ROM has an 0x200 long header, which isn't in the real cartridge, so you have to take that off.

-> 0A:A943

Also, the SNES CPU is big-endian, which means you have to reverse the bytes of the address:

But before we do that, ROMs are accessed relatively wierdly by the SNES. The entire ROM is treated like SNES memory starting at 0x800000. So you add 0x800000 to it.

BUT.

This is the wierd part.

FE5 is a Lorom, unlike FE4 which is a Hirom. I'm not entirely sure what the differences are, but it means that FE5 is stored in sections of 0x008000 instead of 0x010000. Every new section adds one to the memory 'bank' it is stored in.

That is, data in the ROM from 00:0200 - 00:81FF is 'stored' at 80:8000 - 80:FFFF, data in the ROM from 00:8200 - 01:01FF is 'stored' at 81:8000 - 81:FFFF. etc. (I think the values have to be over XX:8000, but I'm not sure on that).

In any case, you need to find what bank it's in. So, you multiply the ROM bank by 2.

0A * 2 = 14

And since it's in the second half of that bank, you add 1 to that, and you get the 'actual' bank.

So we now have 15:A943. Add 0x800000 to this, and we get 95:A943, then reverse it, and you get the SNES address

43 A9 95

Which you can search for and find at 3E:869E in the ROM, which is where the event for calling Evayle's speech in Chapter 1.

Incidentally, the event control for calling a speech appears to be 2B.

A note of interest which may help you to find text: The address of Evayle's talk appears at two places in the ROM, the second being where it is called, the first seemingly having no use (ie: code, or something). But, the address for the next dialogue is right next to the one which doesn't affect anything. I haven't looked at it any further, but it seems that a lot of dialogue addresses could be stored there? It starts at 01:5D8A.

Link to comment
Share on other sites

if it's anything like FE4 (which it probably is) dialogue pointers are not stored in a table like in the GBA series, they are only referenced in events and the event code points directly to the dialogue

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...