Jump to content

Game freeze: Difference between revisions

>Sherkel
(Variations)
 
(21 intermediate revisions by 6 users not shown)
Line 1:
[[File:Bar freeze.png|frame|right|A bar freeze in Pokémon Red/Blue, caused by stepping into the 'grass' right of Pallet Town.]]
A '''game freeze''' refers to the instance of where a game's controls lock up disallowing the player to play the game normally, but every other aspect of the game functions properly. Through different [[glitch|glitches]], different varieties of game freezes have been found. Sometimes music may be frozen on the current note but sometimes the music will stop completely. On rare occasions, the music will still be playing.
==Lockup==
A lockup is simply when no controls have any effect. Music may still be playing. This occurs in the Red/Blue variation of [[Wild appeared!]].
 
==Types of game freezes==
==Barfreeze==
===Softlock (Lock-up)===
This is a kind of game freeze often encountered when using the [[Cooltrainer move]]. It fills the screen up with mostly full vertical bars, some interrupted with random letters and numbers.
A softlock, or lock-up, simply refers to when the player is stuck in a loop, either with the controls not responding or, for example, being infinitely forced to do an action. Music may still be playing.
 
Examples:
* When a [[Scrolling beige box|óË e Ái]] or similar Pokémon in Generation III is sent out.
* When the player triggers a [[glitch battle system]] in {{RBY}} and has a non-usable item in their first slot.
 
===Bar freeze===
ThisA '''bar freeze''', also known as a '''rst $38''' freeze, is a common kind of game freeze oftenin encounteredGame whenBoy usinggames the(with [[CooltrainerPokémon move]]games, best known in Generation I but also happening in Generation II). It fills the screen up with mostly full vertical bars, some interrupted with seemingly random letters and numbers.
 
Example: In Generation I, a bar freeze is often encountered when using a [[walk through walls]] glitch to [[Freeze tile|step out of the bounds of the map]], e.g. when stepping into the first column of "grass" tiles east of Pallet Town.
 
==== Technical details ====
A bar freeze happens when the game tries executes a 0xFF byte, which is interpreted as a <code>rst $38</code> instruction (a shorter and faster equivalent of <code>call $0038</code>), but the content of the ROM address $0038 is also a 0xFF byte (which is the case for all Generation I and II games). This will cause the game to repeatedly call $0038, i.e. jump to $0038 and push $0039 onto the stack as the return address. This results in a stack overflow quickly, and the pattern "00 39" ends up being written to other accessible regions of the memory, causing memory corruption.<ref>[https://archives.glitchcity.info/forums/board-107/thread-6855/page-0.html#msg194169 Re: PokéWTrainer freeze] by TheZZAZZGlitch, the Glitch City Laboratories forum</ref>
 
In most games, the stack begins at the top of the WRAM ($DFFF) and grows downwards (i.e. the address decreases), so the entire WRAM is corrupted first, followed by the SRAM (which may be locked, and is also subject to banking) and the VRAM (which is subject to [[VRAM inaccessibility]]). To complicate matters, the VBlank interrupt works normally in this process, which may copy some of the corrupted WRAM data to the VRAM, or otherwise use the corrupted WRAM data (e.g. try to play sound from a [[glitch sound bank]]). Sometimes, the screen will show a bar freeze pattern for a split second before turning blank<ref>For an example, see the video [https://www.youtube.com/watch?v=xuEsiyyYwVk&t=522s Pokémon R/B/Y: What's "out of bounds"? (at 8:42)] by TheZZAZZGlitch.</ref>.
 
In {{RGBY}} (Japanese), the <code>rst $38</code> instead points to a <code>jp F080</code> (Echo RAM for D080), and [https://www.youtube.com/watch?v=uqXU3MMAhOc arbitrary code execution has been verified]. This was changed to point to another <code>rst $38</code> like in the English versions from Rev 1 of Japanese Pokémon Yellow and up. In every other known Japanese revision of Red/Green/Blue it is <code>jp F080</code>.
 
===Black screen freeze===
When the game freezes this way, it will switch to a black screen. Music often freezes on the note it was playing when this freeze happens.
 
Example: Can appear when the player uses returns to the overworld after using the Explorer Kit in an invalid area through accessing a '[[void]]' in [[bp:Generation IV|Generation IV]]. This phenomenon is also referred to as a 'BSoD' (Black Screen of Death) in the [[Hall of Origin (community)|Hall of Origin]] community.
 
===White screen freeze===
When the game freezes this way, it will switch to a white screen. Music often stops completely when this freeze happens.
 
Example: When the player uses the [[dokokashira door glitch]] in Pokémon Red/Green to enter a location which does not exist.
 
== References ==
<references />
 
[[Category:Terminology]]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.