GB# is a statically compiled, hardware-aware C# development environment for the Game Boy and Game Boy Color. You write a constrained subset of C#, and GB# turns it into a real .gb or .gbc ROM.
It is not ".NET for Game Boy". There is no runtime, JIT or garbage collector on the cartridge. GB# analyses your code with Roslyn, lowers it to a small intermediate representation, emits conservative C, and hands that to GBDK-2020 to build the ROM:
C# → Roslyn → GB# validation → GB# IR → C → GBDK-2020 / SDCC → ROM
The bet is that modern language ergonomics don't require a modern runtime. A line like Sprites[0].X = x; erases to a single OAM store, and the arithmetic stays 8-bit.
GB# ships as a global dotnet tool on NuGet. Four commands take you from nothing to a running game: install the tool, let gbsharp doctor --fix fetch the pinned toolchain and emulator, create a project from a template, and run it.
Phases 0 through 6 of the roadmap are implemented: the compiler pipeline, the language core, the framework, the asset pipeline, ROM banking, developer tooling, and cost and stack analysis. The repo includes nine working sample games, from Hello World to a banked 64 KB cartridge.
My Game Boy Color puzzler OXO is built with GB#, and was the first complete game to put it to the test.