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.

Zelda II: The Adventure of Link/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for Zelda II: The Adventure of Link.

$0012 - frame counter

$0013 - set to 8 and The Player is a fairy, set to 0 and The Player is Link 

$0019 - draw Link's sprite?

$0026 - ?Movement Tally - Increases as you walk in overworld.


$0029 - Player's Current Y position

$002A - Enemy 6's current Y position
$002B - Enemy 5's 
$002C - Enemy 4's 
$002D - Enemy 3's 
$002E - Enemy 2's 
$002F - Enemy 1's 

$0030 - Projectile Y
$0031 - Projectile
$0032 - Projectile
$0033 - Projectile
$0034 - Projectile
$0035 - Projectile

$0036 - Sword Projectile Y On Screen

$003B - Player's current map page

$003C - Enemy 6's current map page
$003D - Enemy 5's 
$003E - Enemy 4's 
$003F - Enemy 3's 
$0040 - Enemy 2's 
$0041 - Enemy 1's 

$0042 - Projectile Map Page
$0043 - Projectile
$0044 - Projectile
$0045 - Projectile
$0046 - Projectile
$0047 - Projectile

$004D - Player's Current X position

$004E - Enemy 6's current X position
$004F - Enemy 5's 
$0050 - Enemy 4's 
$0051 - Enemy 3's 
$0052 - Enemy 2's 
$0053 - Enemy 1's 

$0054 - Projectile X
$0055 - Projectile
$0056 - Projectile
$0057 - Projectile
$0058 - Projectile
$0059 - Projectile

$005F - side scroll exit side: 2 = exited left, 1 = exited right

$0060 - Enemy 6's current facing direction
$0061 - Enemy 5's 
$0062 - Enemy 4's 
$0063 - Enemy 3's 
$0064 - Enemy 2's 
$0065 - Enemy 1's 

$0066 - Projectile facing direction
$0067 - Projectile
$0068 - Projectile
$0069 - Projectile
$006A - Projectile
$006B - Projectile

$0070 - Link's X speed
$0071 to $0076 Enemy's

$0073 - Y position on map (not visually)
$0074 - X position on map (not visually)

$0077 - Projectile speed
$0078 - Projectile
$0079 - Projectile
$007A - Projectile
$007B - Projectile
$007C - Projectile

$0080 - ?Link's Sprite Index?

$0086-0089 -  Overworld random monster type (00 - None, 01 - Small, 02 - Big, )

$0087 - Projectile ID/type
$0088 - Projectile
$0089 - Projectile
$008A - Projectile
$008B - Projectile
$008C - Projectile

$008D - Projectile Flag (00 - Inactive, 01 - Active, F2-FF - Disintegrating)

$009F - Player's Facing Direction (side-scroll)

$00A1 - Enemy 6's ID / type
$00A2 - Enemy 5's 
$00A3 - Enemy 4's 
$00A4 - Enemy 3's 
$00A5 - Enemy 2's 
$00A6 - Enemy 1's 

$00A7 - Solids hit detection bits, 0000dcba, a = left, b = right, c = down, d = up.

$00AF - Enemy 6's current-item-ID OR something else(AI?)
$00B0 - Enemy 5's 
$00B1 - Enemy 4's 
$00B2 - Enemy 3's 
$00B3 - Enemy 2's 
$00B4 - Enemy 1's 
$00B4 - timer for healer lady in shield-town leaves door open

$00B5 
	 2 will make link die in lava
	 3 move right like when win game at dark link

$00B6 - Enemy 6 exists
      - set to 10 will make link fall down 
$00B7 - Enemy 5 
$00B8 - Enemy 4 
$00B9 - Enemy 3 
$00BA - Enemy 2 
$00BB - Enemy 1 

$00BC - Enemy 6's ?sram Y index (LDY BC,X  ; then LDA ($D6),Y   if bit7 is set it means monster killed?)
$00BD - Enemy 5's 
$00BE - Enemy 4's 
$00BF - Enemy 3's 
$00C0 - Enemy 2's 
$00C1 - Enemy 1's 

