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 you main.go and other *.go files
godc build
godc runSee the Quick Start Guide for your first program.
π Full Documentation
- 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
Measured on real hardware (SH-4 @ 200MHz):
| Operation | Time |
|---|---|
| Gosched yield | ~120 ns |
| Allocation | ~186 ns |
| Buffered channel | ~1.8 ΞΌs |
| Context switch | ~6.4 ΞΌs |
| Unbuffered channel | ~13 ΞΌs |
| Goroutine spawn | ~31 ΞΌs |
| GC pause | 72 ΞΌs - 6 ms |
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)pongβ Pong clone with 1P/2P mode, particle effects, and AI
BSD 3-Clause License. See LICENSE for details.



