Difference between revisions of "RAM: Bank 0x7E: Page 0x01"

From TLoZ: ALTTP Hacking Resources
Jump to: navigation, search
(Created page with "{{subpage|RAM}} This is beyond direct page and you can assume that all addresses here are $7EXXXX until you reach bank $7F. * {{$|0100}}[{{0x|02}}] = Numerical index that con...")
 
m
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{subpage|RAM}}
 
{{subpage|RAM}}
  
This is beyond direct page and you can assume that all addresses here are $7EXXXX until you reach bank $7F.
+
This is beyond direct page and you can assume that all addresses here are {{$|7EXXXX}} until you reach bank {{$|7F}}.
* {{$|0100}}[{{0x|02}}] = Numerical index that controls the graphics that are blitted for Link during VRAM. See DMA Variables for
+
 
additional info.
+
* {{address|$|0100||02}} = Numerical index that controls the graphics that are blitted for Link during VRAM. See DMA variables for additional info.
* {{$|0102}}[{{0x|02]
+
 
* {{$|0104}}[{{0x|02]
+
* {{address|$|0102||02}} = See DMA Variables
* {{$|0106}}[{{0x|01]
+
* {{address|$|0104||02}} = See DMA Variables
* {{$|0107}}[{{0x|02]
+
* {{address|$|0106||01}} = free ram?
-
+
* {{address|$|0107||02}} = See DMA Variables
-
+
* {{address|$|0109||01}} = See DMA Variables
-
+
* {{address|$|010A||01}} = Set to nonzero when Link incurs death. Used if the player saved and continued (or just continued) after dying, indicating that the loading process will be slightly different.
-
+
* {{address|$|010B||01}} = free ram?
See DMA Variables
+
* {{address|$|010C||02}} = Temporary storage for a module number. Example: If we're in Overworld mode ({{0x|09}}) and have to display a textbox (module {{0x|0E}}), {{0x|09}} gets saved to this location on a temporary basis. Once the textbox disappears this module will be resumed.
See DMA Variables
+
* {{address|$|010E||02}} = (Dungeon) gives the entrance index of the current dungeon
free ram?
+
* {{address|$|0110||02}} = In the context of loading dungeon rooms, contains the index of the room (see {{$|A0}}) multiplied by 3. Allows for indexing into 24bit pointer address tables.
See DMA Variables
+
* {{address|$|0112||02}} = Apparently a flag indicating the bombos medallion is falling. Stops the Menu from being dropped down too. It seems to work as a flag for any general extended animation that is currently in progress.
* {{$|0109}}[{{0x|01}}] = See DMA Variables
+
* {{address|$|0114||02}} = Value of the type of tile Link is currently standing on. Only the lower byte is used.
* {{$|010A}}[{{0x|01}}] = Set to nonzero when Link incurs death.
+
* {{address|$|0116||02}} = Used with routine {{$|008CB0}} to transfer {{0x|0800}} bytes from {{$|7E1000}} to a variable location (determined by this memory location)
Used if the player saved and continued (or just continued) after dying,
+
* {{address|$|0118||02}} = Local portion of an address used to transfer data from {{$|7FXXXX}} to vram whenever variable {{$|19}} is nonzero.
indicating that the loading process will be slightly different.
+
* {{address|$|011A||02}} = BG1 Y Offset. Gets applied to {{$|0124}}. Can be used in quakes/shaking
* {{$|010B}}[{{0x|01}}] = free ram?
+
* {{address|$|011C||02}} = BG1 X Offset. Gets applied to {{$|0120}}
* {{$|010C}}[{{0x|02}}] = Temporary storage for a module number. Example: If we're in Overworld mode (0x9) and have to display
+
 
a textbox (module 0xE), 0x9 gets saved to this location on a temporary basis. Once the textbox
+
These are extra buffers for the scroll variables in addition to the {{$|E0}},...,{{$|EA}} registers earlier
disappears this module will be resumed.
+
* {{address|$|011E||02}} = BG2 Horizontal Scroll Register ({{$|210F}})
* {{$|010E}}[{{0x|02}}] = gives the entrance index of the current dungeon
+
* {{address|$|0120||02}} = BG1 Horizontal Scroll Register ({{$|210D}})
* {{$|0110}}[{{0x|02}}] = In the context of loading dungeon rooms, contains the index of the room (see $A0) multiplied by 3.
+
* {{address|$|0122||02}} = BG2 Vertical Scroll Register ({{$|2110}})
Allows for indexing into 24bit pointer address tables.
+
* {{address|$|0124||02}} = BG1 Vertical Scroll Register ({{$|210E}})
* {{$|0112}}[{{0x|02}}] = Apparently a flag indicating the bombos medallion is falling. Stops the Menu from being dropped down
+
 
too. It seems to work as a flag for any general extended animation that is currently in progress.
+
* {{address|$|0126||01}} = Seems to be used during dungeon screen transitions as some sort of counter.
* {{$|0114}}[{{0x|01}}] = Value of the type of tile Link is currently standing on.
+
* {{address|$|0127||01}} = free ram
* {{$|0116}}[{{0x|02}}] = Used with routine $008CB0 to transfer 0x800 bytes from $7E1000 to a variable location.
+
* {{address|$|0128||01}} = ???? Seen as 0xFF during the history sequence. When set to {{0x|FF}}, the IRQ routine will disable the IRQ routine the next time it executes by writing {{0x|81}} to {{$|4200}}.
(determined by this memory location)
+
* {{address|$|0129||01}} = free ram
* {{$|0118}}[{{0x|02}}] = Local portion of an address used to transfer data from $7FXXXX to vram whenever
+
* {{address|$|012A||01}} = Seems to be a flag for the crystal sequence scripting. As long as this flag is set, the sequence progresses. Also used for the Triforce sequences. Triggers a subsection of the NMI routine.
variable $19 is nonzero.
+
* {{address|$|012B||01}} = free ram
* {{$|011A}}[{{0x|02}}] = BG1 Y Offset. Gets applied to $0124. Can be used in quakes/shaking
+
 
* {{$|011C}}[{{0x|02}}] = BG1 X Offset. Gets applied to $0120
+
* {{address|$|012C||01}} = Music control
These are extra buffers for the scroll variables in addition to the $E0,...,$EA registers earlier
+
**{{0x|01}} = Triforce opening
* {{$|011E}}[{{0x|02}}] = BG1 Horizontal Scroll Register ($210F)
+
**{{0x|02}} = light world
* {{$|0120}}[{{0x|02}}] = BG0 Horizontal Scroll Register ($210D)
+
**{{0x|03}} = legend theme
* {{$|0122}}[{{0x|02}}] = BG1 Vertical Scroll Register ($2110)
+
**{{0x|04}} = bunny link
* {{$|0124}}[{{0x|02}}] = BG0 Vertical Scroll Register ($210E)
+
**{{0x|05}} = lost woods
* {{$|0126}}[{{0x|01}}] = Seems to be used during dungeon screen transitions as some sort of counter.
+
**{{0x|06}} = legend theme
543$0128}}[{{0x|01}}] = ???? Seen as 0xFF during the history sequence. When set to 0xFF, the IRQ routine will disable the IRQ
+
**{{0x|07}} = kakariko village
routine the next time it executes by writing 0x81 to $4200.
+
**{{0x|08}} = mirror warp
* {{$|012A}}[{{0x|01}}] = Seems to be a flag for the crystal sequence scripting. As long as this flag is set, the sequence progresses.
+
**{{0x|09}} = dark world
Also used for the Triforce sequences. Triggers a subsection of the NMI routine.
+
**{{0x|0A}} = restoring the master sword
* {{$|012C - Music control
+
**{{0x|0B}} = faerie theme
0x01 = Triforce opening
+
**{{0x|0C}} = chase theme
0x02 = light world
+
**{{0x|0D}} = dark world (skull woods)
0x03 = legend theme
+
**{{0x|0E}} = game theme (Overworld only?)
0x04 = bunny link
+
**{{0x|10}} = hyrule castle
0x05 = lost woods
+
**{{0x|13}} = fanfare
0x06 = legend theme
+
**{{0x|15}} = boss theme
0x07 = kakkariko village
+
**{{0x|16}} = dark world dungeon
0x08 = mirror warp
+
**{{0x|17}} = fortune teller
0x09 = dark world
+
**{{0x|18}} = caves
0x0A = restoring the master sword
+
**{{0x|19}} = sentiment of hope
0x0B = faerie theme
+
**{{0x|1A}} = crystal theme
0x0C = chase theme
+
**{{0x|1B}} = faerie theme w/ arpeggio
0x0D = dark world (skull woods)
+
**{{0x|1C}} = fear & anxiety
0x0E = game theme (Overworld only?)
+
**{{0x|1D}} = Agahnim unleashed
0x10 = hyrule castle
+
**{{0x|1E}} = surprise!
0x13 = fanfare
+
**{{0x|1F}} = Ganondorf the Thief
0x15 = boss theme
+
**{{0x|20}} = nothing
0x16 = dark world dungeon
+
**{{0x|21}} = Agahnim unleashed
0x17 = fortune teller
+
**{{0x|22}} = surprise!
0x18 = caves
+
**{{0x|23}} = Ganondorf the Thief
0x19 = sentiment of hope
+
**{{0x|F1}} = fade out
0x1A = crystal theme
+
**{{0x|F2}} = half volume
0x1B = faerie theme w/ arpeggio
+
**{{0x|F3}} = full volume
0x1C = fear & anxiety
+
**{{0x|FF}} = Load a new set of music.
0x1D = Agahnim unleashed
+
 
0x1E = surprise!
+
* {{address|$|012D||01}} = (Sound) Ambient Sound effects
0x1F = Ganondorf the Thief
+
**{{0x|05}} - Silence
0x20 = nothing
+
**{{0x|07}} - Rumbling Sound? (Seems fairly certain)
0x21 = Agahnim unleashed
+
**{{0x|11}} - Prayer in the Desert (Sounds a bit like Sanctuary theme)
0x22 = surprise!
+
**{{0x|12}} - Alternate "Prayer in the desert", or maybe one part of the harmony.
0x23 = Ganondorf the Thief
+
**{{0x|15}} - Door to Triforce room opens
0xF1 = fade out
+
 
0xF2 = half volume
+
* {{address|$|012E||01}} = (Sound) Sound Effects 1
0xF3 = full volume
+
**{{0x|00}} = none (no change)
0xFF = Load a new set of music.
+
**{{0x|01}} = small sword swing 1 (Fighter Sword)
* {{$|012D}}[{{0x|01}}] = Ambient Sound effects
+
**{{0x|02}} = small sword swing 2 (Fighter Sword)
0x05 = Silencio
+
**{{0x|03}} = medium sword swing 1 (Master Sword and up)
0x15 = Door to Triforce room opens
+
**{{0x|04}} = fierce sword swing 2 (Master Sword and up)
* {{$|012E}}[{{0x|01}}] = Sound Effects 1
+
**{{0x|05}} = object clinking against the wall
0x00 = none (no change)
+
**{{0x|06}} = object clinking Link's shield or a hollow door when poked
0x01 = small sword swing 1 (Fighter Sword)
+
**{{0x|07}} = shooting arrow (or red Goriyas shooting fireballs)
5440x02 = small sword swing 2 (Fighter Sword)
+
**{{0x|08}} = arrow hitting wall
0x03 = medium sword swing 1 (Master Sword and up)
+
**{{0x|09}} = really quiet sound
0x04 = fierce sword swing 2 (Master Sword and up)
+
**{{0x|0A}} = hookshot cranking
0x05 = object clinking against the wall
+
**{{0x|0B}} = door shutting
0x06 = object clinking Link's shield or a hollow door when poked
+
**{{0x|0C}} = loud thud / heavy door shutting
0x07 = shooting arrow (or red Goriyas shooting fireballs)
+
**{{0x|0D}} = magic powder noise
0x08 = arrow hitting wall
+
**{{0x|0E}} = fire rod being fired
0x09 = really quiet sound
+
**{{0x|0F}} = ice rod being fired
0x0A = hookshot cranking
+
**{{0x|10}} = hammer being used?
0x0B = door shutting
+
**{{0x|11}} = hammer pounding down stake
0x0C = loud thud / heavy door shutting
+
**{{0x|12}} = really familiar but can't place it exactly
0x0D = magic powder noise
+
**{{0x|13}} = playing the flute
0x0E = fire rod being fired
+
**{{0x|14}} = Link picking something small up?
0x0F = ice rod being fired
+
**{{0x|15}} = Weird zapping noise
0x10 = hammer being used?
+
**{{0x|16}} = Link walking up staircase 1
0x11 = hammer pounding down stake
+
**{{0x|17}} = Link walking up staircase 2 (finishing on next floor)
0x12 = really familiar but can't place it exactly
+
**{{0x|18}} = Link walking down staircase 1
0x13 = playing the flute
+
**{{0x|19}} = Link walking down staircase 2 (finishing on next floor)
0x14 = Link picking something small up?
+
**{{0x|1A}} = Link walking through grass?
0x15 = Weird zapping noise
+
**{{0x|1B}} = sounds like a faint splash or thud
0x16 = Link walking up staircase 1
+
**{{0x|1C}} = Link walking in shallow water
0x17 = Link walking up staircase 2 (finishing on next floor)
+
**{{0x|1D}} = picking an object up
0x18 = Link walking down staircase 1
+
**{{0x|1E}} = some sort of hissing (walking through grass maybe?)
0x19 = Link walking down staircase 2 (finishing on next floor)
+
**{{0x|1F}} = object smashing to bits
0x1A = Link walking through grass?
+
**{{0x|20}} = item falling into a pit
0x1B = sounds like a faint splash or thud
+
**{{0x|21}} = sounds like a plop on wood, can't remember where it gets used
0x1C = Link walking in shallow water
+
**{{0x|22}} = loud thunderous noise
0x1D = picking an object up
+
**{{0x|23}} = pegasus boots slippy sound
0x1E = some sort of hissing (walking through grass maybe?)
+
**{{0x|24}} = Link making a splash in deep water (but having to come back out)
0x1F = object smashing to bits
+
**{{0x|25}} = Link walking through swampy water
0x20 = item falling into a pit
+
**{{0x|26}} = Link taking damage
0x21 = sounds like a plop on wood, can't remember where it gets used
+
**{{0x|27}} = Link passing out
0x22 = loud thunderous noise
+
**{{0x|28}} = item falling onto shallow water
0x23 = pegasus boots slippy sound
+
**{{0x|29}} = rupees refill sound
0x24 = Link making a splash in deep water (but having to come back out)
+
**{{0x|2A}} = whiffy sound
0x25 = Link walking through swampy water
+
**{{0x|2B}} = low life warning beep
0x26 = Link taking damage
+
**{{0x|2C}} = pulling master sword out
0x27 = Link passing out
+
**{{0x|2D}} = taking magic power damage from enemy
0x28 = item falling onto shallow water
+
**{{0x|2E}} = Seems like a sound related to Ganon's Tower opening
0x29 = rupees refill sound
+
**{{0x|2F}} = Seems like a sound related to Ganon's Tower opening
0x2A = whiffy sound
+
**{{0x|30}} = chicken getting owned
0x2B = low life warning beep
+
**{{0x|31}} = big faerie healing your wounds
0x2C = pulling master sword out
+
**{{0x|32}} = sounds familiar but can't place it. Whooshing noise
0x2D = taking magic power damage from enemy
+
**{{0x|33}} = cheesy noise that happens when Agahnim makes chicks disappear
0x2E = Seems like a sound related to Ganon's Tower opening
+
**{{0x|34}} = cheesy noise that happens when Agahnim makes chicks disappear
0x2F = Seems like a sound related to Ganon's Tower opening
+
**{{0x|35}} = faint rumbling noise
0x30 =
+
**{{0x|36}} = faint rumbling noise
0x31 =
+
**{{0x|37}} = spin attack has powered up
0x32 =
+
**{{0x|38}} = swimming noise
0x33 =
+
**{{0x|39}} = thunderous noise while Ganon's tower opens
0x34 =
+
**{{0x|3A}} = some kind of clinky hit
chicken getting owned
+
**{{0x|3B}} = sounds like magic powder but unfamiliar
big faerie healing your wounds
+
**{{0x|3C}} = Error noise
sounds familiar but can't place it. Whooshing noise
+
**{{0x|3D}} = something big falling into water? (Argghus?)
cheesy noise that happens when Agahnim makes chicks disappear
+
**{{0x|3E}} = playing the flute (quieter)
cheesy noise that happens when Agahnim makes chicks disappear
+
**{{0x|3F}} = magic powder
5450x35 = faint rumbling noise
+
 
0x36 = faint rumbling noise
+
* {{address|$|012F||01}} = (Sound) Sound Effects 2
0x37 = spin attack has powered up
+
**{{0x|00}} = none (no change)
0x38 = swimming noise
+
**{{0x|01}} = master sword beam
0x39 = thunderous noise while Ganon's tower opens
+
**{{0x|02}} = unintelligble switch noise
0x3A = some kind of clinky hit
+
**{{0x|03}} = ????? yet another loud thud
0x3B = sounds like magic powder but unfamiliar
+
**{{0x|04}} = Nutcase soldier getting pissed off
0x3C = Error noise
+
**{{0x|05}} = shooting a fireball (Lynel)
0x3D = something big falling into water? (Argghus?)
+
**{{0x|06}} = ?????
0x3E = playing the flute (quieter)
+
**{{0x|07}} = giant metal balls coming out of nodes
0x3F = magic powder
+
**{{0x|08}} = normal enemy taking a big hit
* {{$|012F}}[{{0x|01}}] = Sound Effects 2
+
**{{0x|09}} = normal enemy dying
0x00 = none (no change)
+
**{{0x|0A}} = collecting rupee
0x01 = master sword beam
+
**{{0x|0B}} = collecting single heart
0x02 = unintelligible switch noise
+
**{{0x|0C}} = text scrolling flute noise
0x03 = ????? yet another loud thud
+
**{{0x|0D}} = single heart filling in on HUD
0x04 = Nutcase soldier getting pissed off
+
**{{0x|0E}} = sound of a chest being opened
0x05 = shooting a fireball (Lynel)
+
**{{0x|0F}} = you got an item sound 1
0x06 = ?????
+
**{{0x|10}} = switching to map sound effect
0x07 = giant metal balls coming out of nodes
+
**{{0x|11}} = menu screen going down
0x08 = normal enemy taking a big hit
+
**{{0x|12}} = menu screen going up
0x09 = normal enemy dying
+
**{{0x|13}} = throwing an item
0x0A = collecting rupee
+
**{{0x|14}} = clink (not sure what it's used for)
0x0B = collecting single heart
+
**{{0x|15}} = loud thud 1
0x0C = text scrolling flute noise
+
**{{0x|16}} = loud thud 2
0x0D = single heart filling in on HUD
+
**{{0x|17}} = rats
0x0E = sound of a chest being opened
+
**{{0x|18}} = dragging something
0x0F = you got an item sound 1
+
**{{0x|19}} = zora shooting fireball
0x10 = switching to map sound effect
+
**{{0x|1A}} = minor puzzle solved
0x11 = menu screen going down
+
**{{0x|1B}} = major puzzle solved
0x12 = menu screen going up
+
**{{0x|1C}} = doing minor damage to enemy
0x13 = throwing an item
+
**{{0x|1D}} = taking magic power damage from enemy
0x14 = clink (not sure what it's used for)
+
**{{0x|1E}} = keese flitting around
0x15 = loud thud 1
+
**{{0x|1F}} = Link squealing like a bitch when he falls into a hole
0x16 = loud thud 2
+
**{{0x|20}} = switch menu item
0x17 = rats
+
**{{0x|21}} = boss taking damage
0x18 = dragging something
+
**{{0x|22}} = boss dying
0x19 = zora shooting fireball
+
**{{0x|23}} = spin attack sound
0x1A = minor puzzle solved
+
**{{0x|24}} = switching between different mode 7 map perspectives
0x1B = major puzzle solved
+
**{{0x|25}} = triggering a switch
0x1C = doing minor damage to enemy
+
**{{0x|26}} = Agahnim's lightning
0x1D = taking magic power damage from enemy
+
**{{0x|27}} = Agahnim powering up an attack
0x1E = keese flitting around
+
**{{0x|28}} = Agahnim / Ganon teleporting
0x1F = Link squealing like a bitch when he falls into a hole
+
**{{0x|29}} = Agahnim shooting a beam
0x20 = switch menu item
+
**{{0x|2A}} = tougher enemy taking damage.
0x21 = boss taking damage
+
**{{0x|2B}} = Link getting electromucuted
0x22 = boss dying
+
**{{0x|2C}} = bees buzzing
0x23 = spin attack sound
+
**{{0x|2D}} = Major achievement completed (e.g. getting a piece of heart)
0x24 = switching between different mode 7 map perspectives
+
**{{0x|2E}} = Major item obtained (e.g. Pendant or Heart Container)
0x25 = triggering a switch
+
**{{0x|2F}} = obtained small key
5460x26 = Aghanim’s lightning
+
**{{0x|30}} = blob popping out of ground
0x27 = Agahnim powering up an attack
+
**{{0x|31}} = Moldorm's weird track like noise
0x28 = Agahnim / Ganon teleporting
+
**{{0x|32}} = bouncing off a bungie
0x29 = Agahnim shooting a beam
+
**{{0x|33}} = short unknown jingle
0x2A = tougher enemy taking damage
+
**{{0x|34}} = Sounds like defunct version of sound {{0x|35}} below. Seems to be unused.
0x2B = Link getting electrocuted
+
**{{0x|35}} = Sound that plays in response to picking up a heart container during a boss fight.
0x2C = bees buzzing
+
**{{0x|36}} = Sound of a beam being fired (Mothula, Wizzrobes, etc).
0x2D = Major achievement completed (e.g. getting a piece of heart)
+
**{{0x|37}} = Neat sound... consider using as a confirmation (though make sure it's not buggy)
0x2E = Major item obtained (e.g. Pendant or Heart Container)
+
**{{0x|38}} = ...
0x2F = obtained small key
+
**{{0x|39}} = ...
0x30 = blop popping out of ground
+
**{{0x|3C}} = Obtained mid level item (e.g. bombs from a chest)
0x31 = Moldorm's weird track like noise
+
**{{0x|3D}} = ...
0x32 = bouncing off a bungie
+
**{{0x|3F}} = More minor fanfares
0x33 = short unknown jingle
+
 
0x34 = ...
+
* {{address|$|0130||01}} = Something to do with SPC, exact usage is not clear.
0x37 = Neat sound... consider using as a confirmation (though make sure it's not buggy)
+
* {{address|$|0131||01}} = Something to do with SPC, exact usage is not clear.
0x38 = ...
+
* {{address|$|0132||01}} = Buffer for playing songs. Put a value here to try to play a song. (Will try to write to {{$|012C}})
0x39 = ...
+
* {{address|$|0133||01}} = Something to do with SPC, exact usage is not clear.
0x3C = Obtained mid-level item (e.g. bombs from a chest)
+
* {{address|$|0134||02}} = VRAM target address for animated tiles. Usually {{$|3B00}} or {{$|3C00}}. Remember that if you were to look this stuff up in Geiger's debugger the byte addresses would actually be {{$|7600}} and {{$|7800}}. SNES VRAM addresses are expressed as words addresses internally, you just have to deal with it unfortunately.
0x3D = ...
+
* {{address|$|0136||01}} = Flag that toggles when different sets of musical tracks are loaded. I think the two track sets are normal outdoor and the ending tracks.
0x3F = More minor fanfares
+
* {{address|$|0137||C9}} = Normal (Non-IRQ) Stack
* {{$|0130 - ????
 
* {{$|0131 - ????
 
* {{$|0132}}[{{0x|01}}] = Buffer for playing songs. Put a value here to try to play a song. (Will try to write to $012C)
 
* {{$|0134}}[{{0x|02}}] = VRAM target address for animated tiles. Usually $3B00 or $3C00.
 
Remember that if you were to look this stuff up in Geiger's debugger the byte addresses would actually
 
be $7600 and $7800. SNES VRAM addresses are expressed as words addresses internally, you just have
 
to deal with it unfortunately.
 
* {{$|0136}}[{{0x|01}}] = Flag that toggles when different sets of musical tracks are loaded.
 
I think the two track sets are normal outdoor and the ending tracks.
 
* {{$|0137}}[{{0x|C9}}] = Normal (Non-IRQ) Stack
 
  
 
{{toc}}
 
{{toc}}

Latest revision as of 04:13, 21 December 2016

This is a subpage of RAM

This is beyond direct page and you can assume that all addresses here are $7EXXXX until you reach bank $7F.

  • $0100 (02) = Numerical index that controls the graphics that are blitted for Link during VRAM. See DMA variables for additional info.
  • $0102 (02) = See DMA Variables
  • $0104 (02) = See DMA Variables
  • $0106 (01) = free ram?
  • $0107 (02) = See DMA Variables
  • $0109 (01) = See DMA Variables
  • $010A (01) = Set to nonzero when Link incurs death. Used if the player saved and continued (or just continued) after dying, indicating that the loading process will be slightly different.
  • $010B (01) = free ram?
  • $010C (02) = Temporary storage for a module number. Example: If we're in Overworld mode (0x09) and have to display a textbox (module 0x0E), 0x09 gets saved to this location on a temporary basis. Once the textbox disappears this module will be resumed.
  • $010E (02) = (Dungeon) gives the entrance index of the current dungeon
  • $0110 (02) = In the context of loading dungeon rooms, contains the index of the room (see $A0) multiplied by 3. Allows for indexing into 24bit pointer address tables.
  • $0112 (02) = Apparently a flag indicating the bombos medallion is falling. Stops the Menu from being dropped down too. It seems to work as a flag for any general extended animation that is currently in progress.
  • $0114 (02) = Value of the type of tile Link is currently standing on. Only the lower byte is used.
  • $0116 (02) = Used with routine $008CB0 to transfer 0x0800 bytes from $7E1000 to a variable location (determined by this memory location)
  • $0118 (02) = Local portion of an address used to transfer data from $7FXXXX to vram whenever variable $19 is nonzero.
  • $011A (02) = BG1 Y Offset. Gets applied to $0124. Can be used in quakes/shaking
  • $011C (02) = BG1 X Offset. Gets applied to $0120

These are extra buffers for the scroll variables in addition to the $E0,...,$EA registers earlier

  • $011E (02) = BG2 Horizontal Scroll Register ($210F)
  • $0120 (02) = BG1 Horizontal Scroll Register ($210D)
  • $0122 (02) = BG2 Vertical Scroll Register ($2110)
  • $0124 (02) = BG1 Vertical Scroll Register ($210E)
  • $0126 (01) = Seems to be used during dungeon screen transitions as some sort of counter.
  • $0127 (01) = free ram
  • $0128 (01) = ???? Seen as 0xFF during the history sequence. When set to 0xFF, the IRQ routine will disable the IRQ routine the next time it executes by writing 0x81 to $4200.
  • $0129 (01) = free ram
  • $012A (01) = Seems to be a flag for the crystal sequence scripting. As long as this flag is set, the sequence progresses. Also used for the Triforce sequences. Triggers a subsection of the NMI routine.
  • $012B (01) = free ram
  • $012C (01) = Music control
    • 0x01 = Triforce opening
    • 0x02 = light world
    • 0x03 = legend theme
    • 0x04 = bunny link
    • 0x05 = lost woods
    • 0x06 = legend theme
    • 0x07 = kakariko village
    • 0x08 = mirror warp
    • 0x09 = dark world
    • 0x0A = restoring the master sword
    • 0x0B = faerie theme
    • 0x0C = chase theme
    • 0x0D = dark world (skull woods)
    • 0x0E = game theme (Overworld only?)
    • 0x10 = hyrule castle
    • 0x13 = fanfare
    • 0x15 = boss theme
    • 0x16 = dark world dungeon
    • 0x17 = fortune teller
    • 0x18 = caves
    • 0x19 = sentiment of hope
    • 0x1A = crystal theme
    • 0x1B = faerie theme w/ arpeggio
    • 0x1C = fear & anxiety
    • 0x1D = Agahnim unleashed
    • 0x1E = surprise!
    • 0x1F = Ganondorf the Thief
    • 0x20 = nothing
    • 0x21 = Agahnim unleashed
    • 0x22 = surprise!
    • 0x23 = Ganondorf the Thief
    • 0xF1 = fade out
    • 0xF2 = half volume
    • 0xF3 = full volume
    • 0xFF = Load a new set of music.
  • $012D (01) = (Sound) Ambient Sound effects
    • 0x05 - Silence
    • 0x07 - Rumbling Sound? (Seems fairly certain)
    • 0x11 - Prayer in the Desert (Sounds a bit like Sanctuary theme)
    • 0x12 - Alternate "Prayer in the desert", or maybe one part of the harmony.
    • 0x15 - Door to Triforce room opens
  • $012E (01) = (Sound) Sound Effects 1
    • 0x00 = none (no change)
    • 0x01 = small sword swing 1 (Fighter Sword)
    • 0x02 = small sword swing 2 (Fighter Sword)
    • 0x03 = medium sword swing 1 (Master Sword and up)
    • 0x04 = fierce sword swing 2 (Master Sword and up)
    • 0x05 = object clinking against the wall
    • 0x06 = object clinking Link's shield or a hollow door when poked
    • 0x07 = shooting arrow (or red Goriyas shooting fireballs)
    • 0x08 = arrow hitting wall
    • 0x09 = really quiet sound
    • 0x0A = hookshot cranking
    • 0x0B = door shutting
    • 0x0C = loud thud / heavy door shutting
    • 0x0D = magic powder noise
    • 0x0E = fire rod being fired
    • 0x0F = ice rod being fired
    • 0x10 = hammer being used?
    • 0x11 = hammer pounding down stake
    • 0x12 = really familiar but can't place it exactly
    • 0x13 = playing the flute
    • 0x14 = Link picking something small up?
    • 0x15 = Weird zapping noise
    • 0x16 = Link walking up staircase 1
    • 0x17 = Link walking up staircase 2 (finishing on next floor)
    • 0x18 = Link walking down staircase 1
    • 0x19 = Link walking down staircase 2 (finishing on next floor)
    • 0x1A = Link walking through grass?
    • 0x1B = sounds like a faint splash or thud
    • 0x1C = Link walking in shallow water
    • 0x1D = picking an object up
    • 0x1E = some sort of hissing (walking through grass maybe?)
    • 0x1F = object smashing to bits
    • 0x20 = item falling into a pit
    • 0x21 = sounds like a plop on wood, can't remember where it gets used
    • 0x22 = loud thunderous noise
    • 0x23 = pegasus boots slippy sound
    • 0x24 = Link making a splash in deep water (but having to come back out)
    • 0x25 = Link walking through swampy water
    • 0x26 = Link taking damage
    • 0x27 = Link passing out
    • 0x28 = item falling onto shallow water
    • 0x29 = rupees refill sound
    • 0x2A = whiffy sound
    • 0x2B = low life warning beep
    • 0x2C = pulling master sword out
    • 0x2D = taking magic power damage from enemy
    • 0x2E = Seems like a sound related to Ganon's Tower opening
    • 0x2F = Seems like a sound related to Ganon's Tower opening
    • 0x30 = chicken getting owned
    • 0x31 = big faerie healing your wounds
    • 0x32 = sounds familiar but can't place it. Whooshing noise
    • 0x33 = cheesy noise that happens when Agahnim makes chicks disappear
    • 0x34 = cheesy noise that happens when Agahnim makes chicks disappear
    • 0x35 = faint rumbling noise
    • 0x36 = faint rumbling noise
    • 0x37 = spin attack has powered up
    • 0x38 = swimming noise
    • 0x39 = thunderous noise while Ganon's tower opens
    • 0x3A = some kind of clinky hit
    • 0x3B = sounds like magic powder but unfamiliar
    • 0x3C = Error noise
    • 0x3D = something big falling into water? (Argghus?)
    • 0x3E = playing the flute (quieter)
    • 0x3F = magic powder
  • $012F (01) = (Sound) Sound Effects 2
    • 0x00 = none (no change)
    • 0x01 = master sword beam
    • 0x02 = unintelligble switch noise
    • 0x03 = ????? yet another loud thud
    • 0x04 = Nutcase soldier getting pissed off
    • 0x05 = shooting a fireball (Lynel)
    • 0x06 = ?????
    • 0x07 = giant metal balls coming out of nodes
    • 0x08 = normal enemy taking a big hit
    • 0x09 = normal enemy dying
    • 0x0A = collecting rupee
    • 0x0B = collecting single heart
    • 0x0C = text scrolling flute noise
    • 0x0D = single heart filling in on HUD
    • 0x0E = sound of a chest being opened
    • 0x0F = you got an item sound 1
    • 0x10 = switching to map sound effect
    • 0x11 = menu screen going down
    • 0x12 = menu screen going up
    • 0x13 = throwing an item
    • 0x14 = clink (not sure what it's used for)
    • 0x15 = loud thud 1
    • 0x16 = loud thud 2
    • 0x17 = rats
    • 0x18 = dragging something
    • 0x19 = zora shooting fireball
    • 0x1A = minor puzzle solved
    • 0x1B = major puzzle solved
    • 0x1C = doing minor damage to enemy
    • 0x1D = taking magic power damage from enemy
    • 0x1E = keese flitting around
    • 0x1F = Link squealing like a bitch when he falls into a hole
    • 0x20 = switch menu item
    • 0x21 = boss taking damage
    • 0x22 = boss dying
    • 0x23 = spin attack sound
    • 0x24 = switching between different mode 7 map perspectives
    • 0x25 = triggering a switch
    • 0x26 = Agahnim's lightning
    • 0x27 = Agahnim powering up an attack
    • 0x28 = Agahnim / Ganon teleporting
    • 0x29 = Agahnim shooting a beam
    • 0x2A = tougher enemy taking damage.
    • 0x2B = Link getting electromucuted
    • 0x2C = bees buzzing
    • 0x2D = Major achievement completed (e.g. getting a piece of heart)
    • 0x2E = Major item obtained (e.g. Pendant or Heart Container)
    • 0x2F = obtained small key
    • 0x30 = blob popping out of ground
    • 0x31 = Moldorm's weird track like noise
    • 0x32 = bouncing off a bungie
    • 0x33 = short unknown jingle
    • 0x34 = Sounds like defunct version of sound 0x35 below. Seems to be unused.
    • 0x35 = Sound that plays in response to picking up a heart container during a boss fight.
    • 0x36 = Sound of a beam being fired (Mothula, Wizzrobes, etc).
    • 0x37 = Neat sound... consider using as a confirmation (though make sure it's not buggy)
    • 0x38 = ...
    • 0x39 = ...
    • 0x3C = Obtained mid level item (e.g. bombs from a chest)
    • 0x3D = ...
    • 0x3F = More minor fanfares
  • $0130 (01) = Something to do with SPC, exact usage is not clear.
  • $0131 (01) = Something to do with SPC, exact usage is not clear.
  • $0132 (01) = Buffer for playing songs. Put a value here to try to play a song. (Will try to write to $012C)
  • $0133 (01) = Something to do with SPC, exact usage is not clear.
  • $0134 (02) = VRAM target address for animated tiles. Usually $3B00 or $3C00. Remember that if you were to look this stuff up in Geiger's debugger the byte addresses would actually be $7600 and $7800. SNES VRAM addresses are expressed as words addresses internally, you just have to deal with it unfortunately.
  • $0136 (01) = Flag that toggles when different sets of musical tracks are loaded. I think the two track sets are normal outdoor and the ending tracks.
  • $0137 (C9) = Normal (Non-IRQ) Stack

Navigate

Table of Contents
SpritesDungeonsOverworldUnderworldSRAM MapRAM MapROM MapMusicMonologueCreditsDumpsMiscellaneousTo-Do/Suggestions