Jump to content

List of maps by index number (Generation I): Difference between revisions

no edit summary
No edit summary
No edit summary
Line 524:
<nowiki>*</nowiki>The [https://github.com/pret/pokered/blob/8349bfd8e646002105dfd6a7f997c26cf0e0624b/home/overworld.asm indoor-outside map handler] does not load map 0xFF itself; rather upon following the warp, the actual map loaded is replaced with wLastMap (D365 in R/B and D365 in Y). This handler is stored as a map in wWarpEntries (D3AF onward (D3AE onward in Yellow) and each entry is stored as Y coordinate, X coordinate, exit index, map (or FF handler)).
 
The coordinates typically pertain to the exit mats in buildings (the way for instance, leaving a Pokémon Center returns the player to the 'last town'). The exit index is a single byte as an index number. It loads relevant data (such as coordinates and wCurrentTileBlockMapViewPointer (D35F-60 in R/B and D35E-F in Y) pertaining to the new map (leftover from wLastMap) the player is going to enter after they leave the old map. For example, exit index 0 can be seen as 'position to place the player in the new map #0', index 1 as 'position to place the player in the new map #1' and so on. This is (the reason why maps can be entered from different locations so the player steps down from different buildings, and the cause of [[Safari Zone exit glitch]] when wLastMap is no longer Fuchsia City and wWarpEntries still pertains to the Safari Zone gate).
 
In order for an indoor-outside map to work, W_CURMAPTILESET (D367 in R/B and D366 in Y) must be greater than 0 (overworld tileset); hence indoor-outside warps will be ignored in maps (such as towns themselves) with overworld tilesets. Using glitches, map 0xFF can be loaded directly as a glitch map (as can any of the 256 map indices), but freezes the game in English Red/Blue/Yellow without locking/changing any attributes which contribute to its freezes (i.e. its map height/width to not be too large, its sound bank to be one of the valid values 02, 08, 1F, 20, W_MAPSCRIPTPTR (D36E-F (D36D-E in Yellow) to point to a script which doesn't freeze the game, etc.).
Cookies help us deliver our services. By using our services, you agree to our use of cookies.