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.

Mega Man 5/RAM map: Difference between revisions

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


{{Internal Data|game=Mega Man V}}
{{Internal Data|game=Mega Man V}}

Revision as of 03:19, 30 August 2016

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)