[FE8] Modification to Dancer Ring functionality

This hack changes the implementation of rings so that they give Stat/2 turns of boost instead of 1, where the stat is the relevant stat of the bard.
files

Note that this will require the image located at 0xE17C0 to be repointed.

…now if I could only modify what the status boosts are
@Crazycolorz5, what notes do you have from that “Sick” status change?

The does this have to de with sick status at all???

We just need to find where they write to the status byte and replace that with a routine to calculate the turns left as the HO Nibble.

Wait, so… Tethys can give +10 DEF for 5 turns? That seems even easier to abuse then the ol’ rescue-dropping dancer glitch of lore on an arena.

I was actually hoping to combine this with changing the functionality of what “attack boost” meant, like perhaps having the amount of boost being proportional to number of turns left. So sort of like the “Barrier” boost.
If I could find where the +10 to attack part actually appears then I feel like it shouldn’t be too hard to change it… :\

It adds it in several different places, unfortunately, so it’d be a bit difficult.

Hmm. As soon as I changed the number in the 2AD90 routine, the attack boost starts behaving in the modified manner. Am I missing something here?

Yes because I don’t think that has anything to do with the stat boosts from status effects.

So disassembling at that location we get

0802AD90 B500 push {r14}
0802AD92 1C01 mov r1,r0
0802AD94 3030 add r0,#0x30
0802AD96 7800 ldrb r0,[r0]
0802AD98 0700 lsl r0,r0,#0x1C
0802AD9A 0F00 lsr r0,r0,#0x1C
0802AD9C 2806 cmp r0,#0x6
0802AD9E D00B beq #0x802ADB8
0802ADA0 2806 cmp r0,#0x6
0802ADA2 DC02 bgt #0x802ADAA
0802ADA4 2805 cmp r0,#0x5
0802ADA6 D005 beq #0x802ADB4
0802ADA8 E00E b #0x802ADC8
0802ADAA 2807 cmp r0,#0x7
0802ADAC D006 beq #0x802ADBC
0802ADAE 2808 cmp r0,#0x8
0802ADB0 D006 beq #0x802ADC0
0802ADB2 E009 b #0x802ADC8
0802ADB4 315A add r1,#0x5A
0802ADB6 E004 b #0x802ADC2
0802ADB8 315C add r1,#0x5C
0802ADBA E002 b #0x802ADC2
0802ADBC 3166 add r1,#0x66
0802ADBE E000 b #0x802ADC2
0802ADC0 3162 add r1,#0x62
0802ADC2 8808 ldrh r0,[r1]
0802ADC4 300A add r0,#0xA ***
0802ADC6 8008 strh r0,[r1]
0802ADC8 BC01 pop {r0}
0802ADCA 4700 bx r0

which seems to take the status byte, look at what the status nibble is, and add 0xA to the relevant stat if the status is one of the 4 dancer boosts.
And changing the #0xA at *** makes Seth’s attack boost different.

Oh, this is FE8. Oops.
Yeah, it might just make the modification to when the battle data is loaded. That might work. Be wary of side-effects, though.

Follow-up hack: Makes the boost from a dancer ring status fade gradually each turn.
hack

paste at offset 2AD90.

I don’t like the concept.
I mean, the dance ring effects are already broken as they are… Having them last more than one turn is insane.
It’s just a humble suggestion, but why don’t make the boost depend on the stat, instead of the turn number?

Stat boost = Skl/2
Optional: Number of turns = Luck/10 (so max 3 turns)
something like this?

Hmm. I’m not sure how doable this is… there’d have to be some way to store the amount of stat boost on the character. I wonder if I can repurpose that seemingly unused 2nd nibble where the barrier data is…

Or just recalculate it based on the character that is being boosted – Take the stat you’re adding it to and instead multiply by 3/2. But yeah making it dancer based is… interesting to say the least. Also, protip: “seemingly unused” isn’t the best judge of things.

You could always allocate more bytes in one of the RAM segments if necessary, too. I’m sure there’s at least a few kilobytes unused

Seems to be working. (Modifications made to the stat-getter routines, boost stored where the Barrier boost used to be. Also has effect of making the boost decline by 1 every turn, with the boost disappearing either this way or when the status runs out, whichever comes first.)

2 Likes