Strict_Gryphon90 Posted October 11, 2015 Share Posted October 11, 2015 (edited) 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 October 11, 2015 by Strict_Gryphon90 Quote Link to comment Share on other sites More sharing options...
Tequila Posted October 11, 2015 Share Posted October 11, 2015 (edited) 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 October 24, 2015 by Tequila Quote Link to comment Share on other sites More sharing options...
Strict_Gryphon90 Posted October 11, 2015 Author Share Posted October 11, 2015 It worked! You are indeed a wise sage. Thanks Quote Link to comment Share on other sites More sharing options...
Lisandra_brave Posted October 24, 2015 Share Posted October 24, 2015 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.