As for the memory map, I thus fell back to areas I knew were correct, ie. the small regions used by games to hot-patch the SGB firmware.
That said, I have identified other buffers that are most certainly free, though I am unsure whether their location is preserved across firmware revisions.
Code: Select all
7E:2800-2FFF BG1Tilemap 7E:3000-3FFF SystemPalettes 7E:4000-4FFF ATFBuffer ; Buffer for the "attribute files" sent by ATR_TRN 7E:5000-67FF Framebuffer1 7E:6800-7FFF Framebuffer2 ; There's double-buffering, apparently 7E:8000-8FFF BorderTilesBuffer1 7E:9000-9FFF BorderTilesBuffer2 ; There are two buffers, one per "half" of the possible BG1 tiles. This appears to store the "user-specified" tiles, not the currently-used ones 7E:A000-A7FF BorderTilemapBuffer 7E:A800-AFFF GBTilemapBuffer ; I'm unsure why this is there, but I don't remember if this gets copied to the BG3 tilemap more than once 7E:C000-C1FF MainShadowOAM 7E:C200-C21F SecondaryShadowOAM 7F:0000-0FFF VRAMBuffer0 7F:1000-1FFF VRAMBuffer1 7F:2000-2FFF VRAMBuffer2 7F:3000-3FFF VRAMBuffer3 7F:4000-4FFF VRAMBuffer4 7F:5000-5FFF VRAMBuffer5 7F:C000-C7FF OAM2TileBuf0 7F:C800-CFFF OAM2TileBuf1 7F:D000-D7FF OAM2TileBuf2 7F:D800-DFFF OAM2TileBuf3 7F:E000-E7FF OAM2TileBuf4 7F:E800-EFFF OAM2TileBuf5 7F:F000-F7FF OAM2TileBuf6 7F:F800-FFFF OAM2TileBuf7
Things of interest:
Unsurprisingly, the SGB runs in Mode 1. BG1 is used for the menus and custom drawings, BG2 for the border, and BG3 for the GB screen.