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.
Mega Man 2/RAM map: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Re-organised the infomation into tables. May need more cleanup.) |
||
Line 1: | Line 1: | ||
{{rammap|game=Mega Man 2}} | {{rammap|game=Mega Man 2}} | ||
=== | ===General=== | ||
{| border="1" cellpadding="1" | |||
|'''RAM''' || '''Function''' || '''Details''' | |||
|- | |||
| $0022 || Vertical position of screen scrolling || | |||
|- | |||
| $0023 || Controller 1 Poll || | |||
|- | |||
| $0025 || Controller 1 Mirror || | |||
|- | |||
| $0027 || Controller 1 Poll || Only changes on first frame of state change. Crash Man checks this for jump code. | |||
|- | |||
| $002A || Area selected || | |||
|- | |||
| $0030 || Gravity || | |||
|- | |||
| $004B || Invincibility timer || When above $00, invincibility frames will start and this will count down at a rate of $01 per frame. | |||
|- | |||
|} | |||
Controller values for $0023/$0025/$0027: | |||
{| border="1" cellpadding="1" | |||
|'''Bits''' || '''Button''' | |||
|- | |||
| <tt>0000 0001</tt> || A | |||
|- | |||
| <tt>0000 0010</tt> || B | |||
|- | |||
| <tt>0000 0100</tt> || Select | |||
|- | |||
| <tt>0000 1000</tt> || Start | |||
|- | |||
| <tt>0001 0000</tt> || Up | |||
|- | |||
| <tt>0010 0000</tt> || Down | |||
|- | |||
| <tt>0100 0000</tt> || Left | |||
|- | |||
| <tt>1000 0000</tt> || Right | |||
|- | |||
|} | |||
===Sound=== | ===Sound=== | ||
{| border="1" cellpadding="1" | |||
|'''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=== | |||
{| border="1" cellpadding="1" | |||
|'''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 || Ground type Mega Man is on (feet) || | |||
{|border="1" cellpadding="1" | |||
|'''Value''' || '''Type''' | |||
|- | |||
| $00 || Air | |||
|- | |||
| $01 || Ground | |||
|- | |||
| $02 || Ground | |||
|- | |||
| $05 || Right Conveyer | |||
|- | |||
| $02 || Left Conveyer | |||
|- | |||
| $07 || Ice | |||
|- | |||
|} | |||
|- | |||
| $0032 || Ground type Mega Man is on (center) || See above | |||
|- | |||
| $003D || Is Mega Man shooting? || | |||
|- | |||
| $009A || Unlocked Weapons || | |||
{|border="1" cellpadding="1" | |||
|'''Bits''' || '''Hex''' || '''Weapon''' | |||
|- | |||
| <tt>0000 0001</tt> || $01 || Atomic Fire | |||
|- | |||
| <tt>0000 0010</tt> || $02 || Air Shooter | |||
|- | |||
| <tt>0000 0100</tt> || $04 || Leaf Shield | |||
|- | |||
| <tt>0000 1000</tt> || $08 || Bubble Lead | |||
|- | |||
| <tt>0001 0000</tt> || $10 || Quick Boomerang | |||
|- | |||
| <tt>0010 0000</tt> || $20 || Time Stopper | |||
|- | |||
| <tt>0100 0000</tt> || $40 || Metal Blade | |||
|- | |||
| <tt>1000 0000</tt> || $80 || Crash Bomb | |||
|- | |||
|} | |||
|- | |||
| $009B || Unlocked Items || | |||
{|border="1" cellpadding="1" | |||
|'''Bits''' || '''Hex''' || '''Item''' | |||
|- | |||
| <tt>0000 0001</tt> || $01 || Item 1 (Helicopter Platform) | |||
|- | |||
| <tt>0000 0010</tt> || $02 || Item 2 (Jet Sled) | |||
|- | |||
| <tt>0000 0100</tt> || $04 || Item 3 (Climbing Platform) | |||
|- | |||
|} | |||
|- | |||
| $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. | |||
|- | |||
| $00CB || Difficulty setting || When an enemy takes damage, if this value is $00 (Normal) the damage given will be bitshifted left, doubling it. | |||
|- | |||
| $0367-0369 || Mega Man's Color Palette || | |||
|- | |||
|} | |||
===Stage Select=== | |||
{| border="1" cellpadding="1" | |||
|'''RAM''' || '''Function''' || '''Details''' | |||
|- | |||
| $002A || Cursor position || $00 is Dr. Wily, $01-$08 goes clockwise starting from Bubble Man. | |||
|- | |||
| $0200 - $0203 || Heat Man's left eye sprite data || | |||
{|border="1" cellpadding="1" | |||
|'''Address''' || '''Property''' | |||
|- | |||
| $0200 || Y | |||
|- | |||
| $0201 || Tile | |||
|- | |||
| $0202 || Palette | |||
|- | |||
| $0203 || X | |||
|- | |||
|} | |||
|- | |||
| $0200 - $0203 || Heat Man's right eye sprite data || | |||
{|border="1" cellpadding="1" | |||
|'''Address''' || '''Property''' | |||
|- | |||
| $0204 || Y | |||
|- | |||
| $0205 || Tile | |||
|- | |||
| $0206 || Palette | |||
|- | |||
| $0207 || X | |||
|- | |||
|} | |||
|- | |||
|} | |||
===Password Screen=== | |||
{| border="1" cellpadding="1" | |||
|'''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 || | |||
|} | |||
<!-- These need more detailed research. Commenting out for now. | |||
===Graphics Set Stuff=== | ===Graphics Set Stuff=== | ||
* $003A - A background-related boolean? (Changes to the rhythm of the flashing clouds of Airman's stage) | * $003A - A background-related boolean? (Changes to the rhythm of the flashing clouds of Airman's stage) | ||
* $00F7 - Graphics Set | * $00F7 - Graphics Set | ||
===Title Screen=== | |||
{| border="1" cellpadding="1" | |||
|'''RAM''' || '''Function''' || '''Details''' | |||
|- | |||
| $04A2 || Windows' Y position || | |||
|- | |||
| $04A3 || Side of building's Y position || | |||
|- | |||
| $04B0 || Mega Man's Y position || | |||
|- | |||
|} | |||
===Sprite stuff=== | ===Sprite stuff=== | ||
* $049F - Enemy 1's speed to the left | * $049F - Enemy 1's speed to the left | ||
* $04BF - Enemy 1's Y location | * $04BF - Enemy 1's Y location | ||
--> | |||
Revision as of 23:45, 2 June 2022
The following article is a RAM map for Mega Man 2.
General
RAM | Function | Details |
$0022 | Vertical position of screen scrolling | |
$0023 | Controller 1 Poll | |
$0025 | Controller 1 Mirror | |
$0027 | Controller 1 Poll | Only changes on first frame of state change. Crash Man checks this for jump code. |
$002A | Area selected | |
$0030 | Gravity | |
$004B | Invincibility timer | When above $00, invincibility frames will start and this will count down at a rate of $01 per frame. |
Controller values for $0023/$0025/$0027:
Bits | Button |
0000 0001 | A |
0000 0010 | B |
0000 0100 | Select |
0000 1000 | Start |
0001 0000 | Up |
0010 0000 | Down |
0100 0000 | Left |
1000 0000 | Right |
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 | Ground type Mega Man is on (feet) |
| |||||||||||||||||||||||||||
$0032 | Ground type Mega Man is on (center) | See above | |||||||||||||||||||||||||||
$003D | Is Mega Man shooting? | ||||||||||||||||||||||||||||
$009A | Unlocked Weapons |
| |||||||||||||||||||||||||||
$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. | |||||||||||||||||||||||||||
$00CB | Difficulty setting | When an enemy takes damage, if this value is $00 (Normal) the damage given will be bitshifted left, doubling it. | |||||||||||||||||||||||||||
$0367-0369 | Mega Man's Color Palette |
Stage Select
RAM | Function | Details | ||||||||||
$002A | Cursor position | $00 is Dr. Wily, $01-$08 goes clockwise starting from Bubble Man. | ||||||||||
$0200 - $0203 | Heat Man's left eye sprite data |
| ||||||||||
$0200 - $0203 | Heat Man's right eye sprite data |
|
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 |