Difference between revisions of "Game mode"

From ALttP Speedrunning Wiki
Jump to: navigation, search
(Created page with "The '''game mode''' is, in simplest terms, what the game is currently doing as its set of routines. For the context of this article, we will consider the game mode as the exac...")
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''game mode''' is, in simplest terms, what the game is currently doing as its set of routines. For the context of this article, we will consider the game mode as the exact combination of 2 different addresses: {{WRAM|10|1}} and {{WRAM|11|1}}, the main module and submodule, respectively. An in-depth understanding of these addresses is not necessary for No Major Glitches categories; however, understanding them at a basic level is helpful for routing and executing any transition-corrupting glitch.
+
The '''game mode''' is, in simplest terms, what the game is currently doing as its set of routines. For the context of this article, we will consider the game mode as the exact combination of 2 different addresses: {{HEXA|10|1}} and {{HEXA|11|1}}, the main module and submodule, respectively. An in-depth understanding of these addresses is not necessary for No Major Glitches categories; however, understanding them at a basic level is helpful for routing and executing any transition-corrupting glitch.
  
 
==Submodule==
 
==Submodule==
Line 8: Line 8:
 
|-
 
|-
 
! colspan="2" | Main module
 
! colspan="2" | Main module
! colspan="2" | {{HEX|07}} (Underworld)
+
! colspan="3" | {{HEX|07}} (Underworld)
 
|-
 
|-
 
! Value
 
! Value
Line 14: Line 14:
 
! Corruptable?
 
! Corruptable?
 
! Corrupted from
 
! Corrupted from
 +
! Notes
 
|-
 
|-
| {{HEX|00}} || Default state; player in control || No ||
+
| {{HEX|00}} || Default state; player in control || No || ||  
 
|-
 
|-
| {{HEX|01}} || Subtile transition || Yes ||
+
| {{HEX|01}} || Subtile transition || Yes || ||  
 
|-
 
|-
| {{HEX|02}} || Supertile transition || Yes || [[Somaria Door#West|West subtile somarias]]
+
| {{HEX|02}} || Supertile transition || Yes || [[Somaria Door#West|West subtile somarias]] ||
 
|-
 
|-
| {{HEX|03}} || Star tile hit || No || [[Somaria Door]]
+
| {{HEX|03}} || Star tile hit || No || [[Somaria Door]] || See: [[Overlay corruption]]
 
|-
 
|-
| {{HEX|04}} || Unlocking key door || No || [[Somaria Door#West|West supertile somarias]]
+
| {{HEX|04}} || Unlocking key door || No || [[Somaria Door#West|West supertile somarias]] ||
 
|-
 
|-
| {{HEX|05}} || Shutter doors opening/closing || No ||
+
| {{HEX|05}} || Shutter doors opening/closing || No || || Not corruptable, but see [[#Non-increment corruptions|§ Non-increment corruptions]]
 
|-
 
|-
| {{HEX|06}} || ??? || No ||
+
| {{HEX|06}} || ??? || No || ||  
 
|-
 
|-
| {{HEX|07}} || Pit transition || No ||
+
| {{HEX|07}} || Pit transition || No || ||  
 
|-
 
|-
| {{HEX|08}} || Auto stairs that go up south to north || No ||
+
| {{HEX|08}} || Auto stairs that go up south to north || No || ||  
 
|-
 
|-
| {{HEX|09}} || Cracked wall opening || No ||  
+
| {{HEX|09}} || Cracked wall opening || No ||  ||  
 
|-
 
|-
| {{HEX|0A}} || Torch-induced brightening || No ||
+
| {{HEX|0A}} || Torch-induced brightening || No || ||  
 
|-
 
|-
| {{HEX|0B}} || Water drain || No ||
+
| {{HEX|0B}} || Water drain || No || ||  
 
|-
 
|-
| {{HEX|0C}} || Water Flood || No ||
+
| {{HEX|0C}} || Water Flood || No || ||  
 
|-
 
|-
| {{HEX|0D}} || Flood gates || No ||
+
| {{HEX|0D}} || Flood gates || No || ||  
 
|-
 
|-
| {{HEX|0E}} || Spiral staircase transition || No ||
+
| {{HEX|0E}} || Spiral staircase transition || No || ||  
 
|-
 
|-
| {{HEX|0F}} || Entrance transition || No ||
+
| {{HEX|0F}} || Entrance transition || No || ||  
 
|-
 
|-
| {{HEX|10}} || Auto stairs that go up north to south || No ||
+
| {{HEX|10}} || Auto stairs that go up north to south || No || ||  
 
|-
 
|-
| {{HEX|11}} || ??? || ||
+
| {{HEX|11}} || ??? || || ||  
 
|-
 
|-
| {{HEX|12}} || Up straight staircase || No ||
+
| {{HEX|12}} || Up straight staircase || No || ||  
 
|-
 
|-
| {{HEX|13}} || Down straight staircase || No ||
+
| {{HEX|13}} || Down straight staircase || No || ||  
 
|-
 
|-
| {{HEX|14}} || Damaging pit scroll || No ||
+
| {{HEX|14}} || Damaging pit scroll || No || ||  
 
|-
 
|-
| {{HEX|15}} || Telepad || Partially* ||
+
| {{HEX|15}} || Telepad || Partially* || ||  
 
|-
 
|-
| {{HEX|16}} || Peg switch || No ||
+
| {{HEX|16}} || Peg switch || No || ||  
 
|-
 
|-
| {{HEX|17}} || Pressure plate || No ||
+
| {{HEX|17}} || Pressure plate || No || ||  
 
|-
 
|-
| {{HEX|18}} || Crystal fanfare || No ||
+
| {{HEX|18}} || Crystal fanfare || No || ||  
 
|-
 
|-
| {{HEX|19}} || Mirror transition || Yes ||
+
| {{HEX|19}} || Mirror transition || Yes || ||  
 
|-
 
|-
| {{HEX|1A}} || Triforce door || No || Subtile [[Mirror Door]]
+
| {{HEX|1A}} || Triforce door || No || Subtile [[Mirror Door]] ||
 +
|-
 +
! colspan="2" | Main module
 +
! colspan="3" | {{HEX|09}} (Overworld)
 +
|-
 +
! Value
 +
! Process
 +
! Corruptable?
 +
! Corrupted from
 +
! Notes
 +
|-
 +
| {{HEX|00}} || Default state; player in control || No || ||
 +
|-
 +
| {{HEX|01}} || Graphics Load || || ||
 +
|-
 +
| {{HEX|02}} || Graphics Again || ||
 +
|-
 +
| {{HEX|03}} || Map32 to Map16/8 conversion || || ||
 +
|-
 +
| {{HEX|04}} || || || ||
 +
|-
 +
| {{HEX|05}} || || || ||
 +
|-
 +
| {{HEX|06}} || || || ||
 +
|-
 +
| {{HEX|07}} || || || ||
 +
|-
 +
| {{HEX|08}} || || || ||
 +
|-
 +
| {{HEX|09}} || || || ||
 +
|-
 +
| {{HEX|0A}} || || || ||
 +
|-
 +
| {{HEX|0B}} || || || ||
 +
|-
 +
| {{HEX|0C}} || || || ||
 +
|-
 +
| {{HEX|0D}} || || || ||
 +
|-
 +
| {{HEX|0E}} || || || ||
 +
|-
 +
| {{HEX|0F}} || || || ||
 +
|-
 +
| {{HEX|10}} || || || ||
 +
|-
 +
| {{HEX|11}} || || || ||
 +
|-
 +
| {{HEX|12}} || || || ||
 +
|-
 +
| {{HEX|13}} || || || ||
 +
|-
 +
| {{HEX|14}} || || || ||
 +
|-
 +
| {{HEX|15}} || || || ||
 +
|-
 +
| {{HEX|16}} || || || ||
 +
|-
 +
| {{HEX|17}} || || || ||
 +
|-
 +
| {{HEX|18}} || || || ||
 +
|-
 +
| {{HEX|19}} || || || ||
 +
|-
 +
| {{HEX|1A}} || || || ||
 +
|-
 +
| {{HEX|1B}} || || || ||
 +
|-
 +
| {{HEX|1C}} || || || ||
 +
|-
 +
| {{HEX|1D}} || || || ||
 +
|-
 +
| {{HEX|1E}} || || || ||
 +
|-
 +
| {{HEX|1F}} || || || ||
 +
|-
 +
| {{HEX|20}} || || || ||
 +
|-
 +
| {{HEX|21}} || || || ||
 +
|-
 +
| {{HEX|22}} || || || ||
 +
|-
 +
| {{HEX|23}} || Mirror warp || || ||
 +
|-
 +
| {{HEX|24}} || || || ||
 +
|-
 +
| {{HEX|25}} || || || ||
 +
|-
 +
| {{HEX|26}} || || || ||
 +
|-
 +
| {{HEX|27}} || || || ||
 +
|-
 +
| {{HEX|28}} || || || ||
 +
|-
 +
| {{HEX|29}} || || || ||
 +
|-
 +
| {{HEX|2A}} || || || ||
 +
|-
 +
| {{HEX|2B}} || Pedestal || || ||
 +
|-
 +
| {{HEX|2C}} || Mirror bonk || || ||
 +
|-
 +
| {{HEX|2D}} || Flute activation || || ||
 +
|-
 +
| {{HEX|2E}} || Whirlpool || || ||
 +
|-
 +
| {{HEX|2F}} || Whirlpool || || ||
 
|}
 
|}
  
 
<nowiki/>* Telepads can be corrupted only with a YBA, but doing so results in a game crash
 
<nowiki/>* Telepads can be corrupted only with a YBA, but doing so results in a game crash
 +
 +
== Non-increment corruptions ==
 +
=== LSD Blind ===
 +
[[File:LSD Blind.gif|frame|right|LSD Blind with both effects]]
 +
By pressing select, drinking a potion, or opening the map as Blind enters the light in her room, the game may enter submodule {{HEX|05}} of main module {{HEX|0E}}. This will create one or both of the iris wipe used by the Desert prayer and a mesh of vibrant colors replacing most of the game's palettes. The latter only appears to occur on certain frames with the select menu, and it is where the name of this glitch comes from. Using the mirror will begin the mosaic effect, leaving the screen in that filter when it is interrupted. This is caused by the door of the room attempting to close, which sets the submodule directly to {{HEX|05}}. Since the main/sub module combination of {{HEX|0705}} never occurs, this leaves that door open.
 +
 +
=== Jingle Glitch ===
 +
{{Main|Jingle glitch}}
 +
When stairs are used at the same time that shutter doors open or close, the submodule takes on its value of {{HEX|05}} directly. The actual execution of most scripts behaves as normal here, but this change does interrupt some data transfer and coordinate functions, leading to the sprite offset and some data spoofing.

Revision as of 11:49, 9 April 2019

The game mode is, in simplest terms, what the game is currently doing as its set of routines. For the context of this article, we will consider the game mode as the exact combination of 2 different addresses: $10 and $11, the main module and submodule, respectively. An in-depth understanding of these addresses is not necessary for No Major Glitches categories; however, understanding them at a basic level is helpful for routing and executing any transition-corrupting glitch.

Submodule

The submodule is where most of the magic of corruption happens. Fundamentally, all changes to the submodule are incrementations; i.e. nothing is directly set. For example, an overworld mirror transition is submode 0x23. If the mirror were used when the submode was already 0x01, then the result would be submode 0x24. In fact, this is exactly what happens during a mirror wrap.

Submodule values
Main module 0x07 (Underworld)
Value Process Corruptable? Corrupted from Notes
0x00 Default state; player in control No
0x01 Subtile transition Yes
0x02 Supertile transition Yes West subtile somarias
0x03 Star tile hit No Somaria Door See: Overlay corruption
0x04 Unlocking key door No West supertile somarias
0x05 Shutter doors opening/closing No Not corruptable, but see § Non-increment corruptions
0x06  ??? No
0x07 Pit transition No
0x08 Auto stairs that go up south to north No
0x09 Cracked wall opening No
0x0A Torch-induced brightening No
0x0B Water drain No
0x0C Water Flood No
0x0D Flood gates No
0x0E Spiral staircase transition No
0x0F Entrance transition No
0x10 Auto stairs that go up north to south No
0x11  ???
0x12 Up straight staircase No
0x13 Down straight staircase No
0x14 Damaging pit scroll No
0x15 Telepad Partially*
0x16 Peg switch No
0x17 Pressure plate No
0x18 Crystal fanfare No
0x19 Mirror transition Yes
0x1A Triforce door No Subtile Mirror Door
Main module 0x09 (Overworld)
Value Process Corruptable? Corrupted from Notes
0x00 Default state; player in control No
0x01 Graphics Load
0x02 Graphics Again
0x03 Map32 to Map16/8 conversion
0x04
0x05
0x06
0x07
0x08
0x09
0x0A
0x0B
0x0C
0x0D
0x0E
0x0F
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1A
0x1B
0x1C
0x1D
0x1E
0x1F
0x20
0x21
0x22
0x23 Mirror warp
0x24
0x25
0x26
0x27
0x28
0x29
0x2A
0x2B Pedestal
0x2C Mirror bonk
0x2D Flute activation
0x2E Whirlpool
0x2F Whirlpool

* Telepads can be corrupted only with a YBA, but doing so results in a game crash

Non-increment corruptions

LSD Blind

LSD Blind with both effects

By pressing select, drinking a potion, or opening the map as Blind enters the light in her room, the game may enter submodule 0x05 of main module 0x0E. This will create one or both of the iris wipe used by the Desert prayer and a mesh of vibrant colors replacing most of the game's palettes. The latter only appears to occur on certain frames with the select menu, and it is where the name of this glitch comes from. Using the mirror will begin the mosaic effect, leaving the screen in that filter when it is interrupted. This is caused by the door of the room attempting to close, which sets the submodule directly to 0x05. Since the main/sub module combination of 0x0705 never occurs, this leaves that door open.

Jingle Glitch

Main article: Jingle glitch

When stairs are used at the same time that shutter doors open or close, the submodule takes on its value of 0x05 directly. The actual execution of most scripts behaves as normal here, but this change does interrupt some data transfer and coordinate functions, leading to the sprite offset and some data spoofing.