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.

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

From Data Crystal
Jump to navigation Jump to search
No edit summary
 
(28 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==
[[Mega_Man_III:RAM_map:Arrays_List#RAM_Only|See Arrays List]]
$0300 to $031F = And #$0F -> Used by objects' ASM to branch to different locations (indicate states)
<Br>
                  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 || Object ID ||
                                          -> Blinking if not a castle boss
|-
                                          -> Others
| $318-$32F || X Coordinate Ratio Counter || ########
                  And #$80 -> Active -> Draw sprite
|-
$0320 to $033F = ASM pointer
| $360-$37F || X Coordinate ||
$0340 to $035F = X Coordinate Ratio Counter  
|-
$0360 to $037F = X Coordinate  
| $380-$39F || X Screen (Level Screen) ||
$0380 to $039F = X Screen (Level Screen)  
|-
$03A0 to $03BF = Y Coordinate Ratio Counter  
| $3C0-$3DF || Y Coordinate Ratio Counter || ######
$03C0 to $03DF = Y Coordinate  
|-
$03E0 to $03FF = [[Mega_Man_IV:RAM_map:Y Screen: RAM 3E0-3FF|Y Screen]]  
| $3C0-$3DF || Y Coordinate ||
$0400 to $041F = Horizontal Speed Low  
|-
$0420 to $043F = Horizontal Speed High  
| $3E0-$3FF || [[Mega_Man_IV:RAM_map:$390-$3A7: Y_Screen|Y Screen]] ||
$0440 to $045F = Vertical Speed Low
|-
$0460 to $047F = Vertical Speed High
| $3A8-$3BF || Horizontal Speed Low ||######
$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]]  
| $3C0-$3D7 || Horizontal Speed High || ########
$04C0 to $04DF = [[Mega_Man_IV:RAM_map:4C0-4DF: Enemy Number# in Level|Enemy Number# in Level]]  
|-
$04E0 to $04FF = Enemy HP  
| $440-$45F || Vertical Speed Low ||
$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]]
| $460-$47F || Vertical Speed High ||
$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]]
| $408-$41F || [[Mega_Man_IV:RAM_map:$408-$41F: Substance_and_Shape|Substance and Shape]] ||###########
$0580 to $059F = [[Mega_Man_IV:RAM_map:580-59F: Sprite Flags|Sprite Flags]]  
|-
$05A0 to $05BF = Sprite's Animation
| $420-$437 || [[Mega_Man_IV:RAM_map:$420-$437: Direction_Bits|Direction Bits]] ||#######
$05C0 to $05DF = Sprite ID
|-
$05E0 to $05FF = Animation Frame Counter
| $438-$44F || [[Mega_Man_IV:RAM_map:$438-$44F: Enemy_Number#_in_Level|Enemy Number# in Level]] || ###
|-
| $4E0-$4FF || Enemy HP ||
|-
| $500-$51F || [[Mega_Man_III:RAM_map:$468-47F: Object_ASM_Private_Memory_1|Object ASM Private Memory 1]] ||
|-
| $480-$497 || [[Mega_Man_IV:RAM_map:$480-497: Object_ASM_Private_Memory_2|Object ASM Private Memory 2]] || ####
|-
| $498-$4AF || [[Mega_Man_IV:RAM_map:$498-4AF: Object_ASM_Private_Memory_3|Object ASM Private Memory 3]] || ###
|-
| $4B0-$4C7 || [[Mega_Man_IV:RAM_map:$4B0-$4C7: Object_ASM_Private_Memory_4|Object ASM Private Memory 4]] || ###
|-
| $4C8-$4DF || [[Mega_Man_IV:RAM_map:$4C8-$4DF: Object_ASM_Private_Memory_5|Object ASM Private Memory 5]] || ###
|-
| $4E0-$4F7 || [[Mega_Man_IV:RAM_map:$4E0-$4F7: Object_ASM_Private_Memory_6|Object ASM Private Memory 6]] || ###
|-
| $4F8-$50F || [[Mega_Man_IV:RAM_map:$4F8-$50F: Object_ASM_Private_Memory_7|Object ASM Private Memory 7]] || ###
|-
| $510-$527 || [[Mega_Man_IV:RAM_map:$510-$527: Object_ASM_Private_Memory 8|Object ASM Private Memory 8]] || ##
|-
| $528-$53F || [[Mega_Man_IV:RAM_map:$528-$53F: Sprite_Flags|Sprite Flags]] || ####
|-
| $5A0-$5BF || Sprite's Animation ||
|-
| $5C0-$5DF || Sprite ID ||
|-
| $5E0-$5FF || Animation Frame Counter ||
|-
| $588-$59F || ASM - Low Address || ####
|-
| $5A0-$5B7 || ASM - High Address || #####
|-
| $5B8-$5CF || [[Mega_Man_IV:RAM_map:$5B8-$5CF: Invincibility Blink / Freeze Action Status|Invincibility Blink / Freeze Action Status]] || #####
|-
| '''$5D0-$5FF''' || '''Never used in entire game''' || #####
|}
<br>


==Player Variables==
===Life & Health===
<pre>
$00A2 to $---- = Current HP
$00AE to $---- = Lives Remaining
$00AF to $---- = Energy Tanks Remaining
</pre>
===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


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
</pre>


==Miscellaneous Variables==
===Stages===
<pre>
$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
</pre>




 
{{Internal Data|game=Mega Man 3}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
= Player Variables =
 
<br>
 
== Life & Health ==
{| border="1" cellpadding="1"
| '''RAM''' || '''Function''' || '''Details'''
|-
| $00A2 || Current HP ||
|-
| $00AE || Lives Remaining ||
|-
| $00AF || Energy Tanks Remaining ||
|-
|}
 
<br>
 
== Weapons ==
 
{| border="1" cellpadding="1"
| '''RAM''' || '''Function'''
|-
| $00A3 || Gemini Beam
|-
| $00A4 || Needle Cannon
|-
| $00A5 || Hard Knuckle
|-
| $00A6 || Magnet Missile
|-
| $00A7 || Top Spin
|-
| $00A8 || Search Snake
|-
| $00AA || Spark Shock
|-
| $00AC || Shadow Blade
|}
 
 
{| border="1" cellpadding="1"
| '''Hex value''' || '''Description'''
|-
|  00            || Don't have weapon
|-
|  9C            || Have weapon
|}
 
<br>
 
== Rush Equipment ==
{| border="1" cellpadding="1"
| '''RAM''' || '''Function''' || '''Details'''
|-
| $00A9 || Rush Coil ||
|-
| $00AB || Rush Marine ||
|-
| $00AD || Rush Jet ||
|-
|}
 
= Miscellaneous Variables =
 
<br>
 
== Stages ==
{| border="1" cellpadding="1"
| '''RAM''' || '''Function''' || '''Details'''
|-
| $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
|-
| $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
|}
 
<br>
 
 
$00DC - $0DE4 Music
 
 
<br>

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