Teq's Minor Assembly Shenanigans

I have a question about the Str/Mag split regarding the magic weapons.
Is it possible to have a magic weapon that uses Mag, targets Res and uses both close and ranged animations?
According to the readme, if 0x02 is set and 0x40 isn’t, the weapon will use Mag and will target Res, however, it only uses ranged animations, even if you attack at range 1 like a magic tome.
The same if you set both 0x02 and 0x40, but the weapon will target Def instead.
In the other hand, if you only set 0x40, animations will display as I want, but the weapon will use Str instead of Mag.

Is there a way to achieve what I want?

Sounds like you’d need to insert a check in the animation code; I personally have no idea. Perhaps look at how the light brand and runesword differ, since the former uses melee/magic for 1/2 range, respectively, whilst the latter uses magic for both?

IIRC the native magic weapons are hardcoded, because they can’t crit and use half of Str, and the Runesword only uses ranged animations.
All the magic swords have 0x40 set by default, so the differences are in how they are hardcoded.

I don’t know if this thread is still active but I have a question about magic swords as well.

I read the readme and it said that if you want a magic weapon to use the wielder’s magic you
just set the byte to 0x02 on the first weapon ability. However, that causes the magic sword to
always use magic, even if it is a range 1 attack.
Is it possible to make the weapon use strength at range 1 and magic at range 2 without
extensive ASM hacking, or is this something you have to get used to with the patch?

Yes.[quote=“Papilion, post:27, topic:1655”]
without extensive ASM hacking
[/quote]

No.

FE8-Capture. Because I know how much you all miss FE5’s capture mechanic. This isn’t exactly the same, but close enough.

Example gif

https://i.redd.it/4u6uhcdaepjy.gif

Readme contents:
FE8-Capture README
By Tequila

How to use:
Either assemble FE8-Capture Master EA File.txt directly with Event Assembler 10.1 or higher, or #include it in your buildfile. Update the necessary labels (Free_Space and Item_Table). You’ll also have to change the text ids for both Capture and its R-button description yourself; currently, they’re set to those for Secret.
’ Capture’ (the space in front is important!)
‘Strike a fatal blow with reduced
stats to capture an enemy.’

What does it do?
Allows someone to capture an enemy, similar to FE5, provided that

  1. The capturer would be able to rescue the capturee normally (Aid >= Con)
  2. The capturer isn’t currently rescuing anyone
  3. The capturer uses a weapon that can attack at 1 range (sorry archers).
  • For instance, a javelin or hand axe can only be used to capture at 1 range.
  • Drawbacks: All stats aside from HP, Con, and Mov are halved when capturing. This can be changed by opening FE8-Capture/FE8-Capture EA.txt, scrolling down to line 31, and commenting out the skills that you don’t want to halve (for instance, you might only want to halve offensive skills and leave defense and resistance alone).
  • After the battle, the enemy will flicker and die as normal, but will be rescued by the attacker. The only way to check the captured enemy’s stats/inventory is to open the stats page of the capturer and press A.
  • Any allied unit can trade with a captured unit (that is, after all, the entire point of this exercise).
  • While capturing, you will suffer the standard halved skill/speed penalty.
  • If you drop the unfortunate victim, they will disappear. THIS CANNOT BE REVERSED! Make sure you steal their stuff before dropping them.

Bugs:

  • When selecting Capture from the menu, the red squares that would normally highlight its range don’t appear. They do appear when selecting weapons, however. Just know that you can only capture in 1 range (currently).
  • It’s possible that there may be some glitches with saving enemy character data (although there shouldn’t be). I had to fiddle with the function that removes deceased non-player character data, so that may have consequences down the line. Let me know if this is the case.
  • (Not really a bug, more of a warning) This hack will either break or otherwise not play nice with other hacks that modify the stat getters (examples include debuffs from FE:SS or Venno’s passive item boost hack) or modify range stuff (my staff range hack).
  • (Not really a bug, more of a note) If you’ve ever used an enemy control glitch and had enemies trade each other, you’ve probably noticed that their portraits are garbage data (VBA) or make the game crash (no$). To get around this, I inserted a blank portrait over 0x1 (the question mark guy) and use that if the enemy doesn’t have a portrait. So…if you have your heart set on using the question mark guy, that may be a problem.

FAQ:

  • I don’t like the con/1-range restrictions. Can I modify your code?
    Yes, absolutely. All the source code is included here, and you can ask me if you’re confused about something.
  • I don’t like the con/1-range restrictions. Can you modify this to my specifications?
    Maybe, if I like you enough. Probably not, though.
  • Is there an FE7 version?
    No, and I don’t intend to make one, unless someone really really really wants it and has an fe7 project that’s already well-developed. If that’s not the case, switch to 8. It’s better. [/fe8_shilling]
  • Are you remaking FE5 in FE8?
    No.
