Vesly's ASM

Generate Mines

Whenever you select somewhere to walk to, mines will spawn at random on traversable tiles. They are deleted after you move somewhere such that it will almost never hit enemies.

They spawn at a rate of X% of tiles in the map. I put it to only 2% here, for which this hack was made: Feature (Not a Bug)
It is pretty annoying at 2%, so I don’t recommend much higher.

FEBuilderGBA_c8XFS1AWlK

This is more of an unquality of life feature, and probably won’t be enjoyed, lol.

Nonetheless, enjoy!

4 Likes

GroupAI v2

PhantomSentine’s GroupAI made it so if you attack or are attacked by a unit that is part of a group (using AI4 for groups), it would aggro all of them.

However, this doesn’t stop you from abusing the AI. You could still lure or split up enemies and nothing would aggro until you or the opponent attacked.

Therefore, I’ve hooked AiSetDecision just after FillAiDangerMap is done and coordinates are decided on to see if the Ai will walk somewhere dangerous, and if so, aggro the group. This makes group AI a bit more aggressive and seemingly more coordinated. Previously, one unit from the group would usually charge ahead “Leeroy Jenkins” style while the rest of the party would follow next turn.

You may also want to consider your ai3 settings and whether they have a penalty to avoid dangerous tiles, unlike one of the defaults below:

Zoning ai is also worth a mention here.

Additionally I fixed a small bug in GroupAI: error handling for lack of unit added (it had a very miniscule chance of game crashes etc.)

6 Likes

Is this game crashing bug present in vanilla or GroupAI 1?

The bug was in group ai. Vanilla does not have group ai: it has leader ai, which only stops units from attacking unless a unit is in range of the commander. Group ai leaves the leader ai untouched.

1 Like

DecideOnDangerMap

FillAiDangerMap is an expensive function called before each enemy moves. Gamma, StanH, and 7743 have all worked on optimizing it.

This hack stops the function from being called when the results aren’t actually used.

FEBuilderGBA_XByzwVfARG

The above ai3 defaults do not care about the danger map, so if you use any of these, this hack will reduce ai lag by about ~3 - 12 frames per enemy. The amount of lag saved depends largely on the map size, number of units, and whether or not you are using the latest AiFillDangerMapFix patch.

Edit: Fixed a bug 3 hours after posting this.
7743’s testing benchmarks this as saving about 4 frames per enemy (with the AiFillDangerMapFix patch) which equates to about 7 frames per enemy in vanilla.

GroupAI v2 has a conflict with this hack.
Therefore I’ve edited GroupAI v2 slightly to not always trigger when using DecideOnDangerMap. I’ve made it so that if you’re using an ai3 that does not care about the penalty for the attack power of opponents, it will not aggro the group.

Edit: I hate to keep bumping my post, but 7743 found a game crashing bug with this hack this morning and I’ve since redone the hack to avoid this bug.

4 Likes

Frames for AI to display targetting cursor

PUSH 
ORG $39EAE 
BYTE 45 // Vanilla default 
POP 

16 frames example
mGBA_agY6MFIDvB

Vanilla 45 frames example
mGBA_F38VIjtTaN

Enjoy!

13 Likes

BattleStatsWithAnimsOff v2

Original v1 by @Tequila


I added weapons and WTA arrows below what Teq had set up. This can be installed even if you have v1 already.

UseWeaponTriangleForArrowsDef can be defined as False if you prefer to have arrows appear based on dealing a greater % of hp than the opponent.

:confetti_ball: :tada:

Edit: Improved aesthetics a little.

16 Likes

Steal with full inventory

mGBA_mGi5cTAArp

What was meant to be a quick and easy quality of life hack ended up taking hours. Oh well.

This is a minor convenience for thieves I guess. :man_shrugging:

36 Likes

As a man who once wanted to create HeistEmblemTM this is one of the best things ever. ( I still kinda want to make it tbh)

4 Likes

:crown: you dropped this

3 Likes

It’s actually really nice for romhacks with more weapon variety and held items, since only having 5 slots and needing to leave 1 or more open really hurts thieves in those, so don’t sell yourself short, great work!

1 Like

This is going to be a “for a friend” post but actually for real since I’m not using it, but as a heads up the space you’re inserting the proc into is completely skipped by popup rework (and thus skillsys)

	// A re-do of my first ever hook into proc code :)
	ORG 0x9A3600
		// Replace the weapon broke/wrank got popup calls with construction of the anims off popup loop
		PROC_NEW_CHILD_BLOCKING(gProc_PopR_AnimsOnWrapper)
		PROC_JUMP(0x9A3620)

3 Likes

Thanks, @Pikmin1211! I should’ve tested it with skill sys, too.

To anyone who already installed it: don’t worry, you don’t need to revert to a backup or undo anything. You can re-install the patch or change the ProcJump to 0x9A3618:

It now has #ifdefs based on if you’re using skill sys or not, so this should be installed after skill sys.

3 Likes

Did some work getting @StanH’s incomplete TruePartySplit hack to a semi-usable state, as it sadly hasn’t been touched in over a year, I think. It’s really cool though, so I thought I’d share what it can do and what was planned.

