Difference between revisions of "MOTHER 3:Item data"

From Data Crystal
Jump to: navigation, search
(Format)
(Item type)
 
(9 intermediate revisions by the same user not shown)
Line 15: Line 15:
  
 
==Format==
 
==Format==
Each entry in the table uses 108 bytes.<br><br>
+
Each entry in the table uses 108 bytes.
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]].
 
 
===Field listing===
 
===Field listing===
 
* <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-17 (04)</tt> = <tt>{{color2|#000000|#D3D3D3|[ G ]}}</tt> PP increase (signed)
 
* <tt>14-17 (04)</tt> = <tt>{{color2|#000000|#D3D3D3|[ G ]}}</tt> PP increase (signed)
Line 32: Line 29:
 
* <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-67 (28)</tt> = <tt>{{color2|#FFFFFF|#053656|[ N ]}}</tt> [[#Info chunk|PSI/Item/Actions Info Chunk]]
+
* <tt>40-67 (28)</tt> = <tt>{{color2|#FFFFFF|#053656|[ P ]}}</tt> [[#Info chunk|PSI/Item/Actions Info Chunk]]
* <tt>68-69 (02)</tt> = ''Unclassified data''
+
* <tt>68-6B (04)</tt> = <tt>{{color2|#000000|#27D378|[ Q ]}}</tt> [[#Item uses|Item uses in-battle]]
* <tt>6A-6B (02)</tt> = <tt>{{color2|#000000|#27D378|[ O ]}}</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|#053656|[                                      N                                     ->}}
+
  40  | {{color2|#FFFFFF|#053656|[                                      P                                     ->}}
  50  | {{color2|#FFFFFF|#053656|<-                                    N                                     ->}}
+
  50  | {{color2|#FFFFFF|#053656|<-                                    P                                     ->}}
  60  | {{color2|#FFFFFF|#053656|<-                N                   ]}} [  ?  ] {{color2|#000000|#27D378|[   O  ]}}
+
  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 68: Line 68:
 
| <tt>05</tt>: Status healer
 
| <tt>05</tt>: Status healer
 
|-
 
|-
| <tt>06</tt>: Nausea (In battle throwable item?)
+
| <tt>06</tt>: Damaging Item
 
|-
 
|-
| <tt>07</tt>: Fleas (Key item usable in battle?)
+
| <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 135: Line 135:
 
| <tt>04</tt>: Bombs
 
| <tt>04</tt>: Bombs
 
|}
 
|}
 +
 +
==Attacking type==
 +
These bytes are only considered if the item is a Weapon.<br>
 +
The first byte detemines what battle action the normal "Bash" one should become when the weapon is equipped.<br>
 +
This is used to make the battle action name change to "Kick", "Shoot" and other such names.<br>
 +
By modifying this value, one can make characters who aren't supposed to use PSI use them or use the battle action Consider.<br>
 +
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>
 +
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==
 
==Info chunk==
Line 141: Line 149:
  
 
==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 01: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.