Jump to content
Sign in to follow this  
Vennobennu

[FE7,FE8] DS-Style Weapon Rank Bonuses

Recommended Posts

This hack allows you to give different weapon rank bonuses for the seven weapon types, and further divides those bonuses into separate bonuses for S-,A-,B- and C-rank. The hack can be installed in any region of free space you have; I recommend using Camtech's Assembly Patcher for convenience.

All the changes show up on the status screen and such. By default, the FE12 bonuses are used for C to A ranks (so bows, lances and all tomes give the same bonuses), and S-ranks give an additional 5 hit and crit. That can be changed using either the .asm source file, or some Nightmare modules I've included with the hack. Changing the values of the bonuses - and the stats to be changed - is as simple as changing a couple of values.

Additionally, the hack now supports Weapon Triangle disadvantage negating the unit's weapon rank bonuses, though this is an optional component.

To quickly install using the hex itself, which you can find here, do the following:

  1. Copy all the data to a region of free space. You'll need 0x34F free bytes.
  2. At 0x2AD68 for FE8, or 0x2898C for FE7, paste the following code:

    00 4B 18 47
    YY YY YY YY

    Where "YY YY YY YY" represents a pointer to where you pasted the data, +1.
    ex. to point to 0xB2A610, add 0x8000001, then reverse the bytes.

    08 B2 A6 11 -> 11 A6 B2 08

Otherwise, follow the instructions included with the full download.

Here's the link for that. Enjoy!

Edited by Vennobennu

Share this post


Link to post
Share on other sites

tbh I think putting the .dmp and .asm files in spoilers would be much better than making people download and extract the zip folder

otherwise it looks really cool :B):

Share this post


Link to post
Share on other sites

devkitpro

dkp

which contains

(dka)

which is based off of GNU toolchain, including but not limited to

gcc

Edited by Aleph

Share this post


Link to post
Share on other sites

Does the implementation set default values for the bonuses? (If so, what are they?)

Should the user want to change or further subdivide the bonuses, how do they go about doing that?

Would be helpful to have this information at least in a spoiler in the first post, just to give potential users an idea of what the code actually allows them to do.

For all I know, this is covered in a file in the ZIP, but it would certainly be handy to have an idea of the breadth of scope that this allows for BEFORE downloading the file - since I don't hack myself, I have no reason to download the ZIP, but even if I did, I'd really want answers to these kinds of questions (or at least examples that cover them) so that I could determine if I wanted to use it or not.

Edited by Lord Glenn

Share this post


Link to post
Share on other sites

Why does it have to be a zip anyway? It's probably not that big and there's probably a tiny txt source file we could look at to have the answers to glenn's questions without asking for them.

Share this post


Link to post
Share on other sites

Why does it have to be a zip anyway? It's probably not that big and there's probably a tiny txt source file we could look at to have the answers to glenn's questions without asking for them.

tbh I think putting the .dmp and .asm files in spoilers would be much better than making people download and extract the zip

Share this post


Link to post
Share on other sites

I don't think it should be embedded in the post though. I think it should be linked offsite, such that it can be opened in the browser (in another tab or whatever) if desired.

Share this post


Link to post
Share on other sites

So much ASM hacking, yay~

I wonder if my ASM tutorial came in handy for anyone yet, it's nice that ASM hacking is becoming a more common thing that more people can do

Share this post


Link to post
Share on other sites

I wonder if my ASM tutorial came in handy for anyone yet

It helped me a lot. A combination of your tutorial, doc on gbadev and talking to Alex on skype.

As for this hack, how flexible is it? Eg can you set bonuses for ranks below C, how many bonuses can you set etc

Share this post


Link to post
Share on other sites

Sorry for not responding sooner, I've been on vacation and have spent little of my time at a computer.

But yeah, this wasn't presented well previously, so I've updated the OP and the download. Now you can just patch with CT075's patcher and edit the boosts given directly with some Nightmare modules. There's also a separate link to the raw data, so if you just want to install it by itself you can do that. I've also made the full download into a mere folder, as it indeed isn't large at all. You live and you learn I suppose.

It helped me a lot. A combination of your tutorial, doc on gbadev and talking to Alex on skype.

As for this hack, how flexible is it? Eg can you set bonuses for ranks below C, how many bonuses can you set etc

The way it's set up, you can assign bonuses for four ranks - personally, I don't see the point in giving bonuses for D or E ranks, as most all units will just start out with that already.

Each rank for each weapon type can independently boost up to three different stats. I think that's plenty (and it's best to keep this mechanic simple imo), but allowing for more would also be a simple change.

So much ASM hacking, yay~

I wonder if my ASM tutorial came in handy for anyone yet, it's nice that ASM hacking is becoming a more common thing that more people can do

Your ASM tutorial was definitely handy, especially for the links to thumbref and other references, and your example routines.

But, I think what was most helpful for me was reading through the game's routines with a debugger, being able to see what the game was doing and how. After using a debugger, assembly became ten times easier to understand for me, just for being able to see what the code is doing and change it readily.

Share this post


Link to post
Share on other sites

But, I think what was most helpful for me was reading through the game's routines with a debugger, being able to see what the game was doing and how. After using a debugger, assembly became ten times easier to understand for me, just for being able to see what the code is doing and change it readily.

that's great, that's probably one of the best ways to learn if not the best way to learn, ultimately hands-on experience/figuring stuff out for yourself is the way to go, [weird analogy incoming] at best tutorials will show you how a race is done and put you at the starting line, they won't race for you

and don't forget that competition brings the best out of people so share your hypothetical driving skills with everyone or you will just have an unrewarding race where you sit in first place

I may or may not have been playing Need for Speed a little over an hour ago okay?!

Share this post


Link to post
Share on other sites

Stepping through code in a debugger has to the be the best way to learn. I can't imagine deciphering what the hell "eor" meant as fast as I did otherwise. Someone brand new to reverse engineering and CS isn't going to know what truth tables or boolean alebgra operations are.

Edited by Aleph

Share this post


Link to post
Share on other sites

I've updated the hack again - now, you can optionally set things so that having weapon triangle disadvantage negates your weapon rank bonuses.

I've also fixed another small bug with Light magic ranks - hopefully everything should work properly.

Share this post


Link to post
Share on other sites

I'm attempting to apply this mod to FE7 manually (since the link to camtech's assembly patch is broken) and I followed the instructions to do it. I used the insert binary data option to dump the data in the rank.dmp file using windhex as my hex editor at 0xfd8790. I changed the bytes at 0x28e8c be 0xfd8790+800001, then inverted to get 91 87 fd 08. I changed the offset of the nightmare module to 0xfd8790+0x64 as it instructed, opened up nightmare and my the desired changes. But in the end it didn't apply. I even tried making the bytes at 0x28e8c a187fd08 which would point to the offset 0xfd87a0 and it does apply.

Am I doing anything wrong?

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.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...