MCPcopy Index your code
hub / github.com/akatsuki105/dawngb

github.com/akatsuki105/dawngb @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,122 symbols 2,089 edges 62 files 166 documented · 15%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DawnGB

DawnGB is GameBoy Color emulator written in Go.

You can play on web!

Screenshots

Desktop

prism megaman shantae pokered

Browser(Web)

    

Features

  • GB(DMG) and GBC(CGB) support
  • MBC1, MBC2, MBC3, MBC5, MBC30 support
  • Sound(APU) support
  • Libretro support(run make libretro)
  • Multiplatform support
  • Work on Browser(here)

Usage

  • Desktop: Run go run ./src/ebi and drag and drop a ROM file into the window.
  • Browser: Visit here.

Key mapping is as follows:

  • A: X
  • B: Z
  • Start: Enter
  • Select: Backspace
  • : Arrow keys

Internal

.
├── core  # Emulator core
└── src   # Frontend

Accuracy

Keep the code as simple as possible, so synchronization is done at each instruction, and line-rendering is done at once on HBlank.

So game like "Prehistorik Man", which modifies the PPU registers during mid-frame, may not draw correctly.

Extension points exported contracts — how you extend this code

Bus (Interface)
(no doc) [8 implementers]
core/gb/cpu/sm83/sm83.go
Debugger (Interface)
(no doc)
internal/debugger/debugger.go
MBC (Interface)
(no doc) [8 implementers]
core/gb/cartridge/cartridge.go
CPU (Interface)
(no doc) [1 implementers]
core/gb/ppu/ppu.go
Renderer (Interface)
(no doc) [1 implementers]
core/gb/ppu/renderer/renderer.go

Core symbols most depended-on inside this repo

SetBit
called by 122
core/gb/internal/bit.go
Pack
called by 84
core/gb/cpu/sm83/register.go
bit
called by 64
core/gb/cpu/sm83/algorithms.go
fetch
called by 61
core/gb/cpu/sm83/sm83.go
Read
called by 52
core/gb/cpu/sm83/sm83.go
Write
called by 52
core/gb/cpu/sm83/sm83.go
Unpack
called by 38
core/gb/cpu/sm83/register.go
enosys
called by 27
docs/wasm_exec.js

Shape

Function 642
Method 302
Class 77
Struct 68
Enum 24
Interface 5
TypeAlias 4

Languages

Go86%
C++10%
TypeScript5%

Modules by API surface

core/gb/cpu/sm83/optable_cb.go256 symbols
core/gb/cpu/sm83/optable.go245 symbols
src/libretro/libretro.h95 symbols
docs/wasm_exec.js51 symbols
src/libretro/main.go32 symbols
core/gb/cpu/sm83/algorithms.go22 symbols
core/gb/ppu/ppu.go21 symbols
core/gb/gb.go19 symbols
core/gb/cpu/cpu.go17 symbols
core/gb/apu/psg/ch_wave.go16 symbols
core/gb/apu/psg/ch_square.go16 symbols
core/gb/cartridge/cartridge.go15 symbols

For agents

$ claude mcp add dawngb \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact