-----------------------------
Final Fantasy Tactics Advance
         US Version
     ADVANCED HACK GUIDE
          by JoKyR
-----------------------------

Version 2.0
12-21-2005

Copyright 2005 Joseph Kyle Rogan

This may not be reproduced under any circumstances except for personal, private
use. It may not be placed on any web site or otherwise distributed publicly
without advance written permission. Use of this guide on any other web site or
as a part of any public display is strictly prohibited, and a violation of
copyright.

All trademarks and copyrights contained in this document are owned by their
respective trademark and copyright holders.

-----------------
TABLE OF CONTENTS
-----------------

I. INTRODUCTION
II. GROWTH ITEMS
   II.i. The Basics
   II.ii. Sample Codes
III. CHARACTER LEVELS
   III.i. The Basics
   III.ii. Sample Codes
IV. NAMES
V. VERSION HISTORY
VI. CREDITS

---------------
I. INTRODUCTION
---------------

Hello.  This is my very first video game faq ever, so please be gentle.  I'll
try to be as concise as possible.  This guide was originally intended to focus
solely on hacking the stats of the four growth items (Sequence, Sapere Aude,
Peytral, and Acacia Hat).  Other hackers have already done an excellent job of
cracking this game to pieces, and this was one of the only corners of the game
that had been left untouched.  However, as you can see in my version history,
it was rejected.  Twice.

Some folks on the message board were very kind, and politely suggested that I
find ways to add more codes.  I thought long and hard about this, and decided
that I didn't want to repeat the work of others.  However, there were a few
other tiny little areas of the game that I might be able to hack "a few more
codes" out of.  These new codes really have nothing to do with each other, and
are united in this guide only by the common trait of being left out of previous
faqs.  Indeed, none of them are really as useful as the growth item codes, but
you may be able to find an interesting purpose for them.

So, before you go any further, you need to know that you won't find any master
codes here, nor should you expect a comprehensive code database.  This site
already has several faqs with all the standard item, character, and monster
bank codes.  The only codes I'm including in this guide are codes that I
couldn't find anywhere else, in any format.

You also need to know that this guide is NOT intended to teach you how to hack,
write, or encrypt your own codes.  Labmaster has an excellent set of primers on
www.cheatandwin.com to do that, already.  This guide is written primarily for
seasoned hackers who want some new information about unexplored areas of the
game.  I will do my best to explain how the game deals with these specific
topics, give you some addresses and values, and offer some sample codes in as
many formats as I know how.

I hope you find this helpful.  But, if you want to alter the sample codes to
different values, I'm sorry to say that you'll have to learn how to do it on
your own.  Don't worry, though.  It's not that hard.  In fact, this is the game
I learned how to hack with.  It has a wonderfully diverse set of challenges
that have definitely prepared me for future endeavors.  And, while I'm eager to
move on to other projects, I suppose I don't mind being forced to juice a
little bit more out of one of my favorite games of all time.

-Happy Hacking,
JoKyR
maestro at KYSOff dot com

----------------
II. GROWTH ITEMS
----------------

II.i. The Basics
----------------

The four growth items are earned in the game by completing special Tournament,
Clan League, and Link Missions.  An item is given as a reward the first time
one of its associated missions is successfully completed.  These items cannot
be sold or traded.  Without hacking the item's quantity, you can only ever earn
one of each.  After you earn (or hack) the item, one of its stat values will
increase each time you successfully complete one of its associated missions.

The missions associated with each item are as follows:

Sequence: 40, Link 1, 2, 3
Sapere Aude: 41, Link 4, 5, 6
Peytral: 43
Acacia Hat: 42, Link 7, 8, 9

The stats that increase (and their original values) are as follows:

Sequence: Atk (32)
Sapere Aude: Pow (5)
Peytral: Def (28)
Acacia Hat: Res (2)

The game stores an 8-bit hex value at the following addresses to determine the
growth of the item's stat:

02002031 = Sequence
02002032 = Sapere Aude
02002033 = Peytral
02002034 = Acacia Hat

