Item data structure (Generation III): Difference between revisions
From Bulbapedia, the community-driven Pokémon encyclopedia.
Jump to navigationJump to search
No edit summary |
(Tables) |
||
Line 2: | Line 2: | ||
<!-- In the Japanese version, the name field is only 10 bytes long, so the structure is 40 bytes long. --> | <!-- In the Japanese version, the name field is only 10 bytes long, so the structure is 40 bytes long. --> | ||
{| | {| class="roundy" style="float:right; width:auto; text-align:center; margin: 0 0 0.5em 0.5em; background: #ccf; border: 3px solid blue;" | ||
|- | |||
! Offset | ! Offset | ||
! Field | ! Field | ||
! Size | ! Size | ||
|- | |- style="background:#F8F8FF" | ||
! 0 | ! 0 | ||
| Name | | Name | ||
| 14 bytes | | 14 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 14 | ! 14 | ||
| [[List of items by index number (GBA)|Index number]] | | [[List of items by index number (GBA)|Index number]] | ||
| 2 bytes | | 2 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 16 | ! 16 | ||
| Price | | Price | ||
| 2 bytes | | 2 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 18 | ! 18 | ||
| Special value 1 | | Special value 1 | ||
| 1 byte | | 1 byte | ||
|- | |- style="background:#F8F8FF" | ||
! 19 | ! 19 | ||
| Special value 2 | | Special value 2 | ||
| 1 byte | | 1 byte | ||
|- | |- style="background:#F8F8FF" | ||
! 20 | ! 20 | ||
| Description pointer | | Description pointer | ||
| 4 bytes | | 4 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 24 | ! 24 | ||
| Mystery value | | Mystery value | ||
| 2 bytes | | 2 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 26 | ! 26 | ||
| Pocket | | Pocket | ||
| 1 byte | | 1 byte | ||
|- | |- style="background:#F8F8FF" | ||
! 27 | ! 27 | ||
| Type | | Type | ||
| 1 byte | | 1 byte | ||
|- | |- style="background:#F8F8FF" | ||
! 28 | ! 28 | ||
| Pointer to field usage code | | Pointer to field usage code | ||
| 4 bytes | | 4 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 32 | ! 32 | ||
| Battle usage | | Battle usage | ||
| 4 bytes | | 4 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 36 | ! 36 | ||
| Pointer to battle usage code | | Pointer to battle usage code | ||
| 4 bytes | | 4 bytes | ||
|- | |- style="background:#F8F8FF" | ||
! 40 | ! 40 | ||
| Extra parameter | | Extra parameter | ||
Line 64: | Line 64: | ||
This determines which pocket of the [[Bag]] the item should be stored in. | This determines which pocket of the [[Bag]] the item should be stored in. | ||
{| | {| class="roundy" style="width:auto; text-align:center; background: #ccf; border: 3px solid blue;" | ||
|- | |||
! Number | ! Number | ||
! Item type | ! Item type | ||
|- | |- style="background:#F8F8FF" | ||
! 1 | ! 1 | ||
| Main pocket | | Main pocket | ||
|- | |- style="background:#F8F8FF" | ||
! 2 | ! 2 | ||
| [[Poké Ball]] | | [[Poké Ball]] | ||
|- | |- style="background:#F8F8FF" | ||
! 3 | ! 3 | ||
| [[TM]]s and [[HM]]s | | [[TM]]s and [[HM]]s | ||
|- | |- style="background:#F8F8FF" | ||
! 4 | ! 4 | ||
| [[Berry|Berries]] | | [[Berry|Berries]] | ||
|- | |- style="background:#F8F8FF" | ||
! 5 | ! 5 | ||
| Key items | | Key items | ||
Line 88: | Line 88: | ||
For items other than [[Poké Ball]]s, the type determines how the item can be used. With Poké Balls, the type indicates the Poké Ball type, and is one less than the index number. | For items other than [[Poké Ball]]s, the type determines how the item can be used. With Poké Balls, the type indicates the Poké Ball type, and is one less than the index number. | ||
{| | {| class="roundy" style="width:auto; text-align:center; background: #ccf; border: 3px solid blue;" | ||
|- | |||
! Type | ! Type | ||
! Description | ! Description | ||
|- | |- style="background:#F8F8FF" | ||
! 0 | ! 0 | ||
| [[Mail]] | | [[Mail]] | ||
|- | |- style="background:#F8F8FF" | ||
! 1 | ! 1 | ||
| Items which can be used out-of-battle. | | Items which can be used out-of-battle. | ||
|- | |- style="background:#F8F8FF" | ||
! 2 | ! 2 | ||
| Items which must be used in a certain location; key items of this type can be assigned to <sc>select</sc>. | | Items which must be used in a certain location; key items of this type can be assigned to <sc>select</sc>. | ||
|- | |- style="background:#F8F8FF" | ||
! 3 | ! 3 | ||
| Only the [[Pokéblock]] case is of this type. | | Only the [[Pokéblock]] case is of this type. | ||
|- | |- style="background:#F8F8FF" | ||
! 4 | ! 4 | ||
| Items which cannot be used out-of-battle. | | Items which cannot be used out-of-battle. |
Revision as of 05:03, 30 June 2013
Item data is stored in a 44-byte structure in the US version of the GBA games.
Offset | Field | Size |
---|---|---|
0 | Name | 14 bytes |
14 | Index number | 2 bytes |
16 | Price | 2 bytes |
18 | Special value 1 | 1 byte |
19 | Special value 2 | 1 byte |
20 | Description pointer | 4 bytes |
24 | Mystery value | 2 bytes |
26 | 1 byte | |
27 | Type | 1 byte |
28 | Pointer to field usage code | 4 bytes |
32 | Battle usage | 4 bytes |
36 | Pointer to battle usage code | 4 bytes |
40 | Extra parameter | 4 bytes |
This determines which pocket of the Bag the item should be stored in.
Number | Item type |
---|---|
1 | Main pocket |
2 | Poké Ball |
3 | TMs and HMs |
4 | Berries |
5 | Key items |
Type
For items other than Poké Balls, the type determines how the item can be used. With Poké Balls, the type indicates the Poké Ball type, and is one less than the index number.
Type | Description |
---|---|
0 | |
1 | Items which can be used out-of-battle. |
2 | Items which must be used in a certain location; key items of this type can be assigned to select. |
3 | Only the Pokéblock case is of this type. |
4 | Items which cannot be used out-of-battle. |
Mystery values
Mystery value 1 is:
- 0 for normal items.
- 1 for HMs and most key items.
- 2 for some plot-related key items: Devon Goods, Letter, Red Orb, Blue Orb and Oak's Parcel.
Mystery value 2 is:
- 0 for most items.
- 1 for many key items: Mach Bike, Itemfinder, Old Rod, Good Rod, Super Rod, Acro Bike, Pokéblock Case, Bicycle, Town Map, VS Seeker, Fame Checker, TM Case, Berry Pouch, Teachy TV, Tri-Pass, Rainbow Pass, Tea, MysticTicket, AuroraTicket, Powder Jar, Ruby, Sapphire, Magma Emblem and Old Sea Map.
Battle usage
Battle usage can be:
- 0 if the item can't be used in battle at all.
- 1 if the item's effect is seen during battle but on a subscreen, such as healing items.
- 2 if the item's effect is seen in battle such as Poké Balls.
Extra parameter
Extra parameter is used to distinguish Poké Balls and Mails, as opposed to just using the item index.
Offsets
These are for US Versions:
- Ruby: 0x083C5564
- Sapphire: 0x083C55BC
- Emerald: 0x085839A0
- FireRed: 0x083DB028
- LeafGreen: 0x083DAE64
|
This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games. |