[FE8] How to change the critical damage Multiplier

I have a question. How do I change the critical damage from 3x to 2x?

2 Likes

Thank you.

1 Like

xposting here because it’s useful

FE7 offset is 292E0
FE8 offset is 2B522
1.5x is extremely easy, just change the 4800 at [fe7: 0292e4][fe8: 2b526] to 4810 to
change it from lsl to asr, which is a right shift, which divides by 2.
For 2.5x, you’ll need to paste write [fe7: A1 88 05 20 48 43 40 10][fe8: A9 88 05 20 48 43 40 10] at
[fe7: 292E0][fe8: 2B522]. That changes the original move and load signed halfword into a
single unsigned halfword load, which gives me room to load in a 5 into
r0 then use the fact that the GBA’s processor supports multiplication.
The end result is

ldrh r1, [r4, #0x4] @or ldrh r1, [r5, #0x4] for FE8
mov r0, #0x5
mul r0, r1, r0
asr r0, r0, #0x1

Which multiplies the damage by 5, then divides by 2 to get 2.5x damage.
Incidentally, with this, you can set your crit multiplier to any number or any half number you care for.

Of course, this is making the safe bold assumption that damage is stored as an unsigned value.

2 Likes