$00C2 - Enemy 6's HP
$00C3 - Enemy 5's HP
$00C4 - Enemy 4's HP
$00C5 - Enemy 3's HP
$00C6 - Enemy 2's HP
$00C7 - Enemy 1's HP

$00DE - ?set to 1 to prevent moving, 0 to allow??

$00A1 - Enemy 6's ID
$00A2 - Enemy 5's ID
$00A3 - Enemy 4's ID
$00A4 - Enemy 3's ID
$00A5 - Enemy 2's ID
$00A6 - Enemy 1's ID

$00C2 - Current amount of health enemy 6 has
$00C3 - Current amount of health enemy 5 has
$00C4 - Current amount of health enemy 4 has
$00C5 - Current amount of health enemy 3 has
$00C6 - Current amount of health enemy 2 has
$00C7 - Current amount of health enemy 1 has

$00CC - ?Player X On Screen?

$00D1 - maximum number of map pages for this scene

$00E0-EF - Music variables (behaves different for title screen vs. normal game)
Title Screen:
$00EB - Sound effect flags (auto-clears when starts playing)
        bit 0 ($01): Letter entry sound
        bit 1 ($02): Select different letter sound
        bit 2 ($04): Select different menu item sound
        bit 3 ($08): Elimination sound
Normal Game:
$00EA - Non-zero value written pauses music, zero resumes
$00EB - Music command
        Note: Seems that bit 2 makes music quieter when set.
              These are values in the overworld.  In a town is different.
        $00: Value cleared to $00 once acknowledged by music engine
        $01: Start overworld music with intro
        $02: Start overworld music without intro
        $03: Same as $01
        $04: Start Battle music
        $10: Get Item
        $80: Something to do with switching to a different selection of songs.  Does this when entering a town.
$00EC-EF - Sound Effect bitfields.  Set bits to play sound effects

$00F5 - Controller 1 button pressed
$00F6 - Controller 2 button pressed
$00F7 - Controller 1 button held
$00F8 - Controller 2 button held

$00FE - ?changes brightness sorta?

$0301 - Used when writing text to screen
$0302 - Used when writing text to screen
$0303 - Letter position when writing to screen
$0304 - Text memory offset?
$0305 - Empty Row Space Character
$0306 - Letter Written to Screen
$0307 - Text memory offset?

$03D6 - Player's X Subpixel
$03D7 - Enemy 6's X Subpixel
$03D8 - Enemy 5's 
$03D9 - Enemy 4's 
$03DA - Enemy 3's 
$03DB - Enemy 2's 
$03DC - Enemy 1's 

$040E - Enemy 6's stun-delay-when-hit timer
$040F - Enemy 5's 
$0410 - Enemy 4's 
$0411 - Enemy 3's 
$0412 - Enemy 2's 
$0413 - Enemy 1's 

$0488 - selection index for MENU (continue/save)

$0489 - Text Column
$048A - Text Row
$048B - Conversation Pointer

$048E - Enemy 6's item-ID in the future
$048F - Enemy 5's 
$0490 - Enemy 4's 
$0491 - Enemy 3's 
$0492 - Enemy 2's 
$0493 - Enemy 1's 

$0500 - Invincibility after stun counter (counts down, nonzero = invincible)

$050A - ?Attack Delays
$0518 - ?Invulnerable Timeout (01-02 - Blinking, 03+ - Not Blinking)

$0524 - menu control / state 

$0561 - current scene/map index 

$0562 - Player's Facing Direction (overworld map)

$0562 - ?Controller 1 Last Poll
$0564 - ?Magic Points - Display
$0565 - ?Hit Points - Display

$0569 - used for counting text when displaying talk text
$056B - involved with Life Town's Bagu Bridge, when $56B=2 and $796=1 then Bagu Bridge will be built
$056B - Town Code
$056C - Palace Code

$057D - ?Player Y Delta

$057E - Enemy 6's stun-delay-when-hit timer
$057F - Enemy 5's 
$0580 - Enemy 4's 
$0581 - Enemy 3's 
$0582 - Enemy 2's 
$0583 - Enemy 1's 

$05CA - Sword Projectile Timeout

