Home

Awesome

Boytacean

A Game Boy emulator that is written in Rust 🦀.

<a href="https://boytacean.joao.me" target="_blank"><img src="https://github.com/joamag/boytacean/raw/master/res/videos/002-mario.low.gif" width="360" /></a>

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 still missing...

Deployments

ProviderStableURL
CloudflareTrueboytacean.joao.me
CloudflareTrueboytacean.pages.dev
CloudflareTrueprod.boytacean.pages.dev
CloudflareTruestable.boytacean.pages.dev
CloudflareFalsemaster.boytacean.pages.dev

Build

Library

cargo build

Python Library

pip install .

or

python setup.py install

WASM for Node.js

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

WASM for 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.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.

ParameterTypeDescription
rom_urlStringThe URL from which the initial ROM is going to be loaded, should support CORS.
urlStringThe same as rom_url.
fullscreenBooleanIf the emulator should start in fullscreen mode.
fsBooleanThe same as fullscreen.
debugBooleanIf the "debugger" should start visible and information shown in verbose mode.
verboseBooleanIf information should be shown in verbose mode.
keyboardBooleanIf the on-screen keyboard should start visible.
paletteStringThe 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.

Contributing

Love Gameboy emulation? Want to contribute to Boytacean? That's awesome! Your contributions are what make the open-source community such an amazing place to learn, inspire, and create.

To get started, please take a look at our Contributing Guidelines. Whether you're fixing bugs, adding new features, or helping with documentation, every contribution is valuable and greatly appreciated!

Don't hesitate to reach out if you have any questions. Join us in making Boytacean the best Gameboy emulator out there!

License

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

Build Automation

Build Status crates Status npm Status PyPi Status License