#gameboy #core #emulator #web-assembly


core library to be used for Gameboy emulation

19 releases

0.2.4 Dec 2, 2019
0.2.3 Nov 26, 2019
0.2.0 Oct 29, 2019
0.1.14 Jan 23, 2018
0.1.2 Dec 26, 2017
Download history 93/week @ 2019-08-25 60/week @ 2019-09-01 17/week @ 2019-09-08 29/week @ 2019-09-15 61/week @ 2019-09-22 15/week @ 2019-09-29 28/week @ 2019-10-06 43/week @ 2019-10-13 15/week @ 2019-10-20 47/week @ 2019-10-27 35/week @ 2019-11-03 19/week @ 2019-11-10 61/week @ 2019-11-17 51/week @ 2019-11-24

157 downloads per month
Used in 1 crate



GameBoy Emulator


This is a GameBoy emulator written in Rust. It can be compiled to native and web assembly, see the build section for more details. Sound not supported.

Emulator supports several hardware types, RTC, gameboy color emulation (very experemental), sprites, and saving to browser local storage (web) and user config directories (native)

The web assembly port is currently hosted here



The native version is published to crates.io and can be installed by running:

cargo install gameboy_opengl

Then you can run it by running: gameboy_emulator from your terminal

Building from source

The project uses Cargo as a build system, so building the project is relatively simple.


cargo build --package gameboy_opengl --bin gameboy_emulator --release

this produces the executable target/release/gameboy_emulator.exe

to run it, just supply the rom file as the first file argument

Web Assembly

cargo-web is very useful for building the web port of the emulator.

cargo-web deploy --release

use your favorite static file server to serve the files generated in the target/deploy directory. You can also run cargo-web start --release, to serve the files locally.