Sme’s ASM and Miscellany

Noob here, how do I install the escape/arrive condition? I’m using FEbuilder (not nightmare or buildfiles) & I’m not using the skills system.

edit:

4 errors encountered:
File EscapeEvent.event, Line 20, Column 1: No code named NoFade found.
File EscapeEvent.event, Line 30, Column 1: No code named NoFade found.
File Escape Installer.event, Line 40, Column 1: No code named jumpToHack found.
File Escape Installer.event, Line 5, Column 1: Symbol EscapeQuoteTable isn't in scope

I take it “NoFade” and “jumpToHack” are macros which I don’t have defined, and would the 4th error be connected to the .csv table?

I have none of the folders listed in your installation instructions (except for Escape/Arrive) & I assume it’s because i’m not doing buildfiles/don’t have skills system.

This may be exceedingly stupid, but would it work to just manually insert each of the dmp files?

I swear there was less information here when I last saw this and then I forgot to respond I’m sorry
NoFade is an EA stlib def, just add #include "EAstdlib.event" to the beginning of your file and that will fix that error; jumpToHack is a macro that needs you to #include "Extensions/Hack Installation.txt" to use. In a buildfile setting these would already be included elsewhere, so the installer here wouldn’t need them, so I forgot to add them, my bad. You’re correct that your fourth error is the CSV table, if you want to construct it without a CSV make a label in the installer with the table name and then put halfwords for text IDs in order of character ID.

1 Like

[ASM] Modular Changing Battle BGM (FE8)

This hack will let you specify an arbitrary number of character ID + song ID pairs for music to change after fighting the unit once, like the Demon King does in vanilla. Note the song ID you’re specifying is the version without an intro, you should set the version with an intro on the Boss Music List. Additionally, every one of these uses the same global event flag and as such using multiple in the same chapter may be difficult.

Download

7 Likes

Update for Magic Sword Rework

Thanks to help from @Snakey1 and @Runa, Magic Sword Rework should now be bug-free; previously there was an issue with hit lower/hit higher stat swords that they would only work for the attacker. Now they function properly no matter who is using them, as well as some Runesword hardcoding shenanigans turning every magic sword into a Dark weapon. Additionally, setting the Always Magic bit in the MSR table now has the added effect of also using Str/2 when attacking in melee though the previous behavior was not a bug, but a feature. As always, if you find any more issues please report them so I may fix them.
Updated are all 3 versions of Magic Sword Rework: Str/2 (Vanilla), Res as Mag, and Str Mag Split, as well as the .event installer.

7 Likes

Today in assembly hacks that literally no one asked for or will use…

[ASM] Arbitrary List of Classes With Dancer Music (FE8)

This hack allows you to define an arbitrary list of classes for whom the dancer music will play when dancing.

Here you can see the various scenarios without this hack vs with this hack.

Download

Next on my todo list for arbitrary lists for battle things is the effect where the Demon King forces animations on but for every class, so be on the lookout for that soon.

5 Likes

While I’m at it, I’ll release this too I guess

[ASM] Biorhythm (FE8)

This hack puts the Biorhythm mechanic from FE9/FE10 into FE8.

There are 7 biorhythm effect states: Worst, Bad, Poor, Neutral, Good, Great, and Best. All of these save for Worst and Best can be approached from either direction, making a total of 12 actual states. States begin from Worst, ascending at 0 and progress through to Bad, descending at 11 before looping back to 0. This makes Neutral, ascending be 3 and Neutral, descending be 9. The Hit/Avo bonus/buff you get from each can be defined in Biorhythm.event, as can the text ID of the name for each state. Note that whether the effect is positive, negative, or neutral cannot be edited from the .event file and are hardcoded to each state.

The Biorhythm Table is where you set each character’s biorhythm initial position and rate of progression. This table is indexed by character ID and has two values per entry: initial position and amplitude. The initial position uses the values as laid out above and the rate of progression, or “amplitude” of their biorhythm wave, is number of states to advance per turn * 4. This means an amplitude of 4 will advance 1 state per turn, an amplitude of 1 will advance 1 state every 4 turns, and an amplitude of 12 will advance one full cycle forward to the current position every turn. Using an amplitude of 12 and a neutral starting position will effectively act as if there is no biorhythm for the character you set it on.

Download

This does require Skill System by virtue of using its pre-battle calc loop to apply Biorhythm effects, as well as needing Modular Stat Screen to be on the menu. Included in the download is a readme with install instructions, the above usage explanation, and everything you’ll need to implement biorhythm yourself.

8 Likes

And sure, I’ll finish off tonight with a hat trick

[ASM] Character-Based Animation Forcer (FE8)

