All Projects → emu-rs → Rustual Boy

emu-rs / Rustual Boy

Licence: other
Rustual Boy - A Virtual Boy emulator.

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Rustual Boy

Mednes
A cycle-accurate, cross-platform NES emulator written in C++
Stars: ✭ 189 (-12.5%)
Mutual labels:  emulator
Fbalpha
Official Repository of FB Alpha Emulator
Stars: ✭ 197 (-8.8%)
Mutual labels:  emulator
Chameleonmini Rebooted
Chameleon Mini revE rebooted - Iceman Fork, the ChameleonMini is a versatile contactless smartcard emulator (NFC/RFID)
Stars: ✭ 208 (-3.7%)
Mutual labels:  emulator
Simplenes
An NES emulator in C++
Stars: ✭ 2,915 (+1249.54%)
Mutual labels:  emulator
Pcbasic
PC-BASIC - A free, cross-platform emulator for the GW-BASIC family of interpreters
Stars: ✭ 196 (-9.26%)
Mutual labels:  emulator
Freej2me
A free J2ME emulator with libretro, awt and sdl2 frontends.
Stars: ✭ 203 (-6.02%)
Mutual labels:  emulator
Snowflake
❄️ 🎮 Extensible Emulator Frontend written in C# and Javascript
Stars: ✭ 185 (-14.35%)
Mutual labels:  emulator
Bsnes Hd
bsnes fork that adds HD video features
Stars: ✭ 216 (+0%)
Mutual labels:  emulator
Lemuroid
All in 1 emulator on Android!
Stars: ✭ 194 (-10.19%)
Mutual labels:  emulator
Goboy
Multi-platform Nintendo Game Boy Color emulator written in Go
Stars: ✭ 2,403 (+1012.5%)
Mutual labels:  emulator
Segs
💪 SEGS - Super Entity Game Server
Stars: ✭ 190 (-12.04%)
Mutual labels:  emulator
Cmulator
Cmulator is ( x86 - x64 ) Scriptable Reverse Engineering Sandbox Emulator for shellcode and PE binaries . Based on Unicorn & Zydis Engine & javascript
Stars: ✭ 197 (-8.8%)
Mutual labels:  emulator
Gopher Boy
🎮 A Game Boy emulator written in Go
Stars: ✭ 206 (-4.63%)
Mutual labels:  emulator
Jitboy
A Game Boy emulator with dynamic recompilation (JIT)
Stars: ✭ 190 (-12.04%)
Mutual labels:  emulator
Bsnes Plus
debug-oriented fork of bsnes
Stars: ✭ 209 (-3.24%)
Mutual labels:  emulator
Openemu
🕹 Retro video game emulation for macOS
Stars: ✭ 13,369 (+6089.35%)
Mutual labels:  emulator
Washingtondc
Open-source Sega Dreamcast emulator
Stars: ✭ 201 (-6.94%)
Mutual labels:  emulator
Miasm
Reverse engineering framework in Python
Stars: ✭ 2,649 (+1126.39%)
Mutual labels:  emulator
Emupedia.github.io
The purpose of Emupedia is to serve as a nonprofit meta-resource, hub and community for those interested mainly in video game preservation which aims to digitally collect, archive and preserve games and software to make them available online accessible by a user-friendly UI that simulates several retro operating systems for educational purposes.
Stars: ✭ 206 (-4.63%)
Mutual labels:  emulator
Esp32 Obd2 Emulator
Open-source OBD-II emulator based on an ESP32 + CAN transceiver IC, controllable via WiFi through a simple web UI (or via API)
Stars: ✭ 207 (-4.17%)
Mutual labels:  emulator

Rustual Boy

Build Status Build status rustualboy.com Compabitility Chat on discord License

Rustual Boy

Description

Rustual Boy is a Virtual Boy emulator. It can be used to play existing Virtual Boy games, as well as be a helpful development/debugging tool for homebrew for this platform.

The name "Rustual Boy" is a portmanteau of the words "Rust" and "Virtual Boy". Ok, the "Virtual Boy" part was obvious, but why "Rust"? In fact, Rustual Boy is written in the Rust programming language - a "systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety." Rust is a wonderful language with a thriving community, and as such provides a fantastic platform for an emulation project!

