1
FFT: Advance Hacking / Any alternative to removing laws...
« on: November 04, 2011, 05:40:01 AM »
I am willing to do anything to laws more appealing. Anything. So give me ideas.
Welcome to FFH, where all your dreams come true!
Key:
R = Reflectable
S = Stealable
M = Not Silencable
O = Offensive
I = Ignore Reaction
! = R-Ab:Return Magic
@ = R-Ab:Absorb MP
Byte #1| Byte #2| Byte #3| Byte #4
RIO----- ---!--MS ------@- --------
Protect: 10000001 01100001 00010000 00000000
Dispel: 00000001 01100001 00010000 00000000
Holy: 00100001 11110001 00010010 00000000
Judge: 00100000 11100001 00010000 00000000
U.Blow: 00100000 10110010 00010110 00000000
Fire: 10100001 11110101 00011010 00000000
Greas.B.: 01100000 01110010 00010100 00000000
00 [Not Seen]
01 - None
02 [Not Seen]
03 - 100%H, Gadget, Inflict Protect
04 - 100%H, EqpSword, Inflict Disable
05 - 100%H, Gadget, Inflict Shell
06 - SType, Gadget, Inflict Blind
07 - 100%H, Gadget, 100% Heal
08 - SType, Gadget, Inflict Sleep
09 - 100%H, Gadget, Inflict Haste
0A - 100%H, Gadget, Dispel
0B - SType, Gadget, Inflict Poison
0C [Not Seen]
0D - SType, Gadget, Non-Undead: Inflict Doom
0E - 100%H, KOed Unit, Revive to Full HP
0F - 100%H, KOed Unit, Revive to 25% HP
10 [Not Seen]
11 - 100%H, Self, Draw Weapon
12 - 100%H, Self, [Eff1 Damage / 4] Damage
13 - 100%H, Self, Max HP Damage
14 - 100%H, Self, Caster's HP Damage
15 - 100%H, Self, Eff1Dep: [Eff1 Damage / 4] Damage
16 - 100%H, Self, Inflict Speed DOWN
17 - 100%H, Self, 100% Damage
18 - 100%H, Self, Eff1Dep: Heal Eff1 Damage
19 [Not Seen]
1A - 100%H, Self, Lose 30 Gil
1B - 100%H, Default, Eff1Dep: Delay Unit
1C - AType, Default, Delay Unit
1D - 100%H, Default, Inflict Quicken
1E - 100%H, Default, Inflict WAtk UP/WDef UP/MPow UP/MRes UP
1F - SType, Default, Doom Archer Effect*
20 - AType, Default, Matra Magic Effect*
21 - AType, Default, [(Target's HP + 1) * 0.9] Damage
22 - AType, Default, Steal 2 JP
23 - AType, Default, 100% Damage to MP, capped to Target's MP
24 - 100%H, Default, Heal 80 MP
25 - 100%H, Default, Inflict Astra
26 - 100%H, Default, Esuna
27 - SType, Default, Eff1Dep: Inflict Frog
28 - SType, Default, Inflict Frog
29 - 100%H, Default, Remove Frog
2A - 100%H, Cover Effect
2B - ---, Enemy, Aim: Wallet Effect*
2C - 100%H, Default, Inflict Advice
2D - 100%H, Default, Inflict Shell
2E - SType, Default, Elementalshift Effect*
2F - SType, Default, Eff1Dep: Inflict Stop
30 - SType, Default, Inflict Stop
31 - AType, Default, Inflict Speed DOWN
32 - AType, Default, 400% Damage
33 - 100%H, Default, (Target's Kills * 10) Damage
34 [Not Seen]
35 - 100%H, Default, 100% Damage
36 - 100%H, Default, 999 Damage
37 - 100%H, Default, Limit Glove Effect
38 - AType, Default, 30 Damage
39 - AType, Default, [(Target's HP + 1) / 2] Damage
3A - AType, Default, [Target's HP / 4] Damage
3B - AType, Default, Mutilate Effect*
3C - AType, Default, Goblin Punch Effect*
3D - AType, Default, Rand{2..12} Damage
3E - AType, NonUndead, (Caster's Max HP - Caster's HP) Damage
3F - AType, Default, 100% Damage
40 - AType, Default, 100% Damage, capped to Target's Max HP
41 - AType, Default, 50% Damage, 2.0x Hit Rate
42 - AType, Default, 200% Damage, 0.5x Hit Rate
43 - AType, Default, Throw Effect*
44 - SType, Default, Eff1Dep: Inflict Disable
45 - SType, Default, Inflict Disable
46 - 100%H, Default, Remove Disable
47 [Not Seen]
48 - SType, Default, Eff1Dep: Inflict Immobilize
49 - SType, Default, Inflict Immobilize
4A - 100%H, Default, Remove Immobilize
4B - 100%H, Default, Eff1Dep: Knockback
4C - SType, Default, Eff1Dep: Inflict Berserk
4D - SType, Default, Inflict Berserk
4E - 100%H, Default, Inflict Protect
4F - SType, Default, Hastebreak Effect*
50 - ---, Default, Aim: Vitals Effect*
51 - ---, Default, Acid Effect
52 - 100%H, Default, Inflict Reflect
53 - 100%H, Enemy, Detect Hidden Items
54 [Not Seen]
55 - SType, Default, Eff1Dep: Inflict Blind
56 - 100%H, Default, Eye2Eye: Inflict Blind
57 - SType, Default, Inflict Blind
58 - 100%H, Default, Remove Blind
59 - 100%H, Default, Heal to full HP
5A - 100%H, Default, Heal (Caster's HP) Damage
5B - 100%H, Default, 100% Heal
5C [Not Seen]
5D - SType, Default, Eff1Dep: Inflict Confusion
5E - 100%H, Default, Eye2Eye: Inflict Confusion
5F - SType, Default, Inflict Confusion
60 - SType, Default, Bad Breath Effect*
61 - SType, Default, Inflict Sleep
62 - SType, Default, Inflict Petrify
63 - 100%H, Default, Remove Petrify
64 - SType, Default, Inflict WDef DOWN/MRes DOWN
65 - AType, Default, Break Armor Effect
66 [Not Seen]
67 - SType, Default, Eff1Dep: Inflict Slow
68 - SType, Default, Inflict Slow
69 - 100%H, Default, Inflict Haste
6A - 100%H, Default, Dispel
6B - 100%H, Default, Soundwave Effect
6C - 100%H, Default, Inflict Expert Guard
6D [Not Seen]
6E - SType, Default, Eff1Dep: Inflict Silence
6F - SType, Default, Inflict Silence
70 - 100%H, Default, Remove Silence
71 - 100%H, Default, Hibernate Effect
72 - AType, Enemy, Steal JP
73 - AType, Enemy, Steal Gil Effect
74 - AType, Enemy, Steal EXP
75 - AType, Enemy, Steal Accessory
76 - AType, Enemy, Steal Armor
77 - AType, Enemy, Steal Helm
78 - AType, Enemy, Steal Shield
79 - AType, Enemy, Steal Weapon
7A - AType, Enemy, Steal Ability, 0.25x Hit Rate
7B - 100%H, Default, Inflict Conceal
7C - SType, Default, Eff1Dep: Inflict Poison
7D - SType, Default, Inflict Poison
7E - 100%H, Default, Remove Poison
7F - SType, Default, Inflict Zombie
80 - 100%H, Default, Remove Zombie
81 - ---, Default, Break Weapon Effect
82 - SType, Default, Inflict WAtk DOWN
83 - 100%H, Default, Inflict Boost
84 - SType, Default, Inflict Addle
85 - 100%H, Default, Inflict WDef UP
86 - AType, Default, Hurl Effect*
87 - 100%H, Default, Inflict Defense
88 - 100%H, Default, Eff1Dep: Inflict MPow DOWN
89 - SType, Default, Inflict MPow DOWN
8A - 100%H, Default, Inflict MRes UP
8B - 100%H, Default, Cureall Effect*
8C - SType, Enemy, Eff1Dep: Inflict Charm
8D [Not Seen]
8E - SType, Enemy, Inflict Charm
8F - 100%H, Default, Change Laws
90 - 100%H, NonUndead, SameLvDigit: 100% Damage
91 - 100%H, Undead, SameLvDigit: 100% Heal
92 - 100%H, LvlDivBy3, Inflict WDef DOWN
93 - 100%H, LvlDivBy3, Inflict MRes DOWN
94 - 100%H, NonUndead, LvlDivBy5: Inflict KO
95 - 100%H, Undead, LvlDivBy5: Heal to full HP
96 - 100%H, SmeLvlDay, 100% Damage
97 - 100%H, Enemy, 100% Damage to MP
98 - 100%H, Enemy, Eff1Dep: 100% Damage
99 - 100%H, Enemy, 100% Damage
9A - AType, Enemy, 100% Damage
9B - SType, Enemy, Inflict Berserk
9C - ---, Enemy, Drop Weapon
9D - ---, Parley Effect*
9E [Not Seen]
9F - AType, NotSelf, (Caster's HP) Damage
A0 - AType, NotSelf, 100% Damage
A1 - SType, NotSelf, Inflict Sleep
A2 - 100%H, NonUndead, Heal to full MP
A3 - 100%H, NonUndead, Esuna
A4 - AType, NonUndead, 100% Damage
A5 - 100%H, NonUndead, Inflict Regen
A6 - 100%H, NonUndead, Inflict Auto-Life
A7 - 100%H, NonUndead, Heal to full HP
A8 - 100%H, NonUndead, 100% Heal
A9 - SType, NonUndead, Eff2Dep: Inflict Confuse
AA - SType, NonUndead, Inflict Doom
AB - SType, NonUndead, Eff1Dep: Inflict Doom
AC - 100%H, NonUndead, Inflict KO
AD - SType, NonUndead, Inflict KO
AE [Not Seen]
AF - AType, NonAnimal, 100% Damage
B0 - ---, NonAnimal, Break Weapon Effect
B1 - AType, NonDragon, 100% Damage
B2 - 100%H, Undead, (Target's Max HP) Damage
B3 [Not Seen]
B4 - AType, Undead, 100% Damage
B5 - 100%H, Undead, Heal to full HP
B6 - 100%H, Undead, 100% Heal
B7 - SType, Undead, Remove Unit, 0.5x Hit Rate
B8 [Not Seen]
B9 - AType, Animal, 100% Damage
BA - AType, Animal, 200% Damage
BB - ---, Animal, Parley Effect*
BC - SType, Animal, Inflict Addle
BD - ---, Animal, Capture Effect*
BE - AType, Dragon, 200% Damage
BF - ---, Dragon, Parley Effect*
C0 - AType, Enemy, Mug Effect
C1 - ---, Control Effect
C2 - ---, Friend Effect*
C3 - 100%H, NonUndead, Inflict Regen
C4 - 100%H, Undead, Heal (Caster's Max HP - Caster's HP) Damage
C5 - AType, Default, 200% Damage
C6 - AType, Default, 50% Damage
C7 - AType, Default, 300% Damage
C8 - 100%H, Default, Morph Effect
C9 - SType, Enemy, Inflict Sleep
CA - 100%H, Default, 50% Damage
CB - 100%H, Judge, Stop Judge
CC - SType, Default, Inflict Disable/Immobilize
CD - 100%H, Default, Give JP
CE - 100%H, Default, Remove Yellow Card
CF - 100%H, Default, Add Yellow Card
D0 - 100%H, Default, Eff1Dep: Steal 2 JP0854CD54 = Base Clan Data.
0854D1B4 = Amount in clan. (Halfword)
0854D1B8 = Pointer to clan data. (Word)
0852CDE0 - 0x30 bytes long.
00. Sprite & Name Index
01. Job Index (Race taken from this)
02. Unknown
03. Level
04. Unknown * 4
05. Equip #1
07. Equip #2
09. Equip #3
0B. Equip #4
0D. Equip #5
0F. Unknown * 20Default gil: [0x0800986C]
Days per Month: [0x08036102] + 10x0851BA84 + (Race * 4)
NNNN DDDD AAAA TT AP
0B01 C100 0100 01 0A Cure 100 AP Action
0D01 C300 0200 01 14 Cura
0C01 C200 0300 01 1E Curaga
DA00 9000 0400 01 14 Ensuna
F101 A701 0500 01 14 Life
C900 7F00 0600 01 1E Full-Life
F001 A601 0700 01 14 Auto-Life
2401 DA00 0800 01 0A Shell
AD01 6301 0900 01 0A Protect
B400 6A00 0400 03 1E Turbo MP 300 AP
2D02 EC01 0800 05 0A White Combo 100 AP Combo
NNNN = Name Index
DDDD = Description Index(?)
AAAA = Ability Identifier(?)
TT = Type:
00: Breaks Ability
01: "Action"
02: "Reaction"
03: "Support"
05: "Combo"
Else: "Action"
AP = AP0200F881 = Overworld Law Limiter
In a HEX Editor, change the two bytes at 0x02DB04 to 00 21
and change the two bytes at 0x02DB36 to 00 21
and change the two bytes at 0x02DB5C to 00 21
and change the two bytes at 0x02DB74 to ## 20, where ## is the number of laws you want the player to be able to set. Must be at least 1.
//The part below isn't needed, but makes the game show the correct amount of laws in the pre-battle part of the game.
and change the two bytes at 0x02FB80 to 00 28
and change the two bytes at 0x02FBBE to 00 1C
Enemy Modifer?
02002FC4 1st Enemy
020030CC 2nd
020031D4
020032DC
020033E4.thumb
.org 0x06F0DC
push {r4-r6,r14}
mov r6,r0
ldrb r0,[r6,#0x2]
cmp r0,#0x0
bne 0x06F0E8
b 0x06F1E2
mov r5,#0x0
ldsb r5,[r6,r5]
lsl r5,r5,#0x13
mov r0,#0xA0
lsl r0,r0,#0xF
add r5,r5,r0
asr r5,r5,#0x10
mov r4,#0x1
ldsb r4,[r6,r4]
lsl r4,r4,#0x3
add r4,#0x4
ldrh r0,[r6,#0x4]
mov r1,#0xA
bl 0x0CA7A4
lsl r3,r0,#0x10
lsr r3,r3,#0x10
mov r0,r5
mov r1,r4
mov r2,#0x3
bl 0x06F568
mov r5,#0x0
ldsb r5,[r6,r5]
lsl r5,r5,#0x13
mov r0,#0xA0
lsl r0,r0,#0xF
add r5,r5,r0
asr r5,r5,#0x10
mov r4,#0x1
ldsb r4,[r6,r4]
lsl r4,r4,#0x13
mov r0,#0x80
lsl r0,r0,#0xD
add r4,r4,r0
asr r4,r4,#0x10
ldrh r0,[r6,#0x4]
mov r1,#0xB
bl 0x0CA7A4
lsl r3,r0,#0x10
lsr r3,r3,#0x10
mov r0,r5
mov r1,r4
mov r2,#0x3
bl 0x06F568
mov r5,#0x0
ldsb r5,[r6,r5]
lsl r5,r5,#0x13
mov r0,#0xA0
lsl r0,r0,#0xF
add r5,r5,r0
asr r5,r5,#0x10
mov r4,#0x1
ldsb r4,[r6,r4]
lsl r4,r4,#0x13
mov r0,#0xE0
lsl r0,r0,#0xD
add r4,r4,r0
asr r4,r4,#0x10
ldrh r0,[r6,#0x4]
mov r1,#0xC
bl 0x0CA7A4
lsl r3,r0,#0x10
lsr r3,r3,#0x10
mov r0,r5
mov r1,r4
mov r2,#0x3
bl 0x06F568
mov r5,#0x0
ldsb r5,[r6,r5]
lsl r5,r5,#0x13
mov r0,#0xA0
lsl r0,r0,#0xF
add r5,r5,r0
asr r5,r5,#0x10
mov r4,#0x1
ldsb r4,[r6,r4]
lsl r4,r4,#0x13
mov r0,#0xA0
lsl r0,r0,#0xE
add r4,r4,r0
asr r4,r4,#0x10
ldrh r0,[r6,#0x4]
mov r1,#0xD
bl 0x0CA7A4
lsl r3,r0,#0x10
lsr r3,r3,#0x10
mov r0,r5
mov r1,r4
mov r2,#0x3
bl 0x06F568
mov r5,#0x0
ldsb r5,[r6,r5]
lsl r5,r5,#0x13
mov r0,#0xA0
lsl r0,r0,#0xF
add r5,r5,r0
asr r5,r5,#0x10
mov r4,#0x1
ldsb r4,[r6,r4]
lsl r4,r4,#0x13
mov r0,#0xD0
lsl r0,r0,#0xE
add r4,r4,r0
asr r4,r4,#0x10
ldrh r0,[r6,#0x4]
mov r1,#0xE
bl 0x0CA7A4
mov r3,#0x7F
and r3,r0
cmp r3,r0
beq 0x06F1D8
mov r3,#0x0
mov r0,r5
mov r1,r4
mov r2,#0x3
bl 0x06F568
pop {r4-r6}
pop {r0}
bx r0/*****************************************************************************
* FFTAbil.hsl - Structure definitions for Abilities in FFTA.
*
* Copyright (c) 2011 Darthatron
*
*****************************************************************************
* Revision History:
* 1/01/11 - Created
*/
#include "standard-types.hsl"
#pragma displayname("FFTA Structures") ;
#pragma fileextensions(".gba") ;
#pragma byteorder(little_endian)
struct ABILITIES
{
WORD hNameID;
BYTE bElement;
BYTE bAP;
BYTE bMP;
BYTE bUnknown1;
BYTE bRange;
WORD hUnknown2;
BYTE bHAura;
BYTE bVAura;
BYTE bPower;
BYTE bEffect1;
BYTE bEffect2;
BYTE bEffect3;
BYTE bEffect4;
DWORD wAttributes;
BYTE bUnknown5;
BYTE bUnknown6;
BYTE bUnknown7;
BYTE bUnknown8;
BYTE bUnknown9;
BYTE bUnknown10;
BYTE bUnknown11;
BYTE bUnknown12;
} ;
struct JOBS
{
WORD hNameID;
WORD hBuffer;
BYTE bRace;
BYTE bChecksum;
BYTE bUnknown0;
WORD hSpriteIndex;
WORD hUnknown1;
BYTE bSpritePal;
BYTE bUnknown2;
BYTE bPortraitPal;
BYTE bPortraitIndex;
BYTE bUnknown3;
BYTE bAAbility;
BYTE bUnknown4;
DWORD wElements;
BYTE bStatus;
BYTE bHPBase;
BYTE bMPBase;
BYTE bSpeedBase;
BYTE bMelee1;
BYTE bMelee2;
BYTE bMelee3;
BYTE bMagic1;
BYTE bMagic2;
BYTE bMagic3;
BYTE bHPGrowth;
BYTE bMPGrowth;
BYTE bSpeedGrowth;
BYTE bAttackGrowth;
BYTE bDefenseGrowth;
BYTE bPowerGrowth;
BYTE bResistGrowth;
BYTE bUnknown5;
BYTE bMove;
BYTE bJump;
BYTE bEvade;
WORD hUnknown6;
BYTE bEquipIndex;
WORD hUnknown7;
BYTE bJobIndex;
WORD hUnknown8;
BYTE bUnknown9;
} ;
struct ALLJOBS
{
struct JOBS entries[116];
}