UnassumingVenusaur Posted March 17, 2018 Share Posted March 17, 2018 Thanks to the ease of FEBuilder (and its wonderful repointing abilities) I've been looking into slightly more complex FE7 hacking than what I've tried before. Right now, I'm experimenting with trying to add more things like support conversations and paired endings. Adding the conversations themselves and new endings is extremely easy with FEBuilder, as is giving units with less than 7 support partners up to 7. What I'm struggling with, though, is trying to push that upper limit for units that already have 7. The structure of the support blocks is extremely simple (Character IDs of partners-->base values-->growth rates-->number of supports plus 2 0x00's), so first I just tried to change Eliwood's 'number of supports' byte to 0x08. The results were pretty straightforward. The game read the 0x48 that indicates Hector and Eliwood's support value as referring to an 8th support with Bernard (character ID 0x48), and it didn't disrupt anything else. So next, I tried to add data for an 8th support with Raven in the places they'd logically be corresponding: 0x04 for his character ID, 0x09 for his starting value, 0x02 for his growth rate. Unfortunately that did not work in game the way I'd hoped. Not only did it not read Eliwood as having an 8th support w/ Raven, it also threw off everyone else. After more digging and experimenting, (and if anyone knows I'm wrong here please correct me), I inferred that even if you change the number of supports to something above 0x07, the game still only reads in sets of 0x7 ahead in looking for the data. That is, when looking for the starting value for Hector and Eliwood's support, instead of reading 8 bytes ahead of Hector's character ID to the new location of the 0x48, it instead reads what was supposed to be Raven's character ID of 0x04. And continuing on like that it makes sense why only 3 of Eliwood's supports appear; it reads a 0x03 where it expected the 'number of supports' byte to be. I briefly looked at FE6, since I know there's a cap of 10 supports in that game rather than 7, and the support blocks seem to be structured in quite the same way. It would seem that if the game knew to read 0x8 bytes ahead instead of 7, (and possibly 0x1B instead of 0x18 to the next character's support block, not sure how that works), it would work fine. Since the same system seems to be compatible with different numbers of supports, does anyone know if this is a matter of (a) value(s) that I could change somewhere? Namely a 0x07, and/or a 0x18, or something like that? I don't have the knowledge of where that kind of thing would be located, but if anyone knew its location or could point me in the right direction, that'd greatly be appreciated! Or possibly there's a different solution to my problem entirely that I'm not aware of. Thank you! Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.