[FE6] HP cap problem

I’m new to hacking ROMs, and one of the things I wanted to change in the mod I was working on was the HP cap. There seems to be a global cap on all player controlled characters, limiting their maximum HP to 60, while no such cap is imposed on CPU controlled characters, so their HP cap is associated with the class cap instead of this global cap.

I was wondering how one could go about finding the hex offset associated with this global cap so that it could be edited. As far as I know it isn’t explicitly associated with any one class, so there isn’t a path that can be followed there. If this is a stupid question I apologize, I’m still pretty new to this stuff.

https://www.dropbox.com/s/18af0d30zd5lzb5/HPcap.txt?dl=0

I made this little document a while ago, and it lists all the offsets for all three GBA games you will need to edit to make this work.

However, keep in mind, there is a memory bug that will subtract 64 from a character’s max HP if it is 64 or more when you restart a chapter. It only occurs that way. Not if you just play through chapters and go on to subsequent ones. I included some ways to temporarily bypass this by just using cheatcodes if you do happen to restart a chapter, but it shouldn’t happen too often, unless you restart chapters a lot (this is the same issue as with other stats being 32 or higher, and it really can’t be fixed without really delving into the memory).
Anyways, full notes are in the text file.

1 Like

Thanks a bunch. May I ask how you went about finding the offsets though?

It’s been maaaany years ago, but at the time I looked into the VBA debug function with Nintenlord, but he did most of the work since I was super young and inexperienced at the time. So I’m not really the right person to ask, but I can tell you that it’s done by disassembling code using a debugger. Someone else can tell more about this (and I’m pretty sure there’s a lot of documentation around how to go about these things).