ProductPromotion
Logo

Rust

made by https://0x3d.site

GitHub - joamag/boytacean: A GB emulator that is written in Rust 🦀!
A GB emulator that is written in Rust 🦀! Contribute to joamag/boytacean development by creating an account on GitHub.
Visit Site

GitHub - joamag/boytacean: A GB emulator that is written in Rust 🦀!

GitHub - joamag/boytacean: A GB emulator that is written in Rust 🦀!

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

  • Game Boy (DMG) and Game Boy Color (CGB) emulation
  • Simple navigable source-code
  • Web, SDL and Libretro front-ends
  • Audio, with a pretty accurate APU
  • Serial Data Transfer (Link Cable) support
  • Game Boy Printer emulation
  • Support for multiple MBCs: MBC1, MBC2, MBC3, and MBC5
  • Save state support using the BESS Specification for cross-compatibility with other emulators
  • Cheat support using Game Genie and GameShark codes
  • Variable CPU clock speed
  • Accurate PPU - passes dmg-acid2 and cgb-acid2 tests

For the Web front-end...

  • Mobile first experience
  • Transparent RAM saving using Web Storage API
  • GamePad support using Web Gamepad API
  • Unobstructive and effective on-screen GamePad
  • Rumble emulation and haptic feedback
  • Cool bespoke display palettes built by TheWolfBunny64.
  • Fullscreen browser mode
  • Debug mode - VRAM and registers

What's still missing...

  • Low-level cycle accurate system emulation
  • Game Boy Camera emulation
  • NetPlay gaming support

Deployments

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

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.

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 and information shown in verbose mode.
verbose Boolean If information should be shown in verbose mode.
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.

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

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory