Difference between revisions of "FF7/Materia Types"
my_wiki>NFITC1 m (Whoops. I misinterpreted an assembler command.) |
my_wiki>NFITC1 |
||
Line 59: | Line 59: | ||
{| border="0" cellpadding="3" cellspacing="1" style="background: rgb(0,0,0)" align="center" | {| border="0" cellpadding="3" cellspacing="1" style="background: rgb(0,0,0)" align="center" | ||
− | ! style="background:rgb(204,204,204);" colspan=" | + | ! style="background:rgb(204,204,204);" colspan="4" |Independent Types: |
|- | |- | ||
|style="background:rgb(255,255,255);" | 00 | |style="background:rgb(255,255,255);" | 00 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Function based on Attribute 1 |
|- | |- | ||
|style="background:rgb(204,204,255);" rowspan="2"| | |style="background:rgb(204,204,255);" rowspan="2"| | ||
|style="background:rgb(255,255,255); width=50pt;"|0Ch | |style="background:rgb(255,255,255); width=50pt;"|0Ch | ||
− | |style="background:rgb(255,255,255);" |0xC068B0 ORd with 1 and 0xC068B4 set to 11 (Underwater) | + | |style="background:rgb(255,255,255);" colspan="2" |0xC068B0 ORd with 1 and 0xC068B4 set to 11 (Underwater) |
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |62h | |style="background:rgb(255,255,255); width=50pt;" |62h | ||
− | |style="background:rgb(255,255,255);" |0xC068B0 ORd with 8 and 0xC068B4 set to 11 (HP<->MP) | + | |style="background:rgb(255,255,255);" colspan="2" |0xC068B0 ORd with 8 and 0xC068B4 set to 11 (HP<->MP) |
|- | |- | ||
|style="background:rgb(255,255,255);" |20<sup>2</sup> | |style="background:rgb(255,255,255);" |20<sup>2</sup> | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Increases value at 0xC06898 + [Attribute_1 * 2] based on attribute list and AP level and sets 0xC068B4 to 4 |
|- | |- | ||
|style="background:rgb(255,255,255);" |30<sup>3</sup> | |style="background:rgb(255,255,255);" |30<sup>3</sup> | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3" |0xC068B0 ORd with 4 and 0xC068B4 set to 12 |
|- | |- | ||
|style="background:rgb(255,255,255);" |40 | |style="background:rgb(255,255,255);" |40 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Same as 20, but sets 0xC068B4 to 0Dh (EXP Plus) |
|- | |- | ||
|style="background:rgb(255,255,255);" |21<sup>4</sup> | |style="background:rgb(255,255,255);" |21<sup>4</sup> | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Enables effect Attribute 1 with a magnitude based on attribute list and AP Level |
|- | |- | ||
|style="background:rgb(255,255,255);" |41<sup>5</sup> | |style="background:rgb(255,255,255);" |41<sup>5</sup> | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Enables effect Attribute 1 with a magnitude based on attribute list and AP Level |
|- | |- | ||
|style="background:rgb(255,255,255);" |X4 | |style="background:rgb(255,255,255);" |X4 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|If 0xC06914 is non-0 after getting AP level then set 0xC068B4 to 0Bh (Mega-All) |
|- | |- | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "4"| |
|- | |- | ||
− | ! style="background:rgb(204,204,204);" colspan=" | + | ! style="background:rgb(204,204,204);" colspan="4" |Command Types: |
|- | |- | ||
|style="background:rgb(255,255,255);" |12 | |style="background:rgb(255,255,255);" |12 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3" |Replace first command (Attack) based on attribute list and AP Level |
|- | |- | ||
|style="background:rgb(255,255,255);" |X3 | |style="background:rgb(255,255,255);" |X3 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3" |Subtype not important. Only Primary Attributes allowed are 15h, 16h, 17h |
|- | |- | ||
|style="background:rgb(204,204,255);" rowspan="3"| | |style="background:rgb(204,204,255);" rowspan="3"| | ||
|style="background:rgb(255,255,255); width=50pt;" |15h | |style="background:rgb(255,255,255); width=50pt;" |15h | ||
− | |style="background:rgb(255,255,255);" |Replaces Magic with WMagic | + | |style="background:rgb(255,255,255);" colspan="2" |Replaces Magic with WMagic |
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |16h | |style="background:rgb(255,255,255); width=50pt;" |16h | ||
− | |style="background:rgb(255,255,255);" |Replaces Summon with WSummon | + | |style="background:rgb(255,255,255);" colspan="2" |Replaces Summon with WSummon |
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |17h | |style="background:rgb(255,255,255); width=50pt;" |17h | ||
− | |style="background:rgb(255,255,255);" |Replaces Item with WItem | + | |style="background:rgb(255,255,255);" colspan="2" |Replaces Item with WItem |
|- | |- | ||
|style="background:rgb(255,255,255);" |X6 | |style="background:rgb(255,255,255);" |X6 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Add Command based on attribute list and AP Level |
|- | |- | ||
|style="background:rgb(255,255,255);" |X7 | |style="background:rgb(255,255,255);" |X7 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Add Command 0Dh (E.Skill) |
|- | |- | ||
|style="background:rgb(255,255,255);" |X8 | |style="background:rgb(255,255,255);" |X8 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Add Command 5 (Steal), 6 (Sense), 7 (Coin), 9 (Morph), Ah (D.Blow), Bh (Manip), Ch (Mime) |
|- | |- | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "4"| |
|- | |- | ||
− | ! style="background:rgb(204,204,204);" colspan=" | + | ! style="background:rgb(204,204,204);" colspan="4" |Support Types: |
|- | |- | ||
|style="background:rgb(255,255,255);" |25 | |style="background:rgb(255,255,255);" |25 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3"|Attribute 1 must be between 54h - 64h inclusive. Just sets 0xC068B4 to a specific value |
|- | |- | ||
|style="background:rgb(204,204,255);" rowspan="18"| | |style="background:rgb(204,204,255);" rowspan="18"| | ||
! style="background:rgb(204,204,204); width=50pt;"|Attribute 1 Value | ! style="background:rgb(204,204,204); width=50pt;"|Attribute 1 Value | ||
− | ! style="background:rgb(204,204,204);"|0xC068B4 | + | ! style="background:rgb(204,204,204); width=10pt;"|0xC068B4 |
+ | ! style="background:rgb(204,204,204);"|Materia | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |54h | |style="background:rgb(255,255,255); width=50pt;" |54h | ||
− | |style="background:rgb(255,255,255);" |0Fh (Command Counter | + | |style="background:rgb(255,255,255);" |0Fh |
+ | |style="background:rgb(255,255,255);" |Command Counter | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |55h | |style="background:rgb(255,255,255); width=50pt;" |55h | ||
− | |style="background:rgb(255,255,255);" |0Fh (Magic Counter | + | |style="background:rgb(255,255,255);" |0Fh |
+ | |style="background:rgb(255,255,255);" |Magic Counter | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |56h | |style="background:rgb(255,255,255); width=50pt;" |56h | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |Sneak Attack | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |57h | |style="background:rgb(255,255,255); width=50pt;" |57h | ||
|style="background:rgb(255,255,255);" |Ignored | |style="background:rgb(255,255,255);" |Ignored | ||
+ | | | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |58h | |style="background:rgb(255,255,255); width=50pt;" |58h | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |MP Turbo | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |59h | |style="background:rgb(255,255,255); width=50pt;" |59h | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |MP Absorb | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |5Ah | |style="background:rgb(255,255,255); width=50pt;" |5Ah | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |HP Absorb | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |5Bh | |style="background:rgb(255,255,255); width=50pt;" |5Bh | ||
|style="background:rgb(255,255,255);" |Ignored | |style="background:rgb(255,255,255);" |Ignored | ||
+ | | | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |5Ch | |style="background:rgb(255,255,255); width=50pt;" |5Ch | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |Added Cut | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |5Dh | |style="background:rgb(255,255,255); width=50pt;" |5Dh | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |Steal As Well | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |5Eh | |style="background:rgb(255,255,255); width=50pt;" |5Eh | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |Elemental | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |5Fh | |style="background:rgb(255,255,255); width=50pt;" |5Fh | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |Added Effect | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |60h | |style="background:rgb(255,255,255); width=50pt;" |60h | ||
|style="background:rgb(255,255,255);" |Ignored | |style="background:rgb(255,255,255);" |Ignored | ||
+ | | | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |61h | |style="background:rgb(255,255,255); width=50pt;" |61h | ||
|style="background:rgb(255,255,255);" |Ignored | |style="background:rgb(255,255,255);" |Ignored | ||
+ | | | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |62h | |style="background:rgb(255,255,255); width=50pt;" |62h | ||
|style="background:rgb(255,255,255);" |Ignored | |style="background:rgb(255,255,255);" |Ignored | ||
+ | | | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |63h | |style="background:rgb(255,255,255); width=50pt;" |63h | ||
|style="background:rgb(255,255,255);" |Ignored | |style="background:rgb(255,255,255);" |Ignored | ||
+ | | | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |64h | |style="background:rgb(255,255,255); width=50pt;" |64h | ||
|style="background:rgb(255,255,255);" |10h | |style="background:rgb(255,255,255);" |10h | ||
+ | |style="background:rgb(255,255,255);" |(Unused) | ||
|- | |- | ||
|style="background:rgb(255,255,255);" |35 | |style="background:rgb(255,255,255);" |35 | ||
− | |style="background:rgb(255,255,255);" colspan=" | + | |style="background:rgb(255,255,255);" colspan="3" |Like 25, but only Attribute 1 values 51h, 57h, and 63h are used. |
|- | |- | ||
|style="background:rgb(204,204,255);" rowspan="3"| | |style="background:rgb(204,204,255);" rowspan="3"| | ||
|style="background:rgb(255,255,255); width=50pt;" |51h | |style="background:rgb(255,255,255); width=50pt;" |51h | ||
− | |style="background:rgb(255,255,255);" |0Fh (All | + | |style="background:rgb(255,255,255);" |0Fh |
+ | |style="background:rgb(255,255,255);" |All | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |57h | |style="background:rgb(255,255,255); width=50pt;" |57h | ||
− | |style="background:rgb(255,255,255);" |10h (Final Attack | + | |style="background:rgb(255,255,255);" |10h |
+ | |style="background:rgb(255,255,255);" |Final Attack | ||
|- | |- | ||
|style="background:rgb(255,255,255); width=50pt;" |63h | |style="background:rgb(255,255,255); width=50pt;" |63h | ||
− | |style="background:rgb(255,255,255);" |0Fh (Quadra Magic | + | |style="background:rgb(255,255,255);" |0Fh |
+ | |style="background:rgb(255,255,255);" |Quadra Magic | ||
|- | |- | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "4"| |
|- | |- | ||
− | ! style="background:rgb(204,204,204);" colspan=" | + | ! style="background:rgb(204,204,204);" colspan="4" |Magic Types: |
|- | |- | ||
|style="background:rgb(255,255,255);" |X9 | |style="background:rgb(255,255,255);" |X9 | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "3"|Add Command 2 (Magic) and Enable magics based on attribute list and AP Level |
|- | |- | ||
|style="background:rgb(255,255,255);" |XA | |style="background:rgb(255,255,255);" |XA | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "3"|Add Command 2 (Magic) and Enable magics with index 0-37h inclusive<sup>6</sup> |
|- | |- | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "4"| |
|- | |- | ||
− | ! style="background:rgb(204,204,204);" colspan=" | + | ! style="background:rgb(204,204,204);" colspan="4" |Summon Types: |
|- | |- | ||
|style="background:rgb(255,255,255);" |XB | |style="background:rgb(255,255,255);" |XB | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "3"|Add Command 3 (Summon) and enables attack at Attribute 1 for use 'AP Level' times (Ignores other Attributes) |
|- | |- | ||
|style="background:rgb(255,255,255);" |XC | |style="background:rgb(255,255,255);" |XC | ||
− | |style="background:rgb(255,255,255);" colspan = " | + | |style="background:rgb(255,255,255);" colspan = "3" |Add Command 3 (Summon) and enables attacks with index 38h - 47h inclusive |
|} | |} | ||
Revision as of 22:09, 8 February 2011
Materia is separated into five categories of functions in the game: "Command", "Magic", "Summon", "Independent", and "Support". Graphically they are yellow, green, red, blue, and purple respectively. The materia type is determined by a single byte value that is separated into two parts. The upper nybble will be considered the sub-type and the lower nybble is the base type. For base types the values will yield the following results:
Base | Materia Type |
---|---|
X0 | Independent |
X1 | Independent |
X2 | Command |
X3 | Command |
X4 | Independent |
X5 | Support |
X6 | Command |
X7 | Command |
X8 | Command |
X9 | Magic |
XA | Magic |
XB | Summon |
XC | Summon |
XD | Independent1 |
XE | Independent1 |
XF | Independent1 |
Each of these Base Types have a set of sub-types that provide different functions. They are used to determine what function to provide, usually based on the Materia's attribute list. These sub-types have the following functions when equipped:
(If sub-type is listed as 'X' then any sub-type will produce that effect. Other sub-types have no function. Battle effects not mentioned.)
Independent Types: | |||
---|---|---|---|
00 | Function based on Attribute 1 | ||
0Ch | 0xC068B0 ORd with 1 and 0xC068B4 set to 11 (Underwater) | ||
62h | 0xC068B0 ORd with 8 and 0xC068B4 set to 11 (HP<->MP) | ||
202 | Increases value at 0xC06898 + [Attribute_1 * 2] based on attribute list and AP level and sets 0xC068B4 to 4 | ||
303 | 0xC068B0 ORd with 4 and 0xC068B4 set to 12 | ||
40 | Same as 20, but sets 0xC068B4 to 0Dh (EXP Plus) | ||
214 | Enables effect Attribute 1 with a magnitude based on attribute list and AP Level | ||
415 | Enables effect Attribute 1 with a magnitude based on attribute list and AP Level | ||
X4 | If 0xC06914 is non-0 after getting AP level then set 0xC068B4 to 0Bh (Mega-All) | ||
Command Types: | |||
12 | Replace first command (Attack) based on attribute list and AP Level | ||
X3 | Subtype not important. Only Primary Attributes allowed are 15h, 16h, 17h | ||
15h | Replaces Magic with WMagic | ||
16h | Replaces Summon with WSummon | ||
17h | Replaces Item with WItem | ||
X6 | Add Command based on attribute list and AP Level | ||
X7 | Add Command 0Dh (E.Skill) | ||
X8 | Add Command 5 (Steal), 6 (Sense), 7 (Coin), 9 (Morph), Ah (D.Blow), Bh (Manip), Ch (Mime) | ||
Support Types: | |||
25 | Attribute 1 must be between 54h - 64h inclusive. Just sets 0xC068B4 to a specific value | ||
Attribute 1 Value | 0xC068B4 | Materia | |
54h | 0Fh | Command Counter | |
55h | 0Fh | Magic Counter | |
56h | 10h | Sneak Attack | |
57h | Ignored | ||
58h | 10h | MP Turbo | |
59h | 10h | MP Absorb | |
5Ah | 10h | HP Absorb | |
5Bh | Ignored | ||
5Ch | 10h | Added Cut | |
5Dh | 10h | Steal As Well | |
5Eh | 10h | Elemental | |
5Fh | 10h | Added Effect | |
60h | Ignored | ||
61h | Ignored | ||
62h | Ignored | ||
63h | Ignored | ||
64h | 10h | (Unused) | |
35 | Like 25, but only Attribute 1 values 51h, 57h, and 63h are used. | ||
51h | 0Fh | All | |
57h | 10h | Final Attack | |
63h | 0Fh | Quadra Magic | |
Magic Types: | |||
X9 | Add Command 2 (Magic) and Enable magics based on attribute list and AP Level | ||
XA | Add Command 2 (Magic) and Enable magics with index 0-37h inclusive6 | ||
Summon Types: | |||
XB | Add Command 3 (Summon) and enables attack at Attribute 1 for use 'AP Level' times (Ignores other Attributes) | ||
XC | Add Command 3 (Summon) and enables attacks with index 38h - 47h inclusive |
1 - There are no XD, XE or XF type materias in the game. They are graphically represented as Independent but have no effect.
2 - Various in-battle conditions (Cover/Counter) and stat increases
3 - ONLY works with Materia Index 0Ch (Long Range). Attribute List is ignored
4 - Although Materia Index 0Ah (Pre-Emp) is a type 21 (and the only one), there is specific code to limit its magnitude in 41
5 - Although Materia Index 07h (Enemy Away) is a type 41, there is code for that index in 21
6 - Shield is the last magic attack with an index of 35h. The Magic menu prevents access to attacks 36h & 37h