Gameboy Display Information

This post is a work in progress.

General

Display

Image not found!

Uses register WX and WY to set starting position of the window display.

Scroll Registers

Image not found!

Scrolls the background screen horizontally and vertically.

LCD Display RAM

Image not found!

Character RAM

Image not found!

Background Map Data

Window Overlay

Bringing it together

Image not found!

How to read tile patterns for background tile map

  1. Determine which memory range is being used for background map
    • Either $9800 - $98FF or $9C00 - $9FFF.
    • Selected using Bit 3 of LCDC control register
  2. Determine Character Data range
    • Either $8000 - $8FFF (Range 1) or $8800 - $97FF (Range 2)
    • Bit 4 of LCDC control register.
  3. Iterate through bytes in background tile map range that was determined (1)
    • If Range 1 of Character Data is selected
    • interpret byte from background map data as unsigned (0 - 255) and read tiles starting at $8000 * If Range 2 of Character Data is selected
    • interpret byte as signed (-128 - 127) and read tiles staring at $9000

Character Composition

Object Attribute Memory

Image not found!

DMA Transfer

Example routine for using DMA

Image not found!