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.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Mega Man 2/RAM map: Difference between revisions
Jump to navigation
Jump to search
(Re-organised the infomation into tables. May need more cleanup.) |
(WIP cleanup + more infomation) |
||
Line 5: | Line 5: | ||
|'''RAM''' || '''Function''' || '''Details''' | |'''RAM''' || '''Function''' || '''Details''' | ||
|- | |- | ||
| $ | | $001B || Camera state || | ||
{|border="1" cellpadding="0" | |||
|$00||Default | |||
|- | |||
|$01||Changing the nametable (E.g. scrolling within an area, creating the pause menu) | |||
|- | |||
|$02||Freeze before and after scrolling to a new area | |||
|- | |||
|$80||Scrolling vertically | |||
|- | |||
|} | |||
|- | |- | ||
| $ | | $001F || Camera X position || | ||
|- | |- | ||
| $ | | $0020 || Camera X screen || When $001F gets larger than $FF, this value increases by $01. | ||
|- | |- | ||
| $ | | $0022 || Camera Y position || | ||
|- | |- | ||
| $ | | $0023 || Controller 1 Poll || [[#controller|(1)]] | ||
|- | |||
| $0025 || Controller 1 Mirror || [[#controller|(1)]] | |||
|- | |||
| $0027 || Controller 1 Poll || Only changes on first frame of state change. Crash Man checks this for jump code. [[#controller|(1)]] | |||
|- | |- | ||
| $0030 || Gravity || | | $0030 || Gravity || | ||
Line 19: | Line 33: | ||
| $004B || Invincibility timer || When above $00, invincibility frames will start and this will count down at a rate of $01 per frame. | | $004B || Invincibility timer || When above $00, invincibility frames will start and this will count down at a rate of $01 per frame. | ||
|- | |- | ||
| | | $00CB || Difficulty setting || When an enemy takes damage, if this value is $00 (Normal) the damage given will be bitshifted left, doubling it. | ||
| | |||
|- | |- | ||
| | | $002A || Stage select cursor position || $00 is Dr. Wily, $01-$08 goes clockwise starting from Bubble Man. | ||
|- | |- | ||
| | | $06C1 || Boss HP || | ||
| | |||
| | |||
|- | |- | ||
|} | |} | ||
Line 67: | Line 65: | ||
| $0036 || Shooting pose timer || | | $0036 || Shooting pose timer || | ||
|- | |- | ||
| $0032 | | | $0032 | ||
|Tile type Mega Man is standing on (feet) | |||
|rowspan="3"| | |||
{|border="1" cellpadding="1" | {|border="1" cellpadding="1" | ||
|'''Value''' || '''Type''' | ||'''Value''' || '''Type''' | ||
|- | |- | ||
| $00 || Air | | $00 || Air | ||
Line 75: | Line 75: | ||
| $01 || Ground | | $01 || Ground | ||
|- | |- | ||
| $02 || | | $02 || Ladder | ||
|- | |||
| $03 || Instadeath (Spikes, Lava) | |||
|- | |||
| $04 || Water | |||
|- | |- | ||
| $05 || Right Conveyer | | $05 || Right Conveyer | ||
|- | |- | ||
| $ | | $06 || Left Conveyer | ||
|- | |- | ||
| $07 || Ice | | $07 || Ice | ||
Line 85: | Line 89: | ||
|} | |} | ||
|- | |- | ||
| $ | | $0033 || Tile type Mega Man is standing on (center) | ||
|- | |||
| $0034 || Tile type Mega Man is overlapping | |||
|- | |- | ||
| $003D || Is Mega Man shooting? || | | $003D || Is Mega Man shooting? || | ||
|- | |- | ||
| $009A || Unlocked Weapons || | | $009A || Unlocked Weapons/Stages beaten || | ||
{|border="1" cellpadding="1" | {|border="1" cellpadding="1" | ||
|'''Bits''' || '''Hex''' || '''Weapon''' | |'''Bits''' || '''Hex''' || '''Weapon''' | ||
Line 148: | Line 154: | ||
|- | |- | ||
| $00A8 || Number of Lives remaining || Looks glichy on the pause menu if greater than $64. | | $00A8 || Number of Lives remaining || Looks glichy on the pause menu if greater than $64. | ||
|- | |- | ||
| $0367-0369 || Mega Man's Color Palette || | | $0367-0369 || Mega Man's Color Palette || | ||
Line 155: | Line 159: | ||
|} | |} | ||
=== | ===Graphics=== | ||
{| border="1" cellpadding="1" | {| border="1" cellpadding="1" | ||
|'''RAM''' || '''Function''' || '''Details''' | |'''RAM''' || '''Function''' || '''Details''' | ||
|- | |- | ||
| $ | | $0200-$2FF || Sprite memory || These values are constantly read and sent to OAM. [[#sprites|(2)]] | ||
|- | |- | ||
| $ | | $0354 || Palette cycling pattern || Values seem level-dependent? | ||
|- | |||
| $0355 || Palette cycling speed || How many frames to wait before cycling the palette, $00 for no cycling. May glitch outside of levels. | |||
|- | |||
| $0356-$365 || Palette memory (background) || | |||
|- | |- | ||
| $ | | $0366-$375 || Palette memory (sprites) || | ||
|- | |- | ||
|} | |} | ||
Line 203: | Line 185: | ||
| $0680 || Position of cursor on Password entering || | | $0680 || Position of cursor on Password entering || | ||
|} | |} | ||
===References=== | |||
#<div id="controller">[https://www.nesdev.org/wiki/Standard_controller#Report NESDev controller bits reference]</div> | |||
#<div id="sprites">[https://www.nesdev.org/wiki/PPU_OAM#Byte_0 NESDev sprite format reference]</div> | |||
<!-- These need more detailed research. Commenting out for now. | <!-- These need more detailed research. Commenting out for now. |
Revision as of 21:20, 3 June 2022
The following article is a RAM map for Mega Man 2.
General
RAM | Function | Details | ||||||||
$001B | Camera state |
| ||||||||
$001F | Camera X position | |||||||||
$0020 | Camera X screen | When $001F gets larger than $FF, this value increases by $01. | ||||||||
$0022 | Camera Y position | |||||||||
$0023 | Controller 1 Poll | (1) | ||||||||
$0025 | Controller 1 Mirror | (1) | ||||||||
$0027 | Controller 1 Poll | Only changes on first frame of state change. Crash Man checks this for jump code. (1) | ||||||||
$0030 | Gravity | |||||||||
$004B | Invincibility timer | When above $00, invincibility frames will start and this will count down at a rate of $01 per frame. | ||||||||
$00CB | Difficulty setting | When an enemy takes damage, if this value is $00 (Normal) the damage given will be bitshifted left, doubling it. | ||||||||
$002A | Stage select cursor position | $00 is Dr. Wily, $01-$08 goes clockwise starting from Bubble Man. | ||||||||
$06C1 | Boss HP |
Sound
RAM | Function | Details |
$0066 | Sound effects strobe | Write $01 to play the SFX ID in address $0580 |
$0067 | Music strobe | Write $01 to play the Music in address $0000 |
$0580 | Sound effect queue |
Player properties
RAM | Function | Details | |||||||||||||||||||||||||||
$06C0 | Mega Man's HP | ||||||||||||||||||||||||||||
$0460 | Mega Man's X location | ||||||||||||||||||||||||||||
$04A0 | Mega Man's Y location | ||||||||||||||||||||||||||||
$0036 | Shooting pose timer | ||||||||||||||||||||||||||||
$0032 | Tile type Mega Man is standing on (feet) |
| |||||||||||||||||||||||||||
$0033 | Tile type Mega Man is standing on (center) | ||||||||||||||||||||||||||||
$0034 | Tile type Mega Man is overlapping | ||||||||||||||||||||||||||||
$003D | Is Mega Man shooting? | ||||||||||||||||||||||||||||
$009A | Unlocked Weapons/Stages beaten |
| |||||||||||||||||||||||||||
$009B | Unlocked Items |
| |||||||||||||||||||||||||||
$009C | Atomic Fire Ammo | ||||||||||||||||||||||||||||
$009D | Air Shooter Ammo | ||||||||||||||||||||||||||||
$009E | Leaf Shield Ammo | ||||||||||||||||||||||||||||
$009F | Bubble Lead Ammo | ||||||||||||||||||||||||||||
$00A0 | Quick Boomerang Ammo | ||||||||||||||||||||||||||||
$00A1 | Time Stopper Ammo | ||||||||||||||||||||||||||||
$00A2 | Metal Blade Ammo | ||||||||||||||||||||||||||||
$00A3 | Crash Bomb Ammo | ||||||||||||||||||||||||||||
$00A4 | Item 1 Ammo | ||||||||||||||||||||||||||||
$00A5 | Item 2 Ammo | ||||||||||||||||||||||||||||
$00A6 | Item 3 Ammo | ||||||||||||||||||||||||||||
$00A7 | Number of Energy Tanks Remaining | Can go above $04, but will break passwords. | |||||||||||||||||||||||||||
$00A8 | Number of Lives remaining | Looks glichy on the pause menu if greater than $64. | |||||||||||||||||||||||||||
$0367-0369 | Mega Man's Color Palette |
Graphics
RAM | Function | Details |
$0200-$2FF | Sprite memory | These values are constantly read and sent to OAM. (2) |
$0354 | Palette cycling pattern | Values seem level-dependent? |
$0355 | Palette cycling speed | How many frames to wait before cycling the palette, $00 for no cycling. May glitch outside of levels. |
$0356-$365 | Palette memory (background) | |
$0366-$375 | Palette memory (sprites) |
Password Screen
RAM | Function | Details |
$0420 - $0438 | If 01, this grid space contains a dot. | Goes from left to right, top to bottom. |
$0680 | Number of dots left on Password entering | |
$0680 | Position of cursor on Password entering |
References