10 Likes

Thanks Teq

I hate to asked this, but can you make a FE7 Version of it?

Do you have a well-developed FE7 project?

Well, you could say so. It’s a German hack with currently 12 chapters so far. I’ve been working on it for a couple of years now. The reason why I never presented it here, is basically because I think it’s not good enough to get a foreign release, but if you want to take a look on it, there is a small thread where you can take a look, the thread itself is very outdated though (Mainly because I don’t the forum anymore. It’s basically the German version of SF) .

Be honest here: do you need to have this in your project (ie, it’ll be an integral part of the gameplay, or you intended to have it all along since the beginning but never got around to asking anyone to make it for you), or was it just something you saw and said ‘oh, that looks neat, let’s insert it because it’s neat’? Because if it’s the latter, I’m going to have to decline.

1 Like

I think it’s a bit of both. On one hand I wanted to include something that would make the hack unique, so I thought through the special features of every FE an FE5s capture is one of the more unique features, but since I’m just learning ASM Hacking I canceled it (like many other features, like FE10 Map Affinities). On the other hand it’d just a “Let’s insert this because it’s neat”.

I really understand if you decline, since I can imagine the time and work that you spend on it. Heck, now that I’m thinking of it, I fell like I should apologize for making that request.

No need to apologize; you asked and I responded. You mentioned learning assembly; I’d rather show you how to port it from 8 to 7 than do it myself, frankly (which is kind of counter-intuitive, I know, since it’d take much longer).

Give a man ASM, and he’ll use it for a day, but teach a man to ASM, and he’ll stay a virgin for the rest of his life. That’s what my grandfather always used to say.

11 Likes

You know how the GBA FEs have skill getters for all stats except Con and Mov? Even Aid has a getter, and it’s arguably less useful than con. Well, I have taken steps to combat this!

FE8 Mov and Con Getters

This probably isn’t useful for the average person because aside from incorporating Circles’ ‘units with guard AI show – move’ hack, this doesn’t actually change anything in vanilla. Rather, you can modify the functions to, say, allow weapons to boost mov/con if wielded. Whether or not this is actually a good idea is an entirely different entity. But you can do it!

NOTE: If you’re using the buildfile method with other hacks that require free space in BL range, you will probably have to relocate the Free_Space_In_BL_Range location, since EA doesn’t (currently) support two different PUSH/POP commands.

NOTE 2: It’s possible I missed a few instances where mov/con is calculated. I searched the rom for ‘1A 2X’ for con and ‘1D 2X’ for mov; that’s because this is the hex for ‘mov reg,0x1A/1D’ which are, respectively, the con and mov bonus bytes in ram character data. Sometimes, however, rather than using, for instance:

@r0=char data ptr
...
mov r2,#0x1D @character's mov bonus
ldsb r0,[r0,r2]
...

the compiler decides to do:

@r0=char data ptr
...
ldrb r0,[r0,#0x1D]
lsl r0,#0x18
asr r0,#0x18
...

which my search wouldn’t find. The tricky functions to find would be those related to AI, because you might never realize that something’s wrong. However, if you, say, implement a ‘Freeze’ status, and an enemy unit moves anyway, please let me know so I can fix it. In total, I found 10 calls for Con and 23 calls for Mov. EDIT: Make that 24.

7 Likes

So, I found a bug (not really me, someone playing my “hack” but whatever)
When you have completed the game, at the bottom of the stats page there is a Battle Wins and Loses stat, and that goes over the HP growth stat
Proof
More proof
Its is possible to fix this or it is just something we’ll need to live with? (it doesn’t really affect the game much so guess no one will be upset about it)


Should be fixed; I made B/W/L only show up when displaying stats. Go ahead and redownload it.

4 Likes

It seems that I found quite the significant bug with your Capture system.

The game softlocks when moving next to a unit that is currently rescuing an ally unit (captured units are fine, npcs are untested). I guess you messed up something in one of the command checks?

Found while working on the POE, tested on a clean build including only your patch (to confirm the bug).
Voilà voilà

Fixed. Had a pop after a branch rather than before, meaning the stack was misaligned.

Ok, I found another bug with the Str/Mag split patch.
After a support conversation, the magic stat of the characters in the conversation increases:
(Before Support)

(Support)

(After Support)

Please, can you help me with this?