From 6fc64ff827059b663e66c80c88114c71c2fad617 Mon Sep 17 00:00:00 2001 From: Estus Date: Wed, 11 Jun 2025 10:53:32 -0600 Subject: [PATCH] Fill in CGB register holes in the Memory_Map page I was implementing BESS support and needed a quick reference for which registers are mapped or unmapped, DMG+ or CGB+, and so on. And luckily the specification called out KEY0 explicitly or I would have missed these four registers. I'm adding them to the main MMIO table for that reason, as I believe it should be reliable for the use case of quickly determining used and unused addresses. I did not include undocumented CGB registers because they can be treated as though they are unused. I also did not add a documentation section for KEY0 even though it stands out as not having a link. If someone were to write up a description of that register they could come back and wire up the link here. In the meantime it would also be reasonable to link the whole box to KEY1, link to the CGB registers page, or link to the relevant section of the Power Up Sequence page. Whichever you feel is most appropriate. --- src/Memory_Map.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Memory_Map.md b/src/Memory_Map.md index ad37b48c..4457cb53 100644 --- a/src/Memory_Map.md +++ b/src/Memory_Map.md @@ -30,10 +30,13 @@ $FF0F | | DMG | [Interrupts](<#FF0F — IF: Interrupt flag> $FF10 | $FF26 | DMG | [Audio](<#Audio Registers>) $FF30 | $FF3F | DMG | [Wave pattern](<#FF30–FF3F — Wave pattern RAM>) $FF40 | $FF4B | DMG | LCD [Control](<#FF40 — LCDC: LCD control>), [Status](<#FF41 — STAT: LCD status>), [Position, Scrolling](<#LCD Position and Scrolling>), and [Palettes](<#Palettes>) +$FF4C | $FF4D | CGB | KEY0 and [KEY1](<#FF4D — KEY1 (CGB Mode only): Prepare speed switch>) $FF4F | | CGB | [VRAM Bank Select](<#FF4F — VBK (CGB Mode only): VRAM bank>) $FF50 | | DMG | Set to non-zero to disable boot ROM $FF51 | $FF55 | CGB | [VRAM DMA](<#LCD VRAM DMA Transfers>) +$FF56 | | CGB | [IR port](<#FF56 — RP (CGB Mode only): Infrared communications port>) $FF68 | $FF6B | CGB | [BG / OBJ Palettes](<#LCD Color Palettes (CGB only)>) +$FF6C | | CGB | [Object priority mode](<#FF6C — OPRI (CGB Mode only): Object priority mode>) $FF70 | | CGB | [WRAM Bank Select](<#FF70 — SVBK (CGB Mode only): WRAM bank>) ## VRAM memory map