Mega Man 2/ROM map

From Data Crystal
< Mega Man 2
Revision as of 04:12, 29 September 2015 by OmegaX128 (talk | contribs) (Added a Byte for Quickman's AI)
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Mega Man 2.

Stage Select

  • 0x02EE10 - 0x02F1CF - Screen Layout
  • 0x0340D8 - routine for checking if a level has been cleared
  • 0x0340E3 - First level of Wily's castle
  • 0x0340EC - 0x0340EF - routine for checking if a level has been cleared
  • 0x0340F6 - Confirming selection
  • 0x0341BA - Preview boss music
  • 0x0342ED - Selection for Bubble Man cursor
  • 0x0344A9 - 0x0344B8 - Palette background for Stage Select Screen
  • 0x0344B9 - 0x0344C8 - Palette foreground for Stage Select Screen
  • 0x034551 - Beginning of Sprites for Stage Select Screen
  • 0x03462E - Cursor position for Bubble Man Y position
  • 0x034637 - Cursor position for Bubble Man X position
  • 0x03464F - Lines for Boss posing screen Last byte (reverse order)
  • 0x03466E - Lines for Boss posing screen First byte (reverse order)
  • 0x034670 - Pointer for Bubble Man Stage from selection
  • 0x034671 - Pointer for Air Man Stage from selection
  • 0x034672 - Pointer for Quick Man Stage from selection
  • 0x034673 - Pointer for Wood Man Stage from selection
  • 0x034674 - Pointer for Crash Man Stage from selection
  • 0x034675 - Pointer for Flash Man Stage from selection
  • 0x034676 - Pointer for Metal Man Stage from selection
  • 0x034677 - Pointer for Heat Man Stage from selection
  • 0x038076 - 0x03807D - routine to see all weapons gained to go to Wily when selecting Start
  • 0x03C264 - 0x03C269 - routine to see all weapons gained to go to Wily after gaining a weapon

HP

  • 0x038315 - Maximum Energy for Mega Man
  • 0x03CF79 - X position for energy bar
  • 0x03CF8F - X position for weapon bar
  • 0x03CFB1 - X position for boss bar
  • 0x03CFD8 - Graphics for Energy Bar
  • 0x03CFF5 - Y position for 1/7 energy
  • 0x03CFF6 - Y position for 2/7 energy
  • 0x03CFF7 - Y position for 3/7 energy
  • 0x03CFF8 - Y position for 4/7 energy
  • 0x03CFF9 - Y position for 5/7 energy
  • 0x03CFFA - Y position for 6/7 energy
  • 0x03CFFB - Y position for 7/7 energy

Sound Effects during Stage

  • 0x03524E - changing selections in menu, Mega Man forming
  • 0x0381E0-0x0381ED - Music played for each level
  • 0x038685 - Sound for Mega Man landing
  • 0x03C59F - Sound for entering menu screen during action
  • 0x03C802 - Sound effect for Mega Man beamed down

Menu Screen

  • 0x0352AC - Energy Compare for Energy Tank
  • 0x03539E - Sound effect for turning off menu during action
  • 0x03565C - Y position for E symbol for energy tanks
  • 0x03565D - PPU graphic for E symbol for energy tanks
  • 0x03565E - Palette and mirroring for E symbol for energy tanks
  • 0x03565F - X position for E symbol for energy tank

Weapon Gained Screens

Mega Man
  • 0x0249FE - 0x024A8A (0x8D) - data
  • 0x0249FF - Y position
  • 0x024A00 - PPU Tile
  • 0x024A01 - Palette, Mirroring
  • 0x024A02 - X position
format repeats
Dr. Light

0x024A8B - 0x024AD7 (0x4D) - data

  • 0x024A8C - Y position
  • 0x024A8D - PPU Tile
  • 0x024A8E - Palette, Mirroring
  • 0x024A8F - X position
format repeats

Extra Lives Symbol

  • 0x035660 - Y position for NW PPU graphic head in menu
  • 0x035661 - NW PPU graphic for head in menu
  • 0x035662 - Palette and mirroring for NW PPU graphic of head in menu
  • 0x035663 - X position for NW PPU graphic head in menu
  • 0x035664 - Y position for NE PPU graphic head in menu
  • 0x035665 - NE PPU graphic for head in menu
  • 0x035666 - Palette and mirroring for NE PPU graphic of head in menu
  • 0x035667 - X position for NE PPU graphic head in menu
  • 0x035668 - Y position for SW PPU graphic head in menu
  • 0x035669 - SW PPU graphic for head in menu
  • 0x03566A - Palette and mirroring for SW PPU graphic of head in menu
  • 0x03566B - X position for SW PPU graphic head in menu
  • 0x03566C - Y position for SE PPU graphic head in menu
  • 0x03566D - SE PPU graphic for head in menu
  • 0x03566E - Palette and mirroring for SE PPU graphic of head in menu
  • 0x03566F - X position for SE PPU graphic head in menu

Title

  • 0x036235 - Sound effect for switching Normal and Difficult on Title
  • 0x0362D4 - Graphic to flash for selection Normal on Title
  • 0x0362D5 - Graphic to flash for selection Difficult on Title
  • 0x036322 - Removes all power ups and $00FD
  • 0x03686D - Sprite 1 for Title
  • 0x036877 - Sprite 2 for Title
  • 0x036AAF - 0x036ABE - Palette for sprites on Title
  • 0x036ACF - 0x036ADE - Palette background for Title
  • 0x037341 - Title Screen Last byte (reversed order)
  • 0x037700 - Title Screen First byte (reversed order)


Password Stuff

  • 0x03700B - Password Y position (A,1)
  • 0x03700C - Password Y position (A,2)
  • 0x03700D - Password Y position (A,3)
  • 0x03700E - Password Y position (A,4)
  • 0x03700F - Password Y position (A,5)
  • 0x037010 - Password Y position (B,1)
  • 0x037011 - Password Y position (B,2)
  • 0x037012 - Password Y position (B,3)
  • 0x037013 - Password Y position (B,4)
  • 0x037014 - Password Y position (B,5)
  • 0x037015 - Password Y position (C,1)
  • 0x037016 - Password Y position (C,2)
  • 0x037017 - Password Y position (C,3)
  • 0x037018 - Password Y position (C,4)
  • 0x037019 - Password Y position (C,5)
  • 0x03701A - Password Y position (D,1)
  • 0x03701B - Password Y position (D,2)
  • 0x03701C - Password Y position (D,3)
  • 0x03701D - Password Y position (D,4)
  • 0x03701E - Password Y position (D,5)
  • 0x03701F - Password Y position (E,1)
  • 0x037020 - Password Y position (E,2)
  • 0x037021 - Password Y position (E,3)
  • 0x037022 - Password Y position (E,4)
  • 0x037023 - Password Y position (E,5)
  • 0x037024 - Password X position (A,1)
  • 0x037025 - Password X position (A,2)
  • 0x037026 - Password X position (A,3)
  • 0x037027 - Password X position (A,4)
  • 0x037028 - Password X position (A,5)
  • 0x037029 - Password X position (B,1)
  • 0x03702A - Password X position (B,2)
  • 0x03702B - Password X position (B,3)
  • 0x03702C - Password X position (B,4)
  • 0x03702D - Password X position (B,5)
  • 0x03702E - Password X position (C,1)
  • 0x03702F - Password X position (C,2)
  • 0x037030 - Password X position (C,3)
  • 0x037031 - Password X position (C,4)
  • 0x037032 - Password X position (C,5)
  • 0x037033 - Password X position (D,1)
  • 0x037034 - Password X position (D,2)
  • 0x037035 - Password X position (D,3)
  • 0x037036 - Password X position (D,4)
  • 0x037037 - Password X position (D,5)
  • 0x037038 - Password X position (E,1)
  • 0x037039 - Password X position (E,2)
  • 0x03703A - Password X position (E,3)
  • 0x03703B - Password X position (E,4)
  • 0x03703C - Password X position (E,5)
  • 0x037056 - Password related (A,1)
  • 0x03709B - Password related (E,5)

Items

  • 0x0380D5 - Beginning amount of Health
  • 0x0382FD - Amount of HP large Energy returns
  • 0x038301 - Amount of HP small Energy returns

Power Ups

  • 0x03C289 - Power Up from Heat Man
  • 0x03C28A - Power Up from Air Man
  • 0x03C28B - Power Up from Wood Man
  • 0x03C28C - Power Up from Bubble Man
  • 0x03C28D - Power Up from Quick Man
  • 0x03C28E - Power Up from Flash Man
  • 0x03C28F - Power Up from Metal Man
  • 0x03C290 - Power Up from Crash Man
  • 0x03C291 - Item # from Heat Man
  • 0x03C292 - Item # from Air Man
  • 0x03C293 - Item # from Wood Man
  • 0x03C294 - Item # from Bubble Man
  • 0x03C295 - Item # from Quick Man
  • 0x03C296 - Item # from Flash Man
  • 0x03C297 - Item # from Metal Man
  • 0x03C298 - Item # from Crash Man

Arm Cannon

Normal Arm Cannon

  • 0x03DA7C - 0x03DA8F (0x14) - routine
$DA6C:A5 27     LDA $0027 = #$00
$DA6E:29 02     AND #$02
$DA70:F0 2B     BEQ $DA9D
$DA72:A2 04     LDX #$04
$DA74:BD 20 04  LDA $0420,X @ $0460 = #$42
$DA77:10 07     BPL $DA80
$DA79:CA        DEX
$DA7A:E0 01     CPX #$01
$DA7C:D0 F6     BNE $DA74
$DA7E:F0 1D     BEQ $DA9D
$DA80:A9 24     LDA #$24 (Sound effect)
$DA82:20 51 C0  JSR $C051
$DA85:A0 00     LDY #$00
$DA87:20 E0 D3  JSR $D3E0
$DA8A:A9 0F     LDA #$0F
$DA8C:85 36     STA $0036 = #$00
$DA8E:A9 01     LDA #$01
$DA90:85 3D     STA $003D = #$00
$DA92:A6 2C     LDX $002C = #$03
$DA94:18        CLC
$DA95:7D D4 D3  ADC $D3D4,X @ $D414 = #$AD
$DA98:8D 00 04  STA $0400 = #$00
$DA9B:18        CLC
$DA9C:60        RTS
  • 0x03DA91 - Sound for Mega Man shooting normal shot

Air

0x03DAC3 - 0x03DAF5 (0x33) - routine

$DAB3:A5 27     LDA $0027 = #$00
$DAB5:29 02     AND #$02
$DAB7:F0 2B     BEQ $DAE4
$DAB9:A2 04     LDX #$04
$DABB:BD 20 04  LDA $0420,X @ $0480 = #$40
$DABE:30 24     BMI $DAE4
$DAC0:CA        DEX
$DAC1:E0 01     CPX #$01
$DAC3:D0 F6     BNE $DABB
$DAC5:A2 04     LDX #$04
$DAC7:86 01     STX $0001 = #$74
$DAC9:A0 02     LDY #$02
$DACB:20 E0 D3  JSR $D3E0
$DACE:A6 01     LDX $0001 = #$74
$DAD0:CA        DEX
$DAD1:E0 01     CPX #$01
$DAD3:D0 F2     BNE $DAC7
$DAD5:A9 3F     LDA #$3F			;Sound Effect
$DAD7:20 51 C0  JSR $C051			;play SFX
$DADA:38        SEC
$DADB:A5 9D     LDA $009D = #$16		;take from bar count
$DADD:E9 02     SBC #$02			;amount to use
$DADF:85 9D     STA $009D = #$16
$DAE1:4C 8A DA  JMP $DA8A
$DAE4:38        SEC
$DAE5:60        RTS

Bubble

  • 0x03DB34 - Sound effect for Bubble Lead
  • 0x03DB3D - Number of Bubble Lead to use before reducing power

Quick Boomerang

  • 0x03DB4B - 0x03DB89 (0x3F) - routine
$DB3B:A5 27     LDA $0027 = #$00
$DB3D:29 02     AND #$02
$DB3F:D0 0A     BNE $DB4B
$DB41:A5 AB     LDA $00AB = #$03
$DB43:C9 0B     CMP #$0B			;Frequency to have Boomerangs shoot
$DB45:F0 04     BEQ $DB4B
$DB47:E6 AB     INC $00AB = #$03
$DB49:18        CLC
$DB4A:60        RTS
$DB4B:A2 05     LDX #$05
$DB4D:BD 20 04  LDA $0420,X @ $0425 = #$C3
$DB50:10 07     BPL $DB59
$DB52:CA        DEX
$DB53:E0 01     CPX #$01
$DB55:D0 F6     BNE $DB4D
$DB57:F0 1F     BEQ $DB78
$DB59:A0 05     LDY #$05
$DB5B:20 E0 D3  JSR $D3E0
$DB5E:A9 24     LDA #$24
$DB60:20 51 C0  JSR $C051
$DB63:E6 AC     INC $00AC = #$04
$DB65:A5 AC     LDA $00AC = #$04
$DB67:C9 08     CMP #$08
$DB69:D0 06     BNE $DB71
$DB6B:A9 00     LDA #$00
$DB6D:85 AC     STA $00AC = #$04
$DB6F:C6 A0     DEC $00A0 = #$09
$DB71:A9 00     LDA #$00
$DB73:85 AB     STA $00AB = #$03
$DB75:4C 8A DA  JMP $DA8A
$DB78:38        SEC
$DB79:60        RTS
  • 0x03DB6F - Sound effect for Quick Boomerang
  • 0x03DB78 - Number of Quick Boomerangs to use before reducing power

Crash Bomb

  • 0x03DBA6 - Sound effect for Crash Bomb
  • 0x03DB99 - Number of power to remove for 1 Crash Bomb

Flash Stopper

  • 0x03DC41 - 0x03DC5C (0x1C) - routine
$DC31:A5 27     LDA $0027 = #$00
$DC33:29 02     AND #$02
$DC35:F0 1F     BEQ $DC56
$DC37:A2 02     LDX #$02
$DC39:AD 22 04  LDA $0422 = #$00
$DC3C:30 18     BMI $DC56
$DC3E:A0 08     LDY #$08
$DC40:20 E0 D3  JSR $D3E0
$DC43:A9 01     LDA #$01
$DC45:8D A6 05  STA $05A6 = #$01
$DC48:A9 21     LDA #$21			;SFX to use
$DC4A:20 51 C0  JSR $C051

Metal Blade

  • 0x03DC5D - 0x03DC65 (0x9) - routine
$DC4D:A9 0F     LDA #$0F
$DC4F:85 36     STA $0036 = #$00
$DC51:A9 03     LDA #$03
$DC53:4C 90 DA  JMP $DA90
$DC56:38        SEC
$DC57:60        RTS
  • 0x03DBC9 - Sound effect for Metal Blade
  • 0x03DBD2 - Number of Metal Blades to use before reducing power

Quick Boomerang Mechanics

  • 0x03DFDE - 0x03E025 (0x48) - routine
$DFCE:BD E0 04  LDA $04E0,X @ $04E3 = #$0D
$DFD1:C9 12     CMP #$12			;how far to fly out
$DFD3:B0 14     BCS $DFE9
$DFD5:38        SEC
$DFD6:BD 60 06  LDA $0660,X @ $0663 = #$DB
$DFD9:E9 4B     SBC #$4B
$DFDB:9D 60 06  STA $0660,X @ $0663 = #$DB
$DFDE:BD 40 06  LDA $0640,X @ $0643 = #$FE
$DFE1:E9 00     SBC #$00
$DFE3:9D 40 06  STA $0640,X @ $0643 = #$FE
$DFE6:4C 0F E0  JMP $E00F
$DFE9:D0 08     BNE $DFF3
$DFEB:BD 20 04  LDA $0420,X @ $0423 = #$C3
$DFEE:49 40     EOR #$40			;how far to fly down before coming up
$DFF0:9D 20 04  STA $0420,X @ $0423 = #$C3
$DFF3:BD E0 04  LDA $04E0,X @ $04E3 = #$0D
$DFF6:C9 23     CMP #$23			;how far to fly back
$DFF8:D0 04     BNE $DFFE
$DFFA:5E 20 04  LSR $0420,X @ $0423 = #$C3
$DFFD:60        RTS
$DFFE:18        CLC
$DFFF:BD 60 06  LDA $0660,X @ $0663 = #$DB
$E002:69 4B     ADC #$4B
$E004:9D 60 06  STA $0660,X @ $0663 = #$DB
$E007:BD 40 06  LDA $0640,X @ $0643 = #$FE
$E00A:69 00     ADC #$00
$E00C:9D 40 06  STA $0640,X @ $0643 = #$FE
$E00F:FE E0 04  INC $04E0,X @ $04E3 = #$0D
$E012:20 EF EE  JSR $EEEF
$E015:60        RTS

Flash Stopper Mechanics

  • 0x03E168 - 0x03E19F (0x38) - routine
$E158:DE 20 06  DEC $0620,X @ $0680 = #$03
$E15B:D0 15     BNE $E172
$E15D:A9 0F     LDA #$0F			;Frequency to use
$E15F:9D 20 06  STA $0620,X @ $0680 = #$03
$E162:C6 A1     DEC $00A1 = #$1C
$E164:D0 0C     BNE $E172
$E166:5E 20 04  LSR $0420,X @ $0480 = #$00
$E169:A9 00     LDA #$00
$E16B:85 AA     STA $00AA = #$00
$E16D:A9 01     LDA #$01
$E16F:85 50     STA $0050 = #$00
$E171:60        RTS
$E172:A9 01     LDA #$01			;Freeze enemies
$E174:85 AA     STA $00AA = #$00		;Does Freeze enemies
$E176:A9 00     LDA #$00
$E178:85 50     STA $0050 = #$00
$E17A:85 4F     STA $004F = #$00
$E17C:A9 80     LDA #$80
$E17E:9D A0 04  STA $04A0,X @ $0500 = #$A6
$E181:18        CLC
$E182:65 1F     ADC $001F = #$00
$E184:9D 60 04  STA $0460,X @ $04C0 = #$00
$E187:AD 40 04  LDA $0440 = #$00
$E18A:69 00     ADC #$00
$E18C:9D 40 04  STA $0440,X @ $04A0 = #$B4
$E18F:60        RTS

Heat

  • 0x03DE45 - Sound for Heat charge?

Wood

  • 0x03DF0D - Sound for Wood Shield turning
  • 0x03DF1F - Sound for Wood Shield appearing
  • 0x03DF72 - Number of power to remove for 1 Wood Shield

Crash

  • 0x03E089 - Sound effect for Crash Bomb clasping wall
  • 0x03E0DA - Sound effect for Crash Bomb exploding

Attack Power Table

  • 0x02E9C4 - Wood Man's body attack
  • 0x02E9C8 - Flash Man's body attack
  • 0x03ED76 - Shelled Fish's attack
  • 0x03ED78 - Large Frog's attack
  • 0x03ED79 - Small Frog's attack
  • 0x03ED82 - (16) Ball Bat attack
  • 0x03ED83 - (17) Rabbit attack
  • 0x03ED84 - (18) Rabbit's projectile attack (carrot)
  • 0x03ED85 - (19) Dog's attack
  • 0x03ED87 - (1B) Dog's fire projectile attack
  • 0x03ED89 - (1D) Ape's attack
  • 0x03ED8B - (1F) Chicken's attack
  • 0x03EDA1 - (35) Sniper Joe's projectile attack (round ball)
  • 0x03EDA4 - (38) Large Bird's attack
  • 0x03EDA6 - (3A) Large Bird's egg attack
  • 0x03EDA8 - (3C) Small Bird's attack
  • 0x03EDB7 - One arm shooter's attack
  • 0x03EDB9 - One arm shooter's projectile attack (pellet)
  • 0x03EDBA - Body of Sniper Joe's machine attack
  • 0x03EDBB - Sniper Joe's attack
  • 0x03EDBC - (50) Snake-like Pod's attack
  • 0x03EDBD - Snake-like Pod's projectile attack (snake rod)
  • 0x03EDCD - Wood Man's Shield
  • 0x03EDCE - Falling Leafs from Wood Man

Boss Behavior

Heat Man's routine for attack

  • 0x02C16E - 0x02C1FE
0x02C1BB - Projectile
0x2c1A1 - # Projectiles thrown; extra shots tend to be glitchy


Flash Man's routine for attack

  • 0x02C966 - 0x02CAF8
0x02C98B - Frequency for time stopper?
0x02CA71 - Projectile
0x2CAC6 - Jump distance
0x2CACE - Jump height
0x2CA52 - Length of time stopper/projectile frequency?
0x2CA81 - Projectile speed
0x2CA09 - Number of projectiles to shoot 

Metal Man's routine for attack

  • ???
0x2CC2D - Projectile
0x2cc3f - Speed of Metal blade
0x2CC29 - Sound for metal blade
0x2CC1d - Metal blade frequency

Crash Man's routine for attack

  • ???
0x2CCF7 - Running speed.
0x2CD2A - Jump height.
0x2CD07 - Not sure, change to 17 and he's always jumping.
0x2CDAF - Jump speed?
0x2CDD3 - Not sure, change to 55 and he's always shooting bombs when jumping
0x2CDEE - Speed of crash bomb. 

Quick Man's routine for attack

  • ???
0x2C86E - Number of Boomerangs.
0x2C872 - Projectile?
0x2C882 - Boomerang delay when appearing.
0x2C887 - Boomerang speed when appearing.
0x2C8A5 - Low jump.
0x2C8A3 - Middle jump.
0x2C8A4 - High jump.
0x2C8E4 - Running time
0x2C8DF - Running speed. 

Bubble Man's routine for attack

  • ???
0x2C70B - Landing speed.
0x2C6D3 - Rising speed.
0x2C74F - Projectile (horizontal shot)

Wood Man's routine for attack

  • ???
0x2C5DD - Jump height.
0x2C5E2 - Jump distance.
0x2C5A9 - Leaf shield speed.
0x2C553 - Number of falling leaves?
0x2C576 - Horizontal movement for falling leaves?
0x2C567 - Y position for falling leaves.
0x2C522 - Leaf shield projectile.
0x2c557 - Falling leaves projectile.
0x2C542 - Rising leaves projectile.

Air Man´s routine for attack

  • 0x02C2F3 - 0x02C50A

0x02C30C - Number of tornado "waves" before air man jumps to the other side.