The Ultimate Game Boy Talk (33c3)

media.ccc.de2 minutes read

Michael Steil presents the Ultimate Gameboy talk, covering the Gameboy's hardware details, including its success, competition, specifications, and system architecture, as well as discussing games, memory structure, background tiles, sprites, and PPU modes. The talk delves into the Gameboy's technical aspects such as clock speeds, memory banks, boot ROM functionality, sound controller, and tile configurations, providing a comprehensive overview of the iconic handheld console's inner workings.

Insights

  • The Gameboy, with 118 million units sold and 1600 games produced, dominated its competitors due to its long battery life and simplicity of design, featuring various models like the Gameboy Pocket and Gameboy Color.
  • The intricate hardware details of the Gameboy, including its CPU, memory structure, and PPU operation, reveal a complex system with specific limitations on sprite display, clock cycles, and modes that require precise coordination between the CPU and PPU for optimal performance.

Get key ideas from YouTube videos. It’s free

Recent questions

  • What are some popular Gameboy games?

    Megaman 2, Mario Land, Mystic Quest

Related videos

Summary

00:00

"Ultimate Gameboy Talk: Hardware, History, Success"

  • The speaker is excited about the Gameboy talk and shares his favorite games: Megaman 2, Mario Land, and Mystic Quest.
  • The speaker introduces Michael Steil, known for his Ultimate Commodore 64 talk, as the speaker for the Ultimate Gameboy talk.
  • Michael Steil aims to cover all hardware details of the Gameboy in a 60-minute talk with over 800 individual slides.
  • The Gameboy is highlighted for its massive success, with 118 million Gameboy and Gameboy Color units sold, producing 1600 official games from 1989 to 2003.
  • The Gameboy's competition, like the Lynx and Game Gear, had color screens but poor battery life compared to the Gameboy's 15-30 hours.
  • Various Gameboy models are discussed, including the original Gameboy, Gameboy Pocket, Gameboy Light, Gameboy Color, and Gameboy Advance series.
  • To play Gameboy games on a TV, options include using a Super Nintendo with a Super Gameboy or a Gameboy Player for the Nintendo GameCube.
  • The Gameboy's specifications include a 1 MHz 8-bit CPU, 8 KB of RAM, a resolution of 160x144, and support for four simultaneous colors.
  • The Gameboy's CPU, the Sharp LR35902, is compared to the Intel 8080 and Zilog Z80, featuring a similar core architecture to the 8080.
  • The Gameboy's CPU includes registers like the accumulator, flags, and PC, with instructions for load/store, arithmetic, control flow, and more, but lacks some features like port I/O and extra rotate/shift instructions.

15:27

Nintendo Entertainment System Technical Specifications

  • Instructions borrowed from the Z80 include rotate, shift, and swap.
  • A load from a fixed address takes three bytes and sixteen clocks at four megahertz.
  • Clock times are divisible by four due to the system being memory-bound.
  • The CPU is clocked at one megahertz, with the RAM at one megahertz, and the PPU at four megahertz.
  • The system's memory is structured with 64 kilobytes of address space, with 32 kilobytes for ROM.
  • Games can range from 32 kilobytes to 2 megabytes, achieved through memory bank controllers.
  • The boot ROM initializes RAM, sound, and displays the Nintendo logo.
  • The boot ROM compares the Nintendo logo for authenticity before booting the game.
  • The system's IO area includes registers for sound, video, and peripherals.
  • The sound controller has four voices with distinct registers for volume, frequency, and waveform control.

31:06

"Game Tile Systems and Background Mapping"

  • The background tiles use a color system where 0 represents white and 1 represents black.
  • A palette can be chosen for the tiles, with the option to reuse colors for specific effects.
  • Tetris, Zelda, and Super Mario Land are recognizable games using different tile sets.
  • Games like All-Star Tennis and puzzle games utilize specific tile configurations for their backgrounds.
  • The complete background map is 32 by 32 tiles, with a viewport displaying 256 by 256 pixels.
  • Scrolling in games involves moving the viewport around the larger map.
  • Infinite scrolling, as seen in Super Mario Land, involves adding extra columns and wrapping around the map.
  • Layers in games include the background, window, and sprites, each with specific functions and attributes.
  • Sprites have attributes like position, appearance, palette selection, and priority for drawing over backgrounds.
  • The system has limitations on the number of sprites displayed per line and on the screen simultaneously.

44:54

Understanding Gameboy PPU Modes and Functions

  • PPU takes 43 clocks for 144 lines, with an extra 20 clocks at the beginning of each line for sprite visibility determination.
  • H blank mode has 51 clocks at the end of each line, while V blank mode occurs between screens.
  • A line consists of 114 clocks at 1 MHz, totaling a specific number of clocks per screen for a refresh rate of 59.7 Hertz.
  • CPU needs to know the PPU modes for interrupts and proper functioning.
  • PPU modes include OAM search, pixel transfer, and V blank, affecting CPU access to RAM and video RAM.
  • During OAM search, the PPU filters visible sprites, taking 20 cycles per line.
  • CPU must ensure PPU is in the right mode for accessing RAM during specific times.
  • DMA function copies data during V blank, allowing CPU to access H RAM for necessary code.
  • Pixel FIFO is central to Gameboy's picture drawing, shifting out pixels to the LCD.
  • Fetcher fetches background tiles, constructs pixels, and fills the FIFO, with scrolling and sprite mixing affecting the process.
Channel avatarChannel avatarChannel avatarChannel avatarChannel avatar

Try it yourself — It’s free.