This uses the vanilla check for the Demon King class to force animations on against the final boss and expands it to an arbitrary user-defined list and also to characters instead of classes, as I figured having to make a unique class for everyone you want to force animations on for would get annoying and space-consuming very quickly.

Download

10 Likes

A pair of hacks related to the eggs of lovely and deadly gorgons.

[ASM] Deny Stat Screen Access (FE8)

In vanilla, you cannot view the stat screen of gorgon eggs with the R button, nor can you scroll to them from another stat screen of the same allegiance. This hack takes that functionality and expands it to an arbitrary list of classes. Unlike the hack below, this one is harder to change the requirements off of anything class-based, as various functions here are only passed the class data and not the character struct.

Download

[ASM] Deny Counterattacks (FE8)

The way gorgon eggs work is they always have the weapon they’ll have once hatched in their inventory. To prevent them from counterattacking when you attack them as an egg, there is a hardcoded check that disables their ability to counterattack. This hack extends that to an arbitrary list of classes. Additionally, this hack may be used as a jumping off point for applying this status in other circumstances.

Download

7 Likes

Could that deny counters ASM be expanded to make Firesweep weapons?

1 Like

You can already make uncounterable weapons without asm

2 Likes

But, doesn’t that force it into long-range battle anims mode? That itself could be a thing to change… :thinking:

[ASM] Dancer Ring Refresh (FE8)

Fairly self-explanatory, lets dancer rings refresh like Dance in addition to applying their effect.

rKgZip0fTc

Download

10 Likes

[ASM] Refuge (FE8U)

Something I saw done in the FE8J hack “The Nameless Heroes”, and here it is functionally recreated in FE8U. Refuge allows you to “rescue” yourself into another unit that is capable of rescuing you (if your con is less than their aid, you can Refuge into them).

Big thanks to @StanH, whose Heroes Movement Skills and general doc were an invaluable resource for seeing how target selection and unit actions work.
This hack requires Skill System for its post-action loop and Stan’s Unit Action Rework for implementing the refuge action itself (Unit Action Rework is included with Skill System).

Download

Installation instructions are included in the download package.

13 Likes

[ASM] Holy Blood (FE8)

Akin to FE4/FE5 and FE16’s systems comes holy blood. For each blood type, you can define:

  • Name
  • Description
  • Growth boosts for each stat
  • Whether or not it allows access to dragon veins
  • Holy Blood locks per weapon

You can give units major or minor blood, major blood causing an icon to appear on their status screen, doubling growth bonuses, and granting access to weapons locked to that blood type.

As an example, Iron Sword is set to be locked to Donate blood.

Download

Requires skill system’s weapon usability calc loop (this hack is the reason I made that calc loop in the first place), MSS, and dragon veins (which all come with skill system) to be fully featured.

13 Likes

[ASM] Status-Inflicting Weapons (FE8U)

Hacks for these have existed for a long time, but there is currently no version compatible with the skill system. This uses the proc skills loop to integrate with the skill system, so it is fully compatible.

Download

To install, just #include StatusWeapons.event and add Proc_StatusWeapons to the proc skills loop.
To make a weapon a status weapon, just give it weapon effect 0xD and put the ID of the status you wish to inflict at item data +0x22 (the second unused byte at the end of each table entry, the same one used by Item Effect Revamp). Statuses applied during battles are hardcoded to always last 5 turns; if you want to change this amount, the byte at 0x178EA is the duration shifted 4 bits left (the default value is 0x50 which equates to 5 turns, 0x30 would equate to 3 turns, etc).

Escape/Arrive Update

An update to Escape/Arrive has removed everything still tied to event ID flags. Additionally, I have created macros for easily implementing Thracian Escape. The macro EscapeCapturedCheck(charID,flagID) will check if the specified character is still on the map, and if so will REMA them and set the specified flag (It calls a macro event, so no worries about gigantic events for your chapter it’s only 6 instructions long). Implementing this has involved making some minor behind the scenes tweaks, most notably that characters are no longer REMA’d when escaping as they used to be. These updates are available at the download link in the first post and will be integrated into the skill system repository’s version of this hack soon.

8 Likes

[ASM] Item-Specific WTA (FE8)

Off the Community ASM Bounty List. It allows you to set WTA effects on specific weapons vs. specific other weapons.

9mkYx2N0d6

Download

#include ItemSpecificWTA.event and add ItemSpecificWTA to the skill system WTA calc loop to install.

6 Likes

[ASM] Fatigue (FE8)

Per request of a few, an FE5-style fatigue system in FE8.

