Difference between revisions of "MOTHER 3:Item data"

From Data Crystal
Jump to: navigation, search
(Item type)
 
(21 intermediate revisions by the same user not shown)
Line 20: Line 20:
 
* <tt>00-03 (04)</tt> = <tt>{{color2|#000000|#87CEEB|[ A ]}}</tt> Item number                   
 
* <tt>00-03 (04)</tt> = <tt>{{color2|#000000|#87CEEB|[ A ]}}</tt> Item number                   
 
* <tt>04-07 (04)</tt> = <tt>{{color2|#000000|#90EE90|[ B ]}}</tt> [[#Item type|Item type]]                   
 
* <tt>04-07 (04)</tt> = <tt>{{color2|#000000|#90EE90|[ B ]}}</tt> [[#Item type|Item type]]                   
* <tt>08-08 (01)</tt> = <tt>{{color2|#000000|#FFB6C1|[ C ]}}</tt> [[#Key item flag|Key item flag]]
+
* <tt>08-09 (02)</tt> = <tt>{{color2|#000000|#FFB6C1|[ C ]}}</tt> [[#Key item flag|Key item flag]]
* <tt>09-09 (01)</tt> = ''Unclassified data''                   
 
 
* <tt>0A-0B (02)</tt> = <tt>{{color2|#000000|#FAFAD2|[ D ]}}</tt> Sell price
 
* <tt>0A-0B (02)</tt> = <tt>{{color2|#000000|#FAFAD2|[ D ]}}</tt> Sell price
* <tt>0C-0D (02)</tt> = <tt>{{color2|#000000|#FFFFE0|[ E ]}}</tt> [[#Equip flags|Equip flags]]
+
* <tt>0C-0F (04)</tt> = <tt>{{color2|#000000|#FFFFE0|[ E ]}}</tt> [[#Equip flags|Equip flags]]
* <tt>0E-0F (02)</tt> = ''Unclassified data''                   
 
 
* <tt>10-13 (04)</tt> = <tt>{{color2|#000000|#B0C4DE|[ F ]}}</tt> HP increase (signed)
 
* <tt>10-13 (04)</tt> = <tt>{{color2|#000000|#B0C4DE|[ F ]}}</tt> HP increase (signed)
* <tt>14-15 (02)</tt> = <tt>{{color2|#000000|#D3D3D3|[ G ]}}</tt> PP increase (signed)
+
* <tt>14-17 (04)</tt> = <tt>{{color2|#000000|#D3D3D3|[ G ]}}</tt> PP increase (signed)
* <tt>16-17 (02)</tt> = ''Unclassified data''                   
 
 
* <tt>18-18 (01)</tt> = <tt>{{color2|#000000|#F08080|[ H ]}}</tt> Offense increase (signed)
 
* <tt>18-18 (01)</tt> = <tt>{{color2|#000000|#F08080|[ H ]}}</tt> Offense increase (signed)
 
* <tt>19-19 (01)</tt> = <tt>{{color2|#000000|#FFA07A|[ I ]}}</tt> Defense increase (signed)
 
* <tt>19-19 (01)</tt> = <tt>{{color2|#000000|#FFA07A|[ I ]}}</tt> Defense increase (signed)
 
* <tt>1A-1A (01)</tt> = <tt>{{color2|#000000|#ADD8E6|[ J ]}}</tt> IQ increase (signed)
 
* <tt>1A-1A (01)</tt> = <tt>{{color2|#000000|#ADD8E6|[ J ]}}</tt> IQ increase (signed)
 
* <tt>1B-1B (01)</tt> = <tt>{{color2|#FFFFFF|#00008B|[ K ]}}</tt> Speed increase (signed)
 
* <tt>1B-1B (01)</tt> = <tt>{{color2|#FFFFFF|#00008B|[ K ]}}</tt> Speed increase (signed)
* <tt>1C-1F (04)</tt> = ''Unclassified data''                   
+
* <tt>1C-1F (04)</tt> = <tt>{{color2|#FFFFFF|#065545|[ L ]}}</tt> Kindness increase (signed)             
* <tt>20-35 (16)</tt> = <tt>{{color2|#FFFFFF|#006400|[ L ]}}</tt> [[#Status ailment protection|Status ailment protection]]
+
* <tt>20-35 (16)</tt> = <tt>{{color2|#FFFFFF|#006400|[ M ]}}</tt> [[#Status ailment protection|Status ailment protection]]
* <tt>36-3A (05)</tt> = <tt>{{color2|#FFFFFF|#8B0000|[ M ]}}</tt> [[#Elemental protection|Elemental protection]]
+
* <tt>36-3A (05)</tt> = <tt>{{color2|#FFFFFF|#8B0000|[ N ]}}</tt> [[#Elemental protection|Elemental protection]]
* <tt>3B-3F (05)</tt> = ''Unclassified data''
+
* <tt>3B-3F (05)</tt> = <tt>{{color2|#FFFFFF|#435678|[ O ]}}</tt> [[#Attacking type|Attacking type]]
* <tt>40-43 (04)</tt> = <tt>{{color2|#FFFFFF|#EB0000|[ N ]}}</tt> [[#Item effect|Item effect in-battle]]
+
* <tt>40-67 (28)</tt> = <tt>{{color2|#FFFFFF|#053656|[ P ]}}</tt> [[#Info chunk|PSI/Item/Actions Info Chunk]]
* <tt>44-47 (04)</tt> = <tt>{{color2|#FFFFFF|#468684|[ O ]}}</tt> [[#Item element|Item attack element]]
+
* <tt>68-6B (04)</tt> = <tt>{{color2|#000000|#27D378|[ Q ]}}</tt> [[#Item uses|Item uses in-battle]]
* <tt>48-4B (04)</tt> = <tt>{{color2|#FFFFFF|#AF9283|[ P ]}}</tt> [[#Target|Item target]]
 
* <tt>4C-4D (02)</tt> = ''Unclassified data''         
 
* <tt>4E-4F (02)</tt> = <tt>{{color2|#FFFFFF|#B8860B|[ Q ]}}</tt> [[#Lower and upper HP/PP values|Lower HP/PP value]]
 
* <tt>50-51 (02)</tt> = <tt>{{color2|#FFFFFF|#483D8B|[ R ]}}</tt> [[#Lower and upper HP/PP values|Upper HP/PP value]]
 
* <tt>52-52 (01)</tt> = <tt>{{color2|#FFFFFF|#A9A9A9|[ S ]}}</tt> [[#Status ailment|Status ailment]]
 
* <tt>53-5B (09)</tt> = ''Unclassified data''
 
* <tt>5C-5D (02)</tt> = <tt>{{color2|#FFFFFF|#000000|[ T ]}}</tt> Battle text number
 
* <tt>5E-60 (03)</tt> = <tt>{{color2|#FFFFFF|#B03843|[ U ]}}</tt> [[#Item animations|Item animation table]]
 
* <tt>61-69 (09)</tt> = ''Unclassified data''
 
* <tt>6A-6B (02)</tt> = <tt>{{color2|#000000|#27D378|[ V ]}}</tt> [[#Item uses|Item uses in-battle]]
 
  
 
===Table view===
 
===Table view===
 
         00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F
 
         00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F
 
     +--------------------------------------------------------------------------------
 
     +--------------------------------------------------------------------------------
  00  | {{color2|#000000|#87CEEB|[        A        ]}} {{color2|#000000|#90EE90|[        B        ]}} {{color2|#000000|#FFB6C1|[ C]}} [ ?] {{color2|#000000|#FAFAD2|[  D  ]}} {{color2|#000000|#FFFFE0|[   E   ]}} [  ?  ]
+
  00  | {{color2|#000000|#87CEEB|[        A        ]}} {{color2|#000000|#90EE90|[        B        ]}} {{color2|#000000|#FFB6C1|[   C   ]}} {{color2|#000000|#FAFAD2|[  D  ]}} {{color2|#000000|#FFFFE0|[       E       ]}}
  10  | {{color2|#000000|#B0C4DE|[        F        ]}} {{color2|#000000|#D3D3D3|[   G   ]}} [  ?  ] {{color2|#000000|#F08080|[ H]}} {{color2|#000000|#FFA07A|[ I]}} {{color2|#000000|#ADD8E6|[ J]}} {{color2|#FFFFFF|#00008B|[ K]}} [        ?       ]
+
  10  | {{color2|#000000|#B0C4DE|[        F        ]}} {{color2|#000000|#D3D3D3|[       G       ]}} {{color2|#000000|#F08080|[ H]}} {{color2|#000000|#FFA07A|[ I]}} {{color2|#000000|#ADD8E6|[ J]}} {{color2|#FFFFFF|#00008B|[ K]}} {{color2|#FFFFFF|#065545|[        L       ]}}
  20  | {{color2|#FFFFFF|#006400|[                                      L                                     ->}}
+
  20  | {{color2|#FFFFFF|#006400|[                                      M                                     ->}}
  30  | {{color2|#FFFFFF|#006400|<-            L           ]}} {{color2|#FFFFFF|#8B0000|[          M         ]}} [          ?          ->
+
  30  | {{color2|#FFFFFF|#006400|<-            M           ]}} {{color2|#FFFFFF|#8B0000|[          N         ]}} {{color2|#FFFFFF|#435678|[           O          ]}}
40  | {{color2|#FFFFFF|#EB0000|[       N        ]}} {{color2|#FFFFFF|#468684|[        O        ]}} {{color2|#FFFFFF|#AF9283|[       P       ]}} [  ?  ] {{color2|#FFFFFF|#B8860B|[  Q  ]}}
+
40  | {{color2|#FFFFFF|#053656|[                                     P                                     ->}}
  50  | {{color2|#FFFFFF|#483D8B|[  R  ]}} {{color2|#FFFFFF|#A9A9A9|[ S]}} [                    ?                    ] {{color2|#FFFFFF|#000000|[  T  ]}} {{color2|#FFFFFF|#B03843|[  U  ->}}
+
  50  | {{color2|#FFFFFF|#053656|<-                                    P                                    ->}}
  60  | {{color2|#FFFFFF|#B03843|<-U]}} [                  ?                      ] {{color2|#000000|#27D378|[   V  ]}}
+
  60  | {{color2|#FFFFFF|#053656|<-               P                  ]}} {{color2|#000000|#27D378|[       Q        ]}}
 +
 
 +
===About PP increase (signed)===
 +
Even though the game considers only the first two bytes of PP increase, the developers left two more bytes.<br>
 +
This was probably done so the table has the same structure as the [[MOTHER_3:Level-up_stats_table|Level-up stats table]].
  
 
==Item type==
 
==Item type==
Line 77: Line 68:
 
| <tt>05</tt>: Status healer
 
| <tt>05</tt>: Status healer
 
|-
 
|-
| <tt>06</tt>: Nausea (Throwable item?)
+
| <tt>06</tt>: Damaging Item
 
|-
 
|-
| <tt>07</tt>: Fleas (Unthrowable usable item?)
+
| <tt>07</tt>: Special Effect Item
 
|-
 
|-
| <tt>08</tt>: Burned
+
| <tt>08</tt>: Key Item
 
|-
 
|-
| <tt>09</tt>: Solidified
+
| <tt>09</tt>: Unused Key Item
 
|}
 
|}
  
Line 145: Line 136:
 
|}
 
|}
  
==Item effect==
+
==Attacking type==
Based on the value of these bytes, the item will do different things in battle.<br>
+
These bytes are only considered if the item is a Weapon.<br>
Here are the values:
+
The first byte detemines what battle action the normal "Bash" one should become when the weapon is equipped.<br>
*00 - Damage
+
This is used to make the battle action name change to "Kick", "Shoot" and other such names.<br>
*01 - 1 Damage
+
By modifying this value, one can make characters who aren't supposed to use PSI use them or use the battle action Consider.<br>
*02 - Random Damage (Uses HP values as a base, but then randomizes even more)
+
The battle action name pointers to the [[MOTHER_3:Battle_text|Battle text]] are obtained by adding 0x9D to the value of the first byte.<br>
*03 - HP Healing
+
Boney's battle action won't change name if it's an attack, but it will change name if the action becomes a skill.
*04 - HP Healing
 
*05 - PP Healing
 
*06 - PP Healing / Shield Removal
 
 
 
==Item element==
 
These bytes tell the game what elemental type of damage the item will deal.<br>
 
Here are the values:
 
*00 - Neutral
 
*01 - Fire
 
*02 - Freeze
 
*03 - Thunder
 
*04 - Bomb
 
 
 
==Target==
 
These bytes tell the game who will be targeted by using the item.<br>
 
Here are the values:
 
*00 - To the character who has it
 
*01 - Choose to which character
 
*02 - Choose to which character
 
*03 - To all characters
 
*04 - To all characters
 
*05 - To a random character
 
*06 - To two random characters
 
*07 - To three random characters
 
*08 - To all characters in a random order
 
*09 - To a random number of slots for five times
 
*0A - To a random number of slots for six times
 
*0B - To a random number of slots for eight times
 
*0C - Choose to which character
 
*0D - Choose one enemy
 
*0E - To all enemies
 
*0F - To a random enemy
 
*10 - Twice to random enemies
 
*11 - Thrice to random enemies
 
*12 - Four times to random enemies
 
*13 - Five times to random enemies
 
*14 - Choose one enemy
 
*15 - To a random entity on the field
 
*16 - To all the ones on the field
 
*17 - Unselectable item
 
*18 - Can only choose the first character
 
*19 - Can only choose the third character
 
*1A - Can only choose the second character
 
*1B - Can only choose the fourth character
 
 
 
==Lower and upper HP/PP values==
 
The lower and upper HP/PP values indicate the range of recovery for recovery-based items and the range of damage for damage-based ones. Each value uses 16 bits.
 
 
 
==Status ailment==
 
This seems to control which status ailment to heal for items such as the Antidote, Fresh Mint, etc., according to the table below:
 
 
 
{| style="width: 20%"
 
|-
 
| <tt>01</tt>: Poison (Antidote)
 
|-
 
| <tt>02</tt>: Numbness (Anti-Paralysis)
 
|-
 
| <tt>03</tt>: Sleep (Alarm Cicada)
 
|-
 
| <tt>04</tt>: Confusion (Paper Fan)
 
|-
 
| <tt>05</tt>: Crying (Eye Drops)
 
|-
 
| <tt>06</tt>: Forgetfulness (Recollection Bell)
 
|-
 
| <tt>07</tt>: Nausea (Fresh Mint)
 
|-
 
| <tt>08</tt>: Fleas (Flea Powder)
 
|}
 
 
 
==Item animations==
 
These bytes manage which animations get played when using an item.
 
Byte 5E, if different from 00, will make the background darker while the item animation plays.<br>
 
Byte 5F is the battle animation number.<br>
 
Byte 60 is the number of the animation that plays only if the item hits the target, otherwise it won't play. This animation also prints the damage/healing numbers.<br>
 
  
It is not fully known how byte 5F and 60 correspond to the [[MOTHER_3:Battle_animations_entry_table|battle animations entry table]].
+
==Info chunk==
 +
[[MOTHER_3:PSI_data|PSI data]], [[MOTHER_3:Item_data|Item data]], [[MOTHER_3:Battle_skills_table|Battle skills table]] and [[MOTHER_3:Battle_actions_table|Battle actions table]] all share this group of 0x28 (40) bytes.<br><br>
 +
It is called [[MOTHER_3:Battle_tables_info_chunk|Battle Info chunk]].<br>
  
 
==Item uses==
 
==Item uses==
If value is 01, the item will be usable only one time, in battle, before disappearing.
+
If the third byte value is 01, the item will be usable only one time, in battle, before disappearing.<br>
Otherwise it won't disappear after the use.
+
If the third byte value is 00, the item won't disappear after the use.
  
 
[[Category:MOTHER 3|Item data]]
 
[[Category:MOTHER 3|Item data]]

Latest revision as of 00:12, 4 January 2021

Item data table
Game MOTHER 3
Start Address 0xE5108
End Address 0xEBD07
# of Entries 256 (0x100)
Entry Length 108 bytes (0x6C)
Total Length 27648 bytes (0x6C00)
Back to the ROM map

Overview

The item data table contains the stats and parameters for each item in the game. It does not include the item names; for that, see the item names table.

Format

Each entry in the table uses 108 bytes.

Field listing

Table view

       00   01   02   03   04   05   06   07   08   09   0A   0B   0C   0D   0E   0F
    +--------------------------------------------------------------------------------
00  | [        A        ] [        B        ] [   C   ] [   D   ] [        E        ]
10  | [        F        ] [        G        ] [ H] [ I] [ J] [ K] [        L        ]
20  | [                                      M                                     ->
30  | <-             M            ] [           N          ] [           O          ]
40  | [                                      P                                     ->
50  | <-                                     P                                     ->
60  | <-                P                   ] [        Q        ]

About PP increase (signed)

Even though the game considers only the first two bytes of PP increase, the developers left two more bytes.
This was probably done so the table has the same structure as the Level-up stats table.

Item type

Not fully known. Values range from 0 to 9:

00: Weapon
01: Body armor
02: Headgear
03: Armgear
04: Food
05: Status healer
06: Damaging Item
07: Special Effect Item
08: Key Item
09: Unused Key Item

Key item flag

Seems to be 01 for non-key items, 00 for key items.

Equip flags

This is a bitfield indicating who can equip this item:

  • 01 = ?
  • 02 = Flint
  • 04 = Lucas
  • 08 = Duster
  • 10 = Kumatora
  • 20 = Boney
  • 40 = Salsa
  • 80 = ?

Status ailment protection

Indicates how much to protect against certain status ailments. A more negative value means more protection. Each value is a 16-bit signed integer. There are 11 values, corresponding to the table below:

00: Poison
01: Paralysis
02: Sleep
03: Strange
04: Cry
05: Forgetful
06: Nausea
07: Fleas
08: Burned
09: Solidified
0A: Numbness?

Elemental protection

Similar to the status ailment protection, an item may also protect from elemental damage taken from PSI or Bomb items. Each value is an 8-bit signed integer. There are 5 values, corresponding to the table below:

00: Neutral (PK Love, Starstorm, Ground)
01: PK Fire
02: PK Freeze
03: PK Thunder
04: Bombs

Attacking type

These bytes are only considered if the item is a Weapon.
The first byte detemines what battle action the normal "Bash" one should become when the weapon is equipped.
This is used to make the battle action name change to "Kick", "Shoot" and other such names.
By modifying this value, one can make characters who aren't supposed to use PSI use them or use the battle action Consider.
The battle action name pointers to the Battle text are obtained by adding 0x9D to the value of the first byte.
Boney's battle action won't change name if it's an attack, but it will change name if the action becomes a skill.

Info chunk

PSI data, Item data, Battle skills table and Battle actions table all share this group of 0x28 (40) bytes.

It is called Battle Info chunk.

Item uses

If the third byte value is 01, the item will be usable only one time, in battle, before disappearing.
If the third byte value is 00, the item won't disappear after the use.