Teq's Minor Assembly Shenanigans

Just a note on the Slayer/Effectiveness rework, there are a few discrepancies in weaknesses from the normal game:

  • Thief, Rogue, and Assassin are also weak to swordslayer in FE8 (in FE7 they weren’t, which I presume is why they are missing here), and also the Eirika Lord/Great Lord classes are weak to swordslayer as well.
  • The Manakete class (the one right above Manakete_F) is the class used by zombified Morva in Ch20, so should be considered a monster in addition to flier/dragon.

On an unrelated note, I was wondering if you had any interest in looking into the >= 64 HP situation where any character HP stats that are 64 or above are wrapped around back to 0 when the game is reset (so 68 HP becomes 4 HP when reset). >64 HP does work fine for characters during leveling up and proceeding through the game (I’m not sure if the vanilla game can even do that or if that was a hack, it’s been so long), and suspend/resume has no problem, it’s only when “Restart Chapter” is used that the stat overflows, so I guess it just has to do with the process of saving/loading the stats from cold storage. The same is true of the other stats like Str and Skill except they overflow at 32 instead of 64, though I’m not as concerned with those personally.

I’ve done a lot of Googling and mostly any discussions just end with “this would probably require ASM to do”, but haven’t found any indication of someone who can actually do ASM hacks trying to tackle it.

EDIT: Also, maybe I’m doing something wrong but it seems like the Slayer Effectiveness mod and the Show Heal Amount mods conflict with each other. Everything works fine when I have either of them applied alone, but if I apply them both, the game locks up when selecting the Staff option and then pressing A on a healing staff (and, on my mod, also when pressing A on the “Talk” option). I tested it also on a clean vanilla ROM, all I did was add the “->[X]” text at 0D4C and changed the ID in the Show heal amount EA file to match, and then applied both it and the Slayer patch with Event Assembler 10.1. It still locks up in the same way when attempting to use a healing staff (although the Talk option works again for some reason).

the stat issue is because of bitpacking so it’s more of a memory issue than anything else. changing the personal stat cap to something above 32 would require another bit per stat per character, which is actually quite a lot when you consider how small save files are.

Yeah I kinda figured, though I’d be happy with just 1 extra bit for HP, I can live without the others.

I think HP is a signed value? If you really wanted to you could find a way to make it unsigned and then you’d have an extra bit. I don’t think any of the FEs use negative bases for HP, although I could be wrong on this one.

I completely forgot that the Thief line is weak to the swordslayer. Good catch! This hack is kind of outdated, so I’m not going to update it, but eventually it’s going to be integrated into the skill system. It should be relatively easy to modify on your end if you want to use it.
Regarding the Slayer Effectiveness and Show Heal Amount patches interfering with each other, did you change the definition of Free_Space in either of them? Because they’re both set to be written to 0xB2B000, which will of course cause issues.

Have you ever wanted to make a custom title screen for your FE8 hack, but were put off by having to chop up this background image:

into two weird pieces:

Well, worry no more. With this Title Screen Background fix, you can leave the image in one piece. Note: You do need to add an extra two columns of tiles to the right, but that shouldn’t be an issue, right?

…Right?

EDIT: Please note that this does NOT make the title screen into one image. It only melds the background into one image, which is something that you’d think would have been the case to start with.

7 Likes

Ahahahaaa, I should have caught that. Thanks :stuck_out_tongue:

I did modify my effectivenesses already, was just letting you know in case you wanted to update the defaults :slight_smile:

One more thing, on the Show Heal Amount, if I switch the healing cursor to another target besides the default target, the display reverts back to the standard Max HP display instead of showing heal amount. Haven’t tested it on vanilla though, only on my mod. Is that just me?

I could have sworn I fixed that a while back. Can you redownload and tell me if the issue persists?

Redownloaded, tested on my mod and on vanilla, still does it on both.

EDIT: Seems also after installing the show weapon rank on level up hack, the “weapon broke” text is now skipped

Do you want to see the results of your level-ups right away? There’s a buildfile for that!

#define Time_Between_Stats 0 //default is 20
PUSH
ORG $7F464
BYTE Time_Between_Stats
ORG $741E0
BYTE Time_Between_Stats+1
POP

Example:

2 Likes

FE6 didn’t use to have droppable items. Now it does! Download here.

