Jump to content
Jotari

Reduce Weapon Effectiveness

Recommended Posts

I'm playing around with trying to make Idoun and actually challenging boss. It seems that her current stats aren't that bad, the only thing that makes her a chump is weapon effectiveness tripling weapon might (Roy deals single digit damage against her without the weapon effectiveness and over 40 with it). So is there any way to easily changer weapon effectiveness from tripling weapon might to just doubling it? Using FEBuilderGBA by the way. I'm guessing even if I have to jump into Hex or something under the hood, it should be as simple as changing a two to a three. I just don't know where that three is.

Share this post


Link to post
Share on other sites
On 8/6/2018 at 11:46 AM, Jotari said:

I'm not sure what that means.

Open your rom in a hex editor (like HxD; if you use FEBuilder, I believe that has a built-in hex editor), go to the address 248D4, and write 00 00 there.

Share this post


Link to post
Share on other sites
1 hour ago, Tequila said:

Open your rom in a hex editor (like HxD; if you use FEBuilder, I believe that has a built-in hex editor), go to the address 248D4, and write 00 00 there.

Can you explain what effect that's having or why it should work? Because it doesn't seem to be. Character still deal the same amount of damage with weapon effectiveness (it also allows me to continue playing the game after Roy dies for some reason).

EDIT: That Roy surviving is a separate issue that;s probably something to do with Manakete weapons. Changing 248D4 to 00 doesn't seem to have any effect on my game. You say 00 00, should I be changing 248D5 too?

Edited by Jotari

Share this post


Link to post
Share on other sites
18 minutes ago, Jotari said:

You say 00 00, should I be changing 248D5 too?

Short answer: Yes.

Explanation: We're editing assembly code here.

NcxRPfm.png

The first two instructions load the attack into r1, which is a register (think of a register as a container that has a value in it). To multiply by 3, we use lsl (logical shift left, akin to multiplying by powers of 2) to multiply by 2 (2^1, where 1 is the argument on the far right (h stands for hex)) and put that value in r0. Then we add the original value to r0. 2*number + number = 3*number. We could use mul, which is multiplication (and is probably what you were expecting to find), but the compiler preferred to use an lsl/add combination, which is slightly faster.

To multiply by 2, we just want to get rid of the "add r0,r0,r1" instruction, which is why I had you write 00 00. That encodes the instruction "lsl r0,r0,#0", or "multiply value in r0 by 2^0 = 1", which means the value stays the same. If you only change the first 00, you'll get the instruction "add r0,r0,r0", which doubles the value (this should mean effective weapons deal 4x damage!).

If you want to understand assembly a bit more, give this a read.

 

Share this post


Link to post
Share on other sites
7 minutes ago, Tequila said:

Short answer: Yes.

Explanation: We're editing assembly code here.

NcxRPfm.png

The first two instructions load the attack into r1, which is a register (think of a register as a container that has a value in it). To multiply by 3, we use lsl (logical shift left, akin to multiplying by powers of 2) to multiply by 2 (2^1, where 1 is the argument on the far right (h stands for hex)) and put that value in r0. Then we add the original value to r0. 2*number + number = 3*number. We could use mul, which is multiplication (and is probably what you were expecting to find), but the compiler preferred to use an lsl/add combination, which is slightly faster.

To multiply by 2, we just want to get rid of the "add r0,r0,r1" instruction, which is why I had you write 00 00. That encodes the instruction "lsl r0,r0,#0", or "multiply value in r0 by 2^0 = 1", which means the value stays the same. If you only change the first 00, you'll get the instruction "add r0,r0,r0", which doubles the value (this should mean effective weapons deal 4x damage!).

If you want to understand assembly a bit more, give this a read.

 

Ah, I see. That does make sense to me (I haven't used it in a few years, but I did study some basic assembly once upon a time). I guess they knew from the very start they wouldn't be altering effective damage, so making it an addition rather than a multiplication was sensible. This will change the game massively, as not only will it make manaketes harder to take out, but it'll also affect the power of Bows on fliers. Hmm. It'll be interesting to see how things play now. Thanks a bunch.

Share this post


Link to post
Share on other sites

Double posting because Serenes is doing that glitch where it won't let you edit posts.

Is there any way to see what the assembly is doing from the Hex Editor in FEMakerGBA?

Share this post


Link to post
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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...