User:MrMissingNo74/Pokémon Red and Blue RAM map

From Glitch City Wiki
Jump to navigation Jump to search

This is a memory map for Pokémon Red and Blue, all addresses are minus 1 in Yellow (with the exceptions of some including CD38)

Useful links:

- TimoVM

SRAM

SRAM BANK $0

SPRITE DECOMPRESSION AND HALL OF FAME DATA.

  • A000 to A187 = buffer 0
  • A188 to A30F = buffer 1
  • A310 to A497 = buffer 2
  • A498 to A597 = unused?
  • A598 to B857 = HoF data
  • B858 to BFFF = unused?

Note: MissingNo. and 'M (00)'s invalid front sprites, when decompressed, overflows into the Hall of Fame data. Other Pokémon with much, much larger corruptions, will reach WRAM, resulting in freezes due to their sprites corrupting C0EF and C0F0.

SRAM BANK $1

MAIN SAVED DATA

  • A000 to A597 = unused?
  • A598 to A5A2 = player name
  • A5A3 to AD2B = main data
  • AD2C to AF2B = sprite data
  • AF2C to B0BF = party data
  • B0C0 to B521 = current box data
  • B522 = tileset type
  • B523 = main data checksum
  • B524 to BFFF = unused?

SRAM BANK $2

POKÉMON BOXES 1-6

  • A000 to A461 = box 1
  • A462 to A8C3 = box 2
  • A8C4 to AD25 = box 3
  • AD26 to B187 = box 4
  • B188 to B5E9 = box 5
  • B5EA to BA4B = box 6
  • BA4C = global checksum
  • BA4D to BA52 = individual checksums
  • BA53 to BFFF = unused

SRAM BANK $3


POKÉMON BOXES 7-12

  • A000 to A461 = box 7
  • A462 to A8C3 = box 8
  • A8C4 to AD25 = box 9
  • AD26 to B187 = box 10
  • B188 to B5E9 = box 11
  • B5EA to BA4B = box 12
  • BA4C = global checksum
  • BA4D to BA52 = individual checksums
  • BA53 to BFFF = unused

WRAM

  • C0EF = current sound bank
  • C0F0 = saved sound bank
  • C3A0 to C507 = screen data
  • CC35 = item highlighted with select
  • CC47 = if not in cable club, is player entering? if in cable club, timeout counter
  • CD38 = index for joypad simulation, if nonzero, disables collision but doesn't lock player
  • CD6B = what buttons are ignored, example if value of CD6B is 0x0E the buttons B, Select, and Start will be ignored, a value of 0x00 means no buttons will be ignored and 0xFF means all eight buttons are ignored
  • CD6D to CD80 = first item, move, or Pokémon name buffer
  • CEE9 to CEEE = information about your Pokémon belt
  • CF7B = number of items in Poké Mart
  • CF7C to CF85 = items in the Poké Mart
  • CF91 = the item you used/Pokémon currently out in battle
  • CF92 = what Pokémon the name rater changes
  • D059 = set to a value between C9 and F7 when a trainer battle starts which depends on what trainer it is
  • D05D = current roster
  • D158 to D162 = player name
  • D163 = number of Pokémon
  • D164 to D16A = party data
  • D16B to D196 = Pokémon 1
  • D197 to D1C2 = Pokémon 2
  • D1C3 to D1EE = Pokémon 3
  • D1EF to D21A = Pokémon 4
  • D21B to D246 = Pokémon 5
  • D247 to D272 = Pokémon 6
  • D273 to D2B4 = trainer names
  • D2B5 to D2F6 = nicknames
  • D2F7 to D309 = own PokéDex flags
  • D30A to D31C = seen PokéDex flags
  • D31D = number of items
  • D31E, D31F = item 1
  • D320, D321 = item 2
  • D322, D323 = item 3
  • D324, D325 = item 4
  • D326, D327 = item 5
  • D328, D329 = item 6
  • D32A, D32B = item 7
  • D32C, D32D = item 8
  • D32E, D32F = item 9
  • D330, D331 = item 10
  • D332, D333 = item 11
  • D334, D335 = item 12
  • D336, D337 = item 13
  • D338, D339 = item 14
  • D33A, D33B = item 15
  • D33C, D33D = item 16
  • D33E, D33F = item 17
  • D340, D341 = item 18
  • D342, D343 = item 19
  • D344, D345 = item 20
  • D346 = end of items list
  • D347 to D349 = your money (stored as binary-coded decimal)
  • D34A to D351 = rival's name
  • D355 = options
  • D356 = badges
  • D35E = current map
  • D361, D362 = current X/Y coordinates
  • D365 = last map you were in
  • D3AD = tile shown outside of the boundaries