When you first obtain the item, the hex value is 0x00.  Every time you
successfully complete an associated mission, this value increases by 0x01.  The
hex value maxes out at 0xFF (255).  Don't worry, the game won't loop it back to
0x00 if you keep completing missions.  The stat value is equal to the original
value plus the hex value.  However, the in-game value maxes out at 255.

II.ii. Sample Codes
-------------------

"Max Growth Item Stats"

These codes will set all four hex values to 0xFF, giving you the max stats for
all four items.

CBA:

32002031 00FF
32002032 00FF
32002033 00FF
32002034 00FF

MadCatz GS:

FEEC9DFC 8CB1
F67D9F9C C9B1
F6EC9DBC C9B1
BE75BFDA 8CB1

GSV1/2:

04C6E332 2699A82D
D6602D2C 60B0B4B0
DE31F6F8 B12F2F70
B43D05D7 0F313818

PARV3:

(Yes, this is a slide code, so it only needs two lines.)

704C4B3B AFDE9843
54FA8281 4E7BADFC

---------------------
III. CHARACTER LEVELS
---------------------

III.i. The Basics
-----------------

Standard experience levels for all characters (including monsters in the
Monster Bank) range from 0-50.  Of course, characters generally start with a
level greater than zero.  Levels greater than 50 can be hacked, but a character
that is level 50 or higher can no longer level up.  He/she will continue to
earn experience points until he/she has 99 experience points, and then will
stop earning experience altogether.

I should warn you, though, that unlike some RPGs, or games like Pokemon, in
FFTA a character's level has NO direct effect on their stats.  Changing a
character's experience level will NOT change their statistics, nor will it
affect their performance in combat (excepting, of course, a few spells that
only affect characters of certain levels).  A character's statistics only
increase when they level up, and the amount they increase is independent of
their level.

So, why would you want to hack a character's level?  I can think of three
reasons.

First, a character's level affects their competence when completing dispatch
missions.  The higher the level, the better.  Check out Terence Fergusson's
Mechanics Guide for more info on this.

Second, the average level of the members of your party determines the
approximate levels of the enemies you encounter in random engagements.  If you
have a large party, but have only been concentrating on leveling up a few of
its members, then you will soon find that leveling up becomes difficult, in
general.  The enemies you face will all have levels in the middle of your own
level range.  So, the low level members will be too weak to survive long
against the relatively powerful enemies you face, and the high level members
will be getting very little experience for fighting relatively low level
enemies.  Adjusting the levels of your characters can fix this problem, and can
be used to make enemies stronger or weaker, as needed.

Third, you may want to lower your characters' levels to give them more
opportunities to level up.  Their stats stop growing after they reach level 50,
so why not knock them back down to zero and start all over?  Or, if you're
really maniacal, you can use a pair of 8-bit constant write slide codes
(included in the sample codes section) to set their levels to 0 and their
experience points to 99.  Then, every time they earn any amount of experience,
they'll level up... to infinity.  Just four lines of code and your characters
get obscenely powerful, fast.  Sure, you could just hack their stats manually,
but that takes quite a few more codes, and may not be as fun.

Each experience level is an 8-bit value ranging from 0x00 (level 0) to 0x32
(level 50).  These values are located at the following addresses:

02000089 = Experience Level for Character 1
02000191 = 2
02000299 = 3
020003A1 = 4
020004A9 = 5
020005B1 = 6
020006B9 = 7
020007C1 = 8
020008C9 = 9
020009D1 = 10
02000AD9 = 11
02000BE1 = 12
02000CE9 = 13
02000DF1 = 14
02000EF9 = 15
02001001 = 16
02001109 = 17
02001211 = 18
02001319 = 19
02001421 = 20
02001529 = 21
02001631 = 22
02001739 = 23
02001841 = 24

III.ii. Sample Codes
--------------------

"ALL Lvl 0"

These codes will reset all the characters' levels to zero.

CBA:

