js394 Posted April 6, 2014 Share Posted April 6, 2014 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? Quote Link to comment Share on other sites More sharing options...
VincentASM Posted April 6, 2014 Share Posted April 6, 2014 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... Quote Link to comment Share on other sites More sharing options...
js394 Posted April 6, 2014 Author Share Posted April 6, 2014 I need dialogue. I can probably figure out the menu pointers, but if you know about them then that'd be great! Quote Link to comment Share on other sites More sharing options...
VincentASM Posted April 7, 2014 Share Posted April 7, 2014 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. Quote Link to comment Share on other sites More sharing options...
Lamia Posted April 11, 2014 Share Posted April 11, 2014 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.