řAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&topic=1747.0e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexdb80.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&board=17.80e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexdb80.html.zxĎ9h^˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Čŕ•¤ç‰OKtext/htmlISO-8859-1gzip@řŐç‰˙˙˙˙˙˙˙˙Wed, 11 Mar 2020 01:23:51 GMT0ó°° ®0®P®€§˛đ®Î9h^˙˙˙˙˙˙˙˙H#ç‰ Battle Hack project

Author Topic: Battle Hack project  (Read 3109 times)

Zanerus

  • FF5 Hacker
  • *
  • Posts: 38
    • View Profile
Battle Hack project
« on: August 28, 2012, 01:21:57 PM »
Final Fantasy Five Advance Battle and Monster Hacking Project

Assistance and Credit go to Greiga Master of TREZ and Samurai Goroh from gamefaqs for coding assistance,formulas, bug checking and clean up.

What the project can currently do
*Edit the stats of any monster in the game
*Change what monsters are loaded in any battle to an extent
*Change the XY position of monsters in any battle
*AI script editing/move list editing started

What the Project’s Goals are

*Completely Map out monster format data and values
*Edit Battle scripts to include more battles where killing a monster brings in a new one.
*Expand AI script knowledge
*Create a difficult challenge for “pro” gamers

This project is designed to increase combat and make patch makers have the ability to edit monsters in any way they desire. This project came from seeing too many players on GameFAQS call the super bosses easy by using exploitable effects in their coding. Now onto the coding details

Monster Data Format
00 = Speed
01 = Attack
02 = Attack Multiplier
03 = Evade %
04 = Defense
05 = Magic Power
06 = Magic Defense
07 = Magic Evade % (you skipped this)
08-09 = HP
0A-0B = MP
0C-0D = Exp
0E-0F = Gil
10 - [Attack index] (Sound + Animation)
11 = Element Immunity
12 = Status Immune 1
13 = Status Immune 2
14 = Status Immune 3
15 = Element Absorb
16 = Unavoidable Attack
17 = Element Weakness
18 = Monster Type
19 = Command Immunity
1A = Initial Status 1
1B = Initial Status 2
1C = Initial Status 3
1D = Initial Status 4
1E-1F = Monster Index
20 = Level
21 = N/U?
22 = N/U?
23 = N/U?


This format is basically all self explanatory and wasn’t changed between the SNES and GBA versions of the game. However monsters were broken into two tables in the GBA version, so the following formulas are used to find them. As a rule of thumb, use the top formula first.

Only use last two numbers of monster value
((enemyvalue*0x24) + 0x0814B2A8)

Use whole enemy value
((enemyvalue*0x24) + 0x0814D228)

While most stats are self explanatory and only require a calculator, there are more complex parts that can add some interesting mixes. These include element, statuses, and monster type.

Propriety order for elements are Absorb>immunity>Weakness
Elemental table (Same values used in immunity, weakness, and absorb)
01=fire
02=ice
04=lightning
08=poison
10=holy
20=earth
40=Wind
80=Water

Status effect lists
Non fatal status effects can stack

Initial Status 1
10=mini
20=Toad
30=petrify
40=first strike
02=Dead
08=Sap

Initial Status 3
10=Stop
20=Shell
30=protect
40=reflect

Initial Status chart 4
10=doom
20=controlled (acts as if monster is stopped)
40=False target
80=erased
01=immune to magic

Monster type
Unlisted yet, just haven’t written it down yet.

AI Information
This section is still very much in the works since I found this yesterday of this posting and as such is only in theory currently on how it works. Plans include tackling different bosses with unique AI scripts and decoding how they work.

00x0F=Monster's move list (size seems larger but this is where the non counter attacks they commonly use are
Repeats after encounting first FF

