BlueBlazin / gbemu

WebAssembly based Gameboy Emulator

Home Page:https://gbemu.netlify.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GBEmu

https://gbemu.netlify.app/

cover image showing prehistorik man

A Gameboy emulator written in Rust, compiled to WebAssembly, and running in the browser.

Usage

Visit the website, load your ROM and begin playing! The emulator uses:

  • Arrow keys for Up, Down, Left, and Right
  • A and S for A and B
  • Enter and Space for Start and Select.

Build

To try it out locally:

$ cd www
$ make

The emulator will be running at localhost:8080.

Screenshots

3 1 2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Note: These images were taken with a different colorization algorithm. The current version of the emulator uses a slightly different algorithm for efficiency and colors will appear different.

Tests

1 2 3 4 5 6

Attributions

I am grateful to the direct and indirect help from several people to make this emulator possible.

SameBoy: Initially my emulator didn't refer much to SameBoy but as accuracy became of interest I heavily copied some of SameBoy's approach to accurately emulate the more complicated parts. In particular I want to thank the creator of SameBoy (The Great) LIJI, whom I hounded with questions almost daily on the gbdev discord server.

Binjigb: I used this as a reference for implementing some of the frontend logic. This includes an event based emulation driver, as well as some WASM stuff.

WasmBoy: I want to thank torch2424, the creator of WasmBoy for initially suggesting using an event based emulation driver as well as offering advice on switching from RAF to setTimeout.

gbdev: I wouldn't have been able to complete the emulator without the daily help I got from members of the gbdev discord community.

Pandocs, Blargg, Mooneye-gb, AntonioND, mattcurrie: These docs and tests were invaluable!

About

WebAssembly based Gameboy Emulator

https://gbemu.netlify.app

License:Apache License 2.0


Languages

Language:Rust 85.4%Language:Python 9.0%Language:JavaScript 2.6%Language:CSS 2.1%Language:HTML 0.9%Language:Makefile 0.0%