A Few Small Assembly Shenanagins

I will most certainly be adding to this in the future, but I figured I’d start with 2 Projects I designed that mess with the rng of FE. One of which has been done before, but I don’t believe it has been done for FE8, which is what I did it for. The other is something only someone out of their mind would do.

The first one makes it so in FE8, normal mode double rng gets rolled and in hard mode single rng gets rolled. The second one basically reverses hit. So if you have a 100 percent chance to hit in vanilla fe8, you’d now have a zero percent chance to hit. This does not apply exclusively to hit, but rather anything that uses double rng in vanilla in FE8. Good luck getting sword units to hit. Good luck trying to hit at all for that matter.

All hacks I have done can be found here!

All Hacks designed as simple one off changes can be found in UPS form here!

Miss Hack:


Mode based RNG:

I will hopefully be adding to this as I create more engine hacks like this. Have fun tearing out your hair at the miss hack.
3 Likes

Suggestion: have single RN tied to an arbitrary global EID. That way it can be toggled on/off at your leisure.

4 Likes

That would be a good way to do it, and I might revise it in the future. I’d rather mess around with some other things before doing that however.

Is there an existing single rng hack?
I like your idea of doing double for normal and single for hard, but I just want to use single for the game I’m making rn. (I guess I could just use yours and limit the player to only 1 mode.)

1 Like

I think you accidentally uploaded the inverse rng file twice. I had to download the source code in order for single rng to work. (seth’s 100% were missing)

1 Like

I’ll fix it as soon as I can. Also if you want a single rng hack, all you gotta do is change a few bytes in the ROM. I have documentation on it somewhere. If you know a your way around a hex editor (or EA) you could do this yourself.

Edit: the rng mode hack should be working now.

Edit 2:
ORG 0xcc6
SHORT 0x46C0 0x46C0 0x46C0 0x46C0

if you understand EA, then that should make it so the game rolls 1 RNG all the time. I do it this way because to be honest, it isn’t worth it compiling an asm file just to basically nullify the second rng roll, so i manually nulled it with a little raw code.

2 Likes

This is not a raw assembly hack, but rather so much as changing a few addresses and function calls around, but I will be including them here anyway.

This one is less user friendly than the other ones as they are more stuff a hack creator would include in their hack rather than someone play through vanilla fe8 with.

This is a simple rewrite of devil reversal so if it goes off it damages you and and the enemy. I like setting the rate to 100 percent here, but you could honestly set the rate to whatever you want.

#define rate 0x7f //define rate here
ORG 0xB55BA2
BYTE rate 0x21 //set backfire rate
ORG 0x2B69E
BYTE 0xC0 0x46 0xC0 0x46 0xC0 0x46 0xC0 0x46 0xC0 0x46 0xC0 0x46 rate 0x20 //set backfire rate again (not sure if this one is needed, but better safe than sorry)
ORG 0x2B6C6
BYTE 0xC0 0x46 0xC0 0x46 //Make devil axe damage you and the defender

2 Likes

hello

1 Like

This was an ASM hack made for @Dethraxx that basically makes AS calculation the way it was in 3h with one small change. Since division by 5 is a pain to do in assembly, it is wt - (str/4) instead of wt - (str/5).

2 Likes

Man, LSL/LSR feels so limiting at times. Still, I think str/4 would have made the game much smoother, especially on Maddening, at least for me tbh.

1 Like

There’s a software interrupt (BIOS function) for doing division. You don’t have to rely on logical shifts, they’re just faster.

https://www.coranac.com/tonc/text/swi.htm

2 Likes

It is. It does make logical sense as to why there is no div opcode tho. Also, I could have used the BIOS function like Zeta said, but I will admit, the method I used to build this hack was really bad. If I used any more space, I risked overwriting other calculations. In fact, I have a borked ROM where no matter what you do, hit and avoid always equal zero because the routines for other calculations got messed up due to the bios function calls taking up more space and overwriting other functions. I really should have designed it so it BLed to free space instead, but like I said, lazy. :sweat_smile:

So starting out, Id like to re-release some stuff. The Thracia Mag for GBA in particular. The new version is a lot more versatile, defining a section of free space with a list of classes that should use res to calculate attack instead of str. This even works for physical classes, so you could do some real wacky stuff with it if you customized the classlist.

Next order of business. This is a redone Intro BGM hack based off of @Sme original. The difference is, this one allows you to trigger Boss Music changes more than once per map. Included are Nightmare Modules to edit the songs and characters that these rules apply to.

Only hack I have left to post is something I will probably revise in the future. This hack, originally made by @TR143, makes any growth rate over 100 into a negative growth rate. If you put 101 in as a growth for instance, there will be a 1 percent chance that you lose a stat on level up. Like I said, I plan to revise this in the future, so you may want to hold off on using it, but by all means, give it a shot if you feel like it.

2 Likes

You are a saint.

1 Like

Why do you say that? Which hack has caught your fancy?

Negative+Positive growth rates sound like a great way to add a deeper layer of sadism to projects.

1 Like

I knew that one would catch people’s fancy. Tho like I said, it does have it’s limits right now.

Alright, so thanks to a suggestion from @SageMatthis, I got the idea to tie the negative and positive growths hack to an unused byte in character data, so you can set what growths you want to be positive based on the bits in the byte.

0—0-----0-----0-----0-----0-----0------0
HP STR SKL SPD DEF RES LCK UNUSED
most significant on left, least significant on right.

Mark byte 0x31 in the character editor with the bits you want to be negative set to 1s. You can plug it into a binary to hex converter.

Again, thanks to @TR143 for the original hack that lead to the creation of this.

Here @Zoisite, have fun.

What are you talking about? Luck is the most important stat.

I hate you for that…

1 Like