Mega Man 5/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(RAM locations)
 
m (Xkeeper moved page Mega Man 5:RAM map to Mega Man 5/RAM map: normalize subpages and titles)
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{rammap|game=Mega Man 5}}
{{rammap|game=Mega Man 5}}
<pre>
$0014 to $---- = Keys pressed on pad 1
$0015 to $---- = Always cleared
$0016 to $---- = Keys held on pad 1
$0017 to $---- = Always cleared
$0018 to $---- = Palette changed
$0019 to $---- = Draw horizontal data
$001A to $---- = Draw vertical data
$001B to $---- = Palette cycle stopped
$001C to $---- = Update tile
$001E to $---- = New tile position
$0023 to $---- = New tile number
$0026 to $---- = Current level
$0027 to $---- = PRG bank for level
$0028 to $---- = Scrolling direction
$0029 to $---- = Area number
$002A to $---- = Maximum screen
$002B to $---- = Current screen
$002C to $---- = Mirroring
$002D to $---- = Life bar select
$002E to $---- = Weapon bar select
$002F to $---- = Boss bar enable
$0030 to $---- = Current move
$0031 to $---- = Direction
$0032 to $---- = Current weapon
$0033 to $---- = Shooting timer
$0034 to $---- = Shooting flag
$0035 to $---- = Sliding timer
$0036 to $---- = Kill block type
    F0    => Kill
    00    => Nothing
    others => decrease life by 1
$0037 to $---- = to $---- = Platform sprite index
$0038 to $---- = Charge counter
$0039 to $---- = Platform direction
$003A to $---- = Platform X speed low
$003B to $---- = Platform X speed high
$003C to $---- = Previous X pos low
$003D to $---- = Previous X pos high
$003E to $---- = Previous Y pos low
$003F to $---- = Previous Y pos high
$0041 to $---- = Unused
$0042 to $---- = Largest block type found
$0043 to $---- = Nb. of destroyed blocks
$0044 to $---- = Previous scroll X
$0045 to $---- = Previous scroll Y
$0046 to $---- = Vertical level
$0047 to $---- = Block number to draw
$0048 to $004F Block types in each tested position
$0050 to $---- = Weapon selection in menu order
$0051 to $---- = Unused
$0054 to $---- = Freeze counter
$0055 to $---- = Horizontal autoscroll lock
$0056 to $---- = Boss sprite index
$0057 to $---- = Bump timer
$0058 to $---- = Bump flag
$0059 to $---- = Destroyed block disable
$005A to $---- = Animation disable
$005B to $---- = Shot type
$005D to $---- = Picked up M-tank
$0060 to $---- = Display updated
$0069 to $---- = Last screen visited
$006A to $---- = Current boss in rematch
$006B to $---- = Killed bosses in rematch
$006C to $---- = Current Wily level
$006D to $---- = Beat letters
$006E to $---- = Levels cleared
$0074 to $---- = Show elevator borders
$0075 to $---- = Elevator position low
$0076 to $---- = Elevator position high
$0078 to $---- = Split parameters
$0080 to $008F = Thread info
$0090 to $---- = VBL flag
$0092 to $---- = Asynchronous frame counter
$0093 to $0094 Execute address
$0095 to $---- = Critical section flag
$0096 to $---- = Split effect enabled
$0097 to $0098 Split effect execution routine
$0099 to $---- = Next split effect number
$009A to $---- = Current split effect number
$009B to $---- = Next split position
$009C to $---- = Current split position
$009D to $---- = Synchronous frame counter
$009E to $---- = Current sprite drawn
$009F to $---- = Next OAM table offset
$00A0 to $---- = Freeze frame
$00A1 to $---- = Gravity
$00A2 to $---- = Current Y scroll
$00A4 to $---- = Current X scroll
$00A5 to $---- = Current name table
$00A6 to $---- = Current sprite
$00A7 to $---- = Saved X register when PRG change interrupted
$00A8 to $---- = Saved Y register when PRG change interrupted
$00A9 to $---- = Colour lock
$00AC to $---- = Horizontal scroll direction
$00AD to $---- = Next enemy in level
$00AE to $---- = Previous enemy in level
$00AF to $---- = Mega man upside down
$00B0 to $---- = Life
$00B1 to $00BC = Weapon energy
$00BD to $---- = E-tanks
$00BE to $---- = M-tanks
$00BF to $---- = Lives
$00C0 to $---- = In sound code
$00C7 to $---- = Song time increment
$00C8 to $---- = Song time low
$00C9 to $---- = Song speed high
$00CA to $---- = Song spedd low
$00CB to $---- = Global transpose
$00CC to $---- = SF channels playing
$00CF to $---- = Current track bit
$00D0 to $00D1 = SF pointer
$00D2 to $---- = SF transpose
$00D3 to $---- = SF ontime
$00D4 to $---- = SF timer
$00D5 to $---- = SF on-timer
$00DA to $---- = Sound queue write pointer
$00DB to $---- = Sound queue read pointer
$00DC to $00E3 = Sound queue
$00E4 to $00E7 = LSFR
$00E8 to $00E9 = NMI return address
$00EA to $00EB = Background CHR banks
$00EC to $00EF = Sprite CHR banks
$00F0 to $---- = Screen disabled
$00F2 to $---- = Last MMC3 command
$00F3 to $---- = Last PRG bank 8000 to 9FFF
$00F4 to $---- = Last PRG bank A000 to BFFF
$00F5 to $---- = New PRG bank 8000 to 9FFF
$00F6 to $---- = New PRG bank A000 to BFFF
$00F7 to $---- = In PRG change
$00F8 to $---- = Postponed PRG change
$00F9 to $---- = Scroll X high
$00FA to $---- = Scroll Y
$00FB to $---- = Vertical screen offset
$00FC to $---- = Scroll X
$00FD to $---- = Current nametable
$00FE to $---- = Display settings 1
$00FF to $---- = Display settings 2
$0100 to $011F = Powerups taken in level
$0150 to $016F = Debug stack
$0170 to $017F = Main stack
$0190 to $01AF = Palette animation stack
$01B0 to $01DF = Game stack
$01E0 to $01FF = System stack
$0200 to $02FF = OAM table
$0300 to $0317 = Sprite type
$0318 to $032F = X position fraction
$0330 to $0347 = X position low
$0348 to $035F = X position high
$0360 to $0377 = Y position fraction
$0378 to $038F = Y position low
$0390 to $03A7 = Y position high
$03A8 to $03BF = X speed low
$03C0 to $03D7 = X speed high
$03D8 to $03EF = Y speed low
$03F0 to $0407 = Y speed high
$0408 to $041F Sprite flags
    7      => Hurts Mega Man
    6      => Shielded,
    5 to  0 => Size
