Skip to content

Latest commit

 

History

History
72 lines (49 loc) · 2.13 KB

README.md

File metadata and controls

72 lines (49 loc) · 2.13 KB


A Game Boy emulator written in Ruby

Try it in your browser: ruby.wasm version (CRuby compiled to WebAssembly) / Spinel version (the same Ruby code compiled to C by Spinel, then to WebAssembly)

Screenshots

Installation

Rubyboy requires Ruby 4.0 or higher and SDL2.

$ gem install rubyboy

Tip

Run with YJIT (RUBYOPT=--yjit) for better performance.

Usage

$ RUBYOPT=--yjit rubyboy [rom_path]

Without a ROM path, it runs the bundled Tobu Tobu Girl.

Controls

Key Button
W A S D ↑ ← ↓ →
K A
J B
U Select
I Start
1–0 Save state to slot 1–9, 0
Left Shift + 1–0 Load state from that slot

Battery-backed games save to <rom>.sav, and save states go to <rom>.state<N>, next to the ROM file.

Options

Option Effect
--frames N Exit after N frames
--unlimited Run as fast as possible; audio that cannot be played in time is dropped

Benchmark

On an Apple M4, Rubyboy runs at about 110 FPS on CRuby, 290 FPS with YJIT and 800 FPS when compiled with Spinel. See BENCHMARK.md for the method and details.

Other ways to run

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/sacckey/rubyboy. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.