Expanded bag item documentation (Generation I): Difference between revisions
>Torchickens No edit summary |
m (Text replacement - "{| {| align=top style="background: grey; -moz-border-radius: 0.5em; border: 5px solid #000000; color: grey"" to "{|") |
||
(23 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{incomplete|addresses beyond the last one currently listed and clarifications on what certain ones affect}} |
|||
{{incomplete}} |
|||
This is a list of correspondences between RAM addresses and item slots when making use of the [[expanded item pack]] in {{RBY}}. Changing a given item index number or quantity will directly change the RAM address associated with it. |
|||
{| |
{| |
||
{| align=top style="background: grey; -moz-border-radius: 0.5em; border: 5px solid #000000; color: grey" |
|||
|- |
|- |
||
| |
| |
||
{| class="wikitable sortable" |
|||
{| border=1 width="100%" align=left class="sortable" style="background:#f0f0f0; border:1px solid #000000; border-collapse:collapse;" |
|||
! Bag item/quantity !! Disassembly label !! Red/Blue address !! Yellow address !! Details |
|||
|-style="background: silver;" |
|||
! Bag item/quantity !! Red/Blue address (label) !! Yellow address (label) !! Details |
|||
|- |
|- |
||
| Item 21 quantity || wPlayerMoney || D347 || D346 || Byte 1 of the player's current money (this value is read as BCD; see below.) |
|||
| Item 33 || D35D (wMapPalOffset) || D35C (wMapPalOffset) || The current color attribution of the map (D35D (D35C in {{Yellow}})) including 'cave darkness', which involves a D35D/D35C value of hex:06. See also [[play the Safari Zone in the dark glitch]]. |
|||
|- |
|- |
||
| Item 22 || wPlayerMoney || D348 || D347 || Byte 2 of the player's current money (this value is read as BCD; see below.) |
|||
| Item 33 quantity || D35E (wCurMap) || D35D (wCurMap) || The currently loaded map. Changing this alone will not change the layout of the map, but it is possible to change the map's palette and script bank to the ones associated with the new value in D35E/D this way. A [[game freeze]] may be caused by changing this value if the bank of the map script is changed to point to a problematic address for the program counter to run. |
|||
|- |
|||
| Item 22 quantity || wPlayerMoney || D349 || D348 || Byte 3 of the player's current money (this value is read as BCD; see below.) |
|||
|- |
|||
| Item 23 || wRivalName || D34A || D349 || The 1st letter of the rival's name. |
|||
|- |
|||
| Item 23 quantity || wRivalName || D34B || D34A || The 2nd letter of the rival's name. |
|||
|- |
|||
| Item 24 || wRivalName || D34C || D34B || The 3rd letter of the rival's name. |
|||
|- |
|||
| Item 24 quantity || wRivalName || D34D || D34C || The 4th letter of the rival's name. |
|||
|- |
|||
| Item 25 || wRivalName || D34E || D34D || The 5th letter of the rival's name. |
|||
|- |
|||
| Item 25 quantity || wRivalName || D34F || D34E || The 6th letter of the rival's name. |
|||
|- |
|||
| Item 26 || wRivalName || D350 || D34F || The 7th letter of the rival's name. |
|||
|- |
|||
| Item 26 quantity || wRivalName || D351 || D350 || The 8th letter of the rival's name. (This should be $50 if playing normally and the rival's name is the maximum length of 7 characters.) |
|||
|- |
|||
| Item 27 || wRivalName || D352 || D351 || The 9th letter of the rival's name. |
|||
|- |
|||
| Item 27 quantity || wRivalName || D353 || D352 || The 10th letter of the rival's name. |
|||
|- |
|||
| Item 28 || wRivalName || D354 || D353 || The 11th letter of the rival's name. |
|||
|- |
|||
| Item 28 quantity || wOptions || D355 || D354 || The options visible in the Options menu. Bits 0-3 correspond to text speed, with their value amounting to the amount of frames between each character printed to the screen; 5 corresponds to the "Slow" option, 3 to the "Medium" option, and 1 to the "Fast" option. Bit 6 corresponds to the Battle Style: it is 0 when the style is set to Shift, and 1 when set to Set. Bit 7 corresponds to Battle Animations; however, it is 0 when Battle Animations are ''on'', and 1 when they are ''off''. |
|||
(reword) |
|||
|- |
|||
| Item 29 || wObtainedBadges || D356 || D355 || The badges the player has obtained, in the form of a binary array. Each bit that is set corresponds to one badge being obtained (e.g. when set to FF, the player has all 8 badges.) |
|||
|- |
|||
| Item 29 quantity || wObtainedBadges || D357 || D356 || Unused |
|||
|- |
|||
| Item 30 || wLetterPrintingDelayFlags || D358 || D357 || If bit 0 of this address is 0, the delay between which text characters are printed to the screen is limited to one frame. The values of both bit 1 of this address and bit 6 of D730 take priority over this. If bit 1 of this address is 0, there is no delay after a text character is printed, allowing for instant text. |
|||
|- |
|||
| Item 30 quantity || wPlayerID || D359 || D358 || The upper byte of the player's trainer ID. |
|||
|- |
|||
| Item 31 || wPlayerID || D35A || D359 || The lower byte of the player's trainer ID. |
|||
|- |
|||
| Item 31 quantity || wMapMusicSoundID || D35B || D35A || The sound effect/track/cry ID for the current map. 0xFF is usually 'mute', and many other values correspond to town/city etc. themes. The selection of sounds/music depends on wMapMusicROMBank. The easiest method to play the music is by riding and dismounting the Bicycle or using [[ItemDex/RB:120|the nameless 0x78 glitch item]]. |
|||
|- |
|||
| Item 32 || wMapMusicROMBank || D35C || D35B || The ROM bank of the music of the current map. Expected banks are 0x02 (overworld 1) and 0x1F (overworld 2). 0x08 (battle) and 0x20 (Pikachu's Beach EN Yellow). Glitch music banks are also possible. The easiest method to play the music is by riding and dismounting the Bicycle or using [[ItemDex/RB:120|the nameless 0x78 glitch item]]. |
|||
|- |
|||
| Item 32 quantity || wMapPalOffset || D35D || D35C || The current color attribution of the map (D35D (D35C in {{Yellow}})) including 'cave darkness', which involves a D35D/D35C value of hex:06. See also [[play the Safari Zone in the dark glitch]]. |
|||
|- |
|||
| Item 33 || wCurMap || D35E || D35D || The currently loaded map (must be reloaded to apply). May also affect palette and map script bank. |
|||
|- |
|||
| Item 33 quantity || wCurrentTileBlockMapViewPointer || D35F || D35E || First little endian byte of the pointer to the upper left corner of the current view in the tile block map. |
|||
|- |
|||
| Item 34 || wCurrentTileBlockMapViewPointer || D360 || D35F || Second little endian byte of the pointer to the upper left corner of the current view in the tile block map. |
|||
|- |
|||
| Item 34 quantity || wYCoord || D361 || D360 || The player's Y coordinate on the current map. |
|||
|- |
|||
| Item 35 || wXCoord || D362 || D361 || The player's X coordinate on the current map. |
|||
|- |
|||
| Item 35 quantity || wYBlockCoord || D363 || D362 || Affects the alignment for blocks on the screen. Normally either 0 or 1. It alternates each time the player walks up/down. |
|||
|- |
|||
| Item 36 || wXBlockCoord || D364 || D363 || Affects the alignment for blocks on the screen. Normally either 0 or 1. It alternates each time the player walks left/right. |
|||
|- |
|||
| Item 36 quantity || wLastMap || D365 || D364 || The index of the last map the player was in. |
|||
|- |
|||
| Item 37 || wUnusedD366 || D366 || D365 || Set to the width (in blocks) of the current map (before warping) when taking a warp from an "outside" map (usually when entering a building or a cave). Normally unused. |
|||
|- |
|||
| Item 37 quantity || wCurMapTileset || D367 || D366 || The tileset used by the current map. |
|||
|- |
|||
| Item 38 || wCurMapHeight || D368 || D367 || The height (in blocks) of the current map. |
|||
|- |
|||
| Item 38 quantity || wCurMapWidth || D369 || D368 || The width (in blocks) of the current map. |
|||
|- |
|||
| Item 39 || wMapDataPtr || D36A || D369 || The upper byte of the pointer of to the data for the current map. |
|||
|- |
|||
| Item 39 quantity || wMapDataPtr || D36B || D36A || The lower byte of the pointer to the data for the current map. |
|||
|- |
|||
| Item 40 || wMapTextPtr || D36C || D36B || The upper byte of the pointer to the text for the current map. |
|||
|- |
|||
| Item 40 quantity || wMapTextPtr || D36D || D36C || The lower byte of the pointer to the text for the current map. |
|||
|- |
|||
| Item 41 || wMapScriptPtr || D36E || D36D || The upper byte of the pointer to the script for the current map. |
|||
|- |
|||
| Item 41 quantity || wMapScriptPtr || D36F || D36E || The lower byte of the pointer to the script for the current map. |
|||
|- |
|||
| Item 42 || wMapConnections || D370 || D36F || Map connections (?) |
|||
|- |
|||
| Item 42 quantity || wMapConn1Ptr || D371 || D370 || Map connection 1 (?) |
|||
|- |
|||
| Item 43 || wNorthConnectionStripSrc || D372 || D371 || The upper byte of wNorthConnectionStripSrc (?) |
|||
|- |
|||
| Item 43 quantity || wNorthConnectionStripSrc || D373 || D372 || The lower byte of wNorthConnectionStripSrc (?) |
|||
|- |
|||
| Item 44 || wNorthConnectionStripDest || D374 || D373 || The upper byte of the pointer to the map to the north of the current one. |
|||
|- |
|||
| Item 44 quantity || wNorthConnectionStripDest || D375 || D374 || The lower byte of the pointer to the map to the north of the current one. |
|||
|- |
|||
| Item 45 || wNorthConnectionStripWidth || D376 || D375 || The width of the strip connecting to the map north of the current one. (?) |
|||
|- |
|||
| Item 45 quantity || wNorthConnectedMapWidth || D377 || D376 || The width of the map to the north of the current one. |
|||
|- |
|||
| Item 46 || wNorthConnectedMapYAlignment || D378 || D377 || The Y alignment of the map north of the current one. |
|||
|- |
|||
| Item 46 quantity || wNorthConnectedMapXAlignment || D379 || D378 || The X alignment of the map to the north of the current one. |
|||
|- |
|||
| Item 47 || wNorthConnectedMapViewPointer || D37A || D379 || The upper byte of the pointer to the view of the map north of the current one. (?) |
|||
|- |
|||
| Item 47 quantity || wNorthConnectedMapViewPointer || D37B || D37A || The lower byte of the pointer to the view of the map north of the current one. (?) |
|||
|- |
|||
| Item 48 || wMapConn2Ptr || D37C || D37B || Map connection 2 (?) |
|||
|- |
|||
| Item 48 quantity || wSouthConnectionStripSrc || D37D || D37C || The upper byte of wSouthConnectionStripSrc (?) |
|||
|- |
|||
| Item 49 || wSouthConnectionStripSrc || D37E || D37D || The lower byte of wSouthConnectionStripSrc (?) |
|||
|- |
|||
| Item 49 quantity || wSouthConnectionStripDest || D37F || D37E || The upper byte of the pointer to the map to the south of the current one. |
|||
|- |
|||
| Item 50 || wSouthConnectionStripDest || D380 || D37F || The lower byte of the pointer to the map to the south of the current one. |
|||
|- |
|||
| Item 50 quantity || wSouthConnectionStripWidth || D381 || D380 || The width of the strip connecting to the map south of the current one. (?) |
|||
|- |
|||
| Item 51 || wSouthConnectedMapWidth || D382 || D381 || The width of the map to the south of the current one. |
|||
|- |
|||
| Item 51 quantity || wSouthConnectedMapYAlignment || D383 || D382 || The Y alignment of the map south of the current one. |
|||
|- |
|||
| Item 52 || wSouthConnectedMapXAlignment || D384 || D383 || The X alignment of the map to the south of the current one. |
|||
|- |
|||
| Item 52 quantity || wSouthConnectedMapViewPointer || D385 || D384 || The upper byte of the pointer to the view of the map south of the current one. (?) |
|||
|- |
|||
| Item 53 || wSouthConnectedMapViewPointer || D386 || D385 || The lower byte of the pointer to the view of the map south of the current one. (?) |
|||
|- |
|||
| Item 53 quantity || wMapConn3Ptr || D387 || D386 || Map connection 3 (?) |
|||
|- |
|||
| Item 54 || wWestConnectionStripSrc || D388 || D387 || The upper byte of wWestConnectionStripSrc (?) |
|||
|- |
|||
| Item 54 quantity || wWestConnectionStripSrc || D389 || D388 || The lower byte of wWestConnectionStripSrc (?) |
|||
|- |
|||
| Item 55 || wWestConnectionStripDest || D38A || D389 || The upper byte of the pointer to the map to the west of the current one. |
|||
|- |
|||
| Item 55 quantity || wWestConnectionStripDest || D38B || D38A || The lower byte of the pointer to the map to the west of the current one. |
|||
|- |
|||
| Item 56 || wWestConnectionStripHeight || D38C || D38B || The height of the strip connecting to the map west of the current one. (?) |
|||
|- |
|||
| Item 56 quantity || wWestConnectedMapWidth || D38D || D38C || The width of the map to the west of the current one. |
|||
|- |
|||
| Item 57 || wWestConnectedMapYAlignment || D38E || D38D || The Y alignment of the map west of the current one. |
|||
|- |
|||
| Item 57 quantity || wWestConnectedMapXAlignment || D38F || D38E || The X alignment of the map to the west of the current one. |
|||
|- |
|||
| Item 58 || wWestConnectedMapViewPointer || D390 || D38F || The upper byte of the pointer to the view of the map west of the current one. (?) |
|||
|- |
|||
| Item 58 quantity || wWestConnectedMapViewPointer || D391 || D390 || The lower byte of the pointer to the view of the map west of the current one. (?) |
|||
|- |
|||
| Item 59 || wMapConn4Ptr || D392 || D391 || Map connection 4 (?) |
|||
|- |
|||
| Item 59 quantity || wEastConnectionStripSrc || D393 || D392 || The upper byte of wEastConnectionStripSrc (?) |
|||
|- |
|||
| Item 60 || wEastConnectionStripSrc || D394 || D393 || The lower byte of wEastConnectionStripSrc (?) |
|||
|- |
|||
| Item 60 quantity || wEastConnectionStripDest || D395 || D394 || The upper byte of the pointer to the map to the east of the current one. |
|||
|- |
|||
| Item 61 || wEastConnectionStripDest || D396 || D395 || The lower byte of the pointer to the map to the east of the current one. |
|||
|- |
|||
| Item 61 quantity || wEastConnectionStripHeight || D397 || D396 || The height of the strip connecting to the map east of the current one. (?) |
|||
|- |
|||
| Item 62 || wEastConnectedMapWidth || D398 || D397 || The width of the map to the east of the current one. |
|||
|- |
|||
| Item 62 quantity || wEastConnectedMapYAlignment || D399 || D398 || The Y alignment of the map east of the current one. |
|||
|- |
|||
| Item 63 || wEastConnectedMapXAlignment || D39A || D399 || The X alignment of the map to the east of the current one. |
|||
|- |
|||
| Item 63 quantity || wEastConnectedMapViewPointer || D39B || D39A || The upper byte of the pointer to the view of the map east of the current one. (?) |
|||
|- |
|||
| Item 64 || wEastConnectedMapViewPointer || D39C || D39B || The lower byte of the pointer to the view of the map east of the current one. (?) |
|||
|- |
|||
| Item 64 quantity || wSpriteSet || D39D || D39C || The 1st of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 65 || wSpriteSet || D39E || D39D || The 2nd of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 65 quantity || wSpriteSet || D39F || D39E || The 3rd of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 66 || wSpriteSet || D3A0 || D39F || The 4th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 66 quantity || wSpriteSet || D3A1 || D3A0 || The 5th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 67 || wSpriteSet || D3A2 || D3A1 || The 6th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 67 quantity || wSpriteSet || D3A3 || D3A2 || The 7th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 68 || wSpriteSet || D3A4 || D3A3 || The 8th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 68 quantity || wSpriteSet || D3A5 || D3A4 || The 9th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 69 || wSpriteSet || D3A6 || D3A5 || The 10th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 69 quantity || wSpriteSet || D3A7 || D3A6 || The 11th of eleven identifiers for the sprite set in the current map. |
|||
|- |
|||
| Item 70 || wSpriteSetID || D3A8 || D3A7 || The sprite set ID for the current map. |
|||
|- |
|||
| Item 70 quantity || wObjectDataPointerTemp || D3A9 || D3A8 || ? |
|||
|- |
|||
| Item 71 || wObjectDataPointerTemp || D3AA || D3A9 || ? |
|||
|- |
|||
| Item 71 quantity || wObjectDataPointerTemp || D3AB || D3AA || ? |
|||
|- |
|||
| Item 72 || wObjectDataPointerTemp || D3AC || D3AB || ? |
|||
|- |
|||
| Item 72 quantity || wMapBackgroundTile || D3AD || D3AC || The tile shown outside the boundaries of the map |
|||
|- |
|||
| Item 73 || wNumberOfWarps || D3AE || D3AD || Number of warps in current map |
|||
|- |
|||
| Item 73 quantity-Item 128 quantity || wWarpEntries || D3AF-D41D || D3AE-D41C || Current map warp entries |
|||
|- |
|||
| Item 129-256 || (copy of items 1-128) || D31E-D41D || D31D-D41C || Aforementioned addresses |
|||
|} |
|} |
||
|} |
|} |
||
==Binary-coded decimal (BCD)== |
|||
Binary-coded decimal is a system for encoding numbers in which hexadecimal values are read as their visual counterpart in decimal. For instance, $64 in BCD would be interpreted as 64, not 100. It is used most notably for storing the player's money. This means that a value such as $000200 (item 21 has quantity 0, item 22 is an Ultra Ball with quantity 0) will give the player 200 money. |
|||
==Roaming items== |
|||
{{incomplete|roaming items for red}} |
|||
'''Roaming items''' are simply map-specific items found in the expanded item pack. Their corresponding memory addresses are set every time the player enters a map. Since many of those data correspond to pointers, the kinds and quantities of those items are seemingly random, may vary between even similar versions (e.g. English Red and English Blue), and cover a wide range of both normal and glitch items. |
|||
The "roaming item area" begins with the quantity of item 37, wCurMapTileset, and it technically extends all the way to the quantity of item 128. However, some memory addresses in this area are left unset if they are unused for a certain map (like the data for a nonexistent map connection). In particular, none of the maps have enough warps to actually fill the item pack up to item 128, so for a large number of items, both the item ID and the quantity remains at 0. The sprite set is also only reloaded if it changed. |
|||
Modification of those memory addresses usually has no long-term effect (or no effect at all). As such, swapping those items with unimportant items in the normal inventory is a powerful way of getting glitch items. |
|||
===External links=== |
|||
* [http://pastebin.com/T5gHcAtb List of roaming items for Blue] |
|||
{{stub}} |
{{stub}} |
Latest revision as of 21:12, 31 December 2020
This article is incomplete. Please feel free to add any missing information about the subject. It is missing: addresses beyond the last one currently listed and clarifications on what certain ones affect. |
This is a list of correspondences between RAM addresses and item slots when making use of the expanded item pack in Pokémon Red, Blue, and Yellow. Changing a given item index number or quantity will directly change the RAM address associated with it.
|
Binary-coded decimal (BCD)
Binary-coded decimal is a system for encoding numbers in which hexadecimal values are read as their visual counterpart in decimal. For instance, $64 in BCD would be interpreted as 64, not 100. It is used most notably for storing the player's money. This means that a value such as $000200 (item 21 has quantity 0, item 22 is an Ultra Ball with quantity 0) will give the player 200 money.
Roaming items
This article is incomplete. Please feel free to add any missing information about the subject. It is missing: roaming items for red. |
Roaming items are simply map-specific items found in the expanded item pack. Their corresponding memory addresses are set every time the player enters a map. Since many of those data correspond to pointers, the kinds and quantities of those items are seemingly random, may vary between even similar versions (e.g. English Red and English Blue), and cover a wide range of both normal and glitch items.
The "roaming item area" begins with the quantity of item 37, wCurMapTileset, and it technically extends all the way to the quantity of item 128. However, some memory addresses in this area are left unset if they are unused for a certain map (like the data for a nonexistent map connection). In particular, none of the maps have enough warps to actually fill the item pack up to item 128, so for a large number of items, both the item ID and the quantity remains at 0. The sprite set is also only reloaded if it changed.
Modification of those memory addresses usually has no long-term effect (or no effect at all). As such, swapping those items with unimportant items in the normal inventory is a powerful way of getting glitch items.
External links
This article or section is a stub. You can help Glitch City Wiki by expanding it. |