Overlapping Weapon Triangle Hax

Basically, you’re going to need to repoint the weapon triangle advantage table (credit to @Crazycolorz5 and @Venno for documenting the locations in FE7/8, respectively).

In your hex editor, pick a spot of free space to paste the new table into. Then use the “replace all” function.

In FE7 you’ll want to replace: 6C 42 B9 08
In FE8 you’ll want to replace: 90 BA 59 08

Replace all instances of those pointers with the pointer to the location of the new weapon triangle advantage table.

Overlapping Weapon/Magic Triangle

Swords/Light -> Axes/Dark -> Lances/Anima

00 01 F1 FF 00 02 0F 01 01 02 F1 FF 01 00 0F 01 02 00 F1 FF 02 01 0F 01 05 07 F1 FF 05 06 0F 01 06 05 F1 FF 06 07 0F 01 07 06 F1 FF 07 05 0F 01 07 00 F1 FF 00 07 0F 01 06 01 F1 FF 01 06 0F 01 05 02 F1 FF 02 05 0F 01 FF

Inverted Overlapping Triangle (straight outta one of Arch’s wacky concept threads)

Swords/Dark -> Axes/Anima -> Lances/Light

00 01 F1 FF 00 02 0F 01 01 02 F1 FF 01 00 0F 01 02 00 F1 FF 02 01 0F 01 05 07 F1 FF 05 06 0F 01 06 05 F1 FF 06 07 0F 01 07 06 F1 FF 07 05 0F 01 07 01 F1 FF 01 07 0F 01 06 02 F1 FF 02 06 0F 01 05 00 F1 FF 02 00 0F 01 FF

The tables are read the same way in both FE7 and FE8, so you can use the same code for either game.

If someone ever figures out the FE6 pointers it’s highly probable that these tables will work in FE6 too.

5 Likes

It would take some tooling around with the item icon palette, but if anyone wants to take a page out of FEH’s book, adding backgrounds to the weapons would make it very easy to tell at a glance which phys weapon is effective against which tome and vice versa.

3 Likes

ALIGN 4
WTATable:
defWTAAdvantage(Swords, Axes)
defWTAAdvantage(Swords, Bows)

defWTAAdvantage(Lances, Swords)
defWTAAdvantage(Lances, Tomes)

defWTAAdvantage(Axes, Lances)
defWTAAdvantage(Axes, Shurikens)

defWTAAdvantage(Tomes, Axes)
defWTAAdvantage(Tomes, Bows)

defWTAAdvantage(Shurikens, Swords)
defWTAAdvantage(Shurikens, Tomes)

defWTAAdvantage(Bows, Lances)
defWTAAdvantage(Bows, Shurikens)

endWTATable

Is how FE:Destiny does it, with these in definitions:

  #define defWTAAdvantage(attackingType, defendingType) "BYTE attackingType defendingType"//"BYTE attackingType defendingType 0x0F 0x01"
  #define defWTADisadvantage(attackingType, defendingType) "BYTE defendingType attackingType" //"BYTE attackingType defendingType 0xF1 0xFF"
  #define endWTATable "BYTE 0xFF 0xFF"

Note that this is using a hack that makes the WTA table purely just who has advantage over who, with the amounts being weapon rank dependant. To make it behave like vanilla, change the definitions to the commented out parts.

2 Likes

Yo, the weapon triangle table in FE6 is located at offset 0x85C61C0. The one and only pointer to the table is at 0x25A9B.

1 Like