Debug/fail attacks
00=fire
01=Blizzard
02=thunder
03=Poison
04=Silence
05=sleep
06=fira
07=blizara
08=thundara
09=drain
0A=break
0B=bio
0C=firgara
0D=Blizgara
0E=Thundgara
0F=Holy
10=Flare
11=Osmose
-----
White Magic
12=Cure
13=Libra
14=Poisona
15=Silence
16=Protect
17=mini
18=cura
19=raise
1A=confuse
1B=Blink
1C=shell
1D= Esuna
1E=Curgara
1f=Reflect
20=Berserk
21=Arise
22=Holy
23=Dispel
-----
Black magic
24=fire
25=blizard
26=thunder
27=poison
28=sleep
29=toad
2A=fira
2B=Blizara
2C=thundara
2D=drain
2E=break
2F=bio
30=Firaga
31=Bilzzaga
32=Thundaga
33=Flare
34=Death
35=Osmose
--------
Time magic
36=Speed
37=Slow
38=Regen
39=Mute   
3A=Haste
3B=Float
3C=Gravity
3D=Stop
3E=Teleport
3F=Comet
40=Slowga
41=Return
42=Graviga
43=Hastega
44=Old
45=Meteor
46=Quick
47=Banish
-------
Summons
May not work as expected
48=choco Kick
49=Slypa
4a=Constrict
4B=Diamond Dust
4C=Judgment Bolt
4D=Hellfire
4E=Gaia's Wrath
4F=Earthen wall
50=Demon Eye
51=Ruby Light
52=item?
53=Grungier
54=Phoenix (hurts undead's if cast by them)
55=Tsunami
56=Mega flare
-----
Songs
Empowers enemies on use
57=Sinewy Etude
58=Swift Song
59=Mighty March
5A=Mana's Paean
5B=Hero's Rime
5C=Requiem
5D=Romeo's Ballad
5E=alluring Air
---
Summon's round 2?
5F=chocobo Kick?
70=flames of rebirth
--------
71=drain spear
72=osmose Lance
73=Egg chop
74=Silver Harp
75=Dream Harp
76=Lamia's harp
77=Apolo's Harp
78=dummy attack
79=mystery Waltz
7A=Jitterbug
7B=Tempting Tango
7C=magic shell
7D=Sword Dance
7E=Ice Aura
7f=Entangle
80=Physical attack
81=Critical?
----
Blue Magic
82=Doom
83=Roulette
84=Aqua Breath
85=Level 5 Death
86=Level 4 Gravia
87=Level 2 old
88=Level 3 Flare
89=Pond's chorus
8A=Lilliputain lyric
8B=Flash
8C=TimeSlip
8D=Moon Flute
8E=death claw
8F=Aero
90=Aera
91=Aeroga
92=flame thrower
93=Goblin punch
94=Dark Spark
95=Off Guard
96=Transfusion
97=Mind Blast
98=Vampire
99=Magic Hammer
9A=Mighty Guard
9B=Self destruct
9C=???
9D=1000 Needles
9E=White Wind
9F=Missle
A0=Ribbit
A1=????
A2=Flee
A3-A5=Bugged self kill/freeze
A6=Grand Cross
A7=delta Attack
A8=Interceptor
A9=barrier Change
AA=Skip slot
AB=Wind Slash
AC=Skip Slot
AD=Search
AE=100G's
AF=vanish
B0=Reaper's Sword
B1=Destruct (OHKO TARGET)
B2=Blaster
B3=Beak
B4=Embrace
B5=Spore
b6=poison breath
B7=Dance Mercaba
B8=Zombie powder
B9=zombie breath
BA=Paraclet
BB=Entice
BC=Entangle
BD=Rainbow wind
BE=Dazzling Daze
BF=Gamma Ray
C0=White Hole
C1=Needle
C2=Maelstrom
C3=Special/Bone
C4=Tail Screw
C5=Digestive Acid
C6=Rocket Punch
C7=Mustard Bomb
C8=Algamast
C9=Quicksand
CA=Atomic Ray
CB=Frost Bite
CC=Ice Strom
CD=Frost
CE=Electrocute
CF=Earth Shaker
D0=Zentegusi
D1=Tidal Wave
D2=Mega flare
D3=Discord
D4=Web
D5=Slimer
D6=Earthquake
D7=OHKO
D8=Pancea
D9=Image
DA=BreathWing
DB=Blaze
DC=Lightning
DD=Wave Cannon
DE=Physical?
DF=????
E0=Rocket (causes Old)
E1=Giga Flare
E2=Encircle
E3=worm hole
E4=Posses
E5=Reverse Polarity
E6=Magnet
E7=????
E8=Jump
E9=Banish (Used on Gilgemesh)
EA=Hurricane
EB=Evil Eye
EC-EF=Bug delete unwinnable?
EF=battle ends
F0-F2=Item
F3=Drain Touch
F4=Dark Haze
F5=Deep Freeze
F6=Evil Mist
F7=Meltdown
F8=Hell wind
F9=Chaos Drive
FA=Curse
Fb=Dark Flare

FC-FF=Unknown script effects

Videos

Hacking battle Video
http://www.youtube.com/watch?v=L57G1NyXtnk

AI Hacking Video
http://www.youtube.com/watch?v=ktkm8IwG5wI

More to come later.
« Last Edit: September 30, 2012, 02:24:23 AM by Zanerus »

Jorgur

  • Moderator
  • *
  • Posts: 437
  • Gender: Male
    • View Profile
Re: Final Fantasy Five Advance Battle Hack project
« Reply #1 on: August 29, 2012, 09:14:50 PM »
I had a project similar to this back in 2008-2009.
You might want to check out my old docs. They are based on the SNES version, but much of the data also applies to FFVA.
http://slickproductions.org/forum/index.php?topic=491.0

Good luck!

Zanerus

  • FF5 Hacker
  • *
  • Posts: 38
    • View Profile
Re: Final Fantasy Five Advance Battle Hack project
« Reply #2 on: August 29, 2012, 11:15:36 PM »
From what little script I've manged to do, it seems that F0-FB were mostly used to on Necromancer moves and the odd skills First and Second rank, which seem to do nothing but keep popping up in my AI edits.

A custom script I did was face lifted from Dinozombie, but works on other enemies from my test with both Dino zombie and Cursed being.

Final attack script
8bit view in memory viewer

FC FE 80 C3 FC XX XX XX XX XX XX XX XX XX XX XX
XX XX XX FE AA FF 0F XX XX XX FE YY FE 0E FF FF

XX: May be filled with other attacks
YY: The final attack used when monster HP hits zero

Interestingly if the monster is killed by a MOnk's counter, the attack will not activate, but should on all other uses. Still getting the kninsk out but this project is getting kinda big so its hard to focus on one spot.

Zanerus

  • FF5 Hacker
  • *
  • Posts: 38
    • View Profile
Re: Final Fantasy Five Advance Battle Hack project
« Reply #3 on: September 01, 2012, 02:08:03 AM »
And now to add more to all this Azulmagia AI video, however untill I look for  an AI pointer list (I'll be doing that tomorrow I can't recreate his AI due to the length, as his AI is 12F bytes long.

http://www.youtube.com/watch?v=0BhKGIlFR4I

-----------------
Azulmagia/Apolcyops learning notes

08 00 YY 00 FE FD F6 XX 51 FD F4 00 ZZ AA FE

XX=number of attacks used from movelist section
YY=Attack that is used to change movelist
ZZ=Which movelist it changes too