« Arquitectura de la Game Boy / Color (index)

Arquitectura de la Game Boy / Color

Chapter 3: CPU


Tabla de contenidos

  1. El núcleo de la CPU
    1. El efecto Color
  2. Acceso al hardware
  3. Memoria disponible

En lugar de colocar múltiples chips estándares en la placa base, Nintendo optó por un diseño de chip único para alojar (y ocultar) la mayor parte de los componentes, incluyendo la CPU. Este tipo de diseño se denomina comúnmente System on a Chip (SoC) y, en este caso, fue desarrollado específicamente para esta consola, lo que permitió a Nintendo adaptarlo a sus necesidades (eficiencia energética, antipiratería y capacidades de E/S adicionales, entre otras). Además, el SoC de la Game Boy no aparecía en ningún catálogo comercial, lo que complicaba sobremanera la tarea a quienes quisieran copiarlo.

Dicho esto, el SoC de la Game Boy se conoce como DMG-CPU o Sharp LR35902 y, como su nombre indica, fue fabricado por Sharp Corporation. Esta empresa, junto con Ricoh (el proveedor de CPU de la NES), mantenía una estrecha relación con Nintendo.

El núcleo de la CPU

Dentro del DMG-CPU se encuentra el procesador principal: un Sharp SM83 , una combinación del popular Zilog Z80 (presente en la Sega Master System) y el Intel 8080. Funciona a ~4,19 MHz, más rápido que la CPU de ~1 MHz de la NES, aunque recuerda que las velocidades de reloj pueden ser engañosas.

Image
El chip DMG-CPU en la placa base de mi Game Boy.

Cuando analicé la Master System, expliqué que el Z80 es en esencia un superconjunto del 8080. Entonces, ¿qué retiene y qué omite el SM83 de ambos?

Sharp también incorporó algunas instrucciones propias, ausentes tanto en el Z80 como en el 8080, que optimizan ciertas operaciones relacionadas con la forma en que Nintendo y Sharp organizaron el hardware. Un ejemplo es la nueva instrucción LDH (del inglés 'load high' ), diseñada específicamente para acceder a los últimos 256 bytes del mapa de memoria (donde las direcciones comienzan en $FF00) y, lo más importante, ocupa un byte menos (lo que la hace ligeramente más rápida).

El efecto Color

Image
Placa base de la Game Boy Color .

Image
La misma imagen con las partes importantes marcadas.

Casi una década después, tras el abandono de la Virtual Boy y su hardware de vanguardia, llegó una humilde sucesora: la Game Boy Color. Dentro de ella hay un nuevo SoC denominado CPU CGB que incorpora varias novedades. Sin embargo, su núcleo de CPU SM83 permanece prácticamente sin cambios, salvo por su velocidad de reloj duplicada (ahora a ~8,38 MHz).

Cuesta pensar que, tras casi una década, Nintendo mantuviera el mismo núcleo de CPU, pero esta decisión conllevaba las siguientes ventajas:

Eso sí, todo esto a costa de adoptar tecnología obsoleta para los estándares de finales de los 90. Basta con echar un vistazo al estado del mercado de CPU para apreciar las capacidades de las que Nintendo prescindía. Aunque, en su descargo, Nintendo sí lo intentó con el hardware de la Virtual Boy.

Acceso al hardware

El SM83 mantiene un bus de datos de 8 bits y un bus de direcciones de 16 bits, lo que permite direccionar hasta 64 KB de memoria. El mapa de memoria se compone principalmente de las siguientes regiones :

No te preocupes por los nombres nuevos: estos componentes se explican a lo largo del artículo.

Memoria disponible

Image
Arquitectura de memoria del DMG (Game Boy original). La PPU arbitra el acceso a la VRAM.

Nintendo instaló 8 KB de RAM en la placa base, destinada a uso general (de ahí el nombre Work RAM o 'WRAM') . Vale la pena mencionar que eso supone cuatro veces la cantidad incluida en la NES.

Hay 127 B adicionales de RAM dentro del SoC. Se denomina High RAM (HRAM) y ofrece un pequeño espacio para datos que pueden recuperarse más rápido (mediante la ya mencionada instrucción LDH). La idea es muy similar al modo 'Zero Page' del MOS 6502 , que también optimizaba el rendimiento en función de la ubicación en memoria. Dicho esto, el bus de la High RAM no es técnicamente más rápido que el de la Work RAM, pero tiene prioridad para la CPU. Verás la importancia de esto en la sección 'Gráficos', cuando hable del Acceso Directo a Memoria (DMA).

Image
Arquitectura de memoria ampliada del CGB (Game Boy Color).

Más adelante, con la variante Color, Nintendo amplió la WRAM a 32 KB. Sin embargo, dado que las capacidades de direccionamiento de la CPU no habían cambiado, integrar toda esa nueva memoria sin agotar el espacio de direcciones no era tarea sencilla. Para resolverlo, los ingenieros de Nintendo recurrieron al cambio de bancos dentro de la propia consola.

Aunque anteriormente se encontraba en los cartuchos de NES, la Game Boy Color aplica el mismo principio para acceder a los 24 KB extra de WRAM. El truco es sencillo: los últimos 4 KB del espacio original de 8 KB pueden intercambiarse entre siete bancos distintos. Para que esto funcione, la CPU incluye un registro adicional (llamado SVBK) que actúa como selector de banco, y es lo que los desarrolladores deben usar para acceder a la memoria extendida.


Previous: 2. Una introducción rápida

Next: 4. Gráficos


Rodrigo Copetti © 2026 RSS Feed

Ir a la edición moderna

Inicio · Escritos · Soporte · Acerca del autor · Acerca del sitio web