32000089 0000
32000191 0000
32000299 0000
320003A1 0000
320004A9 0000
320005B1 0000
320006B9 0000
320007C1 0000
320008C9 0000
320009D1 0000
32000AD9 0000
32000BE1 0000
32000CE9 0000
32000DF1 0000
32000EF9 0000
32001001 0000
32001109 0000
32001211 0000
32001319 0000
32001421 0000
32001529 0000
32001631 0000
32001739 0000
32001841 0000

MadCatz GS:

3477720A 53B3
0443622B 73AF
1473720B 32A3
2407E2AA 12DF
3437D28E 53D3
0403C2AF 73CF
1433D28F 32C3
A6450A2E 12BF
B6753A0A 53BF
86412A2B 73A3
96713A0B 32AF
A605AAAA 12D3
B6359A8E 53DF
86018AAF 73C3
96319A8F 32CF
21576202 732E
31677222 7322
01536203 123E
11637223 1232
2117C286 734E
3127D2A6 7342
0113C287 125E
1123D2A7 1252
A3552A02 7322

GSV1/2:

2C2F9FD0 CE30C39C
6F5CBD1B A45B9C08
6F695F0A F499AAA4
12DE170D BFC89407
642401B5 D7041F58
4CD2329E 8EF9F1F2
5F3B546E 2502C602
0E90C451 4C7463A8
A093A5DA C8657070
8DB0FCC4 CDA57EE7
B7BB95EF 6FFDF9FD
017E263A 33FB5224
10D27DE1 819518F4
4A5ECBF7 6ABCF25B
DD6458A2 414C2328
2E5A448E EE041101
DFEDBD4C 7A0CECB2
88FC1DB8 E2795C9E
D7E808F8 EAAC2335
5448CC03 36DDE4B0
25A24576 B4026B8B
9EF07E18 9CFE8F21
DEEE30D4 D0D117C7
9ED13A34 216D37DE

PARV3:

(Yep, another two line slide code.)

DEA4AC35 AC0EC0FE
69572D1C 2F49DEEF

"ALL Lvl 50"

The opposite of the previous batch, these will max out every character's level
at 50.

CBA:

32000089 0032
32000191 0032
32000299 0032
320003A1 0032
320004A9 0032
320005B1 0032
320006B9 0032
320007C1 0032
320008C9 0032
320009D1 0032
32000AD9 0032
32000BE1 0032
32000CE9 0032
32000DF1 0032
32000EF9 0032
32001001 0032
32001109 0032
32001211 0032
32001319 0032
32001421 0032
32001529 0032
32001631 0032
32001739 0032
32001841 0032 

MadCatz GS:

1C33F3CB B6C1
2C07E3EA 96DD
3C37F3CA D7D1
0C43636B F7AD
1C73534F B6A1
2C47436E 96BD
3C77534E D7B1
8E018BEF F7CD
9E31BBCB B6CD
AE05ABEA 96D1
BE35BBCA D7DD
8E412B6B F7A1
9E711B4F B6AD
AE450B6E 96B1
BE751B4E D7BD
0913E3C3 965C
1923F3E3 9650
2917E3C2 F74C
3927F3E2 F740
09534347 963C
19635367 9630
29574346 F72C
39675366 F720
8B11ABC3 9650

GSV1/2:

47386AC1 BB66F252
8D0B558D 7F17160C
BEE4A230 FBAA3756
9344CA71 6B0F6766
22705BC0 61FC4DDE
11B6F443 76348FA1
A36C8D67 AEACF8E6
4F32BD13 0F3EDF89
46050E46 D09A542A
21560A46 AF9FEEFA
B2510484 D60A8555
DC6D30DE 19B13C24
12A73DE4 4693BC74
BAAF5E60 7BA1CDE8
C3ED4359 F54A9656
A75CA94A C55ABE81
0BE30480 A582130E
16A2D9BF 59153750
475BB858 15F7D8A7
D0E89375 E2470A17
1BF51D7C F76F089A
4FB7A57D 0E2ABD58
4A005DFF 67FA1812
0912C1B7 8D605113

