-
João Magalhães authored
Support for MBC3 and MBC5 in state. Renamed dumps and loads methods.
João Magalhães authoredSupport for MBC3 and MBC5 in state. Renamed dumps and loads methods.
README.md 5.02 KiB
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, MBC3, and MBC5
- Save state using the BESS Specification for cross-compatibility with other emulators
- Cheat support using Game Genie 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...
- Machine state saving and loading (.sav files)
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
cargo build
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