This feature worked using two undocumented registers: PSM (Palette Selection Mode; 0xFF71) and PSW (Palette Selection Window; 0xFF74). PSM is only accessible while the boot ROM is mapped and has two R/W bits (0 and 7) that are used to enable this feature.
-
-
Show this thread
-
The final CGB boot ROM does not write to PSM, making the hardware side of that feature completely inaccessible without glitching. PSW has 8 R/W bits that decide which button combo triggers this mode. It's also accessible during CGB mode, but it's useless without a PSM write.
Show this thread -
The original boot ROM would enable PSM and set a button combo at PSW for (all? some?) DMG games. When a Vblank occurs, the current button combo is compared to PSW, and if so, it triggers an NMI (Who knew the Game Boy had those!) that jumps to 0x80 and remaps the boot ROM.
Show this thread -
On (publicly unavailable) prototype boot ROMs that had PSM support, 0x80 jumped to 0x200 (The second boot ROM "blob") and handled the PSM, using the WRAM and VRAM banks inaccessible to DMG games, while pausing the game. The user can then change the palettes and resume when done.
Show this thread -
It was confirmed by
@mcurrie, using clock glitching, that all hardware functionality indeed works as described, although on "production" Game Boys with the final boot ROMs the jump 0x80 NMI jumps to a seemingly random part of the boot sequence.Show this thread -
The remaining undocumented registers, FF72, FF73 and maybe FF75 as well are probably meant to be used by the PSM code, but they (Together with the two unofficially-named PCMxx registers) remain unnamed. Added bonus: a screenshot of the prototype PSM, from the leaked docs.pic.twitter.com/n06Z8awHK7
Show this thread -
Eventually, PSM was completely replaced by two features: The final boot ROM allows allows the user to select a palette for DMG games out of 12 options using a key combo, and also applies game-specific palettes for 1st party games by their title checksum.
Show this thread -
This feature is also described in a Nintendo patent: https://patents.google.com/patent/US7137894B2/ …pic.twitter.com/uvtVMIIknb
Show this thread
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.