Status

Rustual Boy is currently able to emulate all commercial Virtual Boy titles, as well as many homebrew ones. It supports basic video/audio output and keyboard input, and also a simple CLI debugger. It runs on Windows, MacOS, Linux, and likely some other platforms Rust supports.

While Rustual Boy's core emulation is complete compatibility-wise, and in some respects is already one of the more accurate VB emulators available, the project is still young, and needs some time to mature. Particularly, its user interface is lacking (read: virtually non-existent), and there are some known (and probably unknown) stability/compatibility issues. Also, performance isn't fantastic yet, but the emulator should be playable at least.

That said, these things are bound to improve with time, and everyone is encouraged to grab a build or build the emulator, give it a shot, and report any bugs/feature requests!

Screenshots

screenie screenie screenie screenie

Known game compatibility

Key:

  • 💖: Fully compatible. The game is fully playable with no known bugs (to our knowledge).
  • 💔: Playable. The game can be played, but has some minor known glitches (described in the notes field).
  • 🚫: Incompatible. The reason is described in the notes field.
  • N/A: Game does not exist for this region.

Games marked 💖 and 💔 are all included in the compatibility metric.

Game USA JP Notes
3-D Tetris 💖 N/A
Bound High! 💖 N/A ROM is both USA+JP
Galactic Pinball 💔 💔 Vocal samples throughout the game play at the wrong rate, likely related to CPU clock cycle inaccuracy
Golf 💔 💔 Game transitions to demo mode WAY too fast, sometimes softlocks when transitioning to/from demo mode
Insmouse No Yakata N/A 💖
Jack Bros. 💖 💖
Mario Clash 💖 💖
Mario's Tennis 💖 💖
Nester's Funky Bowling 💖 N/A
Panic Bomber 💖 💖
Red Alarm 💖 💖
SD Gundam Dimension War N/A 💖
Space Invaders Virtual Collection N/A 💖
Space Squash N/A 💖
Teleroboxer 💔 💔 Small audio glitches during screen transitions after demo mode wins games
V-Tetris N/A 💖
Vertical Force 💖 💖
Virtual Bowling N/A 💔 Samples play at the wrong rate
Virtual Boy Wario Land 💔 💔 Game is fully playable, but some parts of the intro cutscene are too dark, due to inaccurate emulation of the physical LED periods used in the display
Virtual Fishing N/A 💖
Virtual Lab N/A 💖
Virtual League Baseball 💖 💖
Waterworld 💖 N/A

Building and running

Currently, the only dependency for building is Rust itself, which can be downloaded here. Once that's installed, you can clone the repo, and simply cargo build/cargo run your way to victory! It's recommended to use the --release flag as well, as emulation can require a lot of CPU power, so we'll want all the compiler help we can get.

Note: If you're new to using Cargo (Rust's build system), it's recommended to give the Cargo Guide a quick skim.

Rustual Boy has a very simple CLI interface:

$ rustual-boy-cli --help
Rustual Boy 0.2.0
ferris <[email protected]>, The Rustual Boy contributors
A CLI frontend to the Rustual Boy emulator

USAGE:
    rustual-boy-cli.exe [FLAGS] <ROM>

FLAGS:
    -s, --sram       Path to an SRAM
    -h, --help       Prints help information
    -V, --version    Prints version information

ARGS:
    <ROM>    The name of the ROM to load

The easiest way to run a game is to supply a single file argument:

rustual-boy-cli bound-high.vb

Input keymap

The Virtual Boy game pad consists of two d-pads, 4 buttons, and two shoulder buttons. These are mapped to the following keyboard keys:

Button Key
Left D-Pad Up W
Left D-Pad Down S
Left D-Pad Left A
Left D-Pad Right D
Right D-Pad Up I
Right D-Pad Down K
Right D-Pad Left J
Right D-Pad Right L
Select space
Start enter/return
A F
B H
Left bumper E
Right bumper U

For game pad layout reference, refer to this image. This key map is currently non-configurable.

Contributing

Rustual Boy aims to be an open project where anyone can contribute. If you're interested, check CONTRIBUTING.md!

License

Licensed under either of

at your option.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].