A Link to the Past
Somaria Transition Corruption
Somaria transition corruptions or STCs are a class of powerful transition glitches performed by pushing a somaria block into a door transition.
Door types
STCs aren't possible for all door types. The sections below are a reference for which door types can be corrupted with somaria.
North doors
| Door type | Glitchable? |
|---|---|
| Supertile normal | y |
| Supertile auto | y |
| Subtile normal | y |
| Subtile auto | y |
| Subtile auto→normal | y |
South doors
| Door type | Glitchable? |
|---|---|
| Supertile normal | y |
| Supertile auto | n |
| Subtile normal | y |
| Subtile auto | n |
| Subtile auto→normal | n |
East doors
| Door type | Glitchable? |
|---|---|
| Supertile normal | y |
| Supertile auto | n |
| Subtile normal | y |
| Subtile auto | n |
| Subtile auto→normal | y |
West doors
| Door type | Glitchable? |
|---|---|
| Supertile normal | y |
| Supertile auto | y |
| Subtile normal | y |
| Subtile auto | y |
| Subtile auto→normal | y |
Effects
All STCs cause data spoofing
North, South, and East STCs
In addition to data spoofing, STCs in these directions cause overlay corruption.
West STCs
Subtile
Supertile
Supertile west STCs are different from all others, namely because they set the game submodule to 0x04, running code related to opening and unlocking doors. They also overwrite data into the next room, but do not spoof new room data (such as chest items or pit flags). It is not possible to chain data swaps with west STCs.
Technical details
This section goes into very technical detail. The information is presented with the assumption that the reader has at least basic knowledge of hexadecimal, bitwise operations, SNES memory, and/or SNES assembly.
West supertile STCs cannot be properly explained without diving into the technical details of the memory a little bit. There are two words (2 bytes each) that we can control to affect different results.
$0690[0x2]- This address is essentially a timer for door animations.$068E[0x2]- This address holds information related to the last door Link attempted to unlock.
Address $0690 is the more critical value of the glitch. When the door script is activated by the glitch, this address begins counting up until it reaches a value of 0x0010. If its value is between 0x0000 and 0x000F, the script will execute cleanly, and control of Link will be regained almost immediately. However, if the value is any higher (including the target value of 0x0010 itself), the game will count up until the value wraps around from 0xFFFF to 0x0000. Essentially this is an 18 minute hardlock.
Fortunately, this value behaves in predictable ways that are controllable RTA.
- After a hard reset, the value is
0x0000. - Opening a locked door (big or small), solving a puzzle to open a shutter door, or opening a bombwall in the underworld will settle the value at
0x0010. - Touching a big key door without the big key will set the value to
0x0000. - Transitioning through a subtile door will settle the value at
0x0004unless:- If there are shutter trap doors in the same supertile as a subtile transition, the value will settle at
0x0010.
- If there are shutter trap doors in the same supertile as a subtile transition, the value will settle at
- Transitioning through a supertile door will not change the value unless:
- If the side of the room Link enters from has a shutter door (whether Link is using it or not), the value will settle at
0x0010.
- If the side of the room Link enters from has a shutter door (whether Link is using it or not), the value will settle at
- Using the mirror on the same frame a locked door is interacted with while having a key will set the value to
0x0000. - Using the mirror will otherwise not change the value.
- Opening any of the big doors of Hyrule Castle or Sanctuary will settle the value at
0x0003. - Regardless of what's underneath, lifting large rocks and breaking bonk rocks piles will increment the value by 1.
- Opening the grave to the sewers, the grave to king's tomb, or solving the hammer pegs puzzle for the first time will increment the value by 1.
Address $068E controls which door will be opened when the script executes. While the distinction is ultimately unimportant, each door has four possible values corresponding to it, based on the side of the door Link is on and whether he's facing the door or perpendicular to it. This value also behaves in a way that can be controlled RTA.
- Slashing any closed door (locked doors, shutter doors, bomb doors) will set the value to one that corresponds to the door.
- Opening a locked door or bomb wall will set the value to one that corresponds to the door.
- Attempting to open a big key door without the key will set the value to one that corresponds to the door, as if it were opened.
- Opening or closing a shutter door will settle the value to
0x0016. - All subtile transitions will settle the value to
0x0016. - Supertile transitions will leave the value alone unless:
- If the side of the room Link enters from has a shutter door (whether Link is using it or not), the value will be set to
0x0016.
- If the side of the room Link enters from has a shutter door (whether Link is using it or not), the value will be set to
- Using the mirror will not change the value.
- Using staircases will not change the value.
There are some unusual consequences with the doors that get opened by this glitch:
- Subtile shutter doors will stay opened permanently, even after mirroring or saving and quitting. They also will not close behind Link when they're used. If something else prompts the shutter door to open or close, it will revert to normal behavior.
- If the other side of a subtile shutter door is a normal door (for example, the shutter doors in the Misery Mire big chest supertile), it will become an auto door while the shutter door is stuck open.
- If the current value of
$068Edoesn't correspond to an existing door in the supertile, a glitched door that cannot be reached may appear in the northwest corner of the supertile. If out-of-bounds cheats are used to travel through the door, it usually leads to a black screen that may or may not resolve. In some supertiles (e.g. Sahasrahla's house), however, it immediately takes Link to the overworld.
