Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Game Boy Development
  3. dmg-acid2

dmg-acid2

MITAssemblyv1.0

A test ROM for Game Boy (DMG) emulator developers to verify accurate PPU emulation.

GitHubGitHub
236 stars15 forks0 contributors

What is dmg-acid2?

dmg-acid2 is a test ROM for Game Boy (DMG) emulator developers to verify the accuracy of their Pixel Processing Unit (PPU) emulation. It provides a visual reference image that an accurate emulator must reproduce, testing various graphics rendering features like object priority, tile mapping, and PPU flag handling. The project helps ensure emulators correctly implement the Game Boy's graphics hardware specifications.

Target Audience

Developers building or maintaining Game Boy (DMG) emulators who need to validate the accuracy of their PPU implementation. It is also useful for retro gaming enthusiasts interested in emulator development and hardware accuracy testing.

Value Proposition

Developers choose dmg-acid2 because it offers a standardized, visual compliance test specifically for Game Boy PPU emulation, with clear failure examples that diagnose specific inaccuracies. It is designed to be accessible, working with simple line-based renderers without requiring cycle-accurate timing, making it a practical tool for improving emulator quality.

Overview

😀 The Acid2 test, now for the original Game Boy! 😀

Use Cases

Best For

  • Validating Game Boy emulator PPU accuracy
  • Debugging graphics rendering issues in emulators
  • Testing object priority and tile mapping implementations
  • Ensuring compliance with Game Boy hardware specifications
  • Comparing emulator output against a reference standard
  • Educational projects on Game Boy graphics hardware

Not Ideal For

  • Emulators prioritizing gameplay compatibility over pixel-perfect graphics accuracy
  • Projects requiring cycle-accurate PPU timing tests (e.g., for audio sync or advanced effects)
  • Testing full Game Boy Color emulation beyond DMG mode (requires separate tools like cgb-acid2)
  • Early prototyping where basic, functional graphics output is the primary goal

Pros & Cons

Pros

Comprehensive PPU Coverage

Tests key graphics features like object priority, tile mapping, and PPU flags, with detailed sections in the guide covering background, window, and object rendering.

Clear Failure Diagnostics

Includes a table of failure images linked to specific PPU issues, such as object palette or background enable flags, helping developers quickly identify and fix inaccuracies.

Accessible for Simple Renderers

Designed to work with line-based renderers without requiring cycle-accurate timing, as stated in the README, making it practical for many emulator implementations.

Standardized Visual Reference

Provides precise reference images and color conversion formulas (e.g., for DMG and CGB modes), ensuring consistent comparison across emulators.

Cons

No Timing Accuracy Tests

Explicitly not a PPU timing torture test, as admitted in the README, so it lacks validation for cycle-accurate emulation needed in some advanced scenarios.

Limited to Graphics Components

Focuses solely on PPU emulation, ignoring other critical emulator parts like CPU, audio, or input handling, which requires additional testing tools.

Setup Dependency on RGBDS

Building from source requires RGBDS, adding complexity for users who prefer pre-built binaries or are unfamiliar with assembler toolchains.

Frequently Asked Questions

Quick Stats

Stars236
Forks15
Contributors0
Open Issues4
Last commit2 years ago
CreatedSince 2020

Tags

#emulator-testing#game-boy#hardware-emulation#game-boy-color#rgbds#graphics-rendering#retro-gaming

Built With

r
rgbds

Included in

Game Boy Development4.4k
Auto-fetched 2 hours ago

Related Projects

144p Test Suite144p Test Suite

Size-optimized ports of Artemio's 240p Test Suite to 8-bit consoles

Stars286
Forks24
Last commit8 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub