visit gosprite64.dev for the full documentation, examples and guides.
GoSprite64 supports one setup path:
- Install
go1.24.5-embedded - Install
n64go@v0.1.2 - Run
./build_examples.sh
The repository tracks toolchain settings in n64.env, and ./build_examples.sh is the primary entrypoint for building the examples.
For the full setup details read docs/getting_started.md.
If Cursor or VS Code shows false embedded/* import errors or ignores //go:build n64 files, see the editor setup note in docs/getting_started.md.
GoSprite64 exposes one official fixed resolution and drawing canvas: 288x216 logical pixels.
That is the supported public rendering contract. The runtime centers the canvas inside the internal framebuffer and presents it for you with square pixels, so game code should treat gosprite64.FillRect, gosprite64.DrawRect, gosprite64.DrawLine, and gosprite64.DrawText as logical-coordinate APIs. You do not need to manage borders, safe areas, or video-mode presets yourself.
If you want a visual sanity check after building the examples, start with examples/calibration.
GoSprite64 embraces the flat world of tilemaps, palettes, and pixel-art game scenes without the complexity of 3D pipelines.
"You only need X and Y."
-
🕹️ Built on embedded-go to provide Go idiomatic experience.
-
🎮 Powered by clktmr/n64 to make things possible directly on real N64 hardware.
-
🧠 Clean and idiomatic Go API inspired from Ebitengine, Raylib and PICO-8
-
🗺️ Tile2D scene pipeline: author tile sheets and maps offline, bundle them, load and render at runtime with camera scrolling
-
🔊 VADPCM audio pipeline: compress WAV files at build time, play sound effects and music at runtime with zero per-frame allocations
-
💾 Runs on real N64 consoles (via EverDrive or SummerCard64)
-
🔧 Great for retro homebrew, demoscene, or nostalgic experiments
If you are interested in contributing to GoSprite64, read about our Contributing guide
This project is licensed under the MIT license. See the LICENSE file for details.