[FE8] Skill System v1.0 - 254 skills done, more on the way

Has there been any solution to get the skills petrify or deadeye to work? Deadeye’s passive accuracy boost works but I can’t seem to get them to activate during combat.

Yeah, the issue with the status inflicting skills is here:

mov		r0,#0x6F
ldsb	r0,[r5,r0]
cmp		r0,#0
bge		End			@if already inflicting a status, don't check for ours

That piece of code is supposed to prevent the activation of status inflicting skills if you are already inflicting one (since you would overwrite it otherwise). The issue, though, is that ‘bge’: that’s telling the game to not activate the skills even if you’re not inflicting any ailment.

The fix is simple: just replace that ‘bge’ with ‘bne’ (it’s in line 31 of proc_deadeye.s, proc_enrage.s and proc_petrify.s; and line 32 of proc_blackmagic.s).

Additionaly you can add this if you want to avoid having the skills trigger against someone that already had a status before battle:

mov   r1,r5
add   r1,#0x30 @defender status byte
ldrb  r2,[r1]
cmp   r2,#0
bne   End     @don't apply an effect if there is already an effect on this unit

Some notes regarding status inflicting skills:

  • Petrify and Enrage use Pavise and Aegis animations, respectively. Since those are animations for defensive skills, the result of using them with offensive skills is, well, not great. Also, Black Magic lacks animation, so it will use the generic one from vanilla FE8.
  • Upon successfully inflicting a status, it’ll look at first as if the target was poisoned instead. It behaves properly after battle.
  • If Petrify triggers, the battle will end after the attack, even if your unit is supposed to double. Keep that in mind.
3 Likes

Thanks!

1 Like

The signifier for don’t apply a status is -1, not 0; the status to apply byte is loaded signed for this reason, if it’s negative then the status can be applied
Black Magic was the first skill added that applies statuses during battle, it’s used bge for this since it was added 4 years ago, hasn’t been edited since in any way, and definitely has worked for this length of time, so I’m confident asserting this isn’t an issue

All I can answer to that is that in my tests the skills didn’t trigger with ‘bge’ even with Rightful Arch, while replacing with ‘bne’ made it work. So, even I you tell me that it used to work that way, all I can say is that something has changed, since now it doesn’t seem to.

An inline band-aid fix intended to be temporary added about 10 months ago for an issue with status staves, to which a proper fix has since been implemented, changed the don’t apply status initialization value to 0. Removing it solves the issue of status skills never procing.
Fix merged here, only changes 1 file

3 Likes

Hey, so some of you may remember me from the “Everyone can dance” question. Well, I tracked down where the bug came from and it was indeed in the buildfiles. I had changed the Vanilla Dance Check flag to True, since I wasn’t planning on using the actual skills. Changing it back to False fixed the problem.

In other words, this is is a bug report for the Skill System: changing ALSO_USE_VANILLA_DANCE_CHECK to True in Config.event makes it so everyone can dance. Is this where bug reports go? Do you need more information/files? And is there any way for me to undo this through FEBuilder or a hex editor or something, so I don’t have to restart my project? …again?

Thanks in advance!

This problem has been looked into and fixed. It turns out garbage data was collected that always ended up making the vanilla dance check result in a success.

I don’t know when this fix will be moved to FEBuilder’s version though.

Regardless, thanks for the bug report!

I used the Github version to build, actually. Did the make_hack_full and everything, heh. I’ve just been using FEBuilder to edit the result. My copy of SkillSystem’s a bit old, though (May 16th), so if the error was fixed after that that’d explain it.

Hello! can someone help me ?, I’m new to fe hack , and just normal person not a programmer, I have followed the process on github, but I only get SkillTest.gba and the SkillTest.ups , and only play BossRush mode and can’t even play the normal mode. did I missed something ?

The existing config is for testing Skillsys, and for building off of it. If all you wanted was to play FE8 with skills, you should have used the second link in the OP.

Found a pretty annoying bug in regards to trading with a rescued unit with the most recent patch. Installed it via FEBuilder.

I had no other patches installed on this rom.

Here’s the message I got after it crashed.

This bug has been fixed for a while. (It was a problem with capture) Try updating FEBuilder then updating the skillsystem after

1 Like

The FE8 Vanilla with skills patch is bugged.

-Tower doesn’t work and just hangs up on a black screen.
-All unprompted Armors have axes in their inventories but no Axe rank.
-Certain Cavaliers are glitched and are loaded with glitched sprites that have 0 stats. You can safely kill them with no issues.
-The Cavalier glitch makes several chapter’s opening cutscenes crash the game.

Hi. I was wondering if it’s possible to have a Sprint skill that gives 2 to 4 movement in exchange for the unit’s action. I think it would be an interesting boon to knights!

It’s an interesting idea, if you’d like to make and include that skill, there’s some good resources on this site and you can ask people on the discord!

So I’m trying to install Heroes Movement and I ran into this.
I was wondering if someone knows how to fix this.
HeroesMove

Using SkillSystems Ver 2022/07/03

Hey there! I was looking into your custom skills, the 2 that I wanted to use, Defender and Deliverer, aren’t in the download. It would be appreciated if you could post them

See the readme:

Add this to Engine Hacks\Necessary\StatGetters\_Common.event:
"
prDefenderBonus:
	rIfUnitHasSkill(DefenderID)
		rIfUnitHasState(US_RESCUING)
			rAddConst(2)

Then, in that same folder, you'll need to add "prDefenderBonus" to the modifiers list of Defense.event, Luck.event, Magic.event, and so forth. For example, your Defense.event should look something like this:
"
pDefenseModifiers: // Defense
	POIN prAddUnitDefense prHalveIfCapturing prDebuffDef prAddEquipDefense prItemPassiveDefense prRallyDef prLifeAndDeathMinus VigorDanceCheck prSkillFury prFortressDefenseDef prDefiantDef prPushDef prDefenderBonus
	#ifdef __DebuffMinZero__
	POIN prMinZero
	#endif
WORD 0
"

For Deliverer, we do something similar, but this time we add it to Movement.event:
"
prDelivererBonus:
	rIfUnitHasSkill(DelivererID)
		rIfUnitHasState(US_RESCUING)
			rAddConst(2)
"
		
And, of course, make sure to add these skills into skill_definitions.event, skill_descriptions.event and skill_icons.event in the main SkillSystem file, as well as adding all of them (except for Defender and Deliverer) into Necessary\CalcLoops\PreBattleCalcLoop\PreBattleCalcLoop.event

1 Like

I did that, but those 2 skills don’t show up.

And yes, I made sure to make them valid IDs in the skill definitions file, replacing other skills.

The problem is that there’s no folder or file for those skills to work.