Skip to content
/ gameboy Public

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

License

Notifications You must be signed in to change notification settings

bkase/gameboy

Repository files navigation

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

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

Tweets

In mostly reverse chronological order:

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published