2026-07-03 11:26:21 +02:00
2026-07-02 10:20:35 +02:00
2026-05-14 05:23:30 +00:00
2026-06-25 06:26:13 +02:00
2026-07-03 11:26:21 +02:00
2026-06-24 08:12:35 +02:00

Octal Cookie

A CHIP-8 emulator / simulator written in Odin using Raylib.

showcase

Try it in your browser →


About

This was my refresher project to get back into lower-level programming — specifically the Odin language and Raylib. Building a CHIP-8 emulator felt like the right scope: small enough to actually finish, but with enough surface area (opcode decoding, memory, timers, a display, input) to shake the rust off.

It's not perfect, but it's functioning and usable for the most part. Compiles to native and to WebAssembly, and the web build is playable directly at the link above.


Features

  • Full CHIP-8 instruction set emulation
  • Simulator GUI with dedicated panels for the screen, CPU state, keypad, file loader, memory viewer, and control bar
  • Built-in collection of classic game ROMs (Pong, Tetris, Space Invaders, Brix, and more)
  • Load your own ROMs via the file loader panel
  • Dev and release build modes via make
  • Compiles to WebAssembly for running in-browser

Roadmap

Future work, mainly once I'm back in the headspace for it:

  • General refactor/cleanup pass now that the core is working
  • CHIP-8 quirks support (configurable behavior differences between interpreters)
  • SUPER-CHIP instruction support

Dependencies


Building

# Run directly in dev mode
make

# Build a dev binary
make dev

# Build an optimised release binary
make release

# Clean build output
make clean

The output binary is named my_app by default. You can change APP_NAME in the Makefile.


Included ROMs

A set of public domain game ROMs is bundled under assets/game_roms/:

15PUZZLE · BLINKY · BLITZ · BRIX · CONNECT4 · GUESS · HIDDEN · INVADERS · KALEID · MAZE · MERLIN · MISSILE · PONG · PONG2 · PUZZLE · SYZYGY · TANK · TETRIS · TICTAC · UFO · VBRIX · VERS · WIPEOFF

Test ROMs are available under assets/test_roms/ for development and debugging.


License

MIT — see LICENSE.

S
Description
No description provided
Readme MIT 1.6 MiB
Languages
Odin 92.5%
HTML 4.8%
Shell 2.3%
Makefile 0.4%