$0420 to $0437 = Direction
$0438 to $044F = Sprite number
$0450 to $0467 = Life
$0468 to $047F = Variable A
$0480 to $0497 = Variable B
$0498 to $04AF = Variable C
$04B0 to $04C7 = Variable D
$04C8 to $04DF = Variable E
$04E0 to $04F7 = Variable F
$04F8 to $050F = Variable G
$0510 to $0527 = Variable H
$0528 to $053F = Display flags
    6 => Flipped
    5 => Mirrored,
    4 => In  background
    3 => Don't destroy when off screen
    2 => Invisible
$0540 to $0557 = Animation frame
$0558 to $056F = Animation
$0570 to $0587 = Animation timer
$0588 to $059F = Enemy handler low
$05A0 to $05B7 = Enemy handler high
$05B8 to $05CF = Flash counter
$05D0 Background animation
$05D1 Background frame
$05D2 Background timer
$05E0 to $05EF = Current column
$05F0 to $05F3 = Palette animation
$05F4 to $05F7 = Palette frame
$05F8 to $05FB = Palette timer
$0600 to $061F = Palette
$0620 to $063F = Original palette
$0640 to $067F = Attribute table
$0680 to $06BF = Local destroyed blocks
$06C0 to $06FF = Destroyed blocks
$0700 to $077F = Channel variables
$0780 to $07FF = Drawing buffer
</pre>
{{source|HHS}}


RAM Locations provided by the user HHS.
{{Internal Data|game=Mega Man 5}}
 
0014 Keys pressed on pad 1
0015 Always cleared
0016 Keys held on pad 1
0017 Always cleared
0018 Palette changed
0019 Draw horizontal data
001A Draw vertical data
001B Palette cycle stopped
001C Update tile
001E New tile position
0023 New tile number
0026 Current level
0027 PRG bank for level
0028 Scrolling direction
0029 Area number
002A Maximum screen
002B Current screen
002C Mirroring
002D Life bar select
002E Weapon bar select
002F Boss bar enable
0030 Current move
0031 Direction
0032 Current weapon
0033 Shooting timer
0034 Shooting flag
0035 Sliding timer
0036 Kill block type (F0 => Kill, 00 => Nothing,
  others => decrease  life by 1)
0037 Platform sprite index
0038 Charge counter
0039 Platform direction
003A Platform X speed low
003B Platform X speed high
003C Previous X pos low
003D Previous X pos high
003E Previous Y pos low
003F Previous Y pos high
0041 Unused
0042 Largest block type found
0043 Nb. of destroyed blocks
0044 Previous scroll X
0045 Previous scroll Y
0046 Vertical level
0047 Block number to draw
0048-004F Block types in each tested position
0050 Weapon selection in menu order
0051 Unused
0054 Freeze counter
0055 Horizontal autoscroll lock
0056 Boss sprite index
0057 Bump timer
0058 Bump flag
0059 Destroyed block disable
005A Animation disable
005B Shot type
005D Picked up M-tank
0060 Display updated
0069 Last screen visited
006A Current boss in rematch
006B Killed bosses in rematch
006C Current Wily level
006D Beat letters
006E Levels cleared
0074 Show elevator borders
0075 Elevator position low
0076 Elevator position high
0078 Split parameters
0080-008F Thread info
0090 VBL flag
0092 Asynchronous frame counter
0093-0094 Execute address
0095 Critical section flag
0096 Split effect enabled
0097-0098 Split effect execution routine
0099 Next split effect number
009A Current split effect number
009B Next split position
009C Current split position
009D Synchronous frame counter
009E Current sprite drawn
009F Next OAM table offset
00A0 Freeze frame
00A1 Gravity
00A2 Current Y scroll
00A4 Current X scroll
00A5 Current name table
00A6 Current sprite
00A7 Saved X register when PRG change interrupted
00A8 Saved Y register when PRG change interrupted
00A9 Colour lock
00AC Horizontal scroll direction
00AD Next enemy in level
00AE Previous enemy in level
00AF Mega man upside down
00B0 Life
00B1-00BC Weapon energy
00BD E-tanks
00BE M-tanks
00BF Lives
00C0 In sound code
00C7 Song time increment
00C8 Song time low
00C9 Song speed high
00CA Song spedd low
00CB Global transpose
00CC SF channels playing
00CF Current track bit
00D0-00D1 SF pointer
00D2 SF transpose
00D3 SF ontime
00D4 SF timer
00D5 SF on-timer
00DA Sound queue write pointer
00DB Sound queue read pointer
00DC-00E3 Sound queue
00E4-00E7 LSFR
00E8-00E9 NMI return address
00EA-00EB Background CHR banks
00EC-00EF Sprite CHR banks
00F0 Screen disabled
00F2 Last MMC3 command
00F3 Last PRG bank 8000-9FFF
00F4 Last PRG bank A000-BFFF
00F5 New PRG bank 8000-9FFF
00F6 New PRG bank A000-BFFF
00F7 In PRG change
00F8 Postponed PRG change
00F9 Scroll X high
00FA Scroll Y
00FB Vertical screen offset
00FC Scroll X
00FD Current nametable
00FE Display settings 1
00FF Display settings 2
0100-011F Powerups taken in level
0150-016F Debug stack
0170-017F Main stack
0190-01AF Palette animation stack
01B0-01DF Game stack
01E0-01FF System stack
0200-02FF OAM table
0300-0317 Sprite type
0318-032F X position fraction
0330-0347 X position low
0348-035F X position high
0360-0377 Y position fraction
0378-038F Y position low
0390-03A7 Y position high
03A8-03BF X speed low
03C0-03D7 X speed high
03D8-03EF Y speed low
03F0-0407 Y speed high
0408-041F Sprite flags (7 => Hurts Mega Man, 6 => Shielded,
  5 to 0 => Size)
0420-0437 Direction
0438-044F Sprite number
0450-0467 Life
0468-047F Variable A
0480-0497 Variable B
0498-04AF Variable C
04B0-04C7 Variable D
04C8-04DF Variable E
04E0-04F7 Variable F
04F8-050F Variable G
0510-0527 Variable H
0528-053F Display flags (6 => Flipped, 5 => Mirrored,
  4 => In  background, 3 => Don't destroy when off screen,
  2 => Invisible)
