TILE PLACEMENT: Tile placement is stored in scans; the first scan is the data for every eighth line, starting with the first. The second scan starts at the second line, the third starts at the third, and so on. The locations of each scan is listed below: 1. 0x160200 - 0x1629FF 2. 0x162A00 - 0x1651FF 3. 0x165200 - 0x1679FF 4. 0x168200 - 0x16A9FF 5. 0x16AA00 - 0x16D1FF 6. 0x16D200 - 0x16F9FF 7. 0x170200 - 0x1729FF 8. 0x172A00 - 0x1751FF I'm pretty sure the data gaps between some lines is irrelevant. TILESETS/PALETTES: 0x17AA00: Global tileset data. Each byte represents a tileset/palette entry for a block of 8x4 tiles, starting at the top-left corner of the map. The first five bits of each entry is the tileset, and the last three is the palette, so you have 32 global tilesets, and 8 palettes. One 8x4 block is invisible to another block that has a different value of the first five bits. 0x175200: Local tileset data. Each byte represents a vertical column of four tiles, with two bits specifying which of four local tilesets to use for each tile. Bottom tile -> 00 01 00 11 <- Top tile This example would set the top tile to use tileset 4, and the second from the bottom to use tileset 2.