Venno's small ASM hacks and notes

Possibly add it on as a add-on to your FE-DS style weapon bonuses?

There was a silly bug with the FE7 version of the DS-style growths hack that added random numbers to your growth rates. I’ve fixed this, and you can redownload the fixed versions and apply them over the bugged one.

FE7

I’ve combined the Enemy bonus hit hack with my weapon rank bonus hack. This makes it compatible with Modular battle, among other things. There’s separate versions for FE8 and FE7 this time. For more info about the weapon rank hack, check this page.

Download

Oh yeah and it has a nightmare module so you can edit the enemy bonuses easily. By default its +10 hit to enemies but you can change the stat,stat boost, and whether to give it to enemies/npcs/both.

Any news and the and/or weapon levels expansion for the array-based weapon locks (though it also edits the section with weapon ranks which is why I say expansion)

I’m working on that right now actually! It should be ready within a day or so.

OK, here is the new version of the weapon lock hack, with support for either-or weapon ranks as described here. A weapon with an either-or rank will still have the weapon type of and give Wexp for the weapon type declared in its item data. For how to implement it, read the readme.

Basically you have an either-or by setting bit 4 in the first byte of your list, and make it an OR instead of an AND by setting bit 3 too. Then you have 8 bytes for the weapon levels required in each of the 8 weapon types, then your list of class/character IDs if you’re also using an ID-based lock too.

The latest update integrate staff and item locks into the FE8 version while also belatedly disabling FE8’s vanilla weapon lock bits.

Download (FE7/FE8)
Old version

2 Likes

I’m a bit confused about how to set the locks…
I set a weapon with Weapon Ability 4 to use the first array, the pointer to the array is 0x08DF0B00, in DF0B00 I set the first byte to 0x07 (Hard Class Lock+Weapon Rank required) then the next 8 are 00 00 00 00 00 B5 00 00, that means it will require Rank A in anima to use it and finally the list of the classes (0x20, 0x21 and 0x00)
I tried this and… nothing…
I tried to use it without the weapon rank requeriment, but it allows the unit to use the weapon at any level…
Am I using this correctly or I’m wrong?

If it’s just one weapon rank, you should just use nightmare and ignore the new thing. But if you need multiple checks, it’d be 0x0B, not 07.

… though it’s also possible that Venno made a mistake. I do that all the time in my code, so…

And I agree some examples would be helpful.

I want to set the weapons only usable for some Mages (Because I plan to implement the elemental mages, like in FE10), but it allows the class to use it at any rank:

(In this pic I’m using the Hard Class Lock 0x03)

Also, in the readme says that the third bit is for only one rank:

To make a weapon require ranks in multiple weapon types, set the fourth bit (0x08) in the indicator byte;
To make the weapon only require ONE out of several different weapon levels, also set the third bit (0x04).

I also tried 0x0F (Just in case), but it crashes…

If it’s crashing, there’s probably a problem with my code I didn’t catch. But if you just want it to be restricted to certain types of mages you only need a class lock. I’ll dig around and see where I messed up.

The problem with the hard class lock is the weapon rank requirement, it allows the unit to use the weapon at any level, even if the weapon is Rank S and the class have E rank.

Yeah, there were two major mistakes with my code - the weapon rank of the weapon wasn’t loaded properly for non-either/or checks, and there was a mislabeled branch that caused an infinite loop. I’ve updated the download, try re-installing it. Sorry for the trouble.

Actually hold on, it’s still crashing.

OKAY, I think I’ve fixed it for real this time. Redownload, reinstall and try it again Mikey_Seregon, it should be clear of my stupid mistakes this time.

I tested it, it works perfectly with ally units (Using 0x0B), while on enemies… it doesn’t allow the enemies increase their weapon levels:

They can’t get more than E rank.

EDIT: Never mind, it get stuck in rank E if you put a E rank weapon that it can’t use on his inventory.

Set the normal weapon rank in nightmare. Although @Venno, it might be worth looking at where the game autolevels the enemy’s weapon level.

For those of you looking to alter the global MOV cap of 15, refer to these locations:

$08017D1E,$08017D26: Maximum MOV value a MOV-boosting item can take you to; default is 15

$0807FFA0: Maximum MOV; also defines how long to draw the MOV stat bar in the character screen. Higher values than 30 are possible, but don’t look quite right.

This lets you double or triple the movement values for all classes and for all terrain movement data, which allows you to make movement values by class and terrain movement costs rather more granular. It’s important that you scale movement costs with class move; a unit that can move ~20 squares causes serious pathfinding glitches.

To make a unit’s items droppable, FE7 checks a bit in the unit’s character data - meaning you need a separate character slot for a a unit that drops its last item. If you paste the following hex to 0x17826, the game will instead check to see if the unit has bit 0x40 set in AI Byte 4 in unit data, similar to FE8’s system. So if you wanted a unit to guard a tile (0x20) and drop its item, you’d set 0x60 as their AI byte 4.

201C4130007840210840000000000000
5 Likes

Hm. Looks interesting. Is there any way to give a unit a move penalty (like an anti-boots or something) without glitching the graphics?

legennnnnd

Yes…but at the moment negative stat boosts from items don’t display properly. The graphics are there for Rescue penalties, but you’d have to modify the stat boost routine to take advantage of that.