Gameboy Emulator written in Web Assembly using AssemblyScript, Debugger/Shell in Preact
-
Passes all of Blargg's Cpu Tests
-
Can render a good amount of games, but with MANY graphical glitches.
-
Joypad emulation with keyboard, and gamepad support
-
Debugger that can be updated with a button click, or hard coded to do stuff like breakpoints
The project doe quality and performance also depends on the AssemblyScript Roadmap.
The Wasmboy library is being recorded at Issue #3
-
awesome gbdev for reference material, and getting help from the awesome discord community
-
node-gameboy and gomeboycolor for comparison for when I'm REALLY stuck.
-
It's better to code an emulator by abstracting assembly commands into functions, rather than by Opcode operation
-
Gameboy Opcodes are difficult till about 0x40
-
All kinds of stuff, I tend to comment a lot so read those :)
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# Watch wasm/ folder for changes, and rebuild on changes
npm run wasm:watch
# build for production with minification
npm run build
# Build the wasm into a wasm module
npm run wasm:build
# test the production build locally
npm run serve
For detailed explanation on how things work, checkout the CLI Readme.