Because the file size has increased, I cannot make a patch.
If make a simple patch, the data behind it will be destroyed.
old boon.dmp 52 byte
new boon.dmp 68 bytes
Maybe we should update SkillSystems…?
However, I think it is just after “Str / Mag Split” is implemented.
In most cases, after a major fix, it often becomes unstable, so I want to see a little until it stabilizes.
The easiest way seems to be to disable the boon hook.
hmm… , to me, the routine hook itself seems dangerous.
//Boon and i guess anything else that may want to mess with status healing in the future
ORG $188F6
BYTE $40 $B4
callHack_r6(Boon)
callHack_r6 consumes 12 bytes.
In other words, this hook consumes 2 + 12 = 14 bytes.
080188F4 D004 beq #0x8018900
080188F6 0918 lsr r0 ,r3 ,#0x4 <<<<< Hook Point
080188F8 3801 sub r0, #0x1
080188FA 0100 lsl r0 ,r0 ,#0x4
080188FC 4310 orr r0 ,r2
080188FE 7008 strb r0, [r1, #0x0]
08018900 7809 ldrb r1, [r1, #0x0]
I think that the margin available is only 2 * 5 = 10 bytes.
Will your hook destroy 0x08018900?
In that case, does “080188F4 D004 beq #0x8018900” work correctly?
Looking at the disassembly of the boon hook, it still seems to be a problem.
080188F4 D004 BEQ #0x8018900 >>
080188F6 B440 PUSH {r6}
080188F8 4E01 LDR r6, [PC, #0x4] # pointer:08018900 -> 08B53BE9
080188FA F0B8 FFED BL 0x080D18D8 //_call_via_r6
080188FE E001 B 0x8018904
08018900 3BE9 08B5 //LDRDATA << !?
08018904 4008 AND r0 ,r1
08018906 2800 CMP r0, #0x0
08018908 D108 BNE #0x801891C