The current URL is datacrystal.tcrf.net.
Final Fantasy Tactics Advance/Jobs: Difference between revisions
Darthatron (talk | contribs) No edit summary |
m (Xkeeper moved page Final Fantasy Tactics Advance:Jobs to Final Fantasy Tactics Advance/Jobs: normalize subpages and titles) |
||
(16 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{subpage|game=Final Fantasy Tactics Advance}} | |||
==Information== | ==Information== | ||
*The Job data starts at 0x521A14. | *The Job data starts at 0x521A14. | ||
*The Job | *The Job Requirement data starts at 0x5231A4; directly after the Job data. | ||
*Job names are stored in [[Final_Fantasy_Tactics_Advance:String_Tables#Item_and_Location_Names_Strings|this list]]. | *Job names are stored in [[Final_Fantasy_Tactics_Advance:String_Tables#Item_and_Location_Names_Strings|this list]]. | ||
*There are 0x73 (115) jobs, including monster class, specials, ect. | *There are 0x73 (115) jobs, including monster class, specials, ect. | ||
Line 17: | Line 17: | ||
!Description | !Description | ||
|- | |- | ||
| Name ID || 2 || 0x00 || uint16 || | | Name ID || 2 || 0x00 || uint16 || Unknown || The Name ID of the Job. | ||
|- | |- | ||
| Buffer || 2 || 0x02 || uint16 || | | Buffer || 2 || 0x02 || uint16 || Unknown || Always 0x0000 | ||
|- | |- | ||
| Race || 1 || 0x04 || uint8 || 0x17{{User:Darthatron/Templates/Verify}} || The Race of the Job. | | Race || 1 || 0x04 || uint8 || 0x17{{User:Darthatron/Templates/Verify}} || The Race of the Job. | ||
:Values: | :Values: | ||
:* | :*0x01: Hume | ||
:*0x02: Bangaa | |||
:*0x03: Nou Mu | |||
:*0x04: Viera | |||
:*0x05: Moogle | |||
:*0x06: Monster (Goblins) | |||
:*0x07: Monster (Flans) | |||
:*0x08: Monster (Bombs) | |||
:*0x09: Monster (Dragons) | |||
:*0x0A: Monster (Snake-women) | |||
:*0x0B: Monster (Spiders) | |||
:*0x0C: Monster (Blade Biters) | |||
:*0x0D: Monster (Tonberry) | |||
:*0x0E: Monster (Panthers) | |||
:*0x0F: Monster (Malboro) | |||
:*0x10: Monster (Ahriman) | |||
:*0x11: Monster (Undead) | |||
:*0x12: Monster (Fairy) | |||
:*0x13: Special (Llendar) | |||
:*0x14: Special (Playable) | |||
:*0x15: Special (Totemas) | |||
:*0x16: Special (Li-grim) | |||
:*0x17: Judge | |||
|- | |- | ||
| | | Checksum? || 1 || 0x05 || uint8 || Unknown || Appears to be checked. If non-zero it branches off to another routine. | ||
|- | |- | ||
| | | Unknown || 1 || 0x06 || uint8 || Unknown || Checked when entering a Pub. No clue why. | ||
|- | |- | ||
| | | Sprite Index || 2 || 0x07 || uint16{{User:Darthatron/Templates/Verify}}|| Unknown || The index of the sprite that is used in battles/menus/etc. | ||
|- | |- | ||
| | | Unknown || 2 || 0x09 || ???? || ???? || Unknown. | ||
|- | |||
| Sprite Palette Index || 1 || 0x0B || uint8 || 0x22 || The palettes that the sprite uses. | |||
<tt>XXXX YYYY</tt> (bits); where <tt>XXXX</tt> is the enemy and <tt>YYYY</tt> is the player palette. | |||
|- | |||
| Unknown || 1 || 0x0C || ???? || ???? || Unknown. | |||
|- | |||
| Portrait Palette Index || 1 || 0x0D || uint8 || Unknown || Then loaded from a table?? | |||
|- | |||
| Portrait Index || 1 || 0x0E || uint8 || Unknown || Then loaded from a table?? | |||
|- | |||
| Unknown || 1 || 0x0F || ???? || ???? || Unknown. | |||
|- | |||
| A-Ability Index || 1 || 0x10 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || The Index of the A-Abilities which this job uses. | |||
|- | |||
| Unknown || 1 || 0x11 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || No idea, but it's a byte. | |||
|- | |||
| Elements || 4 || 0x12 || See description. || Unknown || This word controls resistances/weakness to elements.<br /> | |||
Each element is stored in three bits each:<br /> | |||
:<tt>00 000 DDD HHH LLL III WWW EEE AAA FFF 000</tt><br /> | |||
Where each letter corresponds to an element:<tt> | |||
:*D = Dark | |||
:*H = Holy | |||
:*L = Lightning | |||
:*I = Ice | |||
:*W = Water | |||
:*E = Earth | |||
:*A = Wind | |||
:*F = Fire</tt> | |||
And each three bits mean:<tt> | |||
:*000 = Weak | |||
:*001 = Normal | |||
:*010 = Nullify | |||
:*011 = Absorb | |||
:*100 = Resist</tt> | |||
Example of Jelly (Monster): | |||
<tt>0x01241258 = 00 000 001 001 001 000 001 001 001 011 000</tt><br /> | |||
Normal to Dark, Holy, Lightning, Water and Earth; | |||
Weak to Ice; | |||
and Absorbs Fire. | |||
|- | |||
| Status Defense || 1 || 0x16 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || Resistance against status effects. Always 50 for playable characters. | |||
|- | |||
| Base HP || 1 || 0x17 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || The base level of HP. | |||
|- | |||
| Base MP || 1 || 0x18 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || The base level of MP. | |||
|- | |||
| Base Speed || 1 || 0x19 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || The base level of the Speed stat. | |||
|- | |||
| Base Melee || 3 || 0x1A || See description. || Unknown || The base level of the Attack and the Defence stat. | |||
<tt>0x1A = AAAA BBBB (bits)<br /> | |||
0x1B = XXXX ZZZZ (bits)<br /> | |||
0x1C = 0000 YYYY (bits)</tt> | |||
where <tt>ZZZZ AAAA BBBB</tt> (bits) = Base Attack<br /> | |||
and <tt>YYYY XXXX</tt> (bits) = Base Defence | |||
|- | |||
| Base Magic || 3 || 0x1D || See description. || Unknown || The base level of the Power and the Resistance stat. | |||
<tt>0x1D = AAAA BBBB (bits)<br /> | |||
0x1E = XXXX ZZZZ (bits)<br /> | |||
0x1F = 0000 YYYY (bits)</tt> | |||
where <tt>ZZZZ AAAA BBBB</tt> (bits) = Base Power<br /> | |||
and <tt>YYYY XXXX</tt> (bits) = Base Res. | |||
|- | |||
| HP Growth || 1 || 0x20 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || How much HP grows at level up, x10. | |||
:Eg.: | |||
:*A value of 84 will raise HP by 8, with a 40% chance of being 9. | |||
:*A value of 52 will raise HP by 5, with a 20% chance of being 6. | |||
|- | |||
| MP Growth || 1 || 0x21 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || How much MP grows at level up, x10. | |||
|- | |||
| Speed Growth || 1 || 0x22 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || How much Speed grows at level up, x10. | |||
|- | |||
| Attack Growth || 1 || 0x23 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || How much Attack grows at level up, x10. | |||
|- | |||
| Defense Growth || 1 || 0x24 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || How much Defense grows at level up, x10. | |||
|- | |||
| Magic Pow. Growth || 1 || 0x25 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || How much Power grows at level up, x10. | |||
|- | |||
| Magic Res. Growth || 1 || 0x26 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || How much Resistance grows at level up, x10. | |||
|- | |||
| Unknown || 1 || 0x27 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || Always appears to be a copy of Resistance Growth (above). | |||
Never appears to be read from any routine... | |||
|- | |||
| Movement || 1 || 0x28 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || The 'Move' value of job. | |||
|- | |||
| Jump || 1 || 0x29 || uint8{{User:Darthatron/Templates/Verify}} || Unknown || The 'Jump' value of job. | |||
|- | |||
| Evade || 1 || 0x2A || uint8{{User:Darthatron/Templates/Verify}} || Unknown || The 'Evade' value of job. | |||
|- | |||
| Movement Style || 1 || 0x2B || uint8 || Unknown || The lower 4 bits represent how this job stands. | |||
:*0x0 - Errorous | |||
:*0x1 - Normal? | |||
:*0x2 - Normal again? | |||
:*0x3 - Crawl | |||
:*0x4 - Float (ie: can walk on water) | |||
:*0x5 - Tonberry | |||
The upper 4 bits represent how this job moves. | |||
:*0x0 - Errorous | |||
:*0x1 - Walk | |||
:*0x2 - Fly | |||
:*0x3 - Teleport | |||
|- | |||
| Unknown || 1 || 0x2C || uint8{{User:Darthatron/Templates/Verify}} || Unknown || Unknown. | |||
|- | |||
| Equip-able Items Index || 1 || 0x2D || uint8{{User:Darthatron/Templates/Verify}} || Unknown. || The word (4 bytes) at <tt>0x51D0F4 + (X * 4)</tt>, where X is the value of this byte, determines what items are equip-able. | |||
Each bit (0x00 being the least significant and 0x1F being the most significant) in the word determines a different type of item: | |||
:*0x00 - Sword | |||
:*0x01 - Blade | |||
:*0x02 - Saber | |||
:*0x03 - Knight Sword | |||
:*0x04 - Great Sword | |||
:*0x05 - Broad Sword | |||
:*0x06 - Knife | |||
:*0x07 - Rapier | |||
:*0x08 - Katana | |||
:*0x09 - Staff | |||
:*0x0A - Rod | |||
:*0x0B - Mace | |||
:*0x0C - Bow | |||
:*0x0D - Great Bow | |||
:*0x0E - Spear | |||
:*0x0F - Instrument | |||
:*0x10 - Knuckles | |||
:*0x11 - Soul | |||
:*0x12 - Gun | |||
:*0x13 - Shield | |||
:*0x14 - Helmet | |||
:*0x15 - Ribbon | |||
:*0x16 - Hat | |||
:*0x17 - Armor | |||
:*0x18 - Clothing | |||
:*0x19 - Robe | |||
:*0x1A - Shoes | |||
:*0x1B - Armlets | |||
:*0x1C - Accessory | |||
:*0x1D - Not used - But can't be used due to items | |||
:*0x1E - Not used | |||
:*0x1F - Not used | |||
|- | |||
| Ability Start || 1 || 0x2E || uint8 || Unknown || Represents the start of the array of abilities for this job. Based on the pointer at 0x051BA84 + Race * 4. | |||
<tt>NNNN DDDD AAAA TT AP</tt> | |||
<tt>NNNN</tt> = Name Index | |||
<tt>DDDD</tt> = Description Index(?) | |||
<tt>AAAA</tt> = Ability Identifier(?) | |||
<tt>TT</tt> = Type: | |||
::<tt>00: Breaks Ability; | |||
::01: "Action"; | |||
::02: "Reaction"; | |||
::03: "Support"; | |||
::05: "Combo"; | |||
::Else: "Action"</tt> | |||
<tt>AP</tt> = AP | |||
|- | |||
| Ability End || 1 || 0x2F || uint8 || Unknown || Represents the end of the array of abilities for this job. Based on the same pointer. | |||
|- | |||
| Job Requirement || 1 || 0x30 || uint8 || Unknown || Index of the Job Requirement data. | |||
See below. | See below. | ||
|- | |- | ||
Line 38: | Line 229: | ||
|} | |} | ||
==Job Requirement Data Structure== | |||
==Job | ''The Job Requirement Data Structure is 0x4 bytes long.'' | ||
''The Job | |||
{| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1" | {| style="border: 1px solid #aaaaaa; margin: auto; border-collapse: collapse;" cellspacing="0" cellpadding="3" border="1" | ||
|- style="background: #ccccff;" | |- style="background: #ccccff;" | ||
Line 54: | Line 244: | ||
| Amount || 1 || 0x01 || uint8 || ''unknown'' || How many abilities are needed in 1st Job. | | Amount || 1 || 0x01 || uint8 || ''unknown'' || How many abilities are needed in 1st Job. | ||
|- | |- | ||
| Job ID || 1 || | | Job ID || 1 || 0x02 || uint8 || ''unknown'' || The ID # of the 2nd Job. | ||
|- | |- | ||
| Amount || 1 || | | Amount || 1 || 0x03 || uint8 || ''unknown'' || How many abilities are needed in 2nd Job. | ||
|- | |- | ||
|} | |} | ||
==Default List of Jobs== | ==Default List of Jobs== | ||
Line 68: | Line 257: | ||
!Race | !Race | ||
!Playable? | !Playable? | ||
! | !Requirements | ||
|- | |||
| 0x00 || - || 0x00 || 0x00 || 0x00 | |||
|- | |- | ||
| 0x01 || - || 0x00 || 0x00 || 0x00 | | 0x01 || - || 0x00 || 0x00 || 0x00 | ||
|- | |- | ||
| 0x02 || | | 0x02 || Soldier || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x03 || | | 0x03 || Paladin || 0x01 || 0x01 || 0x03 | ||
|- | |- | ||
| 0x04 || | | 0x04 || Fighter || 0x01 || 0x01 || 0x03 | ||
|- | |- | ||
| 0x05 || | | 0x05 || Thief || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x06 || | | 0x06 || Ninja || 0x01 || 0x01 || 0x01 | ||
|- | |- | ||
| 0x07 || | | 0x07 || White Mage || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x08 || | | 0x08 || Black Mage || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x09 || | | 0x09 || Illusionist || 0x01 || 0x01 || 0x0D | ||
|- | |- | ||
| 0x0A || | | 0x0A || Blue Mage || 0x01 || 0x01 || 0x0E | ||
|- | |- | ||
| 0x0B || | | 0x0B || Archer || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x0C || | | 0x0C || Hunter || 0x01 || 0x01 || 0x08 | ||
|- | |- | ||
| 0x0D || | | 0x0D || Warrior || 0x02 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x0E || | | 0x0E || Dragoon || 0x02 || 0x01 || 0x04 | ||
|- | |- | ||
| 0x0F || | | 0x0F || Defender || 0x02 || 0x01 || 0x04 | ||
|- | |- | ||
| 0x10 || | | 0x10 || Gladiator || 0x02 || 0x01 || 0x04 | ||
|- | |- | ||
| 0x11 || | | 0x11 || White Monk || 0x02 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x12 || | | 0x12 || Bishop || 0x02 || 0x01 || 0x07 | ||
|- | |- | ||
| 0x13 || | | 0x13 || Templar || 0x02 || 0x01 || 0x07 | ||
|- | |- | ||
| 0x14 || | | 0x14 || White Mage || 0x03 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x15 || | | 0x15 || Black Mage || 0x03 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x16 || | | 0x16 || Time Mage || 0x03 || 0x01 || 0x0F | ||
|- | |- | ||
| 0x17 || | | 0x17 || Illusionist || 0x03 || 0x01 || 0x10 | ||
|- | |- | ||
| 0x18 || | | 0x18 || Alchemist || 0x03 || 0x01 || 0x10 | ||
|- | |- | ||
| 0x19 || | | 0x19 || Beastmaster || 0x03 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x1A || | | 0x1A || Morpher || 0x03 || 0x01 || 0x12 | ||
|- | |- | ||
| 0x1B || | | 0x1B || Sage || 0x03 || 0x01 || 0x13 | ||
|- | |- | ||
| 0x1C || | | 0x1C || Fencer || 0x04 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x1D || | | 0x1D || Elementalist || 0x04 || 0x01 || 0x05 | ||
|- | |- | ||
| 0x1E || | | 0x1E || Red Mage || 0x04 || 0x01 || 0x06 | ||
|- | |- | ||
| 0x1F || | | 0x1F || White Mage || 0x04 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x20 || | | 0x20 || Summoner || 0x04 || 0x01 || 0x11 | ||
|- | |- | ||
| 0x21 || | | 0x21 || Archer || 0x04 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x22 || | | 0x22 || Assassin || 0x04 || 0x01 || 0x09 | ||
|- | |- | ||
| 0x23 || | | 0x23 || Sniper || 0x04 || 0x01 || 0x0A | ||
|- | |- | ||
| 0x24 || | | 0x24 || Animist || 0x05 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x25 || | | 0x25 || Mog Knight || 0x05 || 0x01 || 0x0C | ||
|- | |- | ||
| 0x26 || | | 0x26 || Gunner || 0x05 || 0x01 || 0x0C | ||
|- | |- | ||
| 0x27 || | | 0x27 || Thief || 0x05 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x28 || | | 0x28 || Juggler || 0x05 || 0x01 || 0x02 | ||
|- | |- | ||
| 0x29 || | | 0x29 || Gadgeteer || 0x05 || 0x01 || 0x02 | ||
|- | |- | ||
| 0x2A || | | 0x2A || Black Mage || 0x05 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x2B || | | 0x2B || Time Mage || 0x05 || 0x01 || 0x0B | ||
|- | |- | ||
| 0x2C || | | 0x2C || Goblin || 0x06 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x2D || | | 0x2D || Red Cap || 0x06 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x2E || | | 0x2E || Jelly || 0x07 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x2F || | | 0x2F || Ice Flan || 0x07 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x30 || | | 0x30 || Cream || 0x07 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x31 || | | 0x31 || Bomb || 0x08 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x32 || | | 0x32 || Grenade || 0x08 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x33 || | | 0x33 || Icedrake || 0x09 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x34 || | | 0x34 || Firewyrm || 0x09 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x35 || | | 0x35 || Thundrake || 0x09 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x36 || | | 0x36 || Lamia || 0x0A || 0x02 || 0x00 | ||
|- | |- | ||
| 0x37 || | | 0x37 || Lilith || 0x0A || 0x02 || 0x00 | ||
|- | |- | ||
| 0x38 || | | 0x38 || Antlion || 0x0B || 0x02 || 0x00 | ||
|- | |- | ||
| 0x39 || | | 0x39 || Jawbreaker || 0x0B || 0x02 || 0x00 | ||
|- | |- | ||
| 0x3A || | | 0x3A || Toughskin || 0x0C || 0x02 || 0x00 | ||
|- | |- | ||
| 0x3B || | | 0x3B || Blade Biter || 0x0C || 0x02 || 0x00 | ||
|- | |- | ||
| 0x3C || | | 0x3C || Tonberry || 0x0D || 0x02 || 0x00 | ||
|- | |- | ||
| 0x3D || | | 0x3D || Masterberry || 0x0D || 0x02 || 0x00 | ||
|- | |- | ||
| 0x3E || | | 0x3E || Red Panther || 0x0E || 0x02 || 0x00 | ||
|- | |- | ||
| 0x3F || | | 0x3F || Coeurl || 0x0E || 0x02 || 0x00 | ||
|- | |- | ||
| 0x40 || | | 0x40 || Malboro || 0x0F || 0x02 || 0x00 | ||
|- | |- | ||
| 0x41 || Malboro || 0x0F || 0x02 || 0x00 | | 0x41 || Big Malboro || 0x0F || 0x02 || 0x00 | ||
|- | |- | ||
| 0x42 || | | 0x42 || Floateye || 0x10 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x43 || | | 0x43 || Ahriman || 0x10 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x44 || | | 0x44 || Zombie || 0x11 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x45 || | | 0x45 || Vampire || 0x11 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x46 || | | 0x46 || Sprite || 0x12 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x47 || | | 0x47 || Titania || 0x12 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x48 || | | 0x48 || - || 0x00 || 0x00 || 0x00 | ||
|- | |- | ||
| 0x49 || - || 0x00 || 0x00 || 0x00 | | 0x49 || - || 0x00 || 0x00 || 0x00 | ||
Line 222: | Line 413: | ||
| 0x4C || - || 0x00 || 0x00 || 0x00 | | 0x4C || - || 0x00 || 0x00 || 0x00 | ||
|- | |- | ||
| 0x4D || | | 0x4D || Official || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x4E || | | 0x4E || - || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x4F || - || 0x01 || | | 0x4F || - || 0x01 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x50 || - || 0x01 || | | 0x50 || - || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x51 || - || | | 0x51 || - || 0x04 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x52 || - || | | 0x52 || - || 0x05 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x53 || | | 0x53 || Runeseeker || 0x14 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x54 || | | 0x54 || Hermetic || 0x14 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x55 || | | 0x55 || - || 0x04 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x56 || | | 0x56 || Biskmatar || 0x13 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x57 || | | 0x57 || - || 0x13 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x58 || - || | | 0x58 || Li-grim || 0x16 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x59 || | | 0x59 || - || 0x16 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x5A || | | 0x5A || New Kid || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x5B || | | 0x5B || Librarian || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x5C || | | 0x5C || Class Head || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x5D || | | 0x5D || PE Head || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x5E || | | 0x5E || D.J. || 0x01 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x5F || | | 0x5F || Nurse || 0x04 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x60 || | | 0x60 || Custodian || 0x04 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x61 || | | 0x61 || Totema || 0x15 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x62 || Totema || 0x15 || 0x02 || 0x00 | | 0x62 || Totema || 0x15 || 0x02 || 0x00 | ||
Line 272: | Line 463: | ||
| 0x65 || Totema || 0x15 || 0x02 || 0x00 | | 0x65 || Totema || 0x15 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x66 || | | 0x66 || - || 0x15 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x67 || | | 0x67 || Judgemaster || 0x01 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x68 || | | 0x68 || Judge || 0x17 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x69 || Judge || 0x17 || 0x02 || 0x00 | | 0x69 || Judge || 0x17 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x6A || | | 0x6A || Judgemaster || 0x17 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x6B || | | 0x6B || Mr. Leslaie || 0x17 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x6C || | | 0x6C || Battle Queen || 0x16 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x6D || | | 0x6D || Box || 0x01 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x6E || | | 0x6E || Statue || 0x01 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x6F || | | 0x6F || Sphere || 0x01 || 0x02 || 0x00 | ||
|- | |- | ||
| 0x70 || | | 0x70 || Judge || 0x17 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x71 || Judge || 0x17 || 0x01 || 0x00 | | 0x71 || Judge || 0x17 || 0x01 || 0x00 | ||
Line 298: | Line 489: | ||
| 0x72 || Judge || 0x17 || 0x01 || 0x00 | | 0x72 || Judge || 0x17 || 0x01 || 0x00 | ||
|- | |- | ||
| 0x73 | | 0x73 || Judgemaster || 0x17 || 0x01 || 0x00 | ||
|- | |- | ||
|} | |} | ||
==Help, please...== | ==Help, please...== | ||
You can edit this... In fact, please do. I am getting very lazy in my old age. | You can edit this... In fact, please do. I am getting very lazy in my old age. |
Latest revision as of 02:41, 24 January 2024
This is a sub-page of Final Fantasy Tactics Advance.
Information
- The Job data starts at 0x521A14.
- The Job Requirement data starts at 0x5231A4; directly after the Job data.
- Job names are stored in this list.
- There are 0x73 (115) jobs, including monster class, specials, ect.
Job Data Structure
The Job Data Structure is 0x34 bytes long.
Name | Length | Offset | Type | Max Value | Description |
---|---|---|---|---|---|
Name ID | 2 | 0x00 | uint16 | Unknown | The Name ID of the Job. |
Buffer | 2 | 0x02 | uint16 | Unknown | Always 0x0000 |
Race | 1 | 0x04 | uint8 | 0x17[Verification Needed] | The Race of the Job.
|
Checksum? | 1 | 0x05 | uint8 | Unknown | Appears to be checked. If non-zero it branches off to another routine. |
Unknown | 1 | 0x06 | uint8 | Unknown | Checked when entering a Pub. No clue why. |
Sprite Index | 2 | 0x07 | uint16[Verification Needed] | Unknown | The index of the sprite that is used in battles/menus/etc. |
Unknown | 2 | 0x09 | ???? | ???? | Unknown. |
Sprite Palette Index | 1 | 0x0B | uint8 | 0x22 | The palettes that the sprite uses.
XXXX YYYY (bits); where XXXX is the enemy and YYYY is the player palette. |
Unknown | 1 | 0x0C | ???? | ???? | Unknown. |
Portrait Palette Index | 1 | 0x0D | uint8 | Unknown | Then loaded from a table?? |
Portrait Index | 1 | 0x0E | uint8 | Unknown | Then loaded from a table?? |
Unknown | 1 | 0x0F | ???? | ???? | Unknown. |
A-Ability Index | 1 | 0x10 | uint8[Verification Needed] | Unknown | The Index of the A-Abilities which this job uses. |
Unknown | 1 | 0x11 | uint8[Verification Needed] | Unknown | No idea, but it's a byte. |
Elements | 4 | 0x12 | See description. | Unknown | This word controls resistances/weakness to elements. Each element is stored in three bits each:
Where each letter corresponds to an element:
And each three bits mean:
Example of Jelly (Monster):
0x01241258 = 00 000 001 001 001 000 001 001 001 011 000 |
Status Defense | 1 | 0x16 | uint8[Verification Needed] | Unknown | Resistance against status effects. Always 50 for playable characters. |
Base HP | 1 | 0x17 | uint8[Verification Needed] | Unknown | The base level of HP. |
Base MP | 1 | 0x18 | uint8[Verification Needed] | Unknown | The base level of MP. |
Base Speed | 1 | 0x19 | uint8[Verification Needed] | Unknown | The base level of the Speed stat. |
Base Melee | 3 | 0x1A | See description. | Unknown | The base level of the Attack and the Defence stat.
0x1A = AAAA BBBB (bits) where ZZZZ AAAA BBBB (bits) = Base Attack |
Base Magic | 3 | 0x1D | See description. | Unknown | The base level of the Power and the Resistance stat.
0x1D = AAAA BBBB (bits) where ZZZZ AAAA BBBB (bits) = Base Power |
HP Growth | 1 | 0x20 | uint8[Verification Needed] | Unknown | How much HP grows at level up, x10.
|
MP Growth | 1 | 0x21 | uint8[Verification Needed] | Unknown | How much MP grows at level up, x10. |
Speed Growth | 1 | 0x22 | uint8[Verification Needed] | Unknown | How much Speed grows at level up, x10. |
Attack Growth | 1 | 0x23 | uint8[Verification Needed] | Unknown | How much Attack grows at level up, x10. |
Defense Growth | 1 | 0x24 | uint8[Verification Needed] | Unknown | How much Defense grows at level up, x10. |
Magic Pow. Growth | 1 | 0x25 | uint8[Verification Needed] | Unknown | How much Power grows at level up, x10. |
Magic Res. Growth | 1 | 0x26 | uint8[Verification Needed] | Unknown | How much Resistance grows at level up, x10. |
Unknown | 1 | 0x27 | uint8[Verification Needed] | Unknown | Always appears to be a copy of Resistance Growth (above).
Never appears to be read from any routine... |
Movement | 1 | 0x28 | uint8[Verification Needed] | Unknown | The 'Move' value of job. |
Jump | 1 | 0x29 | uint8[Verification Needed] | Unknown | The 'Jump' value of job. |
Evade | 1 | 0x2A | uint8[Verification Needed] | Unknown | The 'Evade' value of job. |
Movement Style | 1 | 0x2B | uint8 | Unknown | The lower 4 bits represent how this job stands.
The upper 4 bits represent how this job moves.
|
Unknown | 1 | 0x2C | uint8[Verification Needed] | Unknown | Unknown. |
Equip-able Items Index | 1 | 0x2D | uint8[Verification Needed] | Unknown. | The word (4 bytes) at 0x51D0F4 + (X * 4), where X is the value of this byte, determines what items are equip-able.
Each bit (0x00 being the least significant and 0x1F being the most significant) in the word determines a different type of item:
|
Ability Start | 1 | 0x2E | uint8 | Unknown | Represents the start of the array of abilities for this job. Based on the pointer at 0x051BA84 + Race * 4.
NNNN DDDD AAAA TT AP NNNN = Name Index DDDD = Description Index(?) AAAA = Ability Identifier(?) TT = Type:
AP = AP |
Ability End | 1 | 0x2F | uint8 | Unknown | Represents the end of the array of abilities for this job. Based on the same pointer. |
Job Requirement | 1 | 0x30 | uint8 | Unknown | Index of the Job Requirement data.
See below. |
Unknown | 3 | 0x31 | ???? | ???? | Unknown. |
Job Requirement Data Structure
The Job Requirement Data Structure is 0x4 bytes long.
Name | Length | Offset | Type | Max Value | Description |
---|---|---|---|---|---|
Job ID | 1 | 0x00 | uint8 | unknown | The ID # of the 1st Job. |
Amount | 1 | 0x01 | uint8 | unknown | How many abilities are needed in 1st Job. |
Job ID | 1 | 0x02 | uint8 | unknown | The ID # of the 2nd Job. |
Amount | 1 | 0x03 | uint8 | unknown | How many abilities are needed in 2nd Job. |
Default List of Jobs
Index | Job | Race | Playable? | Requirements |
---|---|---|---|---|
0x00 | - | 0x00 | 0x00 | 0x00 |
0x01 | - | 0x00 | 0x00 | 0x00 |
0x02 | Soldier | 0x01 | 0x01 | 0x00 |
0x03 | Paladin | 0x01 | 0x01 | 0x03 |
0x04 | Fighter | 0x01 | 0x01 | 0x03 |
0x05 | Thief | 0x01 | 0x01 | 0x00 |
0x06 | Ninja | 0x01 | 0x01 | 0x01 |
0x07 | White Mage | 0x01 | 0x01 | 0x00 |
0x08 | Black Mage | 0x01 | 0x01 | 0x00 |
0x09 | Illusionist | 0x01 | 0x01 | 0x0D |
0x0A | Blue Mage | 0x01 | 0x01 | 0x0E |
0x0B | Archer | 0x01 | 0x01 | 0x00 |
0x0C | Hunter | 0x01 | 0x01 | 0x08 |
0x0D | Warrior | 0x02 | 0x01 | 0x00 |
0x0E | Dragoon | 0x02 | 0x01 | 0x04 |
0x0F | Defender | 0x02 | 0x01 | 0x04 |
0x10 | Gladiator | 0x02 | 0x01 | 0x04 |
0x11 | White Monk | 0x02 | 0x01 | 0x00 |
0x12 | Bishop | 0x02 | 0x01 | 0x07 |
0x13 | Templar | 0x02 | 0x01 | 0x07 |
0x14 | White Mage | 0x03 | 0x01 | 0x00 |
0x15 | Black Mage | 0x03 | 0x01 | 0x00 |
0x16 | Time Mage | 0x03 | 0x01 | 0x0F |
0x17 | Illusionist | 0x03 | 0x01 | 0x10 |
0x18 | Alchemist | 0x03 | 0x01 | 0x10 |
0x19 | Beastmaster | 0x03 | 0x01 | 0x00 |
0x1A | Morpher | 0x03 | 0x01 | 0x12 |
0x1B | Sage | 0x03 | 0x01 | 0x13 |
0x1C | Fencer | 0x04 | 0x01 | 0x00 |
0x1D | Elementalist | 0x04 | 0x01 | 0x05 |
0x1E | Red Mage | 0x04 | 0x01 | 0x06 |
0x1F | White Mage | 0x04 | 0x01 | 0x00 |
0x20 | Summoner | 0x04 | 0x01 | 0x11 |
0x21 | Archer | 0x04 | 0x01 | 0x00 |
0x22 | Assassin | 0x04 | 0x01 | 0x09 |
0x23 | Sniper | 0x04 | 0x01 | 0x0A |
0x24 | Animist | 0x05 | 0x01 | 0x00 |
0x25 | Mog Knight | 0x05 | 0x01 | 0x0C |
0x26 | Gunner | 0x05 | 0x01 | 0x0C |
0x27 | Thief | 0x05 | 0x01 | 0x00 |
0x28 | Juggler | 0x05 | 0x01 | 0x02 |
0x29 | Gadgeteer | 0x05 | 0x01 | 0x02 |
0x2A | Black Mage | 0x05 | 0x01 | 0x00 |
0x2B | Time Mage | 0x05 | 0x01 | 0x0B |
0x2C | Goblin | 0x06 | 0x02 | 0x00 |
0x2D | Red Cap | 0x06 | 0x02 | 0x00 |
0x2E | Jelly | 0x07 | 0x02 | 0x00 |
0x2F | Ice Flan | 0x07 | 0x02 | 0x00 |
0x30 | Cream | 0x07 | 0x02 | 0x00 |
0x31 | Bomb | 0x08 | 0x02 | 0x00 |
0x32 | Grenade | 0x08 | 0x02 | 0x00 |
0x33 | Icedrake | 0x09 | 0x02 | 0x00 |
0x34 | Firewyrm | 0x09 | 0x02 | 0x00 |
0x35 | Thundrake | 0x09 | 0x02 | 0x00 |
0x36 | Lamia | 0x0A | 0x02 | 0x00 |
0x37 | Lilith | 0x0A | 0x02 | 0x00 |
0x38 | Antlion | 0x0B | 0x02 | 0x00 |
0x39 | Jawbreaker | 0x0B | 0x02 | 0x00 |
0x3A | Toughskin | 0x0C | 0x02 | 0x00 |
0x3B | Blade Biter | 0x0C | 0x02 | 0x00 |
0x3C | Tonberry | 0x0D | 0x02 | 0x00 |
0x3D | Masterberry | 0x0D | 0x02 | 0x00 |
0x3E | Red Panther | 0x0E | 0x02 | 0x00 |
0x3F | Coeurl | 0x0E | 0x02 | 0x00 |
0x40 | Malboro | 0x0F | 0x02 | 0x00 |
0x41 | Big Malboro | 0x0F | 0x02 | 0x00 |
0x42 | Floateye | 0x10 | 0x02 | 0x00 |
0x43 | Ahriman | 0x10 | 0x02 | 0x00 |
0x44 | Zombie | 0x11 | 0x02 | 0x00 |
0x45 | Vampire | 0x11 | 0x02 | 0x00 |
0x46 | Sprite | 0x12 | 0x02 | 0x00 |
0x47 | Titania | 0x12 | 0x02 | 0x00 |
0x48 | - | 0x00 | 0x00 | 0x00 |
0x49 | - | 0x00 | 0x00 | 0x00 |
0x4A | - | 0x00 | 0x00 | 0x00 |
0x4B | - | 0x00 | 0x00 | 0x00 |
0x4C | - | 0x00 | 0x00 | 0x00 |
0x4D | Official | 0x01 | 0x01 | 0x00 |
0x4E | - | 0x01 | 0x01 | 0x00 |
0x4F | - | 0x01 | 0x02 | 0x00 |
0x50 | - | 0x01 | 0x01 | 0x00 |
0x51 | - | 0x04 | 0x01 | 0x00 |
0x52 | - | 0x05 | 0x01 | 0x00 |
0x53 | Runeseeker | 0x14 | 0x01 | 0x00 |
0x54 | Hermetic | 0x14 | 0x01 | 0x00 |
0x55 | - | 0x04 | 0x01 | 0x00 |
0x56 | Biskmatar | 0x13 | 0x01 | 0x00 |
0x57 | - | 0x13 | 0x01 | 0x00 |
0x58 | Li-grim | 0x16 | 0x02 | 0x00 |
0x59 | - | 0x16 | 0x02 | 0x00 |
0x5A | New Kid | 0x01 | 0x01 | 0x00 |
0x5B | Librarian | 0x01 | 0x01 | 0x00 |
0x5C | Class Head | 0x01 | 0x01 | 0x00 |
0x5D | PE Head | 0x01 | 0x01 | 0x00 |
0x5E | D.J. | 0x01 | 0x01 | 0x00 |
0x5F | Nurse | 0x04 | 0x01 | 0x00 |
0x60 | Custodian | 0x04 | 0x01 | 0x00 |
0x61 | Totema | 0x15 | 0x02 | 0x00 |
0x62 | Totema | 0x15 | 0x02 | 0x00 |
0x63 | Totema | 0x15 | 0x02 | 0x00 |
0x64 | Totema | 0x15 | 0x02 | 0x00 |
0x65 | Totema | 0x15 | 0x02 | 0x00 |
0x66 | - | 0x15 | 0x02 | 0x00 |
0x67 | Judgemaster | 0x01 | 0x02 | 0x00 |
0x68 | Judge | 0x17 | 0x02 | 0x00 |
0x69 | Judge | 0x17 | 0x02 | 0x00 |
0x6A | Judgemaster | 0x17 | 0x02 | 0x00 |
0x6B | Mr. Leslaie | 0x17 | 0x02 | 0x00 |
0x6C | Battle Queen | 0x16 | 0x02 | 0x00 |
0x6D | Box | 0x01 | 0x02 | 0x00 |
0x6E | Statue | 0x01 | 0x02 | 0x00 |
0x6F | Sphere | 0x01 | 0x02 | 0x00 |
0x70 | Judge | 0x17 | 0x01 | 0x00 |
0x71 | Judge | 0x17 | 0x01 | 0x00 |
0x72 | Judge | 0x17 | 0x01 | 0x00 |
0x73 | Judgemaster | 0x17 | 0x01 | 0x00 |
Help, please...
You can edit this... In fact, please do. I am getting very lazy in my old age.