Sign in to follow this  
Strict_Gryphon90

[SOLVED] Change Critical Damage Multiplier

Recommended Posts

Greetings everyone,

I would like to change the critical damage multiplier in my hack from 3 to 2. I looked for a nightmare module that could to this to no avail, I'm not comfortable enough with ASM to do that stuff on my own and I couldn't find a topic that has dealt with this issue. So I am reaching out to you wise sages of the Questions sub forum.

Any help that can be provided is greatly appreciated.

Gryphon

Edited by Strict_Gryphon90

Share this post


Link to post
Share on other sites

In FE7, change 40 18 at 292E6 to C0 46.

080292E4 0048 lsl r0,r1,#0x01 @damage is stored in r1. lsl = logical left shift = multiply by 2^1 = 2

08029eE6 1840 add r0,r0,r1 @add the number at r1 (the original damage) to the number at r0 (original damage*2) for a total of (original damage*3).

Zeroing out this second command leaves it at 2x damage. If you want it at something else, like 1.5x or 2.5x, that's gonna be a little more tricky.

In FE8, do the same thing at 2B528.

Does this mean I'm a wise sage now?

Edited by Tequila

Share this post


Link to post
Share on other sites

In FE7, change 40 18 at 292E6 to C0 46.

080292E4 0048 lsl r0,r1,#0x01 @damage is stored in r1. lsl = logical left shift = multiply by 2^1 = 2

08029eE6 1840 add r0,r0,r1 @add the number at r1 (the original damage) to the number at r0 (original damage*2) for a total of (original damage*3).

Zeroing out this second command leaves it at 2x damage. If you want it at something else, like 1.5x or 2.5x, that's gonna be a little more tricky.

In FE8, do the same thing at 2B528.

Does this mean I'm a wise sage now?

1.5x is extremely easy, just change the 4800 at 0292e5 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 A1 88 05 20 48 43 40 10 at 292E0. 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]

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.