Main Menu

Glitches

References/Resources

Affiliates

Technical

Search Wiki

Toolbox

Difference between revisions of "Custom tilesets"
 Page | Discussion | View source | History

From Glitch City Laboratories

Jump to: navigation, search
[checked revision][checked revision]
(Created page with "{{incomplete|More detailed explanation wanted and mention of potentially related Super Glitch Cities caused by Pikachu off-screen glitch and certain glitch maps. A more effici...")
 
Line 28: Line 28:
  
 
The tileset graphics pointer points in little endian to a table mapping the graphics for each sub-tile in order (00, 01 (...) etc.) Each entry is 16 bytes, pixels. The desired graphic and is 8x8 pixels and is encoded as if it appeared in ordinary format in VRAM. The player can either make their own graphics or copy them from another Game Boy game.<!--noob question, can you use rgbds to make them?-->
 
The tileset graphics pointer points in little endian to a table mapping the graphics for each sub-tile in order (00, 01 (...) etc.) Each entry is 16 bytes, pixels. The desired graphic and is 8x8 pixels and is encoded as if it appeared in ordinary format in VRAM. The player can either make their own graphics or copy them from another Game Boy game.<!--noob question, can you use rgbds to make them?-->
 +
 +
===Indexed glitch tilesets===
 +
Alternatively, instead of modifying the tileset pointers directly, the player can force an indexed glitch tileset. An example of a arbitrary glitch tileset is 0x18 (Red/Blue) or (0x19), which has a graphics pointer at 0xC8A7 (within or near wOverworldMap) in RAM.
 +
 +
However, this method is restricted (as there seem to be a small number of possible tilesets before the pointer wraps around) and there are not many glitch tilesets with graphics pointers in RAM.
 +
 +
The following Game Genie codes will modify a tileset's index number.
 +
 +
Red/Blue:
 +
 +
670-BFE-2AF
 +
 +
XX0-BDE-195
 +
 +
Yellow:
 +
 +
66d-e8f-2ab
 +
 +
XXd-e6f-195
 +
  
 
{{stub}}
 
{{stub}}
 
[[Category:Arbitrary code execution]]
 
[[Category:Arbitrary code execution]]

Revision as of 08:14, 14 October 2019

This article is incomplete. Please feel free to add any missing information about the subject. It is missing: More detailed explanation wanted and mention of potentially related Super Glitch Cities caused by Pikachu off-screen glitch and certain glitch maps. A more efficient way of applying the tileset immediately wanted (instead of flashing the Trainer card and/or walking around).

Custom tilesets can be created in Pokémon Red, Blue, and Yellow using arbitrary code execution.

In Generation I

Changing the following addresses (may be applied after flashing the Trainer Card and/or walking around) will change the current tileset data values to what the player desires. These can point to RAM, allowing the player to create custom tilesets.

wTilesetBank:: ; d52b
	ds 1

wTilesetBlocksPtr:: ; d52c
; maps blocks (4x4 tiles) to tiles
	ds 2

wTilesetGfxPtr:: ; d52e
	ds 2

wTilesetCollisionPtr:: ; d530
; list of all walkable tiles
	ds 2

wTilesetTalkingOverTiles:: ; d532
	ds 3

The tileset blocks pointer points in little endian to a table of the sub-tiles used in a (4x4 sub-tile) tileset block. For each indexed block, there are 16 values that map the tiles in the block from top-to-bottom, left-to-right.

The tileset graphics pointer points in little endian to a table mapping the graphics for each sub-tile in order (00, 01 (...) etc.) Each entry is 16 bytes, pixels. The desired graphic and is 8x8 pixels and is encoded as if it appeared in ordinary format in VRAM. The player can either make their own graphics or copy them from another Game Boy game.

Indexed glitch tilesets

Alternatively, instead of modifying the tileset pointers directly, the player can force an indexed glitch tileset. An example of a arbitrary glitch tileset is 0x18 (Red/Blue) or (0x19), which has a graphics pointer at 0xC8A7 (within or near wOverworldMap) in RAM.

However, this method is restricted (as there seem to be a small number of possible tilesets before the pointer wraps around) and there are not many glitch tilesets with graphics pointers in RAM.

The following Game Genie codes will modify a tileset's index number.

Red/Blue:

670-BFE-2AF

XX0-BDE-195

Yellow:

66d-e8f-2ab

XXd-e6f-195


This article or section is a stub. You can help Glitch City Laboratories wiki by expanding it. RB 234 fs crop.png