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

Then I should make my edits to skill_lists.event before using Event Assembler to apply the buildfile? Make_hack just seems to create the Boss Rush test ROM, and I couldn’t find when you talked about removing it on the Discord.

Using make_hack and applying the buildifle are the exact same thing, make_hack just calls EA for you.

The Boss Rush is only one test chapter, you’ll have to remove that and repoint the text table if you want to do stuff with vanilla chapters.

Search for “0x81b0270” in the discord server and you’ll find last time someone did all that, and don’t be afraid to ask or even ping if you have trouble with that.

1 Like

I added a couple skills to the skill system.

Perfectionist: +15 Hit/Avoid when[N]
user’s HP is at maximum.[X]

Puissance: +3 Damage when the user’s[N]
Strength is higher than the enemy’s.[X]

Here’s the git patch, if someone wants to add them. Someone with access just needs to run git am on it, and it should be good.

The skill icons aren’t great (I have the graphical skill of a rock), if anyone wants to replace them with better ones, by all means.

5 Likes

Pardon my inexperience, but is it possible to apply this to an already-edited ROM of FE8?

Yes, as long as there’s nothing conflicting.
You’ll have to change the starting offset and you will probably have to worry about text IDs and other stuff but it can be done.

I want to realize passive statbooster with SkillSystems.
According to Leonarth, it can be realized with MSG’s PassiveItemStatBonuses.event.

I tried to make settings.

PassiveItemStatBonuses.event

prAddPassiveItemBonus:
	rForEachUnitItem
		rIfItemHasPassiveStatBoosts
			rAddItemPassiveStatBoosts(STAT_HP)
			rAddItemPassiveStatBoosts(STAT_POWER)
			rAddItemPassiveStatBoosts(STAT_SKILL)
			rAddItemPassiveStatBoosts(STAT_SPEED)
			rAddItemPassiveStatBoosts(STAT_DEFENSE)
			rAddItemPassiveStatBoosts(STAT_RESISTANCE)
			rAddItemPassiveStatBoosts(STAT_LUCK)
			rAddItemPassiveStatBoosts(STAT_CON)
			rAddItemPassiveStatBoosts(STAT_MOV)

Defense.event

pDefenseModifiers: // Defense
	POIN prAddUnitDefense prHalveIfCapturing prDebuffDef prAddEquipDefense prItemPassiveDefense prRallyDef prLifeAndDeathMinus VigorDanceCheck prSkillFury prFortressDefenseDef pDefenseModifiers prAddPassiveItemBonus
	#ifdef __DebuffMinZero__
	POIN prMinZero
	#endif
WORD 0

ItemID: 0x6C The following settings were made.

as a result
There is no particular change.

For some reason, only he has a mysterious value for def.

Is my way wrong?
How should I set up?

Also, venno’s statbooster has a patch that changes the growth rate.
This is a function that adds a correction to the growth rate of the unit if you have certain items, such as FE3 and FE5.
Is there a way to do this with SkillSystem’s MSG?

1 Like

First, the passive stat boosts thing in MSG was broken until a few days ago (the item data was not looked up correctly so it ended up reading garbage). I fixed it while also enabling passive stat boosts in the skill system by default (see this commit).

Second, the way MSG works is that each of those modifiers are just (pointers to) ASM routines that modify the stat. MSG comes with a fairly big library of EA macros that you can use to “build” such ASM routines without needing ASM (which is arguably very unnecessary, but 2017!me thought it was a great idea).

For example, the following set of macros

prAddPassiveItemBonus:
    rForEachUnitItem
        rIfItemHasPassiveStatBoosts
            rAddItemPassiveStatBoosts(STAT_HP)

Will expand to the following equivalent ASM

ASM
ForEachUnitItem:
	push {r4-r6, lr}

	mov r6, r0
	mov r4, r1
	mov r5, #0

	mov r0, r4
	_blh GetUnitItemCount

	_swap r0, r6

ForEachUnitItem.lop:
	cmp r5, r6
	beq ForEachUnitItem.end

	lsl r2, r5, #1
	add r2, #0x1E

	ldrh r2, [r4, r2]
	mov r1, r4

	bl IfItemHasPassiveStatBoosts

	add r5, #1
	b ForEachUnitItem.lop

ForEachUnitItem.end:
	pop {r4-r6}
	
	pop {r1}
	bx r1

