[FE7] Attempting to break the Signed HP restriction

I’m breaking on read on the MaxHp/currentHp bytes in ram and in the unit data, as well as what we know so far. I’m not delving into growths, but the caps themselves.

08018AC4
08018A74
(current HP)

08018A86
(Max HP)

08029510
08029440
08029518
(Battle data current HP)

0803371E
0803379E

080337CA
08028CE2
(Map Battle Preview Display)

Found another one.
08017C6A
08018A9E
08018210
08018224
08018222
08018242
Does something with writing back HP after battle?

Change all of these to their unsigned versions.
This works so far, except the display in battle glitches, but the actual numbers are preserved.

From Nintenlord’s notes, the offsets I’ve missed:

0203a482 read by(during level up)

080522d0

0202BD62 read by(during level up)

0802997a
0802999e
08068b8a
08068bd4

In-Battle Display?

08029F22

1 Like

[5:30:45 AM] Crazy Colorz: On a related note
[5:31:01 AM] Crazy Colorz: 08017C8C has 0x78 which seems to be the cap of 120HP?

More on Breaking the HP cap: After battles, if it’s a player unit, HP is capped at 08017C86. Remove the check at 08017C80 (write a FF there).
Enemy HP is capped at 08017C8C (to 0x78) (check at 08017C76)

Nintenlord’s Notes, additionally:

Causes the HP to reset to 60 when levelling up:

08029996
080299ac

The most surprising part is that this seems fully functional except for the display in battles (the HP bar and number glitches)

08029F38
Checks against the fire dragon’s ability.

Also, I have a sneaking suspicion about the branch at 080522D2 if nothing else works.
0203E0BA is Max HP number?
0203E0BE is max HP to draw (for the right hand player)
0203E0C2 is the current HP to draw
Both halfwords

Cast to signed halfword at 080522C4. Get rid of that too

For safe measure, also change 0804D6C6

Damage is also treated as a signed byte, though it is calculated as a signed halfword. The damage cap is at 080292F0 and lethality damage is at 080292CC (changed if you install any of my hacks, really)

In calculations, at 08029454, it is shoved into the upper byte, then compared with bge(signed greater than or equal to). I would either change it to a bcc or get rid of the shove (probably the latter?)

AI doesn’t like attacking eliwood after these mods. Hmmm. Maybe it’s not cause to that though. Further investigations are necessary.

[6:37:32 AM] Crazy Colorz: Want some SCREENSHOTS?
[6:37:32 AM] Crazy Colorz: https://www.dropbox.com/s/n969pglpfqsmbp2/Eliwood%20217%20max%20hp.png?dl=0
[6:37:37 AM] Crazy Colorz: https://www.dropbox.com/s/a3uy3nu2rh2h2mb/eliwood%20battle%20preview%20display.png?dl=0
[6:37:40 AM] Crazy Colorz: https://www.dropbox.com/s/hip0hd6kn2opxa8/Eliwood%20in%20battle%20display.png?dl=0
[6:37:44 AM] Crazy Colorz: https://www.dropbox.com/s/mdjwus5qh29r2d3/Eliwood%20minimap%20display.png?dl=0

Confirmed to preserve maxHp in between chapters and across resumes.
So one of my limit breaking Codes did it

08028F44

Loads HP for Eclipse damage calculation.