All Projects → MarkMcCaskey → rusty-boy

MarkMcCaskey / rusty-boy

Licence: Apache-2.0 License
Gameboy emulator in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to rusty-boy

jsGBC-core
jsGBC Core Emulator
Stars: ✭ 14 (-30%)
Mutual labels:  emulator, gameboy, gameboy-emulator
goboy
Playing GameBoy Emulation in GoLang (ported from https://github.com/racerxdl/GameBoyEmulator)
Stars: ✭ 37 (+85%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Jitboy
A Game Boy emulator with dynamic recompilation (JIT)
Stars: ✭ 190 (+850%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Gbemu
A Gameboy emulator in modern C++
Stars: ✭ 149 (+645%)
Mutual labels:  emulator, gameboy, gameboy-emulator
SkyEmu
Game Boy, Game Boy Color, and Game Boy Advanced Emulator
Stars: ✭ 59 (+195%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Metroboy
MetroBoy - A playable, circuit-level simulation of an entire Game Boy
Stars: ✭ 169 (+745%)
Mutual labels:  emulator, gameboy, gameboy-emulator
gameboi
An Original GameBoy emulator?
Stars: ✭ 20 (+0%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Wasmboy
Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️
Stars: ✭ 963 (+4715%)
Mutual labels:  emulator, gameboy, gameboy-emulator
awesome-emu-resources
A curated list of emulator development resources
Stars: ✭ 26 (+30%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Binjgb
Gameboy emulator implemented in C
Stars: ✭ 222 (+1010%)
Mutual labels:  emulator, gameboy, gameboy-emulator
gameboyGO
Gameboy emulator in go
Stars: ✭ 24 (+20%)
Mutual labels:  emulator, gameboy, gameboy-emulator
worldwide
A toy GameBoy Color emulator written in golang.
Stars: ✭ 563 (+2715%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Gbemu
WebAssembly based Gameboy Emulator
Stars: ✭ 120 (+500%)
Mutual labels:  emulator, gameboy, gameboy-emulator
dashboy
Gameboy Emulator implemented by pure Dart
Stars: ✭ 130 (+550%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Cryboy
A Game Boy (Color) emulator written in Crystal
Stars: ✭ 68 (+240%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Gopher Boy
🎮 A Game Boy emulator written in Go
Stars: ✭ 206 (+930%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Vba M Nx
WIP full featured port of VBA-M for Nintendo Switch
Stars: ✭ 11 (-45%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Coffee Gb
Gameboy emulator in Java 8.
Stars: ✭ 953 (+4665%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Goboy
Multi-platform Nintendo Game Boy Color emulator written in Go
Stars: ✭ 2,403 (+11915%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Rustyboy
A Gameboy emulator written in Rust.
Stars: ✭ 224 (+1020%)
Mutual labels:  emulator, gameboy, gameboy-emulator

rusty-boy

Build Status

A Gameboy emulator and related tools in Rust

It's currently in a very unstable state.

Made live on twitch.tv/maoeurk (Unfortunately I'm not currently streaming, but I'd like to resume in the near future)

WARNING

V0.1.1 introduces a lot of instability and has many regressions

Don't expect it to work outside of a development context at this stage.

Contributions welcome!

About

Project done for fun and learning about Rust and project management.

Memory visualization inspired by ICU64 / Frodo Redpill v0.1

V0.1.0: image of memory visualization of Tetris. tetris v0.1.0

V0.1.0: Game, Popup, running with the ncurses debugger. popup debugger v0.1.0

State of the project

Things came up and I stopped developing this and streaming. The primary reason being that the change from 0.1.0 to 0.2.0 was too large and became unmanageable.

Current goals:

  • Reduce scope of project

  • Rewrite rendering and visualization to be GPU based (Vulkan or OpenGL)

  • Finish rendering (sprite flipping, textboxes)

  • Rewrite sound (properly and with visualizations)

  • Refactor CPU, memory management, and IO (basically the entire project)

  • Optimize CPU execution (high level JIT? no machine code generation, just recompiled to a more performant bytecode) if it's a performance bottleneck

  • Fix usability bugs (rebindable keys, some kind of more complete controller support)

  • Fix regressions introduced in 0.1.1 (Tetris crashes now ;_;)

Non goals:

  • Fancy compilers, assemblers, and debug/dev tools (I'll add support for these in a decoupled way if I actually finish the tasks above)

  • Full support for extra features (like the camera)

= Be a better product than existing emulators (I'm sure there are much nicer emulators for playing games. Usability is not a primary goal at this time)

Building

First install libsdl2-dev. If you're new to Rust, install rustup to install rustc and cargo.

You may need to install ncurses libraries to compile this project. TODO: test and update this

Then just run:

cd rusty-boy
cargo install

and you should be up and running.

Running

To run, run the following command:

cargo run --release -- /path/to/rom

To run with the TUI debugger, run:

cargo run --release --features=debugger -- /path/to/rom -d

To run with the debugger, run:

cargo run --release --features="debugger" -- /path/to/rom -d
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].