-
João Magalhães authoredJoão Magalhães authored
README.md 3.65 KiB
Boytacean
A Game Boy emulator that is written in Rust
This emulator has been written for educational purposes and shouldn't be taken to seriously. But yeahh it plays games, which is cool...
Features
- Supports Game Boy (DMG) emulation
- Simple navigable source-code
- Web and SDL front-ends
- Fullscreen mode
- Support for multiple MBCs: MBC1, MBC2, MBC3, and MBC5
- Variable CPU clock speed
- Debug mode: VRAM and registers
Deployments
Provider | Stable | URL |
---|---|---|
Cloudfare | True |
boytacean.pages.dev |
Cloudfare | True |
prod.boytacean.pages.dev |
Cloudfare | True |
stable.boytacean.pages.dev |
Cloudfare | False |
master.boytacean.pages.dev |
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=examples/web/lib -- --features wasm
cd examples/web
npm install && npm run build
cd dist && python3 -m http.server
Web version
You can use some GET parameters to control the initial behaviour 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 url . |
fullscreen |
Boolean | If the emulator should start in fullscreen mode. |
debug |
Boolean | If the "debugger" should start visible. |
keyboard |
Boolean | If the on screen keyboard should start visible. |
Inspiration
Documentation
- Game Boy Development community
- Game Boy - Pan Docs
- GameBoy Emulation in JavaScript
- POKEGB: a gameboy emulator that only plays Pokémon blue
- Game Boy CPU Opcodes
- Codeslinger - Game Boy
- Game Boy hardware database
ROMs
Emulators
- GitHub - LIJI32/SameBoy (C)
- GitHub - binji/binjgb (C)
- GitHub - Rodrigodd/gameroy (Rust)
- GitHub - simias/gb-rs (Rust)
- GitHub - RubenG123/frosty (Rust)
- GitHub - feo-boy/feo-boy (Rust)
- GitHub - calvinbaart/gameboy (TypeScript)
Videos
Other
License
Boyacian is currently licensed under the Apache License, Version 2.0.