- Because the SGB is synchronized to the SNES CPU, the gameboy system clock is directly chained to the SNES system clock. In result, the gameboy CPU, video controller, timers, and sound frequencies will be all operated approx 2.4% faster as by normal gameboys. Basically, this should be no problem, and the game will just run a little bit faster.
- Joypad press. Table 1: Interrupts in the GameBoy. In the case of the vertical blank, a wire is threaded into the bottom of the LCD; as soon as the GPU has finished scanning all the LCD lines and runs into the bottom of the screen, the interrupt fires and the CPU jumps to 0040, executing the blanking ISR.
- DMG Main Board Schematic & Circuit (+Arduinoboy) (Page 1) - Nintendo Handhelds - Forums - ChipMusic.org - chipmusic.org is an online community in respect and relation to chip music, art and its parallels.
- Gameboy Dmg 01 Backlight Kit
- Gameboy Dmg Cpu Internals Software
- Gameboy Dmg Cpu Internals Tool
- Gameboy Dmg Cpu Internals 1
- Gameboy Dmg Cpu Internals Windows 10
Gameboy Dmg 01 Backlight Kit
This banner text can have markup. Home; web; books; video; audio; software; images; Toggle navigation.
Game Boy (DMG)
ID | Mainboard | CPU (U1) | VRAM (U2) | WRAM (U3) | LCD board | Power board | Jack board | Photos |
---|---|---|---|---|---|---|---|---|
@hej.luxom | DMG-CPU-01 | DMG-CPU 8/1989 | LH5164LN-10 49/1988 | LH5164LN-10 49/1988 | DMG-LCD-01 | Type A1 | DMG JACK 01 | |
gekkio | DMG-CPU-01 | DMG-CPU 7/1989 | LH5164LN-10 48/1988 | LH5164LN-10 48/1988 | DMG-LCD-01 LCD panel: Feb/1989 | 1989 | DMG JACK 01 | |
gekkio | DMG-CPU-01 | DMG-CPU 9/1989 | LH5164LN-10 4/1989 | LH5164LN-10 4/1989 | DMG-LCD-01 LCD panel: Feb/1989 | 1989 | DMG JACK 01 | |
gekkio | DMG-CPU-01 | DMG-CPU 13/1989 | LH5164LN-10 13/1989 | LH5164LN-10 13/1989 | DMG-LCD-01 | Type A1 | DMG JACK 02 | |
gekkio | DMG-CPU-01 | DMG-CPU 11/1989 | LH5164LN-10 3/1989 | LH5164LN-10 3/1989 | DMG-LCD-01 LCD panel: Mar/1990 | 1989 | DMG JACK 01 | |
gekkio | DMG-CPU-01 | Sharp | ||||||
gekkio | DMG-CPU-01 | DMG-CPU A 22/1989 | LH5264N4 21/1989 | LH5264N4 21/1989 | DMG-LCD-03 LCD panel: May/1989 | 1989 | DMG JACK 02 | |
gekkio | DMG-CPU-02 | DMG-CPU A 22/1989 | LH5264N4 22/1989 | LH5264N4 22/1989 | DMG-LCD-03 LCD panel: May/1989 | 1989 | DMG JACK 02 | |
gekkio | DMG-CPU-02 | DMG-CPU A 37/1989 | LH5264TN-L 37/1989 | LH5264TN-L 37/1989 | DMG-LCD-05 LCD panel: Aug/1989 | 1989 | DMG JACK 02 | |
gekkio | DMG-CPU-02 | Sharp | ||||||
Jacob Tender | DMG-CPU-03 | DMG-CPU A 7/1990 | LH5160N-10L 7/1990 | LH5160N-10L 7/1990 | DMG-LCD-05 | Type A2 | DMG JACK 03 | |
gekkio | DMG-CPU-03 | Sharp | ||||||
gekkio | DMG-CPU-04 | DMG-CPU B 23/1990 | LH5264N 22/1990 | LH5264N 22/1990 | DMG-LCD-05 | Type A2 | DMG JACK 03 | |
gekkio | DMG-CPU-04 | DMG-CPU B 26/1990 | LH5264N 24/1990 | LH5264N 24/1990 | DMG-LCD-05 | Type A2 | DMG JACK 03 | |
gekkio | DMG-CPU-04 | Sharp | ||||||
gekkio | DMG-CPU-04 | DMG-CPU B 37/1990 | LH5264TN-L 38/1990 | LH5264TN-L 38/1990 | DMG-LCD-06 LCD panel: Sep/1990 | Aug/1990 | DMG JACK 03 | |
gekkio | DMG-CPU-04 | DMG-CPU B 38/1990 | LH5164N-10L 43/1990 | LH5164N-10L 43/1990 | DMG-LCD-06 | Type A2 | DMG JACK 03 | |
gekkio | DMG-CPU-05 | Sharp | ||||||
mattcurrie | DMG-CPU-06 | DMG-CPU B 7/1992 | LH5264N4 4/1992 | LH5264N4 4/1992 | DMG-LCD-06 | Type A3 | DMG JACK 03 | |
gekkio | DMG-CPU-06 | DMG-CPU B 46/1991 | LH5264N4 9/1992 | LH5264N4 9/1992 | DMG-LCD-06 LCD panel: Mar/1992 | Feb/1991 | DMG JACK 03 | |
terinjokes | DMG-CPU-06 | DMG-CPU B 23/1992 | LH5264N4T 23/1992 | LH5264N4T 22/1992 | DMG-LCD-06 | Type A3 | DMG JACK 03 | |
ISSOtm | DMG-CPU-03 | DMG-CPU B 24/1992 | LH5264TN-TL 20/1992 | LH5264TN-TL 20/1992 | DMG-LCD-06 | Type A3 | DMG JACK 03 | |
gekkio | DMG-CPU-06 | Sharp | ||||||
gekkio | DMG-CPU-06 | DMG-CPU B 6/1994 | LH52A64N-TL 6/1994 | LH5264N4T 6/1994 | DMG-LCD-06 LCD panel: Jan/1994 | Jan/1993 | DMG JACK 03 | |
gekkio | DMG-CPU-06 | Sharp | ||||||
gekkio | DMG-CPU-08 | DMG-CPU B (blob) | blob | blob | DMG-LCD-06 | Type C | DMG JACK 03 | |
gekkio | DMG-CPU-06 | Sharp | ||||||
Jacob Tender | DMG-CPU-07 | DMG-CPU B (blob) | blob | blob | DMG-LCD-06 | Type C | DMG JACK 03 | |
gekkio | DMG-CPU-07 | |||||||
gekkio | DMG-CPU-06 | Sharp | ||||||
@hej.luxom | DMG-CPU-08 | DMG-CPU C (blob) | blob | blob | DMG-LCD-06 | Type D | DMG JACK 03 | |
gekkio | DMG-CPU-08 | |||||||
gekkio | DMG-CPU-07 | |||||||
gekkio | DMG-CPU-07 | DMG-CPU B (blob) | blob | blob | DMG-LCD-06 | Type C | DMG JACK 03 | |
gekkio | DMG-CPU-08 | DMG-CPU C (blob) | blob | blob | DMG-LCD-06 | Type D | DMG JACK 03 | |
mattcurrie | DMG-CPU-08 | DMG-CPU C (blob) | blob | blob | DMG-LCD-06 | Type D | DMG JACK 03 | |
gekkio | DMG-CPU-08 | DMG-CPU C (blob) | blob | blob | DMG-LCD-06 LCD panel: Mar/1997 | Mar/1996 | DMG JACK 03 | |
gekkio | DMG-CPU-08 | DMG-CPU C (blob) | blob | blob | DMG-LCD-06 LCD panel: May/1997 | Apr/1996 | DMG JACK 03 | |
gekkio | DMG-CPU-08 | DMG-CPU C (blob) | blob | blob | DMG-LCD-06 LCD panel: Aug/1997 | Aug/1996 | DMG JACK 03 | |
gekkio | DMG-CPU-06 | DMG-CPU C 35/1998 | LH52A64N-L 17/1998 | LH52A64N-L 17/1998 | DMG-LCD-06 LCD panel: Mar/1999 | Sep/1998 | DMG JACK 03 | |
gekkio | DMG-CPU-04 | DMG-CPU B 36/1990 | LH5264TN-L 36/1990 | LH5264TN-L 36/1990 | DMG-LCD-06 LCD panel: Oct/1990 | Sep/1990 | DMG JACK 03 | |
gekkio | DMG-CPU-01 | DMG-CPU 13/1989 | LH5164LN-10 11/1989 | LH5164LN-10 11/1989 | DMG-LCD-05 LCD panel: Apr/1990 | 1989 | DMG JACK 02 | |
gekkio | DMG-CPU-08 | DMG-CPU C (blob) | blob | blob | DMG-LCD-06 LCD panel: Jul/1991 | Aug/1996 | DMG JACK 03 |
Data dumps
UTF-8 encoded CSVThis repo contains an annotated overlay for the Nintendo Game Boy DMG-CPU-B chip die and the extracted schematics.
This was done manually with only a few automated checks so THERE'S A HIGH RISK OF ERRORS. I'm in no way responsible if you made someone's life depend on this and it fucked up.
What is done:
- All APU logic.
- All PPU logic.
- All I/O and timer logic.
- All DMA logic.
- All interrupt logic.
- Various stuff used for testing/debugging.
What isn't done:
- CPU. Why: it's a standalone core which doesn't use the standard cell topology. Visibility isn't good enough and it's too complex for me, sorry.
- Clock complements. Why: They don't affect functionality. Only required because the DFF cells need a clock and its complement to work.
- Some analog parts. Why: Poor visibility, lazyness.
- Some cell groups related to embedded ROM and RAM blocks. Why: They don't affect functionality.
Just read the schematics :)
If you want to use the overlay:
- Get Inkscape
- Download the die picture from Digshadow
- Resize it to 8000px wide if you're using Inkscape 0.92.2, otherwise it may freeze
- Download the SVG overlay
- Open the overlay in Inkscape, import the die picture (chose link, not embed), stick it under the overlay layers, align it and lock it in place
- Have 'fun'
Nets named FROM_CPU*
and TO_CPU
are connected to the CPU core but are not clearly identified. Many of them are trigger and acknowledge signals for interrupts. Others might be state indicators like the Z80 /M1 or HALT.
I'm not sure what the UNK2 and UNK3 cells are. UNK2 might be an AND or OR with higher output power. UNK3 looks like an AND or OR next to an inverter, maybe something like (A&B)|C.
Some DFF clock polarities are unclear.
The parallel-in-serial-out shift registers used for the serial link and video rendering are made of chains of set-reset-capable DFFs.Their loading logic require a lot of cells and seem complex, but in the end it forms something quite simple.
Rather than using multiplexers, many internal busses are instead tri-state capable. The 'TRIBUFFER' cells are extensively used for this.
- Bit 4 and 5 of FF26 (NR52) can be written to.
- Bit 4 sets NET03 (APU test mode ?).
- Bit 5 allows software clocking of the CH1 sweep timer when NET03 is high.
- Bit 0 of FF23 (NR44) can be read. It relates to the CH4 prescaler.
- The current wave RAM address can be read in bits 4~0 of FF1C (NR32) when NET03 is high.
- The whole chip can be made a slave for an external CPU by using the test pins. This was already discovered by @Gekkio and maybe others.
- Probably other things I missed...
- Why ?
It is well known by emulator authors that the Game Boy is full of quirks. Knowing exactly how and when signals change can help reaching perfect accuracy.

- Why are the schematics not in an editable format ?
Because I used proprietary CAD software for speed and I didn't finish making the converter for the KiCAD format.I hope to be able to do that soon.
- What's up with the cell labels ?
They're random, unique names. The first letter corresponds to the column they're in on the silicon die.
- Many small lines aren't traced, why ?
I didn't bother tracing branching lines when their end point was near enough to see it on my 15' screen at the zoom level I used. They're reported on the schematic, of course.
- Why are there copies of logic blocks providing identical functions ?
It's a way to trade off die space for speed, it seems weird but it's useful. Look up 'logic duplication'.
Gameboy Dmg Cpu Internals Software
- I found a mistake, how can I report it ?
Until I get the files exported in KiCAD format, please open an issue and describe what's wrong (cell name, net name, position on die, ...).
- How did you know which cells did what ?
I had to take guesses. Inputs and outputs are easily identified and the cell size gives some clues. When connections are made on the schematic, it becomes quickly obvious when a guess is wrong.Check out the cell zoo.
Gameboy Dmg Cpu Internals Tool
- How long did it take ?
Gameboy Dmg Cpu Internals 1
Identifying the cells, isolating them, tracing the connections and the schematics took 191 hours.
Gameboy Dmg Cpu Internals Windows 10
If you find it worth it, I accept donations through Paypal: paypal.me/furrtek