Boytacean is a Game Boy and Game Boy Color emulator written in the Rust programming language. This project, intended primarily for educational purposes, emulates a wide range of Game Boy features and supports various front-ends, including web, SDL, and Libretro.
Boytacean
Boytacean offers a comprehensive set of features:
The web front-end provides additional functionalities:
There are still some features under development:
Boytacean is available on several deployment platforms:
| Provider | Stable | URL |
|---|---|---|
| Cloudflare | True | boytacean.joao.me |
| Cloudflare | True | boytacean.pages.dev |
| Cloudflare | True | prod.boytacean.pages.dev |
| Cloudflare | True | stable.boytacean.pages.dev |
| Cloudflare | False | master.boytacean.pages.dev |
To build the library:
cargo buildInstall the Python library with:
pip install .or
python setup.py installBuild the WebAssembly package for Node.js:
cargo install wasm-pack
wasm-pack build --release --target=nodejs -- --features wasmBuild the WebAssembly package for the web:
cargo install wasm-pack
wasm-pack build --release --target=web --out-dir=frontends/web/lib -- --features wasm
cd frontends/web
npm install && npm run build
cd dist && python3 -m http.serverThe web front-end uses EmuKit, a UI toolkit for creating emulation interfaces in a web context. You can control the emulator's initial behavior with the following GET parameters:
| Parameter | Type | Description |
|---|---|---|
rom_url | String | URL of the initial ROM to load (must support CORS). |
url | String | Alias for rom_url. |
fullscreen | Boolean | If true, starts the emulator in fullscreen mode. |
fs | Boolean | Alias for fullscreen. |
debug | Boolean | If true, starts with the debugger visible. |
keyboard | Boolean | If true, shows the on-screen keyboard. |
palette | String | Name of the initial palette (e.g., christmas, hogwards, mariobros). |
The palettes available in the web version were provided by TheWolfBunny64.
For information about the resources that inspired the creation of Boytacean, see the Inspiration page.