[FE6] Ballista Pilot Class Checks & Some Other Misc Things

Hello. I had a need for some niche details in FE6 that l knew were in the code, and by sheer luck and intuition l managed to find them! Even if they’re very specific things, I figure if someone else needs this stuff, it’s better to have it around here. I’m a bit longwinded with my explanations, but l hope it’s at least clear enough.

Ballista Pilot Class Overrides
0x049950 is the general start of where the game decides how to display the ballista pilot. When a male Archer uses a ballista, the game plays the battle animation as is. But when it’s a female Archer or either Sniper, the game replaces part of the animation with another to reflect which class is using the machine (nevermind how the female Archer looks like a repalette of the female Sniper).
There are two different sets of checks. I dunno what the first one is, but the second definitely affects what classes cause the change for the battle animations. Both sets have a “less than 0x11” check that’s made redundant by ending with a default case, so that’s silly. And if you need to know, in the advanced Graphics Editor section of FEBuilder, the class override graphics are number 0x35, 0x36, and 0x37 in the list.
Even if l’ve been thorough, I have only done temporary tests with this functionality. I plan to implement a permanent change to a hack of mine in the future, but I have yet to do so.

0x04996E and 0x0499B2 Female Archer (0x11)
0x049972 and 0x0499B6 checks less than this value (0x11) for Male Archer
0x049976 and 0x0499BA Male Sniper (0x12)
0x04997A and 0x0499BE Female Sniper (0x13)

0x049960 and 0x0499A4 is the item ID for the Killer Ballista (0x32) and 0x049964 and 0x0499A8 is the item ID for the regular Ballista (0x30). This is an additional item check to prevent the class overrides from kicking in when not using a Ballista. The comparisons on these items are a combination of greater/less thans so they succeed with the Long Ballista in the middle.

Extra Delay When Blocking Damage
When Idunn or Fae take zero damage, the game waits an extra short while for emphasis. With the assembly of this region, it is possible to apply this delay to all characters or none at all. FE6’s longer no‑damage sound feels like it fits this delay. The “tink!” of FE7 certainly wouldn’t match.
I have implemented a change to this code to my hack a short time ago and have not seen any strange errors.

0x0453D8 Idunn (0x66)
0x0453E6 Fae (0x03)

If you set 0x0453D8 to F4 28 06 D1, the delay will apply to everyone. To apply to no one, just change the character IDs to 0xF4 or something.

Mandatory Minimum Delay When Taking Damage
There is also a delay when Idunn or Fae do take damage. It is a forced minimum delay for emphasis. It looks kind of odd, though, since the sound is quick and the damage number will stay stretched, which makes it feel like the game froze.
I have implemented a change to this code to my hack a short time ago and have not seen any strange errors.

0x044B34 Idunn (0x66)
0x044B42 Fae (0x03)

The check is nearly identical to the other one, so if you set 0x044B34 to F4 28 06 D1, the delay will apply to everyone if you want it. And to apply to no one, set the character IDs to something that’ll never happen.

4 Likes