Jump to content

Out of bounds: Difference between revisions

m
>Bbbbbbbbba
(→‎In Generation I: Massive cleanup.)
>Map233224
 
(8 intermediate revisions by 2 users not shown)
Line 4:
In [[bp:Generation I|Generation I]], the player's coordinate on the map is represented by two bytes, the X coordinate (horizontal position; east is larger; $D362 in R/B, or $D361 in Yellow) and the Y coordinate (vertical position; south is larger; $D361 in R/B, or $D360 in Yellow). Therefore, the entire "map space" available to the player in theory is a 256*256 square.
 
Since byte operations overflow and underflow normally, the left side and right side are "connected together", and so isare the top side and the bottom side, although the player cannot directly step through the boundary without triggering a (possibly invalid) map connection.
 
==={{Anchor|Freeze tile}} Accessing out of bound areas===
 
If the player tries to directly step out of bounds by [[walking through walls]], the game will try to load the connecting map when the player goes onto a tile with:
 
* X = -1 (0xFF);
* X = map-1 width(0xFF);
* YX = -1map (0xFF)width;
* Y = map-1 height.(0xFF);
*Y = map height.
 
This happens even if there isn't a connecting map in the corresponding direction. In this case the game will try to load map 255 (0xFF), which usually causes a freeze. Therefore, the tiles on those four boundaries are known as "freeze tiles". Since all the conditions are equality checks, the freeze tiles only form a one-tile thick barrier, but it still stops the player from directly stepping out of bounds.
Line 18 ⟶ 19:
'''However, it is possible to indirectly use a walk through walls glitch or cheat to go out of bounds, by using valid map connections.''' Since connecting maps may have different sizes, and may align at different coordinates, what is in bound (but not supposed to be accessible) for one map may become out of bound for the connecting map after making the necessary coordinate adjustments.
 
(Instead of walking through walls, the player can also use a tile corruption glitch to remove the "wall" tiles, for example with [[dokokashira door glitch]] or [[Super Glitch]]. Or they can take a wrong warp to a normally inaccessible area, etc.) <!-- Is it possible to take a wrong warp directly to an OOB area (without ACE)? -->
 
Another way to go out of bounds is to '''directly change the player's coordinate''', for example with an [[expanded items pack]], throughby taking a wrong warp (e.g. through the [[GlitchSafari CityZone (Red/Blue/Yellow)|Glitchexit Cityglitch]]), or using [[arbitrary code execution]].
 
===Properties===
The map connection tiles or "freeze tiles" divide the entire map space into four quadrants (those names are coined by TheZZAZZGlitch):
 
* Mainland quadrant (in bound);
* [[Phantom City|PhantomMainland quadrant]] (X coordinate out ofin bound);
* [[Out of bounds GlitchPhantom City (Generation I)|Glitch cityPhantom quadrant]] (YX coordinate out of bound);
*[[Out Phantomof glitchbounds cityGlitch quadrantCity (bothGeneration XI)|Glitch andcity quadrant]] (Y coordinate out of bound).;
*Phantom glitch city quadrant (both X and Y out of bound).
 
Note that stepping from the "wrong" side onto a map connection tile still triggers the map connection or freeze. Below, we will use the word "go" liberally even though stepping over the boundary doesn't work.
 
Line 37 ⟶ 40:
 
====Technical Explanations====
The properties of the base map in out of bound areas is related to the "tile block map". To save on space, the map data in the ROM is actually not stored as tiles, but as "tile blocks", which are 2*2 blockblocks of tiles. Each tile block is represented by a single byte, whichand they are translated into tiles only when they are displayed on screen. The translation rules depend on the current tileset.
 
The tile block map must be loaded into the RAM, because it may be changed by the player cutting down trees. Furthermore, there is a 3 block "padding" in each direction, so that the player doesn't see invalid data when they stand near the boundary of the in bound area. If the there are any map connections, the "preview" of connecting maps are also loaded into the tile block map. Therefore, each row in the tile block map consists of (w/2 + 6) bytes, where w is the width of the map in tiles.
 
Since the rows are stored consecutively in the tile block buffer, this means going east (w/2 + 6) blocks is equivalent to going south one block, as far as the tile block map is concerned. Therefore going east that far gives the player a Phantom City, shifted by two tiles. The Phantom City has no warps, signs, or NPCs, because their positions are recorded as coordinates, and have nothing to do with the tile block map.
Line 77 ⟶ 80:
 
It is possible to go out of bounds using cheats in Generation III for a few steps, with no noticeable effects :
 
# With a walk through walls cheat code enabled, go inside of the Contest Building in Lilycove City.
# Talk to the leftmost attendant either directly facing her, from the left, or from behind and enter a contest.
# The player will then walk into the black void behind the door, but unlike both previous generations, nothing will happen.
# After the player passes through the dialog, they will enter the contest normally.
 
==In [[bp:Generation IV|Generation IV]]==
{{main|Void}}
 
In [[bp:Generation IV|Generation IV]], the player can step out of bounds using the [[Tweaking]] or [[Elite Four door glitch]] (the Elite Four door glitch only works in Japanese Diamond/Pearl). Going out of bounds is also known as entering the '''void'''.
 
Line 98 ⟶ 104:
 
==In [[bp:Generation VII|Generation VII]]==
In {{SM}}, it is possible to go out of bounds in a Pokémon Center with the [[delivery man out of bounds glitch]], but it is not possible to enter other maps. It is also possible to clip through some NPCs in several areas of the game and go out of bounds, however you cannot save your game once in this position.
 
==Walk through walls GameShark codes==
Line 104 ⟶ 110:
 
Generation I core series:
 
*010138CD
 
Pokémon Gold and Silver:
 
*0108A3CE
*0108A4CE
*0108A5CE
*0108A6CE
 
Pokémon Crystal (thanks Xwingcmdr):
 
*0100FAC2
*0100FBC2
Line 128 ⟶ 137:
#[http://www.youtube.com/watch?v=x7x6z1m8BZQ Action Replay DS: Pokemon Diamond & Pearl Walk Anywhere - Youtube].
#[http://www.youtube.com/watch?v=p3X1wckfPNE Going out of bounds in Pokémon Crystal via a cheat, and getting the "This Game Pak is designed only for use on the Game Boy Color." message - Youtube].
 
[[Category:Generation I glitches]]
[[Category:Generation IV glitches]]
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.