PARV3:

(Once again, slide code heaven.)

DEA4AC35 AC0EC0FE
369104C2 0DF80DA5

"ALL Lvl 0 Exp 99"

These codes are described above in The Basics.  Keep your codes turned on while
you play, and your characters should boost their stats extremely quickly.  I'm
only writing the PARV3 codes, though, because it's the only hacking device with
8-bit slide codes.  Sorry.  It shouldn't be hard to just mix the above level
zero codes with Labmaster's "Level Up" codes, though.

PARV3:

DEA4AC35 AC0EC0FE
69572D1C 2F49DEEF
59FCEE15 64D3D6EF
388B9EAD A88A0879

---------
IV. NAMES
---------

Unfortunately, this section is not yet complete.  Some of it is pure
speculation.  I still have a lot of testing and hacking left to do, but I've
uncovered enough information that other hackers may still find this section
useful.  TetrisTheMovie seems to be the first to have broken ground on this
subject, and I highly recommend you read his "Clan and Hero Name changer codes"
before you read this section.  I will be building upon and further expanding
the information in his guide.  That said, here we go.

Any given name in FFTA is represented by an address that contains another
32-bit address, that points to a string of bytes which represent the individual
characters of the name.  In other words, when the game checks for a name, it
goes to one address.  Then, it is directed to a new address which contains
either the first character of the name, or a code for the starting point of a
name.  Finally, it will read all the characters of the name until it reaches
the byte(s) designated as the end of the character string.

For example, when looking for the name of the main character, the game will
first go to address 0x02000080.  By default, that address contains the 32-bit
value 0x02001F1C.  At this point, if you've read TetrisTheMovie's faq, you will
hopefully recognize 0x02001F1C as the address for the first 16-bit character of
the name.  If you've left the character's name as Marche, then it should be a
capital "M", or 0xBC80.  The next two bytes would be lower case "a", or 0xCA80,
and so on until you reach the end of the name and the value 0x0000, which
signals the end of the string.

So, why does the game do this?  Why doesn't the game just store the character
string at the original address in the first place?  Because, as I'm sure you've
noticed, the vast majority of the names in FFTA cannot be customized.  Again,
if you read Terence Fergusson's Mechanics Guide, you'll find several long lists
of almost all the possible names used in FFTA.  These names are stored as
character strings in the actual ROM, and therefore can't be altered (easily).
Rather than creating a new character string in the RAM, the game simply creates
a 32-bit address that points to the location of the character string in the
ROM.

The original addresses (the pointers) for each character's name are as follows:

02000080 = Main Character's Name (Set to 0x02001F1C by default.)
02000188 = Montblanc (Default 0x085512C7)
02000290 = Character 3
02000398 = 4
020004A0 = 5
020005A8 = 6
020006B0 = 7
020007B8 = 8
020008C0 = 9
020009C8 = 10
02000AD0 = 11
02000BD8 = 12
02000CE0 = 13
02000DE8 = 14
02000EF0 = 15
02000FF8 = 16
02001100 = 17
02001208 = 18
02001310 = 19
02001418 = 20
02001520 = 21
02001628 = 22
02001730 = 23
02001838 = 24

I suspect that there are similar addresses for the clan name, enemies, and
monster bank monsters.  I just haven't looked for them all, yet.

It is also important to note that, for some unknown reason, the game uses two
different schemes for representing the characters used in names.  I suspect
this has something to do with using the main character's name and the clan name
in the game script.

The first scheme is comprised of the 16-bit values found in TetrisTheMovie's
guide.  This scheme is only used for the main character and clan names.  There
is no code to signal the beginning of a character string, and therefore names
can be truncated by slightly altering the pointer address.  (e.g. If your main
character's name is "Marche", then changing the pointer address to 0x02001F1E
will result in the name "arche".)  To signal the end of a name, use the value
0x0000.

