gameboy icon indicating copy to clipboard operation
gameboy copied to clipboard

[alpha] Rust WASM gameboy emulator aiming for high framerate on mobile browsers

Gameboy

Hopefully a gameboy color emulator. Right now, it's almost a gameboy pocket one.

What works

  • Very primitive sounds
  • The Bootrom
  • Tetris (modulo sound)
  • Many of Blaarg's CPU tests

On top of property-based and unit tests, headless golden runs golden master tests for blaarg's ROMs and bootrom and Tetris.

How to run

I recommend running with nix for reproducibility. Rustup nightly will probably still work though.

  1. Make a folder roms/ in the root of the repo with at least the bootrom DMG_ROM.bin, and Tetris.gb
  2. For headless mode, I recommend building with nix: Run nix-build release.nix, ./result/bin/headless run --help for more.
  3. For a wasm build, install wasm-pack
  4. Inside of nix-shell shell.nix run wasm-pack build and cd www && npm run start
  5. Open up localhost:8080 in your browser

Relevant media:

Blog posts

Note that the posts include embedded emulators (snapshotted at the point of post publishing).

Old Video Series

  • Ep00: https://youtu.be/0ErM1JsWUFk
  • Ep01: https://youtu.be/DsZDdDEztIs
  • Ep02: https://youtu.be/7ZrjgwKf0HQ
  • Ep03.1: https://youtu.be/IQBBJGtctIo
  • Ep03.2: https://youtu.be/DrN6a_D0XRE
  • Ep03.3: https://youtu.be/2PLuz_kFRHQ

At some point, editing videos became very not fun. I will occasionally write blog posts as I go.

Tweets

In mostly reverse chronological order: