« Game Boy / Color Architecture (index)

Game Boy / Color Architecture

Chapter 3: CPU


Table of Contents

  1. The CPU core
    1. The Color effect
  2. Hardware access
  3. Memory available

Instead of placing many off-the-shelf chips on the motherboard, Nintendo opted for a single-chip design to house (and hide) most of the components, including the CPU. This type of design is commonly known as a System-on-Chip (SoC) and, in this case, it was specifically crafted for this console, enabling Nintendo to tailor it to their needs (such as power efficiency, anti-piracy, and extra I/O capabilities). At the same time, the Game Boy's SoC could not be found in any retail catalogue, meaning competitors had a harder time cloning it.

That being said, the SoC used in the Game Boy is referred to as DMG-CPU or Sharp LR35902 , and as the name indicates, it was manufactured by Sharp Corporation. This company, along with Ricoh (the NES' CPU supplier), enjoyed a close relationship with Nintendo.

The CPU core

Inside the DMG-CPU, we find the main processor: a Sharp SM83 . This is just a mix of the popular Zilog Z80 (found in the Sega Master System) and the Intel 8080. It runs at ~4.19 MHz, which is faster than the average 1-MHz CPU, but remember clock speeds can be deceiving.

Image
The DMG-CPU chip on my Game Boy's motherboard.

Now, back when I conducted the analysis of the Master System, I explained the Zilog Z80 is essentially a superset of the Intel 8080. So, what does the SM83 actually retain and omit from those two?

Furthermore, Sharp also added a few new instructions that are not present in either the Z80 or 8080. They optimise certain operations related to the way Nintendo and Sharp arranged the hardware. One example is the new LDH instruction (meaning 'load high' ), which was strategically designed to access the last 256 bytes of the memory map (where addresses start at $FF00) and, most importantly, fits in one fewer byte (making it slightly faster).

The Color effect

Image
Motherboard of the Game Boy Color .

Image
The previous picture with important parts labelled.

Nearly a decade later, following the abandonment of the Virtual Boy and its cutting-edge hardware, a humble successor arrived: the Game Boy Color. Inside it, there's a new SoC named CPU CGB that carries a few additions. However, its SM83 CPU core remains mostly unchanged, one exception is its doubled clock speed (now operating at ~8.38 MHz).

It's hard to think that, after almost ten years, Nintendo still bundled the same CPU core, but such a decision did come with the following advantages:

However, this came at the expense of adopting outdated technology by late-90s standards. You only have to look at the state of the CPU market to notice the capabilities Nintendo was missing out. Though, to be fair, Nintendo did make an attempt with the Virtual Boy hardware.

Hardware access

The SM83 maintains an 8-bit data bus and a 16-bit address bus, allowing up to 64 KB of memory to be addressed. The memory map is mainly composed of the following regions :

Now, don't worry about the unique names - these components are explained throughout this article.

Memory available

Image
Memory architecture of the DMG (original Game Boy). As you can notice, the PPU arbitrates access to VRAM.

Nintendo fitted 8 KB of RAM onto the motherboard, this is for general purpose use (hence the name Work RAM or 'WRAM') . I'm obliged to point out that this is four times the amount included in the NES.

There's an additional 127 B of RAM housed in the SoC. This is called High RAM (HRAM) and provides a small space for data that can be retrieved faster (via the aforementioned LDH instruction). The idea is very similar to the MOS 6502's 'Zero Page' mode , which also optimised performance based on memory location. Apart from this, the High RAM bus is not technically faster than the Work RAM's, but it is prioritised for the CPU. You'll see the significance of this in the 'Graphics' section, where I discuss Direct Memory Access (DMA).

Image
Expanded memory architecture of the CGB (Game Boy Color).

Later on, with the 'Color' revision, Nintendo enlarged WRAM to 32 KB. However, since the CPU's addressing capabilities remained unchanged, it was not possible to connect all the new memory without first overflowing the available address space. To tackle this, Nintendo's engineers resorted to bank switching within the console itself.

While previously found in NES cartridges, the Game Boy Color applies the principle of bank switching to access the extra 24 KB of WRAM. The trick is simple: the last 4 KB of the original 8 KB space can now be swapped across seven different banks. To make this work, the CPU bundles an extra register (called SVBK) acting as the bank switcher, this is what developers must use to examine the extended memory.


Previous: 2. A quick introduction

Next: 4. Graphics


Rodrigo Copetti © 2026 RSS Feed

Switch to modern edition

Home · Writings · Support · About author · About website