Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

Kirby's Adventure/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(map and tileset ranges in main offset list)
m (Xkeeper moved page Kirby's Adventure:RAM map to Kirby's Adventure/RAM map: normalize subpages and titles)
 
(13 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{rammap|game=Kirby's Adventure}}
{{rammap|game=Kirby's Adventure}}
* <tt>0042</tt> = PPU sprite banks 0-1
* <tt>0043</tt> = PPU sprite banks 2-3
* <tt>0044</tt> = PPU background bank 0
* <tt>0045</tt> = PPU background bank 1
* <tt>0046</tt> = PPU background bank 2
* <tt>0047</tt> = PPU background bank 3
* <tt>0521</tt> = Level 1 progress
**Bit 0 = Stage 1-1 clear status
**Bit 1 = Stage 1-2 clear status
**Bit 2 = Stage 1-3 clear status
**Bit 3 = Stage 1-4 clear status
* <tt>0522</tt> = Level 2 progress
**Bit 0 = Stage 2-1 clear status
**Bit 1 = Stage 2-2 clear status
**Bit 2 = Stage 2-3 clear status
**Bit 3 = Stage 2-4 clear status
**Bit 4 = Stage 2-5 clear status
* <tt>0523</tt> = Level 3 main progress
**Bit 0 = Stage 3-1 clear status
**Bit 1 = Stage 3-2 clear status
**Bit 2 = Stage 3-3 clear status
**Bit 3 = Stage 3-4 clear status
**Bit 4 = Stage 3-5 clear status
**Bit 5 = Stage 3-6 clear status
* <tt>0524</tt> = Level 4 main progress
**Bit 0 = Stage 4-1 clear status
**Bit 1 = Stage 4-2 clear status
**Bit 2 = Stage 4-3 clear status
**Bit 3 = Stage $-4 clear status
**Bit 4 = Stage 4-5 clear status
**Bit 5 = Stage 4-6 clear status
* <tt>0525</tt> = Level 5 main progress
**Bit 0 = Stage 5-1 clear status
**Bit 1 = Stage 5-2 clear status
**Bit 2 = Stage 5-3 clear status
**Bit 3 = Stage 5-4 clear status
**Bit 4 = Stage 5-5 clear status
**Bit 5 = Stage 5-6 clear status
* <tt>0526</tt> = Level 6 main progress
**Bit 0 = Stage 6-1 clear status
**Bit 1 = Stage 6-2 clear status
**Bit 2 = Stage 6-3 clear status
**Bit 3 = Stage 6-4 clear status
**Bit 4 = Stage 6-5 clear status
**Bit 5 = Stage 6-6 clear status
* <tt>0527</tt> = Level 7 main progress
**Bit 0 = Stage 7-1 clear status
**Bit 1 = Stage 7-2 clear status
**Bit 2 = Stage 7-3 clear status
**Bit 3 = Stage 7-4 clear status
**Bit 4 = Stage 7-5 clear status
**Bit 5 = Stage 7-6 clear status
* <tt>0528</tt> = Game progress state
**<tt>00</tt> = Level 1 in progress
**<tt>01</tt> = Level 2 in progress
**<tt>02</tt> = Level 3 in progress
**<tt>03</tt> = Level 4 in progress
**<tt>04</tt> = Level 5 in progress
**<tt>05</tt> = Level 6 in progress
**<tt>06</tt> = Level 7 in progress
**<tt>08</tt> = Game cleared
**<tt>09</tt> = Extra Game cleared
* <tt>052B</tt> = Level 3 switch progress
**Bit 0 = Stage 3-1 switch status
**Bit 5 = Stage 3-6 switch status
* <tt>052C</tt> = Level 4 switch progress
**Bit 0 = Stage 4-1 switch status
**Bit 2 = Stage 4-3 switch status
**Bit 5 = Stage 4-6 switch status
* <tt>052D</tt> = Level 5 switch progress
**Bit 0 = Stage 5-1 switch status
**Bit 3 = Stage 5-4 switch status
**Bit 4 = Stage 5-5 switch status
**Bit 5 = Stage 5-6 switch status
* <tt>052E</tt> = Level 6 switch progress
**Bit 0 = Stage 6-1 switch status
**Bit 1 = Stage 6-2 switch status
**Bit 2 = Stage 6-3 switch status
**Bit 3 = Stage 6-4 switch status
**Bit 4 = Stage 6-5 switch status
**Bit 5 = Stage 6-6 switch status
* <tt>052F</tt> = Level 7 switch progress
**Bit 0 = Stage 7-1 clear status
**Bit 5 = Stage 7-6 clear status
* <tt>0531</tt> = Level 1 boss status (set bit 7 for defeated state)
* <tt>0532</tt> = Level 2 boss status (set bit 7 for defeated state)
* <tt>0533</tt> = Level 3 boss status (set bit 7 for defeated state)
* <tt>0534</tt> = Level 4 boss status (set bit 7 for defeated state)
* <tt>0535</tt> = Level 5 boss status (set bit 7 for defeated state)
* <tt>0536</tt> = Level 6 boss status (set bit 7 for defeated state)


* <tt>0593 - 0595 (0003)</tt> = score (1 per 10 points)
* <tt>0593 - 0595 (0003)</tt> = score (1 per 10 points)
Line 12: Line 117:
**<tt>00</tt> = lives only
**<tt>00</tt> = lives only
**<tt>01</tt> = power & lives
**<tt>01</tt> = power & lives
**<tt>02-FF</tt> = ''[GLITCH]''
**<tt>02-FF</tt> = lives only when in overworld room


* <tt>05E2</tt> = power of eaten enemy
* <tt>05E2</tt> = power of eaten enemy
* <tt>05E3</tt> = current power (see [[Kirby's Adventure:Notes#Powers|Notes]])
* <tt>05E3</tt> = current power (see [[Kirby's Adventure:Notes#Powers|Notes]])
**NOTE: bytes for actually being able to use power are VERY COMPLICATED ($627F $6291 $62A3 / $62D9 $62EB $62FD)
**NOTE: bytes for actually being able to use power are VERY COMPLICATED (<tt>627F 6291 62A3 / 62D9 62EB 62FD</tt>)


* <tt>058C</tt> = background graphics cycle - current
* <tt>058C</tt> = background graphics cycle - current
Line 34: Line 139:
* <tt>67EE - 6BED (0400)</tt> = tileset - sets of PPU tiles (4 bytes per full tile)
* <tt>67EE - 6BED (0400)</tt> = tileset - sets of PPU tiles (4 bytes per full tile)
* <tt>6BEE - 6C2D (0040)</tt> = tileset - palettes (2 bits per tile)
* <tt>6BEE - 6C2D (0040)</tt> = tileset - palettes (2 bits per tile)
* <tt>6C2E - 6D2D (0100)</tt> = tileset - type
* <tt>6C2E - 6D2D (0100)</tt> = tileset - attributes


Decoded format:
Decoded format:
Line 42: Line 147:
* <tt>7D00 - 7DFF (0100)</tt> = tileset - bottom-right PPU tile
* <tt>7D00 - 7DFF (0100)</tt> = tileset - bottom-right PPU tile
* <tt>7E00 - 7EFF (0100)</tt> = tileset - palette
* <tt>7E00 - 7EFF (0100)</tt> = tileset - palette
* <tt>7F00 - 7FFF (0100)</tt> = tileset - type
* <tt>7F00 - 7FFF (0100)</tt> = tileset - attribute (see [[Kirby's Adventure:Notes#Tile Attributes|Notes]])


== Map Data Format ==
== Map Data Format ==
After the tileset data is decoded, the map data is decompressed (no decoding necessary)
After the tileset data is decoded, the map data is decompressed to <tt>67EE - 74C7 (0CDA)</tt> (no decoding necessary)
 
NOTE: Maps can have 1-16 different screens, and screens can be duplicated in the map screen order


* <tt>67EE - 74C7 (0CDA)</tt> = decompressed map output
* <tt>67EE - 68C7 (00DA)</tt> = header
** <tt>67EE - 68C7 (00DA)</tt> = header
** <tt>67EE</tt> = map width
*** <tt>67EE</tt> = map width
** <tt>67EF</tt> = map height
*** <tt>67EF</tt> = map height
** <tt>67F0</tt> = PPU background banks (see [[Kirby's Adventure:ROM map#Map.2FEnemy.2FTileset Data|ROM 0x0B428]])
*** <tt>67F0</tt> = ''[PPU 0 banks]''
** <tt>67F1</tt> = PPU background palettes (see [[Kirby's Adventure:ROM map#Background Palettes|Background Palettes]])
*** <tt>67F1</tt> = ''[PPU 0 palettes]''
** <tt>67F2</tt> = PPU sprite banks
*** <tt>67F2</tt> = ''[affects PPU 1 banks]''
** <tt>67F3</tt> = PPU sprite palettes (see [[Kirby's Adventure:ROM map#Misc|ROM 0x24E65]])
*** <tt>67F3</tt> = ''[PPU 1 palettes 2-3]''
** <tt>67F4</tt> = music
*** <tt>67F4</tt> = music
** <tt>67F5</tt> = background animation delay (00 = off)
*** <tt>67F5</tt> = background animation delay (00 = off)
** <tt>67F6 - 68C7 (0010)</tt> = map screen order (from top, by rows)
*** <tt>67F6 - 68C7 (0010)</tt> = map screen order (from top, by rows)
* <tt>68C8 - 6987 (00C0)</tt> = map screen 1
** <tt>68C8 - 6987 (00C0)</tt> = map screen 1
* <tt>6988 - 6A47 (00C0)</tt> = map screen 2
** <tt>6988 - 6A47 (00C0)</tt> = map screen 2
* <tt>6A48 - 6B07 (00C0)</tt> = map screen 3
** <tt>6A48 - 6B07 (00C0)</tt> = map screen 3
* <tt>6B08 - 6BC7 (00C0)</tt> = map screen 4
** <tt>6B08 - 6BC7 (00C0)</tt> = map screen 4
* <tt>6BC8 - 6C87 (00C0)</tt> = map screen 5
** <tt>6BC8 - 6C87 (00C0)</tt> = map screen 5
* <tt>6C88 - 6D47 (00C0)</tt> = map screen 6
** <tt>6C88 - 6D47 (00C0)</tt> = map screen 6
* <tt>6D48 - 6E07 (00C0)</tt> = map screen 7
** <tt>6D48 - 6E07 (00C0)</tt> = map screen 7
* <tt>6E08 - 6EC7 (00C0)</tt> = map screen 8
** <tt>6E08 - 6EC7 (00C0)</tt> = map screen 8
* <tt>6EC8 - 6F87 (00C0)</tt> = map screen 9
** <tt>6EC8 - 6F87 (00C0)</tt> = map screen 9
* <tt>6F88 - 7047 (00C0)</tt> = map screen 10
** <tt>6F88 - 7047 (00C0)</tt> = map screen 10
* <tt>7048 - 7107 (00C0)</tt> = map screen 11
** <tt>7048 - 7107 (00C0)</tt> = map screen 11
* <tt>7108 - 71C7 (00C0)</tt> = map screen 12
** <tt>7108 - 71C7 (00C0)</tt> = map screen 12
* <tt>71C8 - 7287 (00C0)</tt> = map screen 13
** <tt>71C8 - 7287 (00C0)</tt> = map screen 13
* <tt>7288 - 7347 (00C0)</tt> = map screen 14
** <tt>7288 - 7347 (00C0)</tt> = map screen 14
* <tt>7348 - 7407 (00C0)</tt> = map screen 15
** <tt>7348 - 7407 (00C0)</tt> = map screen 15
* <tt>7408 - 74C7 (00C0)</tt> = map screen 16
** <tt>7408 - 74C7 (00C0)</tt> = map screen 16
{{Internal Data|game=Kirby's Adventure}}

Latest revision as of 02:41, 24 January 2024

Chip tiny.png 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
  • 0521 = Level 1 progress
    • Bit 0 = Stage 1-1 clear status
    • Bit 1 = Stage 1-2 clear status
    • Bit 2 = Stage 1-3 clear status
    • Bit 3 = Stage 1-4 clear status
  • 0522 = Level 2 progress
    • Bit 0 = Stage 2-1 clear status
    • Bit 1 = Stage 2-2 clear status
    • Bit 2 = Stage 2-3 clear status
    • Bit 3 = Stage 2-4 clear status
    • Bit 4 = Stage 2-5 clear status
  • 0523 = Level 3 main progress
    • Bit 0 = Stage 3-1 clear status
    • Bit 1 = Stage 3-2 clear status
    • Bit 2 = Stage 3-3 clear status
    • Bit 3 = Stage 3-4 clear status
    • Bit 4 = Stage 3-5 clear status
    • Bit 5 = Stage 3-6 clear status
  • 0524 = Level 4 main progress
    • Bit 0 = Stage 4-1 clear status
    • Bit 1 = Stage 4-2 clear status
    • Bit 2 = Stage 4-3 clear status
    • Bit 3 = Stage $-4 clear status
    • Bit 4 = Stage 4-5 clear status
    • Bit 5 = Stage 4-6 clear status
  • 0525 = Level 5 main progress
    • Bit 0 = Stage 5-1 clear status
    • Bit 1 = Stage 5-2 clear status
    • Bit 2 = Stage 5-3 clear status
    • Bit 3 = Stage 5-4 clear status
    • Bit 4 = Stage 5-5 clear status
    • Bit 5 = Stage 5-6 clear status
  • 0526 = Level 6 main progress
    • Bit 0 = Stage 6-1 clear status
    • Bit 1 = Stage 6-2 clear status
    • Bit 2 = Stage 6-3 clear status
    • Bit 3 = Stage 6-4 clear status
    • Bit 4 = Stage 6-5 clear status
    • Bit 5 = Stage 6-6 clear status
  • 0527 = Level 7 main progress
    • Bit 0 = Stage 7-1 clear status
    • Bit 1 = Stage 7-2 clear status
    • Bit 2 = Stage 7-3 clear status
    • Bit 3 = Stage 7-4 clear status
    • Bit 4 = Stage 7-5 clear status
    • Bit 5 = Stage 7-6 clear status
  • 0528 = Game progress state
    • 00 = Level 1 in progress
    • 01 = Level 2 in progress
    • 02 = Level 3 in progress
    • 03 = Level 4 in progress
    • 04 = Level 5 in progress
    • 05 = Level 6 in progress
    • 06 = Level 7 in progress
    • 08 = Game cleared
    • 09 = Extra Game cleared
  • 052B = Level 3 switch progress
    • Bit 0 = Stage 3-1 switch status
    • Bit 5 = Stage 3-6 switch status
  • 052C = Level 4 switch progress
    • Bit 0 = Stage 4-1 switch status
    • Bit 2 = Stage 4-3 switch status
    • Bit 5 = Stage 4-6 switch status
  • 052D = Level 5 switch progress
    • Bit 0 = Stage 5-1 switch status
    • Bit 3 = Stage 5-4 switch status
    • Bit 4 = Stage 5-5 switch status
    • Bit 5 = Stage 5-6 switch status
  • 052E = Level 6 switch progress
    • Bit 0 = Stage 6-1 switch status
    • Bit 1 = Stage 6-2 switch status
    • Bit 2 = Stage 6-3 switch status
    • Bit 3 = Stage 6-4 switch status
    • Bit 4 = Stage 6-5 switch status
    • Bit 5 = Stage 6-6 switch status
  • 052F = Level 7 switch progress
    • Bit 0 = Stage 7-1 clear status
    • Bit 5 = Stage 7-6 clear status
  • 0531 = Level 1 boss status (set bit 7 for defeated state)
  • 0532 = Level 2 boss status (set bit 7 for defeated state)
  • 0533 = Level 3 boss status (set bit 7 for defeated state)
  • 0534 = Level 4 boss status (set bit 7 for defeated state)
  • 0535 = Level 5 boss status (set bit 7 for defeated state)
  • 0536 = Level 6 boss status (set bit 7 for defeated state)
  • 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 = lives only when in overworld room
  • 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)

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