0540-0557 Animation frame
0558-056F Animation
0570-0587 Animation timer
0588-059F Enemy handler low
05A0-05B7 Enemy handler high
05B8-05CF Flash counter
05D0 Background animation
05D1 Background frame
05D2 Background timer
05E0-05EF Current column
05F0-05F3 Palette animation
05F4-05F7 Palette frame
05F8-05FB Palette timer
0600-061F Palette
0620-063F Original palette
0640-067F Attribute table
0680-06BF Local destroyed blocks
06C0-06FF Destroyed blocks
0700-077F Channel variables
0780-07FF Drawing buffer

Latest revision as of 02:42, 24 January 2024

Chip tiny.png The following article is a RAM map for Mega Man 5.

$0014 to $---- = Keys pressed on pad 1
$0015 to $---- = Always cleared
$0016 to $---- = Keys held on pad 1
$0017 to $---- = Always cleared
$0018 to $---- = Palette changed
$0019 to $---- = Draw horizontal data
$001A to $---- = Draw vertical data
$001B to $---- = Palette cycle stopped
$001C to $---- = Update tile
$001E to $---- = New tile position
$0023 to $---- = New tile number
$0026 to $---- = Current level
$0027 to $---- = PRG bank for level
$0028 to $---- = Scrolling direction
$0029 to $---- = Area number
$002A to $---- = Maximum screen
$002B to $---- = Current screen
$002C to $---- = Mirroring
$002D to $---- = Life bar select
$002E to $---- = Weapon bar select
$002F to $---- = Boss bar enable
$0030 to $---- = Current move
$0031 to $---- = Direction
$0032 to $---- = Current weapon
$0033 to $---- = Shooting timer
$0034 to $---- = Shooting flag
$0035 to $---- = Sliding timer
$0036 to $---- = Kill block type
    F0     => Kill
    00    => Nothing
    others => decrease life by 1
