Mother 3/Item data: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(40 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Infobox table|name=Item data table
{{subpage|game=Mother 3}}
|game=MOTHER 3
{{Infobox table
|name=Item data table
|game=Mother 3
|loc=ROM
|loc=ROM
|start=0xE5108
|start=0xE5108
Line 10: Line 12:


==Overview==
==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 [[MOTHER_3:Item_names|item names table]].
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 [[Mother 3/Item names|item names table]].


==Format==
==Format==
Line 16: Line 18:


===Field listing===
===Field listing===
* <tt>00-03 (04)</tt> = ''Unclassified data''
* <tt>00-03 (04)</tt> = <tt>{{color2|#000000|#87CEEB|[ A ]}}</tt> Item number                 
* <tt>04-04 (01)</tt> = <tt>{{color2|#000000|#87CEEB|[ A ]}}</tt> [[#Item type|Item type]]
* <tt>04-07 (04)</tt> = <tt>{{color2|#000000|#90EE90|[ B ]}}</tt> [[#Item type|Item type]]                
* <tt>05-07 (03)</tt> = ''Unclassified data''
* <tt>08-09 (02)</tt> = <tt>{{color2|#000000|#FFB6C1|[ C ]}}</tt> [[#Key item flag|Key item flag]]
* <tt>08-08 (01)</tt> = <tt>{{color2|#000000|#90EE90|[ B ]}}</tt> [[#Key item flag|Key item flag]]
* <tt>0A-0B (02)</tt> = <tt>{{color2|#000000|#FAFAD2|[ D ]}}</tt> Sell price
* <tt>09-09 (01)</tt> = ''Unclassified data''
* <tt>0C-0F (04)</tt> = <tt>{{color2|#000000|#FFFFE0|[ E ]}}</tt> [[#Equip flags|Equip flags]]
* <tt>0A-0B (02)</tt> = <tt>{{color2|#000000|#FFB6C1|[ C ]}}</tt> Sell price
* <tt>10-13 (04)</tt> = <tt>{{color2|#000000|#B0C4DE|[ F ]}}</tt> HP increase (signed)
* <tt>0C-0C (01)</tt> = <tt>{{color2|#000000|#FAFAD2|[ D ]}}</tt> [[#Equip flags|Equip flags]]
* <tt>14-17 (04)</tt> = <tt>{{color2|#000000|#D3D3D3|[ G ]}}</tt> PP increase (signed)
* <tt>0D-0F (03)</tt> = ''Unclassified data''
* <tt>18-18 (01)</tt> = <tt>{{color2|#000000|#F08080|[ H ]}}</tt> Offense increase (signed)
* <tt>10-13 (04)</tt> = <tt>{{color2|#000000|#FFFFE0|[ E ]}}</tt> HP increase (signed!)
* <tt>19-19 (01)</tt> = <tt>{{color2|#000000|#FFA07A|[ I ]}}</tt> Defense increase (signed)
* <tt>14-15 (02)</tt> = <tt>{{color2|#000000|#B0C4DE|[ F ]}}</tt> PP increase (signed!)
* <tt>1A-1A (01)</tt> = <tt>{{color2|#000000|#ADD8E6|[ J ]}}</tt> IQ increase (signed)
* <tt>16-17 (02)</tt> = ''Unclassified data''
* <tt>1B-1B (01)</tt> = <tt>{{color2|#FFFFFF|#00008B|[ K ]}}</tt> Speed increase (signed)
* <tt>18-18 (01)</tt> = <tt>{{color2|#000000|#D3D3D3|[ G ]}}</tt> Offense increase (signed!)
* <tt>1C-1F (04)</tt> = <tt>{{color2|#FFFFFF|#065545|[ L ]}}</tt> Kindness increase (signed)             
* <tt>19-19 (01)</tt> = <tt>{{color2|#000000|#F08080|[ H ]}}</tt> Defense increase (signed!)
* <tt>20-35 (16)</tt> = <tt>{{color2|#FFFFFF|#006400|[ M ]}}</tt> [[#Status ailment protection|Status ailment protection]]
* <tt>1A-1A (01)</tt> = <tt>{{color2|#000000|#FFA07A|[ I ]}}</tt> IQ increase (signed!)
* <tt>36-3A (05)</tt> = <tt>{{color2|#FFFFFF|#8B0000|[ N ]}}</tt> [[#Elemental protection|Elemental protection]]
* <tt>1B-1B (01)</tt> = <tt>{{color2|#000000|#ADD8E6|[ J ]}}</tt> Speed increase (signed!)
* <tt>3B-3F (05)</tt> = <tt>{{color2|#FFFFFF|#435678|[ O ]}}</tt> [[#Attacking type|Attacking type]]
* <tt>1C-1F (04)</tt> = ''Unclassified data''
* <tt>40-67 (28)</tt> = <tt>{{color2|#FFFFFF|#053656|[ P ]}}</tt> [[#Info chunk|PSI/Item/Actions Info Chunk]]
* <tt>20-35 (16)</tt> = <tt>{{color2|#FFFFFF|#00008B|[ K ]}}</tt> [[#Status ailment protection|Status ailment protection]]
* <tt>68-6B (04)</tt> = <tt>{{color2|#000000|#27D378|[ Q ]}}</tt> [[#Item uses|Item uses in-battle]]
* <tt>36-3A (05)</tt> = <tt>{{color2|#FFFFFF|#006400|[ L ]}}</tt> [[#Damage protection|Damage protection]]
* <tt>3B-4D (13)</tt> = ''Unclassified data''
* <tt>4E-4F (02)</tt> = <tt>{{color2|#FFFFFF|#8B0000|[ M ]}}</tt> [[#Lower and upper HP values|Lower HP value]]
* <tt>50-51 (02)</tt> = <tt>{{color2|#FFFFFF|#B8860B|[ N ]}}</tt> [[#Lower and upper HP values|Upper HP value]]
* <tt>52-52 (01)</tt> = <tt>{{color2|#FFFFFF|#483D8B|[ O ]}}</tt> [[#Status ailment|Status ailment]]
* <tt>53-6B (19)</tt> = ''Unclassified data''


===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]}} [      ?    ]
  00  | {{color2|#000000|#87CEEB|[       A       ]}} {{color2|#000000|#90EE90|[       B       ]}} {{color2|#000000|#FFB6C1|[  C  ]}} {{color2|#000000|#FAFAD2|[   D   ]}} {{color2|#000000|#FFFFE0|[        E        ]}}
10  | {{color2|#000000|#FFFFE0|[        E        ]}} {{color2|#000000|#B0C4DE|[   F   ]}} [  ?  ] {{color2|#000000|#D3D3D3|[ G]}} {{color2|#000000|#F08080|[ H]}} {{color2|#000000|#FFA07A|[ I]}} {{color2|#000000|#ADD8E6|[ J]}} [        ?       ]
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|#00008B|[                                      K                                     ->}}
  20  | {{color2|#FFFFFF|#006400|[                                      M                                     ->}}
  30  | {{color2|#FFFFFF|#00008B|<-            K           ]}} {{color2|#FFFFFF|#006400|[          L         ]}} [          ?          ->
  30  | {{color2|#FFFFFF|#006400|<-            M           ]}} {{color2|#FFFFFF|#8B0000|[          N         ]}} {{color2|#FFFFFF|#435678|[           O         ]}}
  40  | <-                                ?                                ] {{color2|#FFFFFF|#8B0000|[   M  ]}}
  40  | {{color2|#FFFFFF|#053656|[                                     P                                    ->}}
  50  | {{color2|#FFFFFF|#B8860B|[  N  ]}} {{color2|#FFFFFF|#483D8B|[ O]}} [                             ?                              ->
  50  | {{color2|#FFFFFF|#053656|<-                                    P                                    ->}}
60  | <-                           ?                          ]
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 67: Line 68:
| <tt>05</tt>: Status healer
| <tt>05</tt>: Status healer
|-
|-
| <tt>06</tt>: Nausea
| <tt>06</tt>: Damaging Item
|-
|-
| <tt>07</tt>: Fleas
| <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
|}
|}
==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:
* <tt>01</tt> = ?
* <tt>02</tt> = Flint
* <tt>04</tt> = Lucas
* <tt>08</tt> = Duster
* <tt>10</tt> = Kumatora
* <tt>20</tt> = Boney
* <tt>40</tt> = Salsa
* <tt>80</tt> = ?
==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:


{| style="width: 20%"
{| style="width: 20%"
|-
|-
| <tt>00</tt>: Poison
| <tt>00</tt>: Poison
| <tt>0A</tt>: Numbness?
|-
|-
| <tt>01</tt>: Paralysis
| <tt>01</tt>: Paralysis
| <tt>0B</tt>: DCMC
|-
|-
| <tt>02</tt>: Sleep
| <tt>02</tt>: Sleep
| <tt>0C</tt>: Wall staple
|-
|-
| <tt>03</tt>: Strange
| <tt>03</tt>: Strange
| <tt>0D</tt>: Apologize
|-
|-
| <tt>04</tt>: Cry
| <tt>04</tt>: Cry
| <tt>0E</tt>: Make laugh
|-
|-
| <tt>05</tt>: Forgetful
| <tt>05</tt>: Forgetful
| <tt>0F</tt>: PK Love
|-
|-
| <tt>06</tt>: Nausea
| <tt>06</tt>: Nausea
| <tt>10</tt>: PK Fire
|-
|-
| <tt>07</tt>: Fleas
| <tt>07</tt>: Fleas
| <tt>11</tt>: PK Freeze
|-
|-
| <tt>08</tt>: Burned
| <tt>08</tt>: Burned
| <tt>12</tt>: PK Thunder
|-
|-
| <tt>09</tt>: Solidified
| <tt>09</tt>: Solidified
| <tt>13</tt>: Bomb
|-
| <tt>0A</tt>: 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:
{| style="width: 20%"
|-
| <tt>00</tt>: Neutral (PK Love, Starstorm, Ground)
|-
| <tt>01</tt>: PK Fire
|-
| <tt>02</tt>: PK Freeze
|-
| <tt>03</tt>: PK Thunder
|-
| <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==
[[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==
If the third byte value is 01, the item will be usable only one time, in battle, before disappearing.<br>
If the third byte value is 00, the item won't disappear after the use.
[[Category:Mother 3|Item data]]

Latest revision as of 02:26, 20 May 2024

This is a sub-page of Mother 3.

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.