FE7 Skill System [WIP]

Hi all, I’ve been on the Discord for a fair bit and thought I should probably make an account here to show off what I’ve made.

After researching into the existence of an FE7 skill system and being unable to find anything concrete, I took matters into my own hands and created one myself. Yes yes, “but FE8 is better documented, and supported!”. But I still felt compelled to try, as a way to improve my own ASM knowledge and expand options for hackers in the future. :smile:

As of the time of writing, I have over 100 working skills.

GIFs of skills

No Guard - Both sides have a 100% hit rate
No Guard Skill

Bandit Breaker - Effective damage against Brigands, Pirates and Berserkers (also triple effectiveness is back)
Bandit Breaker Skill

Renewal - Restore 30% of the unit’s HP at the start of the turn
Renewal Skill

FAQ

Will you add more skills?

I have a few more skills I want to add, before I take a break. Though I intend to provide regular updates.

This skill doesn’t work.

If you find a skill isn’t applying like you intended it to, feel free to reach out to me here, on Discord or create an issue on Github. I’ll try to get to the bottom of it. :smiley:

Can I suggest ideas for skills or other features?

Sure! While I make no promises on whether it’s technically feasible, I’ll certainly give it a try if it interests me.

I can’t see what skills my unit has in-game

This isn’t currently possible, as I’d need to add icons to the stat screen. I don’t currently know how to do this, but I’m researching into how.

Special shoutouts to @Vesly @Huichelaar @GigaExcalibur @Sme @Pikmin1211 @Contro for helping me get this thing off the ground. Couldn’t have done it without you guys :heart:

Here’s a link to my Discord server for more frequent updates on the development of my skill system (as well as my own hack).

33 Likes

Congratulations on the release! The fact you’ve been able to put this together in only two months is incredibly impressive.

If you’ll permit me, I have one piece of feedback that can make this system a lot more user-friendly. Currently the weapon or character/class id that a skill is locked to is written directly into the skill code, which as you say in the readme requires the user to re-assemble the code if they want to reassign it. You can cut out this step with the use of a literal pool.

I can’t explain literal pools well so I’m just going to demonstrate how you’d use it. Take this section of code in Death Blow:

push	{r14}
add		r1,#0x5A		@total might bit
mov 	r0,#0x4A		@equipped item and uses before battle
ldrb	r0,[r5, r0]		@load equipped item and uses before battle for the attacker
mov		r3,r0
ldrh    r2,[r1]       	@store weapon might?
mov		r0,#0x14		@strength bit
ldsb 	r0,[r5,r0] 		@strength
add 	r0,r2 			@add weapon might (stored in r2) to value used to calculate strength (stored in r0)
cmp 	r3,#0x01		@equipped item is Iron Sword
beq 	DeathBlow
b 		End

Instead of writing cmp r3, #0x01 to make the skill exclusive to the iron sword, you’d write ldr r1, DeathBlowWeaponID; cmp r3, r1. And then at the very end of your code, you’d write DeathBlowWeaponID: as a label. This essentially tells the assembler that the value stored in the label DeathBlowWeaponID will be located immediately after the bulk of the code.

And then in DeathBlow.event, including the skill code would look like this:

ALIGN 4
DeathBlow:
#incbin "DeathBlow.dmp"
WORD IronSword // change this to the weapon id for Death Blow

Because this process externalizes the weapon id of the skill from the skill code to EA, you can change the weapon id without needing to re-assemble. If you look at a lot of the early prebattle skills in FE8 SkillSys, you can see they do the same thing. It just makes the system slightly more modular for the user.

Sorry if this reply was a little long-winded, you’ve done a fantastic job with your 39 skills! I’m very excited to see where this goes.

4 Likes

I find this very helpful! I’ve just started to scratch the surface of ROM hacking.

1 Like

Oh my god. I’ve just tested it out. This changes things 0_0

Implementing to all skills ASAP. Nice one Giga :heart:

1 Like

This is just phenomenal! FE7 is my favorite gba game! Can’t wait to try this fully functioning in a hack!

No problem! And please, GigaExcalibur was my father’s name. Call me Dragz.

No worries, will do.

I’ve hit a bit of a road block with tutorial characters. Do you know how I would differentiate between them? As putting

WORD Lyn

grabs her Eliwood/Hector route unit. :thinking:

1 Like

Go into Event_Assembler/EA Standard Library/FE7 Definitions.txt and you can see the identifiers for vanilla FE7 tables. Tutorial Lyn is at the top as #define Lyn_t 0x03.

1 Like

Perfect that did it. Thanks Dragz :+1:

1 Like

This is amazing, planning on add nihil and wrath? I would love to see FE4’s wrath

Thanks for the kind words :smile:

Nihil might take a while as it would probably require a restructuring of my skill system, due to skills not being defined in ways that can be easily turned ‘off’.

I could do Wrath though. 100% critical does sound a little overpowered but what the hell.

Good to see some generational love for hacking. Good work with making editing easier, btw

1 Like

Sorry,I suddenly realized that my behavior just now might not be allowed by the community, so I deleted it. I apologize for any inconvenience caused to everyone.

1 Like

This looks really cool, best of luck!

1 Like

Hi guys, just wanted to give everyone an update on where I’m at.

I’ve almost finished Dragz’ suggestions to help make this system easier for users to modify (and from there gradually work towards something similar to what FEBuilder allows).

It turns out over the course of my modifications I’ve discovered some older skills with jank code and missing comments, so I’ve been fixing them on the side as well. My desire is that every skill should explain in detail what is happening on a line by line basis.

Shouldn’t be too much longer now (hopefully) :grinning:

4 Likes

The hype is real!!!

1 Like

Okay I’ve edited all the skills so you can now change the unit they’re assigned to in the associated .event files without having to recompile any ASM (instructions in the repo).

On the side I’ve also added a ton of comments to old skills that didn’t have any and fixed some of my janky code. :partying_face:

Here’s some additional GIFs of other skills in my skill system so far.

Vantage - The defending unit attacks first
Vantage Skill

Double Lion - All the unit’s weapons are treated as having the ‘Brave’ effect
Double Lion Skill

1 Like

Out of topic here, but could you see if it is possible to add 200 convoy slots? Kinda like ExModularSave does in FE8

I can look into it. One of my ideas for additional features was a crafting system of sorts (like Three Houses) where you can strengthen or forge new weapons by trading in various stones. So an expanded inventory would be ideal.

2 Likes

Oh that’s sounds good! Hope you can feature it on FEBuilder too!