Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mvdnes/rboy
A Gameboy Emulator in Rust
https://github.com/mvdnes/rboy
Last synced: 7 days ago
JSON representation
A Gameboy Emulator in Rust
- Host: GitHub
- URL: https://github.com/mvdnes/rboy
- Owner: mvdnes
- License: mit
- Created: 2014-01-24T13:17:58.000Z (almost 11 years ago)
- Default Branch: main
- Last Pushed: 2024-09-08T11:50:07.000Z (about 2 months ago)
- Last Synced: 2024-09-08T13:20:03.281Z (about 2 months ago)
- Language: Rust
- Size: 606 KB
- Stars: 594
- Watchers: 11
- Forks: 38
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust-cn - mvdnes/rboy - ci.org/mvdnes/rboy.svg?branch=master">](https://travis-ci.org/mvdnes/rboy) (应用 / Emulators)
- awesome-rust - mvdnes/rboy - ci.org/mvdnes/rboy.svg?branch=master">](https://travis-ci.org/mvdnes/rboy) (Applications / Emulators)
- awesome-rust - mvdnes/rboy
- awesome-rust-cn - mvdnes/rboy
- awesome-rust-zh - mvdnes/rboy - [<img src="https://api.travis-ci.org/mvdnes/rboy.svg?branch=master">](https://travis-ci.org/mvdnes/rboy) (应用 / 仿真器)
- awesome-rust - mvdnes/rboy - A Gameboy Emulator (Applications / Emulators)
- awesome-rust - mvdnes/rboy - ci.org/mvdnes/rboy.svg?branch=master">](https://travis-ci.org/mvdnes/rboy) (应用 Applications / 模拟器 Emulators)
- fucking-awesome-rust - mvdnes/rboy - A Gameboy Emulator (Applications / Emulators)
- fucking-awesome-rust - mvdnes/rboy - A Gameboy Emulator (Applications / Emulators)
README
# RBoy
A Gameboy Color Emulator written in Rust
## QuickStart
You can clone this repository and build it using either the `make` command or
`cargo build --release`. Running the emulator can be done either via `cargo run --release`, or by
running the generated binary found in `target/release`. You can copy the executable named `rboy` or
`rboy.exe` to some sort of binary directory such as `~/.local/bin/` in linux or something under the
`PATH` in windows.Then you can explore the ability of the emulator by `rboy --help`. Which outputs
```
A Gameboy Colour emulator written in RustUsage: rboy [OPTIONS]
Arguments:
Sets the ROM file to loadOptions:
-s, --serial Prints the data from the serial port to stdout
-p, --printer Emulates a gameboy printer
-c, --classic Forces the emulator to run in classic Gameboy mode
-x, --scale Sets the scale of the interface. Default: 2
-a, --audio Enables audio
--skip-checksum Skips verification of the cartridge checksum
--test-mode Starts the emulator in a special test mode
-h, --help Print help
-V, --version Print version
```Now you can look below for the Keybindings section below.
## Keybindings
### Gameplay Keybindings
| Key on Keyboard | Emulator Key |
| ------------------ | ------------------ |
| Z | A |
| X | B |
| Up/Down/Left/Right | Up/Down/Left/Right |
| Space | Select |
| Return/Enter | Start |### General Keybindings
| Key on Keyboard | Emulator Action |
| ----------------- | ----------------------------------- |
| 1 | Switch to 1:1 scale |
| R | Restore scale given on command line |
| Left Shift (Hold) | Unrestricted Speed Mode |
| T | Change pixel interpolation |## Implemented
* CPU
- All instructions correct
- All timings correct
- Double speed mode
* GPU
- Normal mode
- Color mode
* Keypad
* Timer
* Audio
* MMU
- MBC-less
- MBC1
- MBC3 (with RTC)
- MBC5
- save games
* Printing## Test mode
The test mode, activated with the `--test-mode` flag, provides some functionality for running
[GBEmulatorShootout](https://github.com/daid/GBEmulatorShootout). This is still under development.## Special thanks to
* http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-The-CPU
* http://bgb.bircd.org/pandocs.htm
* https://github.com/alexcrichton/jba (The Rust branch)
* https://gbdev.io/pandocs/