To make an enemy drop their last item, set bit 0x40 in AI 4 of the UNIT data.

6 Likes

This allows manakete-like animations for class/item combos that aren’t Myrrh+dragonstone (ie, transform, do battle, get exp, transform back). Credit to the unknown Japanese hacker that made the original, Aera for fixes to said original, and Circles for making me aware of said original.

Download here.

example

https://cdn.discordapp.com/attachments/235253973588639747/410936513061191700/test.gif
Gif courtesy of Kao.

9 Likes

Quick note for anyone using the Title Screen Background fix, The bottom right tile of the image needs to be transparent, as it is the transparent tile used in the dragon’s tsa.

There is a glitch if you swap between two units. Before you move to another unit:

After you move to another unit:

So the glitch is that ‘/’ symbol:

2 Likes

Download here.

FE7 has a set of event codes to set and unset the unit state bitfields, namely UNCM and UNCR. FE8, oddly enough, has no “generic” unit state setter. There are a few event codes that set specific bits: INVIS/DISA sets bit 0x1, SET_ENDTURN sets 0x2, etc.

The following hack allows you to set/unset whatever bits are in memory slot 1, like so:

SETVAL 0x1 0x2
SET_CONDITION Eirika

and that will set 0x2 (already moved) on Eirika.

You’ll have to add the raws to EA. I recommend adding them to “Language Raws/Units/Change unit condition.txt”. You can change the names if you’d like.

#Set the bits in memory slot 1 to the unit's condition word (+0xC in unit struct)
SET_CONDITION, 0x3427, 4, -game:FE8 -indexMode:8
	Character, 2, 2

#Unset the bits in memory slot 1 to the unit's condition word (+0xC in unit struct)	
UNSET_CONDITION, 0x3429, 4, -game:FE8 -indexMode:8
	Character, 2, 2

And here’s a list of the bits that we know so far:

0x00000001 Don't display standing map sprite
0x00000002 Greyed out/already moved
0x00000004 Dead
0x00000008 Undeployed
0x00000010 Rescuing someone
0x00000020 Is being rescued
0x00000040 Cantoing/already performed an action
0x00000080 Under a roof

0x00000100 Makes movement squares display over the map sprite, but is cleared when selecting a unit, so rather useless
0x00000200 Doesn't display map sprite in link arena if Hide Units is set to 'On'
0x00000400 Related to AI; not entirely sure what it's for
0x00000800 Riding a ballista
0x00001000 Drop last item
0x00002000 Metis Tome/Afa's Drops has been used
0x00004000 Solo animation 1
0x00008000 Solo animation 2

0x00010000 Something about not drawing map sprites?
0x00020000 Kind of unused
0x00040000 ^, see below
0x00080000 If this and either 0x00040000 0r 0x00020000 is set, activates a "super arena" with harder enemies and glitchy alternate text if you enter the arena
0x00100000 ?
0x00200000 Was not deployed last chapter
0x00400000 ?
0x00800000 Increase portrait index by 1

0x01000000 Makes the standing map sprite shake very quickly. Doesn't seem to be useful otherwise
0x02000000 Unit is unable to take part in chapter (can't select from prep screen)
0x04000000 ?
0x08000000 Use link arena palette
0x10000000 ?
0x20000000 ?
0x40000000 ?
0x80000000 ?
8 Likes

Are there plans to make one of these for FE8?

It only works when i initialize the fight and kill him. If he attacks me and i kill him i dont get the item. o:

Good catch. I forgot to update a pointer (didn’t realize there was another function calling the same proc).

Also included a fix so that obtaining an item on enemy phase doesn’t say “Item stolen” and play the sad noise, courtesy of SquareRootOfPi (thanks @Onmi for bringing it to my attention).

Here’s a patch containing a series of QoL hacks for FE7, bundled together. Some of them exist in some form or another, but I’ve collated them all for your convenience, and ported a few from FE8.

Download here.

Contains:
Danger zone
Move and Con getters (includes Show – Mov if in Guard Mode hack)
Show hp healed to target when using a staff
L-toggle (toggles animations on/off when starting combat)
Hp bars and warnings
Display battle stats with animations off
Display growths with Select (doesn’t change the stat name colors based on growth, sorry)

12 Likes

Enemies showing growth rates can also be displayed, but cannot be switched.