$05DF - count of easy monster killed for item drop
$05E0 - count of hard monster killed for item drop

$05EB - Experience an enemy takes away

---------------(Uses bits?)---------------------

$0608 bits
 - Heart Container #2 taken FB (1111 1011)
$0610 bits
 - Trophy taken F7 (1111 0111)
$0613 bits
 - Heart Container #1 (S of Parapa Palace) taken DF (1101 1111)
$0615 bits
 - Exp. Bag (NE of Castle) taken FD (1111 1101)
$0616 bits
 - Magic Container #1 (S of Castle) taken FE (1111 1110)
$0617 bits
 - Exp. Bag  (E of Saria) taken DF (1101 1111)
$061C bits
 - Extra Life (W of Cemetery Palace) taken FD (1111 1101)
$0624 bits
 - Red magic jar (Death MT #1) taken FB (1111 1011)
$0626 bits
 - Red magic jar (Death MT #2) taken F7 (1111 0111)
$0629 bits
 - Red magic jar (Death MT #3) taken DF (1101 1111)
$062A bits
 - Hammer taken FE (1111 1110)
$062D bits
 - Magic Container #2 (Death MT) taken BF (1011 1111)
$0643 bits
 - Heart Container #3 (N of Island Palace) taken FB (1111 1011)
$0657 bits
 - Heart Container #4 (E of Seaside Palace) taken BF (1011 1111)
$0680 bits
 - Parapa Desert Key #2 will appear (FB - yes : FA - no)
$0681 - Parapa Desert Key #1 will appear (FF - yes : F7 - no)

$0684 - bits
 - Candle taken 7F (0111 1111)
 - Parapa Desert Lock to Candle unlocked BF (1011 1111)
 - Bag on top of Elevator down taken DF (1101 1111)
 - Left side of bridge exp. bag taken FB (1111 1011)
 - Right side of bridge exp. bag taken FD (1111 1101)

$0700 - Current number of lives
$0701 - start this side of screen: 0=left, 1=right
$0704 - (Elevator) 0=start bottom of screen, 1=start at top of screen

$0706 - overworld index (0=west hyrule, 1=death mtn/maze island, 2=east hyrule)
$0707 - "world" (0=caves, enemy encounters...; 1=west hyrule towns; 2=east hyrule towns; 3=palace 1,2,5 ; 4=palace 3,4,6 ; 5=great palace)

$0709 - involved in returning to the over-world while in side-scroll?
$070A - Previous Region ?
$070B - Graphics Bank for Palaces

$070C - add this value to link's MP slowly (old lady magic restore)
$070D - add this value to link's HP slowly (healing lady)

$070E - setting to 1 will make link sink (duck into the chimney)

$0728 - setting to 1 will freeze screen, prevent from exiting left/right (like during a boss battle)

$0736 - game mode/current state
    side-scroll: set $769,$706,$707,$56B,$56C,$561, and set $736 to 0 (to load any scene anywhere)
		$769	$706	$707	$56B	$56C	$561
rauru		03	00	01	00	F8	
nabooru		03	02	02	04	F8	
palaces 1	04	00	03	04	00	00
palaces 2	04	00	03	04	01	0E
palaces 3	04	00	04	05	02	00
palaces 4	04	01	04	08	00	0F
palaces 5	04	02	03	08	00	23
palaces 6	04	02	04	08	01	24
GP		05	02	05	09	02	00
		
    side-scroll: set $709 to 1, set $736 to 0 (to go outside/return to over-world map)
    side-scroll: set $709 to 1, set $748 and $706 to target destination, set $736 to 0 (to go outside/return to over-world map) (also $707, $70A and $70B may need to be set to 0??)
    ?side-scroll: set $561 to target scene/map index, set $736 to 0,8,C (to load scene)
    Over-world: set $736 to 6 or 0 (enter map position u are at)  
    over-world: set $73 and $74 , then set $736 to 2 (update screen with position)

$0743 - elevator was moving up or down: 8=up, 4=down

$0748 - area location index (the index of the spot on the overworld that pulled you into the sideview)

$0749 - Current position of the selector on Magic

$074B - this value causes two different flashing effect of magic

$0755 - add this value to link's exp slowly (add 255 for every value)
$0756 - add this value to link's exp slowly

$075C - Start this map page

$0768 - ?changes brightness sorta?
$0769 - Bank to switch to (other than 0 or 7)
$076C - begin a special routine. Changing this value has the most 'automation' 
(00=restart from zelda's castle with 3 lives, 01=no routine, 02=die, 03=wake up zelda, 04=roll credits, 06=show the lives then restart the scene)

$076F - A fairy if 08
      - 0=beam projectile only full hp	10=flame projectile
$0770 - Exp. needed for Next Level (add 255 for every value)
$0771 - Exp. needed for Next Level (000 - 255)

$0773 - Current Magic left in meter
$0774 - Current Life left in meter
$0775 - Second digit of exp. (add 255 for every value)
$0776 - First digit of exp. (000 - 255)

$0777 - Attack Power
$0778 - Magic Power
$0779 - Life Power

$077B - Have Shield magic
$077C - Have Jump magic
$077D - Have Life magic
$077E - Have Fairy magic
$077F - Have Fire magic
$0780 - Have Reflect magic
$0781 - Have Spell magic
$0782 - Have Thunder magic
$0783 - Current number of Magic Containers
$0784 - Current number of Heart Containers
$0785 - Have Candle
$0786 - Have Glove
$0787 - Have Raft
$0788 - Have Boots
$0789 - Have Flute
$078A - Have Cross
$078B - Have Hammer
$078C - Have Magic Key

$0793 - Current number of keys
$0794 - Number of Crystals left for grand palace
$0796 - Have (Downward Thrust 10) (Upward Thrust 04) (Both 14)
$0798 - Have collected (Trophey B6 - yes) (Medicine 43 - yes)
$0799 - Have collected the Mirror (01 - yes)
$079A - Have collected note from Baju (08 - yes)
$079B - Have collected some water (01 - yes)
$079C - Have collected lost child (20 -yes)
$079F - Number of times died

$07E8 - Noise
$07E9 - Triangle
$07EA - Pulse 2
$07EB - Pulse 1
$07FB - ???MUSIC???

$0FA0 - Player name value #1
$0FA1 - Player name value #2
$0FA2 - Player name value #3
$0FA3 - Player name value #4
$0FA4 - Player name value #5
$0FA5 - Player name value #6
$0FA6 - Player name value #7
$0FA7 - Player name value #8

$6000 to $633F - current sidescroll data
MapPage	RamLocation
0	6000-60CF
1	60D0-619F
2	61A0-626F
3	6270-633F
	95 is a grave tile
	51 is a bridge tile

$6340 to $694f - unused?

$6A00 - Overworld destinations table (copied from ROM)
    6A00 and 6AFB	Overworld Area Data Table
    6A00-6A3E Area Byte 0 (Y Position)
    6A3F-6A7D Area Byte 1 (X Position)
    6A7E-6ABC Area Byte 2 (Map Number)
    6ABD-6AFB Area Byte 3 (Region/World Code)
    Take byte 2, keep bits 0-5, and you've got your Map Number. 
    $748 is index to use in these tables.

$6AFC - table of room connectivity data (6AFE can be P0 right exit )

$6D27 - HP for Magic Stealing Skulls
$6D41 - HP for Horsehead

---- Save File 1 ----
    
    (this might just be copied directly to/from $0777 area of RAM)

    $7402 - Attack Level
    $7403 - Magic Level
    $7404 - Health Level
    $742A - Death counter (max 255)
    $742B - 'Second Quest' - nonzero if player has beaten the game on this file (triforce will be shown in menu)
    $742C - Player name (8 chars)
---------------------

$740E - Beginning number of Magic Containers for new game
$740F - Beginning number of Heart Containers for new game

$7A00 to $7BFF - unused?

$7C00 to $7FFF? - Copy of overworld map in RAM.

$DD4C - Beginning of graphics shown for experience (part 1)
$DD5C - Beginning of graphics shown for experience (part 2)
$DDC0 - Beginning of experience gained for enemies