Expanded bag item documentation (Generation I)

From Glitch City Wiki
(Redirected from Roaming items)
Jump to navigation Jump to search
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.

Bag item/quantity Disassembly label Red/Blue address Yellow address Details
Item 21 quantity wPlayerMoney D347 D346 Byte 1 of the player's current money (this value is read as BCD; see below.)
Item 22 wPlayerMoney D348 D347 Byte 2 of the player's current money (this value is read as BCD; see below.)
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 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 the nameless 0x78 glitch item.
Item 32 quantity wMapPalOffset D35D D35C The current color attribution of the map (D35D (D35C in Pokémon 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

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.