Mega Man 3 (NES)/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
 
(17 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{rammap|game=Mega Man III}}
{{rammap|game=Mega Man 3}}


==Sprite/Object Arrays==
==Sprite/Object Arrays==
[[Arrays List (Mega Man 3)#RAM_Only|See Arrays List]]
$0300 to $031F = And #$0F -> Used by objects' ASM to branch to different locations (indicate states)
 
                  And #$10 ->
{| border="1" cellpadding="3"
                  And #$20 ->
| '''RAM''' || '''Function''' || '''Details'''
                  And #$40 -> Active -> It's a boss, either Castle, Robot Master, etc... Special boss effect will be applied.
|-
                                          -> Reducing Boss energy bar
| 300-31F || States? ||
                                          -> Blinking if not a castle boss
|-
                                          -> Others
| 320-33F || ASM pointer ||
                  And #$80 -> Active -> Draw sprite
|-
$0320 to $033F = ASM pointer  
| 340-35F || X Coordinate Ratio Counter ||
$0340 to $035F = X Coordinate Ratio Counter  
|-
$0360 to $037F = X Coordinate  
| 360-37F || X Coordinate ||
$0380 to $039F = X Screen (Level Screen)  
|-
$03A0 to $03BF = Y Coordinate Ratio Counter  
| 380-39F || X Screen (Level Screen) ||
$03C0 to $03DF = Y Coordinate  
|-
$03E0 to $03FF = [[Mega_Man_IV:RAM_map:Y Screen: RAM 3E0-3FF|Y Screen]]  
| 3A0-3BF || Y Coordinate Ratio Counter ||
$0400 to $041F = Horizontal Speed Low  
|-
$0420 to $043F = Horizontal Speed High  
| 3C0-3DF || Y Coordinate ||
$0440 to $045F = Vertical Speed Low
|-
$0460 to $047F = Vertical Speed High
| 3E0-3FF || [[Y Screen: RAM 3E0-3FF (Mega Man 3)|Y Screen]] ||
$0480 to $049F = [[Mega_Man_IV:RAM_map:480-49F: Substance and Shape|Substance and Shape]]  
|-
$04A0 to $04BF = [[Mega_Man_IV:RAM_map:4A0-4BF: Direction Bits|Direction Bits]]  
| 400-41F || Horizontal Speed Low ||
$04C0 to $04DF = [[Mega_Man_IV:RAM_map:4C0-4DF: Enemy Number# in Level|Enemy Number# in Level]]  
|-
$04E0 to $04FF = Enemy HP  
| 420-43F || Horizontal Speed High ||
$0500 to $051F = [[Mega_Man_IV:RAM_map:500-51F: Object ASM Private Memory 1|Object ASM Private Memory 1]]
|-
$0520 to $053F = [[Mega_Man_IV:RAM_map:520-53F: Object ASM Private Memory 2|Object ASM Private Memory 2]]
| 440-45F || Vertical Speed Low ||
$0540 to $055F = [[Mega_Man_IV:RAM_map:540-55F: Object ASM Private Memory 3|Object ASM Private Memory 3]]
|-
$0560 to $057F = [[Mega_Man_IV:RAM_map:560-57F: Object ASM Private Memory 4|Object ASM Private Memory 4]]
| 460-47F || Vertical Speed High ||
$0580 to $059F = [[Mega_Man_IV:RAM_map:580-59F: Sprite Flags|Sprite Flags]]  
|-
$05A0 to $05BF = Sprite's Animation
| 480-49F || [[RAM 480-49F: Substance and Shape (Mega Man 3)|Substance and Shape]] ||
$05C0 to $05DF = Sprite ID
|-
$05E0 to $05FF = Animation Frame Counter
| 4A0-4BF || [[RAM 4A0-4BF: Direction Bits (Mega Man 3)|Direction Bits]] ||
|-
| 4C0-4DF || [[RAM 4C0-4DF: Enemy Number# in Level (Mega Man 3)|Enemy Number# in Level]] ||
|-
| 4E0-4FF || Enemy HP ||
|-
| 500-51F || [[RAM 500-51F: Object ASM Private Memory 1 (Mega Man 3)|Object ASM Private Memory 1]] ||
|-
| 520-53F || [[RAM 520-53F: Object ASM Private Memory 2 (Mega Man 3)|Object ASM Private Memory 2]] || ###
|-
| 540-55F || [[RAM 540-55F: Object ASM Private Memory 3 (Mega Man 3)|Object ASM Private Memory 3]] || ###
|-
| 560-57F || [[RAM 560-57F: Object ASM Private Memory 4 (Mega Man 3)|Object ASM Private Memory 4]] || ###
|-
| 580-59F || [[RAM 580-59F: Sprite Flags (Mega Man 3)|Sprite Flags]] ||
|-
| 5A0-5BF || Sprite's Animation ||
|-
| 5C0-5DF || Sprite ID ||
|-
| 5E0-5FF || Animation Frame Counter ||
|-
| 5B8-5CF || [[Mega_Man_IV:RAM_map:$5B8-$5CF: Invincibility Blink / Freeze Action Status|Invincibility Blink / Freeze Action Status]] || #####
|-
|}


==Player Variables==
==Player Variables==
===Life & Health===
===Life & Health===
{|border="1" cellpadding="1"
<pre>
| '''RAM''' || '''Function''' || '''Details'''
$00A2 to $---- = Current HP  
|-
$00AE to $---- = Lives Remaining  
| $00A2 || Current HP ||
$00AF to $---- = Energy Tanks Remaining  
|-
</pre>
| $00AE || Lives Remaining ||
|-
| $00AF || Energy Tanks Remaining ||
|-
|}
 
===Weapons===
===Weapons===
<pre>
$00A0: current weapon equipped:
$00: Mega Buster
$01: Gemini Laser
$02: Needle Cannon
$03: Hard Knuckle
$04: Magnet Missile
$05: Top Spin
$06: Search Snake
$07: Rush Coil
$08: Spark Shock
$09: Rush Marine
$0A: Shadow Blade
$0B: Rush Jet


{| border="1" cellpadding="1"
Weapon Ammo addresses, format is w--aaaaa where w = you currently own the weapon, a = current ammo for that weapon:
| '''RAM''' || '''Function'''
$00A2: Mega Buster
|-
$00A3: Gemini Beam
| $00A3 || Gemini Beam
$00A4: Needle Cannon
|-
$00A5: Hard Knuckle
| $00A4 || Needle Cannon
$00A6: Magnet Missile
|-
$00A7: Top Spin
| $00A5 || Hard Knuckle
$00A8: Search Snake
|-
$00A9: Rush Coil
| $00A6 || Magnet Missile
$00AA: Spark Shock
|-
$00AB: Rush Marine
| $00A7 || Top Spin
$00AC: Shadow Blade
|-
$00AD: Rush Jet
| $00A8 || Search Snake
|-
| $00AA || Spark Shock
|-
| $00AC || Shadow Blade
|}
 
{| border="1" cellpadding="1"
| '''Hex value''' || '''Description'''
|-
|  00            || Don't have weapon
|-
|  9C            || Have weapon
|}


===Rush Equipment===
$00B5: number of shots/frames used of current weapon before ammo decrease
{| border="1" cellpadding="1"
</pre>
| '''RAM''' || '''Function''' || '''Details'''
|-
| $00A9 || Rush Coil ||
|-
| $00AB || Rush Marine ||
|-
| $00AD || Rush Jet ||
|-
|}


==Miscellaneous Variables==
==Miscellaneous Variables==
===Stages===
===Stages===
{| border="1" cellpadding="1"
<pre>
| '''RAM''' || '''Function''' || '''Details'''
$0022 to $---- = Current Stage
|-
    00 - Needle Man
| $0022 || Current Stage || 00 - Needle Man<br>01 - Magnet Man<br>02 - Gemini Man<br>03 - Hard Man<br>04 - Top Man<br>05 - Snake Man<br>06 - Spark Man<br>07 - Shadow Man<br>08 - Needle Man 2<br>09 - Gemini Man 2<br>0A - Spark Man 2<br>0B - Shadow Man 2<br>0C - Wily Castle 1<br>0D - Wily Castle 2<br>0E - Wily Castle 3<br>0F - Wily Castle 4<br>10 - Wily Castle 5<br>11 - Wily Castle 6<br>14 - Ending scene<br>16 - Dr. Light's Lab
    01 - Magnet Man
|-
    02 - Gemini Man
| $006E || Wily Stage 4 Boss Rematches || 00 - No bosses defeated<br>01 - Needle Man defeated<br>02 - Magnet Man defeated<br>04 - Gemini Man defeated<br>08 - Hard Man defeated<br>10 - Top Man defeated<br>20 - Snake Man defeated<br>40 - Spark Man defeated<br>80 - Shadow Man defeated
    03 - Hard Man
|}
    04 - Top Man
    05 - Snake Man
    06 - Spark Man
    07 - Shadow Man
    08 - Needle Man 2
    09 - Gemini Man 2
    0A - Spark Man 2
    0B - Shadow Man 2
    0C - Wily Castle 1
    0D - Wily Castle 2
    0E - Wily Castle 3
    0F - Wily Castle 4
    10 - Wily Castle 5
    11 - Wily Castle 6
    14 - Ending scene
    16 - Dr. Light's Lab
$006E to $---- = Wily Stage 4 Boss Rematches
    00 - No bosses defeated
    01 - Needle Man defeated
    02 - Magnet Man defeated
    04 - Gemini Man defeated
    08 - Hard Man defeated
    10 - Top Man defeated
    20 - Snake Man defeated
    40 - Spark Man defeated
    80 - Shadow Man defeated
$00DC to $0DE4 = Music
</pre>


$00DC - $0DE4 Music


{{Internal Data|game=Mega Man III}}
{{Internal Data|game=Mega Man 3}}

Latest revision as of 19:59, 25 January 2024

Chip tiny.png The following article is a RAM map for Mega Man 3 (NES).

Sprite/Object Arrays

$0300 to $031F = And #$0F -> Used by objects' ASM to branch to different locations (indicate states)
                 And #$10 ->
                 And #$20 ->
                 And #$40 -> Active -> It's a boss, either Castle, Robot Master, etc... Special boss effect will be applied.
                                         -> Reducing Boss energy bar
                                         -> Blinking if not a castle boss
                                         -> Others
                 And #$80 -> Active -> Draw sprite
$0320 to $033F = ASM pointer 
$0340 to $035F = X Coordinate Ratio Counter 
$0360 to $037F = X Coordinate 
$0380 to $039F = X Screen (Level Screen) 
$03A0 to $03BF = Y Coordinate Ratio Counter 
$03C0 to $03DF = Y Coordinate 
$03E0 to $03FF = Y Screen 
$0400 to $041F = Horizontal Speed Low 
$0420 to $043F = Horizontal Speed High 
$0440 to $045F = Vertical Speed Low
$0460 to $047F = Vertical Speed High
$0480 to $049F = Substance and Shape 
$04A0 to $04BF = Direction Bits 
$04C0 to $04DF = Enemy Number# in Level 
$04E0 to $04FF = Enemy HP 
$0500 to $051F = Object ASM Private Memory 1
$0520 to $053F = Object ASM Private Memory 2
$0540 to $055F = Object ASM Private Memory 3
$0560 to $057F = Object ASM Private Memory 4
$0580 to $059F = Sprite Flags 
$05A0 to $05BF = Sprite's Animation
$05C0 to $05DF = Sprite ID
$05E0 to $05FF = Animation Frame Counter

Player Variables

Life & Health

$00A2 to $---- = Current HP 
$00AE to $---- = Lives Remaining 
$00AF to $---- = Energy Tanks Remaining 

Weapons

$00A0: current weapon equipped:
$00: Mega Buster
$01: Gemini Laser
$02: Needle Cannon
$03: Hard Knuckle
$04: Magnet Missile
$05: Top Spin
$06: Search Snake
$07: Rush Coil
$08: Spark Shock
$09: Rush Marine
$0A: Shadow Blade
$0B: Rush Jet

Weapon Ammo addresses, format is w--aaaaa where w = you currently own the weapon, a = current ammo for that weapon:
$00A2: Mega Buster
$00A3: Gemini Beam
$00A4: Needle Cannon
$00A5: Hard Knuckle
$00A6: Magnet Missile
$00A7: Top Spin
$00A8: Search Snake
$00A9: Rush Coil
$00AA: Spark Shock
$00AB: Rush Marine
$00AC: Shadow Blade
$00AD: Rush Jet

$00B5: number of shots/frames used of current weapon before ammo decrease

Miscellaneous Variables

Stages

$0022 to $---- = Current Stage
    00 - Needle Man
    01 - Magnet Man
    02 - Gemini Man
    03 - Hard Man
    04 - Top Man
    05 - Snake Man
    06 - Spark Man
    07 - Shadow Man
    08 - Needle Man 2
    09 - Gemini Man 2
    0A - Spark Man 2
    0B - Shadow Man 2
    0C - Wily Castle 1
    0D - Wily Castle 2
    0E - Wily Castle 3
    0F - Wily Castle 4
    10 - Wily Castle 5
    11 - Wily Castle 6
    14 - Ending scene
    16 - Dr. Light's Lab
$006E to $---- = Wily Stage 4 Boss Rematches
    00 - No bosses defeated
    01 - Needle Man defeated
    02 - Magnet Man defeated
    04 - Gemini Man defeated
    08 - Hard Man defeated
    10 - Top Man defeated
    20 - Snake Man defeated
    40 - Spark Man defeated
    80 - Shadow Man defeated
$00DC to $0DE4 = Music