Boytacean

A Game Boy emulator that is written in Rust 🦀.

This emulator has been written for educational purposes and shouldn't be taken too seriously. But yeahh it plays most Game Boy games, which is cool... 🕹️

Features

For the Web front-end...

What's missing...

Deployments

| Provider | Stable | URL | | --------- | ------- | ---------------------------------------------------------------- | | Cloudfare | True | boytacean.joao.me | | Cloudfare | True | boytacean.pages.dev | | Cloudfare | True | prod.boytacean.pages.dev | | Cloudfare | True | stable.boytacean.pages.dev | | Cloudfare | False | master.boytacean.pages.dev |

Build

Library

bash cargo build

WASM for Node.js

bash cargo install wasm-pack wasm-pack build --release --target=nodejs -- --features wasm

WASM for Web

bash 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.server

Web front-end

The Web front-end makes use of EmuKit which is a UI toolkit that provides the required infrastructure for the creation of interfaces for emulation in a Web context.

Configuration

You can use some GET parameters to control the initial behavior of the emulator.

| Parameter | Type | Description | | ------------ | ------- | ---------------------------------------------------------------------------------------------- | | rom_url | String | The URL from which the initial ROM is going to be loaded, should support CORS. | | url | String | The same as rom_url. | | fullscreen | Boolean | If the emulator should start in fullscreen mode. | | fs | Boolean | The same as fullscreen. | | debug | Boolean | If the "debugger" should start visible. | | keyboard | Boolean | If the on-screen keyboard should start visible. | | palette | String | The name of the palette to be set at startup( eg: christmas, hogwards, mariobros, etc.). |

Palettes

The palettes offered in the web version were provided by TheWolfBunny64.

Inspiration

To get some information about the resources that inspired me through the emulation creation journey check Inspiration.

License

Boytacian is currently licensed under the Apache License, Version 2.0.