Replaces the standard Go runtime with one designed for the Dreamcast's constraints: memory 16MB RAM, CPU single-core SH-4, no operating system. Provides garbage collection, goroutines, channels, and the core runtime functions.
Prerequisites: Go 1.25.3+, make, and git must be installed.
go install github.com/drpaneas/godc@latest
godc setup
godc doctor # to check (optional)Note: The
godcCLI tool is a separate project that handles toolchain setup and builds.
Create and run a project:
mkdir myproject && cd myproject
godc init
# write your main.go and other *.go files
godc build
godc runSee the Quick Start Guide for your first program.
- Installation — Setup and configuration
- Quick Start — First program walkthrough
- Design — Runtime architecture
- Effective Dreamcast Go — Best practices
- KOS Wrappers — Calling C from Go
- Limitations — What doesn't work
The repo includes tests/bench_architecture.go for measuring runtime behavior
on Dreamcast hardware.
| Benchmark | What it reports |
|---|---|
gosched |
Nanoseconds per yield |
| Buffered channel | Nanoseconds per buffered operation |
| Context switch | Nanoseconds per goroutine switch |
| Unbuffered channel | Nanoseconds per roundtrip |
| Goroutine spawn | Nanoseconds per spawn/run cycle |
| GC pause | Microseconds per forced collection across retained sizes from 32 KB to 1 MB |
| Memory layout | Stack size, context size, header size, and large-object threshold |
Run tests/bench_architecture.elf on your hardware for current numbers.
The examples/ directory contains working programs:
hello— Minimal program (debug output)hello_screen— Hello World on screen using BIOS fontblue_screen— Minimal graphicsinput— Controller inputgoroutines— Concurrent bouncing ballschannels— Producer/consumer patterntimer— Frame-rate independent animationbfont— BIOS font renderingfilesystem— Directory browservmu— VMU LCD and buzzerbrkout— Breakout clone (GPL v2, port of Jim Ursetto's original)platformer— Side-scrolling platformerpong— Pong clone with 1P/2P mode, particle effects, and AI
BSD 3-Clause License. See LICENSE for details.



