Jump to content

Custom maps: Difference between revisions

no edit summary
>Torchickens
>Torchickens
No edit summary
Line 24:
*D887 (or D886): The start of the wild grass Pokémon data (see [https://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Red/Blue:RAM_map#Wild_Pok.C3.A9mon Datacrystal]). The player needs to be on the same sub-tile stored in D535 (known as the "grass tile"), which is normally 0x52.
*D8A4 (or D8A3): The start of wild water Pokémon data. All maps use sub-tile 0x14 as the water-tile.
*D36C-D36D (or D36B-D36C): The text pointer table location for each NPC. This two byte pointer should point to an address itself a list of two byte pointers in the map's text box index number order (readwhen reading a sign/talking to an NPC this is stored at FF8C).
*D36E-D36F (or D36D-D36F): The "level-script pointer". It is basically a little endian pointer to a script that is run continuously when the menu is closed (which is also an ideal arbitrary code execution method through adjusting item 41 in the expanded inventory). The bank of the script for pointers ranging between 4000-7FFF depends on the currently loaded map at D35E (see [[bp:List of locations by index number (Generation I)|this article on Bulbapedia for each map's bank]]).
*D35E: The currently stored map. Upon changing it, this will control the palette, Town Map name/position on map; however, this will not warp the player automatically (the player can however warp instantly using the previously mentioned 9F or X Attack x18 methods but data like coordinates D361-D362 (-1), coordinate block D363-D364 (-1) may have to be adjusted with it).
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.