/fundude

Gameboy emulator: Zig -> wasm

Primary LanguageZigMIT LicenseMIT

FUN DUDE
🚧 Under Construction 🚧

Game compatibility

Perfect emulation:

  • none

Playable:

  • Tetris
  • Super Mario Land
  • Bionic Commando
  • Pokemon Red/Blue
  • Kirby's Dreamland
  • Dr. Mario
  • Zelda: Link's Awakening

Implementation details

CPU some bugs, incorrect instruction durations
Video mostly working -- render hacks
Joypad should work
Timer untested, poor timing
Interrupts untested
Serial
Audio

Development

Dependencies:

  • zig 0.6.0+
  • node.js 10.0.0+
# Pull down this project
$ git clone https://github.com/fengb/fundude.git
$ cd fundude

# Build the wasm -- release-safe increases performance by >10x compared to the default debug mode
$ zig build -Drelease-safe

# Start the server
$ yarn install
$ yarn dev