Skip to content
forked from torch2424/wasmboy

Gameboy Emulator written in Web Assembly using AssemblyScript, Shell/Debugger in Preact

License

Notifications You must be signed in to change notification settings

dcodeIO/wasmBoy

 
 

Repository files navigation

wasmBoy

Gameboy Emulator written in Web Assembly using AssemblyScript, Debugger/Shell in Preact

WasmBoy Alpha Screenshot


THIS IS A WIP


Features

  • 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

Tests

Blargg's CPU Tests

Passing Blargg Cpu tests

Screenshots

Tetris with some graphical bugs probably

Roadmap

The project doe quality and performance also depends on the AssemblyScript Roadmap.

The Wasmboy library is being recorded at Issue #3

Resources

Random Things I've Learned:

  • 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 :)

CLI Commands

# 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.

About

Gameboy Emulator written in Web Assembly using AssemblyScript, Shell/Debugger in Preact

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 84.8%
  • JavaScript 14.8%
  • CSS 0.4%