# Mega Man in Dr. Wily's Revenge:ROM map

## Bank 0: Unknown

• 0x 0000- 3978 ???
• 420- 5BF Alphabet gfx??
• 857-85B Put initial Weapon in RAM Address: DFA1
```00:0857	3E 01		ld a,\$01	(a=\$01=Initial Weapon="P")
00:0859	EA A1 DF	ld [\$DFA1],a	(Put the value \$01="P" in \$DFA1=Weapon)
```
• B26-B2A Put initial Energy value in RAM Address: DFA3
```00:0B26	3D 98		ld a,\$98	(a=\$98=Initial energy)
00:0B28	EA A3 DF	ld [\$DFA3],a	(Put the value \$98 in \$DFA3=Energy)
```
• BCA-BCF Decrease lives
```00:0BCA	21 08 C1	ld hl,\$C108	(Load in hl the Address \$C108=Lives)
00:0BCD	34		dec [hl]	(Decrease the value into the Address \$C108=Lives)
00:0BCE	28 23		jr z,\$0BF3	(Jump if is zero to the Address 00:0BF3)

Note:
If you change the instruction in 00:0BC4 you can have infinite lives.
00:0BCD 00              nop             (NOt Operation)

The value of lives don´t decrease.
```
• CCE-CD2 Put initial lives of the game
```00:0CCE	3E 03		ld a,\$03	(a=\$03=Initial lives of the game)
00:0CD0	EA 08 C1	ld [\$C108],a	(Put the value \$03 in the Addres \$C108=Lives)

Notes:
You can have mor lives if you change the instruction in 00:0CCE.
For example:
00:0CCE 3E 09           ld a,\$09
The initial value of lives is 9. You have more lives.
```
• 15D4-15E1: Put OAM DMA Transfer subroutine in internal RAM: \$FF80-\$FF89
```00:15D4	0E 80		ld c,\$80	(c=\$80)
00:15D6	06 0A		ld b,\$0A	(b=\$0A=10=Size of OAM DMA Transfer Subroutine)
00:15D8	21 E2 15	ld hl,\$15E2	(Put in hl the address \$00:15E2 where is the OAM DMA Transfer subroutine in ROM)
00:15DB	2A		ldi a,[hl]	(Put in A the value in address given in hl=Subroutine OAM DMA Transfer in ROM and increases hl)
00:15DC	E2		ld [\$FF00+c],a	(Put the value of A in the Address \$FF00+c=Internal RAM)
00:15DD	0C		inc c		(Increases c)
00:15DE	05		dec b		(Decrease b=Bytes to be written in Internal RAM of the OAM DMA Transfer Subroutine)
00:15DF	20 FA		jr nz,\$15DB	(If not zero then jump to address \$00:15DB to write other byte of the subroutine in the internal RAM)
00:15E1	C9		ret		(Return of the subroutine)
```
• 15E2-15EB: OAM DMA Tranfer subrotuine
• 0x 3979- 3FFF Unused

## Bank 1: Unknown

• 0x 4000- 738C ???
• 0x 738D- 7FFF Unused

## Bank 2: Unknown (Music?)

• 0x 8000- BCA1
• 0x BCA2- BFFF Unused

## Bank 3: Unknown

• 0x C000- FBE4 ???
• 0x FBE5- FFFF Unused

## Bank 4: Main Sprite Graphics

• 10060-123FF Graphics (Mega Man, Status Bar, Enemies)
• 0x12FE0-13FFF Unused

## Bank 5: Robot Master Level Data

• 0x14000-14007 - Pointer List
• 0x14008-1492E - Cut Man
• 0x1492F-15259 - Ice Man
• 0x1525A-15F71 - Fire Man
• 0x15F72-16AAC - Elec Man
• 0x17000-17FFF Unused

## Bank 6: Static Screen Data

• 0x18000-1BBB6 ??? GFX: Static Screen Data
• 0x1814B-18226 - Title screen data
• 0x1BBB7-1BFFF Unused

## Bank 7: Robot Master Graphics

• 0x1C000-1F812 ??? Boss GFX (Cu,Ic,El,Fi,En,Bu,Fl,He,Qu,Wily)
• 0x1F813-20000 Unused

## Bank 8: Wily 1 Data

• 0x20001-23828 Wily 1 Level Data?
• 0x2134A-21809 Teleporter area gfx
• 0x23829-23FFF Unused

## Bank 9: Unknown

• 0x24000-27D31 ???
• 0x27D32-27FFF Unused

## Bank A: Unknown

• 0x28000-2B20C ???
• 0x2B20D-2BFFF Unused

## Bank B: Unknown

• 0x2C000-2D5CF ???
• 0x2D5D0-2FFFF Unused

## Bank C: Level Graphics

• 0x30000-33395 Level GFX
• 0x33396-33FFF Unused

## Bank D: Unknown

• 0x34000-36310 ???
• 0x36311-37FFF Unused

## Bank E: Ending Data

• 0x38000-3BBAF ???
• ~39000 Ending GFX
• 0x3BBB0-3BFFF Unused

## Bank F: Unused

• 0x3C000-3FFFF Unused