The idea is to have up to 8 parties and freely manage your units. I debugged it and made it so pressing start ends the menu and actually sends units to their respective parties.
ezgif.com-gif-maker (4)

It was intended to also have units that are forced to one party or another, but I couldn’t get it to work properly. Here I have Eirika and Ephraim as forced to party A/B respectively, but nobody is able to be moved now for some reason. I don’t think whether a unit is forced into their party or not is being initialized at all, which breaks things down the line. When I have no units forced to a party, it works fine.
image
It probably ignores dead units, and as lords dying causes a game over, you could probably just set them as dead via the UNCM patch and revive them after the menu. This won’t cause a game over - don’t worry.

Additionally, it doesn’t care if you send all your units to one party or another. lol
you may also need a way to stop the player from sending all their good units to one side and softlocking themselves :sweat_smile:
mGBA_qiaKpoZJNN

It would also be nice to be able to press R on a unit to view their stats, or have a way to manage their items. But it’s already a pretty complex hack, so I’m just grateful Stan made this at all.

Please note that this hack requires 39 bytes of ram allocated, with your custom address defined in the installer. Without this, parties won’t be saved between chapters, although with only 2 parties and some convoluted eventing, it might be usable…
I recommend editing EMS to save those 39 bytes. You’ll have to choose your ram location yourself.

Please enjoy Stan’s work :smile:

18 Likes

yo thanks for doing this and sorry about the mess I left you with '=)

4 Likes

ExtendWeaponDescBox


oh god what have I done
this isn’t even narrowfont lol

Gif

ExtendWeaponDescBox

While I have tested this in many circumstances, this has an effect on all R-text in the game. Therefore it needs extensive testing to find the rarer cases of R-text that could break some graphics.

FAQ

OMG i found a bug your asm ate my dog and vomited on my screen?

Tell me exactly how to reproduce the graphical error, or view the details on solving it below:

Details

At the top of the installer are some exceptions I’ve already found: SaveMenu, ChapterMenuUnit, and ChapterMenuStatus. While these procs are active, it won’t use extra VRAM for R-text.


Adding the Red Square address to the ProcExceptionsList would make it act like vanilla while the TradeMenu proc is active, solving the graphical bug that was found.

Tested Cases:

  • Works with and without SkillSys so far.
  • Trade menu, Preps Trade menu, Supply, List, StatScreen, ItemMenu, Shop, Attack
  • Weather

This was a ton of work and took many hours to do. Please be sure to credit me when used (this goes for any asm hacks and FEBuilder patches that I’m credited in too, of course).

Enjoy! :upside_down_face:

Edit:
7743 added this as an FEBuilder patch. He also made it only hide the trade partner’s portrait while actively viewing R-text for weapons with 3 lines. :tada:

29 Likes

Super cool to see this come to life. This was something Stan started hashing out for LoT (RIP).

Think this kind of feature is cool and can create a lot of replayability. Hoping to see this space explored more and hacks try out this tech in their design.

2 Likes

Have you ever wanted to move the currently acting unit, but experienced this instead?

mGBA_VDtqI4vRAP

While the vanilla command SET_ACTIVE 0 works by abruptly exiting the unit’s action, it won’t end player phase if it was the last unit to act, and it is buggy in that the cursor jumps, it’s preventing B presses, and it’s showing rainbow tiles if you want the unit to move again. UNCM patch can solve some of this, but may not be ideal.
mGBA_B4ofCpis1B

Override Actor Coords

mGBA_ysIk952pLi

Given your desired coordinates in memory slot B, this patch prepares everything as if you had moved there. Use it before the movement occurs from the ENUN command.

It also works with “When player unit is moved to coordinate” type events. FEBuilder recommends not using these because vanilla fe8 doesn’t use them. They seem to work fine from my experience, though.

For example, here I have it take over your movement and send you to the nearest free land coordinate when you go into the current of water. You can still perform your action this way. I reset tiles moved to 0 as part of this, so the Charge skill will not get a bonus. This is so that pressing B will work as expected and not send you back to your starting coordinate.
mGBA_75srqFvjbY

If you don’t want the menu to appear in this case, use ASMC 0x804EF21 (EndAllMenus) and ASMC 0x804E885 (ClearBG0BG1) at the start of your event. This would essentially make “When player unit is moved to coordinate” events into customizable traps.
mGBA_RdvH3jCE8x

Enjoy!

8 Likes

Shoot Arrow ASMC

This lets you use the vertical arrow trap in events. It can be shot from anywhere and deal any amount of damage.

You could have enemies use it arbitrarily in events! Forget ambush spawns, now we have ambush arrows!
asmc_shootarrow

You could make it someone’s ability with the SpecialEvent per unit patch, or have it tied to a weapon with the SpecialEvent per item patch.
mGBA_2EwtbQDNyG

Or you could just visit a house which for some reason shoots an arrow. Dragon veins, anyone?
mGBA_LdeJNBJvYA

Enjoy! Shoutout to @StanH for his support

11 Likes

Trap SMS Size Fix

For some reason traps are hardcoded to use size 1 for ballistas and size 0 for everything else (eg. light runes). This fixes everything but ballistas to use whatever size you set in your SMS table. Compatible with or without Sme’s TrapRework (although there’s not really any point in using it without TrapRework).

2 Likes