Fatigue will increment by 1 after every Combat, Staff, Dance, Steal, or Summon action you take, and for staves will increase by an additional 1 per weapon level above E the used staff requires (D gives 2 total, C gives 3 total, etc.). If your fatigue exceeds your maximum HP, you will be unable to be deployed at the next preparations screen. Sitting out for a chapter, no matter your fatigue level, will reset it to 0 at the next prep screen. Optionally, you can set stat debuffs to occur if a unit becomes fatigued mid-chapter. S Drinks can be used to restore your fatigue to 0 no matter where it’s at, and you can also create items that restore an amount of fatigue equal to their might value.

Download

Fatigue changes a few things with how much the game saves by slightly extending the amount of data it saves per unit, so it may cut the total number of player units that can be saved ever so slightly. To do this, it requires Expanded Modular Save. To actually increment fatigue, it requires the skill system post-battle calc loop. For items to be usable on the prep screen, it requires Teraspark’s Item Effect Revamp. It also integrates with Modular Stat Screen for displaying fatigue.

Installation Instructions
  • #include “Fatigue/Fatigue.event” to install the meat of the system. This will also install Teraspark’s Item Effect Revamp v0.8 by default as it is necessary to make items usable at the prep screen properly; make sure to manually uninclude this if you are already using it. If you have custom item use routines and are not using Item Effect Revamp, you may need to move the pointers to their routines to the IE Revamp table, as it moves four separate vanilla item use routine pointer tables to its own singular table. See the IE Revamp thread for more information on the function of Item Effect Revamp.

  • Item Effect Revamp requires a set of tables, some of which replace vanilla tables. These are in the Tables subfolder and should be placed with the rest of your CSV tables. By default, S Drinks are set to effect ID 0x38 and general fatigue restore items to 0x39.

  • Fatigue stat screen layout is in the ModularStatScreen subfolder. Note that this is a strmag split layout, although the Fatigue section of it may be relocated to any MSS file you desire.

  • The ExpandedModularSave module for saving fatigue is in the EMS subfolder. Note that as this is built with compatibility in mind, it saves Snakey’s Stairs byte through suspend as well as str/mag split Magic stat through suspend and saving in addition to fatigue. If you are not using one or both of these it will still function, but it is compatible with them. Further note that as this extends the length of the saved unit data very slightly, it may reduce the maximum number of player units that can be saved by a small amount.

  • Necessary text is in the Text subfolder.

  • In the Skill System Post-Battle Calc Loop (SkillSystem/Internals/CalcLoops/PostBattleCalcLoop), add POIN PostCombatIncrementFatigue PostCombatStaffIncrementFatigue. This is the part that actually gives you fatigue after taking actions.

  • To create S Drinks, give the item you want to be an S Drink the use effect of 0x38. To create any other fatigue-restoring item, set the might of the item to the amount of fatigue you want it to restore and give it use effect 0x39. The effect IDs can be changed if necessary by fiddling with IE Revamp tables.

  • You can cause stat debuffs for becoming fatigued mid-chapter by adding FatiguedStatPenalty to the stat getter loops for the stats you wish to debuff (halves stats by default).

Special thanks to @Pandan, @Snakey1, @circleseverywhere, @Teraspark, and @Pikmin1211 for help in various aspects of this system and @cardcafe for the S Drink icon included with the download package.

22 Likes

I am in love. Thank you, Sme.

I’ll be sure to follow up with questions once I try to get this working.

1 Like

Some quick questions:

  1. Does this work with the leadership star patch? I’m assuming the MSS parts just overwrites the visuals for it?
  2. What do you believe is the current max number of player characters this patch will allow?
  3. Is there a “lord is immune to fatigue” like with Leif option?
  4. Is there a version where being over fatigued only causes the stat debuff and still allows you to redeploy?

Question of my own is this compatible with FE_Builder_GBA or should I use another software to implement it? Also this looks awesome. Fatigued never gets any love, it’s actually a really smart mechanic.

Yes, you just need to make an MSS layout that shows both

It only adds 4 bytes to each saved character pushing it to 0x30 bytes each, the save chunk is 0x0AA8 bytes long so the cap becomes 56 (previously 62). There is an additional 0x21C bytes of free space that the save chunk size could be expanded by, so setting the size to 0xBA0 would restore the cap to 62.

Oh poop I forgot to mention this part
There’s a list of unit IDs immune to fatigue, as well as a setting for first chapter where fatigue should apply.

Not natively, but if you alter the function that hooks at the prep screen to always return false, units will not be denied deployment

Intended to be applied with EA as part of a buildfile, but if you manually handle the parts that would be handled there you can apply it to any given rom in theory; I would recommend applying this to a clean rom using skillsystem buildfile first then building your hack off of there

1 Like