IfItemHasPassiveStatBoosts:
	push {r4-r6, lr}

	mov r4, #1
	mov lr, r4

	ldr r3, =CheckItemPassiveStatBoostAttr

	mov r4, r0
	mov r5, r1
	mov r6, r2
	
	add lr, pc
	bx r3

	eor r4, r0
	eor r0, r4
	eor r4, r0

	bne IfItemHasPassiveStatBoosts.end
	
	mov r1, r5
	mov r2, r6
	bl AddItemPassiveStatBoosts
	
IfItemHasPassiveStatBoosts.end:
	pop {r4-r6}
	
	pop {r3}
	bx r3

AddItemPassiveStatBoosts:
	@ Add the HP stat boost of the item to r0 (this is also done through a bunch of MSG helper macros), and return.

(Again, I’m sorry for this being probably more complex that it needs to be. The source is probably the best documentation there is on this).

This is to say that the following

prAddPassiveItemBonus:
	rForEachUnitItem
		rIfItemHasPassiveStatBoosts
			rAddItemPassiveStatBoosts(STAT_HP)
			rAddItemPassiveStatBoosts(STAT_POWER)
			// ...

Will not work as a universal modifier (It will only behave correctly as an HP modifier). You’d need to have one such modifier for each stats (again, see the skill system implementation).

Otherwise the item setup would work fine (only the last bit of ability 3 needs to be set tho, as the mask is 0x00800000 by default).

Modular Stat Getters doesn’t handle growth getters yet, but we can work on that (back when MSG was included, growth getters, which are for some reason part of MSS, weren’t in yet).

2 Likes

So does the latest SkillSystems mean that passive stabooster is turned on by default?
If so, I am glad because I do not have to do anything.

Or do I need to merge your fixes by myself?
It seems like there are a lot of fixes, so I glad if it turned on by default.

Do the skill animations (for skills that trigger during battle) use 16 colors per animation, or do they use 16 colors per frame, like spell animations?

It’s 16 colors per frame.

Thank you

Ummm… how do you download files from github?
I don’t see a download button or link.

download-skillsystem
(this downloads a snapshot of the entire thing. If you meant downloading individual files: you can’t)

1 Like

I don’t have that option. Do you need to sign up to do that?

You shouldn’t. I have the option even not signed in, idk what would cause it to not be there

1 Like

Ah my bad.
When you said the entire thing, you meant everything from the first page
not just a folder with its contents.

Yes, yes, I got it. Thanks for pointing the download option.

1 Like

I love the skill system a ton and have been having fun playing around with it, but I sort of had 3 questions/suggestions I wanted to post here.

  1. Is there a way we can have more than 6 skills on one character? I’m not sure of the technical limitations on this, which is why I’m asking, because it would be nice to be able to have 10 or so skills on each character. Or even possibly reducing the maximum number.

  2. any plans to add a held item that gives certain skills? like a edit of the Hoplon Guard that provides “Pavise” while held, or a medallion that provides “Shadowgift” while held.

  3. Is it possible to add in a skill that, if the enemy attacks you and you cannot counterattack with your currently equipped weapon, will auto switch you to a weapon in your inventory that CAN counterattack?

  1. Technically yes, if you make edits to the skill getting asm. However, know that a lot of auxiliary parts of the system expect 6 skills or less (such as the stat screen or the skill replacement menu). In addition to that, the skill learning system only reserves enough space for saving 4 learned skills (you could maybe expand that but that’s probably harder than it’s worth), so the additional skills would most likely be added from other “systems” (such as maybe the held item skills you’re suggesting as 2.). There are no plans for supporting more than 6 skills in the skill system.

  2. There are already extensions to the skill system around that achieve things close to that (afaik they work with equipped items only, but it’s probably not too hard to expand that to all items). Whether or not such extensions get merged into the skill system itself however is up to their authors and circles.

  3. If you (or anybody else) have the asm for such a skill you can submit it as a pull request to the skill system github (we’d then look at it and probably merge it in as long as it works properly).

Allright, thanks for the quick response. I do not have any ASM knowledge, sadly. I might learn it at some point, but i’m already swamped with life stuff so no motivation atm. I will make do with what is already there ^^.

Is this public? I’m having trouble finding whoever may have made something like this where equipping a weapon grants a skill associated with the weapon.