Jump to content

[SOLVED] Change Critical Damage Multiplier


Strict_Gryphon90
 Share

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
Link to comment
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
Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...