The second is an 8-bit scheme very similar to the 16-bit scheme.  I haven't yet
tested all the values of this scheme, but it seems that most of them can be
obtained by taking the left two digits of the 16-bit values and adding 0x01.
For instance, "M" is represented by 0xBC80 in 16-bits, and 0xBD in 8-bits.
When using the 8-bit scheme, it is necessary to signal the start of a character
string with the value 0x01.  In general, these names cannot be truncated.  The
pointer address must contain the location of the 0x01 byte.  Pointing an
address to the middle of a character string will generally result in garbled
pixels, or possibly a system crash.  Similar to the 16-bit scheme, the value
0x00 is used to end a character string.

As far as I can tell, the two schemes are interchangeable.  The main
character's name can be pointed to a ROM value, and secondary character names
can be pointed to the main character's string without problems.  You could
probably, therefore, code the character string at 0x02001F1C using the 8-bit
scheme, but I would guess that this might cause problems for the game script.

At this time, I don't have any kind of list of the locations of the different
names stored on the ROM ready for you.  However, I will say that they're all in
the 0x085XXXXX area.  If you have a ROM, though, using the information I gave
you above, it shouldn't be too difficult to create a table file for the 8-bit
scheme, and use a hex editor (along with TFergusson's guide) to find the ones
you want.

Now, here's the part where we start taking advantage of all this information.
There are several ways that we can change names in FFTA:

1.) If you just want to change the name of the main character or your clan, you
can follow the method outlined in TetrisTheMovie's guide to change the name to
whatever you want.

2.) If you want to change a character's name to something on the list of names
programed in the ROM, you can change the value of the 32-bit address to point
to the new name's character string.  Keep in mind though, that doing this for
the main character, clan, or any of the storyline characters (Ritz, Cid, etc.)
probably won't change their names in the game script.

3.) If you want to make slight alterations to a name that is programed in the
ROM, you may be able to use ROM patch codes to change the character string.
Unfortunately, I don't have any experience with that type of hacking, so I
can't help you much, there.  And, I'm not 100% sure, but I believe such
alterations would only be temporary, and the codes would need to be used every
time you play the game.

4.) This last one excites me the most.  If we can find an unused section of the
RAM, then we should be able to create our own brand new character strings, and
then point the original addresses to the new strings.  By doing this, we could
change any name to anything we want!  I haven't even started testing this,
though.  I imagine it will take some work to find a good place to put the
character string, where it won't get any interference but will still be copied
to the game's battery file.

Well, that's pretty much where I'm at right now.  I don't even have sample
codes for this section, yet.  But, if any prodigious hackers out there want to
take this info and do something with it, please keep me updated on your
progress.  I'm very interested to see what can be done.

Fin.

------------------
V. VERSION HISTORY
------------------

v.2.0:
12-21-2005
Changed name to "Advanced Hack Guide"
Expanded faq structure.
Added sections on "Character Levels" and "Names"

v.1.01:
12-14-2005
Minor grammar and comprehension corrections.
Resubmitted to GameFAQs, begging CJayC to reconsider.
Rejected by GameFAQs because "The topic of your guide is too narrow, and I've
   seen these codes elsewhere, so it's definitely not that unique."
I'm not really bitter, but if anyone else has seen these codes elsewhere,
   please let me know.  That site probably would've saved me a lot of time and
   effort.

v.1.0:
12-13-2005
Original document "Growth Item Hack Guide" focused only on hacking the stats
   of the four growth items (Sequence, Sapere Aude, Peytral, and Acacia Hat).
Rejected by GameFAQs due to "lack_of_content".

-----------
VI. CREDITS
-----------

Special thanks goes first and foremost to Labmaster for, essentially, teaching
me how to hack.  His FFTA guide, as well as his hacking primers have proved
invaluable.

Thanks to Terence Fergusson and TetrisTheMovie for their excellent guides,
which I have referenced several times in this document.

And finally, thanks to mikeTherob, bobeta, and DeMatt on the GameFAQs message
boards for their support and criticism.

-JoKyR