If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Kirby's Adventure/RAM map
Jump to navigation
Jump to search
The following article is a RAM map for Kirby's Adventure.
- 0042 = PPU sprite banks 0-1
- 0043 = PPU sprite banks 2-3
- 0044 = PPU background bank 0
- 0045 = PPU background bank 1
- 0046 = PPU background bank 2
- 0047 = PPU background bank 3
- 0593 - 0595 (0003) = score (1 per 10 points)
- 0596 = health (max) (count by 8)
- 0597 = health (current) (count by 8)
- 0598 = power (for mike, crash, light)
- only used for display, except mike
- 0599 = lives
- max of 63 (99 decimal)
- 059D = lives display
- 00 = lives only
- 01 = power & lives
- 02-FF = [GLITCH]
- 05E2 = power of eaten enemy
- 05E3 = current power (see Notes)
- NOTE: bytes for actually being able to use power are VERY COMPLICATED (627F 6291 62A3 / 62D9 62EB 62FD)
- 058C = background graphics cycle - current
- 058D = background graphics cycle - countdown
- 058E = background graphics cycle - type
- 62C7 = kirby state (see Notes)
- 67EE - 74C7 (0CDA) = current map data (see Map Data Format)
- 7A00 - 7FFF (0600) = current tileset data (see Tileset Data Format)
Tileset Data Format
Tileset data is decompressed to 67EE - 6D2D (0540), then decoded to 7A00 - 7FFF (0600)
Original format:
- 67EE - 6BED (0400) = tileset - sets of PPU tiles (4 bytes per full tile)
- 6BEE - 6C2D (0040) = tileset - palettes (2 bits per tile)
- 6C2E - 6D2D (0100) = tileset - attributes
Decoded format:
- 7A00 - 7AFF (0100) = tileset - top-left PPU tile
- 7B00 - 7BFF (0100) = tileset - top-right PPU tile
- 7C00 - 7CFF (0100) = tileset - bottom-left PPU tile
- 7D00 - 7DFF (0100) = tileset - bottom-right PPU tile
- 7E00 - 7EFF (0100) = tileset - palette
- 7F00 - 7FFF (0100) = tileset - attribute (see Notes)
Map Data Format
After the tileset data is decoded, the map data is decompressed to 67EE - 74C7 (0CDA) (no decoding necessary)
NOTE: Maps can have 1-16 different screens, and screens can be duplicated in the map screen order
- 67EE - 68C7 (00DA) = header
- 67EE = map width
- 67EF = map height
- 67F0 = PPU background banks (see ROM 0x0B428)
- 67F1 = PPU background palettes (see Background Palettes)
- 67F2 = PPU sprite banks
- 67F3 = PPU sprite palettes (see ROM 0x24E65)
- 67F4 = music
- 67F5 = background animation delay (00 = off)
- 67F6 - 68C7 (0010) = map screen order (from top, by rows)
- 68C8 - 6987 (00C0) = map screen 1
- 6988 - 6A47 (00C0) = map screen 2
- 6A48 - 6B07 (00C0) = map screen 3
- 6B08 - 6BC7 (00C0) = map screen 4
- 6BC8 - 6C87 (00C0) = map screen 5
- 6C88 - 6D47 (00C0) = map screen 6
- 6D48 - 6E07 (00C0) = map screen 7
- 6E08 - 6EC7 (00C0) = map screen 8
- 6EC8 - 6F87 (00C0) = map screen 9
- 6F88 - 7047 (00C0) = map screen 10
- 7048 - 7107 (00C0) = map screen 11
- 7108 - 71C7 (00C0) = map screen 12
- 71C8 - 7287 (00C0) = map screen 13
- 7288 - 7347 (00C0) = map screen 14
- 7348 - 7407 (00C0) = map screen 15
- 7408 - 74C7 (00C0) = map screen 16