Getting into ASM[In Progress?]

As I’m working on my FE6 hack, I find myself wanting to implement quite a few things that (I’m fairly sure) require ASM. Rather than requesting it, I’d like to try and learn how to do this stuff myself. However, I’m not really sure where to begin. This question is directed towards those who do this stuff on a regular basis: How did you learn? Are there good starting guides? Is the section in the Ultimate Tutorial reasonably good? Are there chats that y’all hang out in that I can join so I don’t have to clog this forum with very basic questions?

These are things I’d like to accomplish for this hack:

Things I really, really need:
Display range fix-done for FE7 and FE8, so, if I understood camtech correctly, I just need to verify that the range code works the same in FE6, and if it does, find the relevant pointers so I can apply the patch.

Things I’d like, but aren’t absolutely necessary:
Luna effect
Modify poison damage to actually be mildly dangerous (perhaps something like 2^i damage on i’th turn, beginning at 2)
FE7 Eclipse, with a caveat that it only does 1/4 damage on bosses
Modify devil effect (I think I’d just like to change it so that if it backfires and would kill you, it does currentHP-1 damage instead)
Iron rune effect

Things that I’d like but I don’t know whether they’re feasible or even possible:
Change Merlinus so he acts like his FE7 self (namely, don’t take a character slot, but have an event so he shows up on map)
Either increase the number of support points you can gain per chapter or remove the cap entirely.
Afa’s drops
An item that can negate status effects, similar to the iron rune/delphi shield. If not all statuses, then just poison would be good enough.
If the above isn’t possible, make antipoison render you immune to poison for a certain number of turns.
Weapons that inflict statuses (the Rune Bow from EN is exactly what I had in mind, but I want to note that I had the idea before I ever played EN, so I hope you don’t think I’m stealing your idea Arch)

1 Like

TBH I don’t know whether the chapter in UT is helpful to you, because when I read that chapter I had learned my course on assembly at school. :stuck_out_tongue: Of course, I learned 80x86 not arm7, but there is not a huge barrier if you have learned one. Maybe you can read a textbook and teach yourelf.

The requests are possible, so fight~ :grin:

y u do dis

If I had FE6 eclipse at my disposal I’d be abusing that soooo much mang.

Ooh, I like this though. I’m still gonna stick with maxHP reduction, but this is cool too. So if it backfires it always leavesyou at 1 HP?

No, only if the damage it deals would kill you. Otherwise, it does the normal amount of damage. Devil items are already fairly unpopular; I’m trying to make it a teensy bit less reviled.

EDIT: I didn’t say I was getting rid of FE6 Eclipse…


Removing the cap should be simple. Not sure about the former.

Should be easy, but I don’t know if there’s an empty slot in a unit’s hidden status to store whether they have consumed it.

Both very, very difficult, nigh-impossible.

Should be difficult but very possible.

This last one isn’t doable? Man in FEXNA you just flip a switch and it’s done. I mean, you can inflict poison on enemies when a weapon hits in GBA, so why not berserk/sleep/etc? You mean that literally doesn’t work?

No, it does work. Just that it’s a little bit of work. See: Cam’s status swords (which I have remixed a bunch of times :P)

Maybe a dodgy workaround, but couldn’t you just force him like Roy?

RAM 0202AA5E-0202AA5F : Total support points gained in current chapter
Example: Placing Roy and Marcus next to each other adds 4 points to total (Roy gains 2 points and Marcus gains 2 points)

08022CC6 cmp r2, #0xF9 (249 decimal)
08022CC8 bhi $08022DA6
Allow support points to be gained if current amount <= 249 (or in other words, do not allow units to gain support points if total >= 250)

Edit byte at 08022CC6 to change the cap. You can easily lower the cap, but you won’t be able to raise it higher than 255 with just a simple in-line edit.

To remove the cap:
At 08022CC8, replace 6DD8 with 0000 to nop the branch instruction.
Note that FE6 allows a pair to have multiple support conversations during a chapter. (In contrast, FE7 and FE8 prevents a pair from having more than 1 conversation per chapter.) Removing the support point cap will allow multiple pairs to have their C-B-A conversations all within a single chapter.

I had no idea! Thanks so much though!

As in, increase each chapter’s unit number by 1 and force him? That’s certainly a possibility. I suppose if someone wanted to do a no-Merlinus run (for whatever reason, I don’t judge) they could just suicide him as early as possible.

Seems like these could be done by looking at the routines that store “poisoned”(or sleep, etc) into the target characters’ status bytes (put a breakpoint on writing to that byte in the character table) and branching those into a “if this character is not carrying the StatusBlocker, poison them” instead.
The second condition is harder than the first, mostly because we need a counter to keep track of how many turns your character is immune. If this were FE8, you could repurpose the extra status (“Sick”, doesn’t do anything) into an Immune status and rewrite the getting poisoned routines accordingly (although immunity would go away if you got hit by a different status, and it would either prevent you from or get overwritten by dancer rings). But I’m not sure FE7 or FE6 has any extra status slots.
You could also repurpose the barrier boost nibble into the antipoison turn tracker, either in conjunction with or in place of (requires rewriting the calculating resistance routine) the original Barrier.

The difficulty is finding all the numerous places where a status is given to a character.

Huh. In FE8 there’s exactly one “cmp r0, #0x1” in the attack routine that governs whether you get poisoned, just like there’s one set of comparisons for the staff effects routine of sleep/silence/berserk/stone, one for the dancer rings, and one last one for “getting hit with poison gas trap”. But maybe FE6 does something weird with it, I don’t know.