$0037 to $---- = to $---- = Platform sprite index
$0038 to $---- = Charge counter
$0039 to $---- = Platform direction
$003A to $---- = Platform X speed low
$003B to $---- = Platform X speed high
$003C to $---- = Previous X pos low
$003D to $---- = Previous X pos high
$003E to $---- = Previous Y pos low
$003F to $---- = Previous Y pos high
$0041 to $---- = Unused
$0042 to $---- = Largest block type found
$0043 to $---- = Nb. of destroyed blocks
$0044 to $---- = Previous scroll X
$0045 to $---- = Previous scroll Y
$0046 to $---- = Vertical level
$0047 to $---- = Block number to draw
$0048 to $004F Block types in each tested position
$0050 to $---- = Weapon selection in menu order
$0051 to $---- = Unused
$0054 to $---- = Freeze counter
$0055 to $---- = Horizontal autoscroll lock
$0056 to $---- = Boss sprite index
$0057 to $---- = Bump timer
$0058 to $---- = Bump flag
$0059 to $---- = Destroyed block disable
$005A to $---- = Animation disable
$005B to $---- = Shot type
$005D to $---- = Picked up M-tank
$0060 to $---- = Display updated
$0069 to $---- = Last screen visited
$006A to $---- = Current boss in rematch
$006B to $---- = Killed bosses in rematch
$006C to $---- = Current Wily level
$006D to $---- = Beat letters
$006E to $---- = Levels cleared
$0074 to $---- = Show elevator borders
$0075 to $---- = Elevator position low
$0076 to $---- = Elevator position high
$0078 to $---- = Split parameters
$0080 to $008F = Thread info
$0090 to $---- = VBL flag
$0092 to $---- = Asynchronous frame counter
$0093 to $0094 Execute address
$0095 to $---- = Critical section flag
$0096 to $---- = Split effect enabled
$0097 to $0098 Split effect execution routine
$0099 to $---- = Next split effect number
$009A to $---- = Current split effect number
$009B to $---- = Next split position
$009C to $---- = Current split position
$009D to $---- = Synchronous frame counter
$009E to $---- = Current sprite drawn
$009F to $---- = Next OAM table offset
$00A0 to $---- = Freeze frame
$00A1 to $---- = Gravity
$00A2 to $---- = Current Y scroll
$00A4 to $---- = Current X scroll
$00A5 to $---- = Current name table
$00A6 to $---- = Current sprite
$00A7 to $---- = Saved X register when PRG change interrupted
$00A8 to $---- = Saved Y register when PRG change interrupted
$00A9 to $---- = Colour lock
$00AC to $---- = Horizontal scroll direction
$00AD to $---- = Next enemy in level
$00AE to $---- = Previous enemy in level
$00AF to $---- = Mega man upside down
$00B0 to $---- = Life
$00B1 to $00BC = Weapon energy
$00BD to $---- = E-tanks
$00BE to $---- = M-tanks
$00BF to $---- = Lives
$00C0 to $---- = In sound code
$00C7 to $---- = Song time increment
$00C8 to $---- = Song time low
$00C9 to $---- = Song speed high
$00CA to $---- = Song spedd low
$00CB to $---- = Global transpose
$00CC to $---- = SF channels playing
$00CF to $---- = Current track bit
$00D0 to $00D1 = SF pointer
$00D2 to $---- = SF transpose
$00D3 to $---- = SF ontime
$00D4 to $---- = SF timer
$00D5 to $---- = SF on-timer
$00DA to $---- = Sound queue write pointer
$00DB to $---- = Sound queue read pointer
$00DC to $00E3 = Sound queue
$00E4 to $00E7 = LSFR
$00E8 to $00E9 = NMI return address
$00EA to $00EB = Background CHR banks
$00EC to $00EF = Sprite CHR banks
$00F0 to $---- = Screen disabled
$00F2 to $---- = Last MMC3 command
$00F3 to $---- = Last PRG bank 8000 to 9FFF
$00F4 to $---- = Last PRG bank A000 to BFFF
$00F5 to $---- = New PRG bank 8000 to 9FFF
$00F6 to $---- = New PRG bank A000 to BFFF
$00F7 to $---- = In PRG change
$00F8 to $---- = Postponed PRG change
$00F9 to $---- = Scroll X high
$00FA to $---- = Scroll Y
$00FB to $---- = Vertical screen offset
$00FC to $---- = Scroll X
$00FD to $---- = Current nametable
$00FE to $---- = Display settings 1
$00FF to $---- = Display settings 2
$0100 to $011F = Powerups taken in level
$0150 to $016F = Debug stack
$0170 to $017F = Main stack
$0190 to $01AF = Palette animation stack
$01B0 to $01DF = Game stack
$01E0 to $01FF = System stack
$0200 to $02FF = OAM table
$0300 to $0317 = Sprite type
$0318 to $032F = X position fraction
$0330 to $0347 = X position low
$0348 to $035F = X position high
$0360 to $0377 = Y position fraction
$0378 to $038F = Y position low
$0390 to $03A7 = Y position high
$03A8 to $03BF = X speed low
$03C0 to $03D7 = X speed high
$03D8 to $03EF = Y speed low
$03F0 to $0407 = Y speed high
$0408 to $041F Sprite flags
    7       => Hurts Mega Man
    6       => Shielded,
    5 to  0 => Size
$0420 to $0437 = Direction
$0438 to $044F = Sprite number
$0450 to $0467 = Life
$0468 to $047F = Variable A
$0480 to $0497 = Variable B
$0498 to $04AF = Variable C
$04B0 to $04C7 = Variable D
$04C8 to $04DF = Variable E
$04E0 to $04F7 = Variable F
$04F8 to $050F = Variable G
$0510 to $0527 = Variable H
$0528 to $053F = Display flags
    6 => Flipped
    5 => Mirrored,
    4 => In  background
    3 => Don't destroy when off screen
    2 => Invisible
$0540 to $0557 = Animation frame
$0558 to $056F = Animation
$0570 to $0587 = Animation timer
$0588 to $059F = Enemy handler low
$05A0 to $05B7 = Enemy handler high
$05B8 to $05CF = Flash counter
$05D0 Background animation
$05D1 Background frame
$05D2 Background timer
$05E0 to $05EF = Current column
$05F0 to $05F3 = Palette animation
$05F4 to $05F7 = Palette frame
$05F8 to $05FB = Palette timer
$0600 to $061F = Palette
$0620 to $063F = Original palette
$0640 to $067F = Attribute table
$0680 to $06BF = Local destroyed blocks
$06C0 to $06FF = Destroyed blocks
$0700 to $077F = Channel variables
$0780 to $07FF = Drawing buffer
(Source: HHS)