mattbruv / Gameboy-Crust

An experimental Game Boy Color (GBC) emulator written in Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gameboy Crust

Gameboy Crust is a work-in-progress emulator for the Game Boy Color written in the Rust programming language. This project serves as a complete re-write of my first attempt at Game Boy emulation, as well as an opportunity to learn Rust. My goal is for the design of this emulator to be much more abstracted and polished than its predecessor, along with providing full GBC functionality.

The name is derived from the idea that Color + Rust = Crust. It's not the most endearing name, but I think it's perfect. Crust is the least appealing part of food, and you probably aren't going to eat it unless you are really hungry. Much in the same way, Gameboy Crust is a relatively unattractive choice compared to professional emulators for this system. But maybe you are that strange person who prefers eating crust. If so, this is the emulator for you!

Progress

Gameboy Crust is quite trivial at the moment. Video/Hardware emulation is very basic but will improve quickly over time. Full DMG (original gameboy) emulation is a priority before fleshing out GBC emulation.

Progress

Build / Running

Building Gameboy Crust relies on having Rust installed. After cloning this repository into a folder, all that is needed is a simple: cargo run [--release] <path to ROM>. All dependencies will be gathered and built automatically.

Once the project is completed, official releases will be compiled and released here.

Controls

Function Key
A A
B S
Start Z
Select X
D-Pad Up 🡱
D-Pad Down 🡳
D-Pad Left 🡰
D-Pad Right 🡲
View VRAM V
Speed x10 Space

Feature Checklist

A checklist of all the planned system components as I complete them. The entries with check marks have been started on. Italic entries still need work.

  • CPU (Sharp LR35902)
  • Memory / Memory Map
  • Cartridge Memory Bank Controllers
  • Cartridge Battery backed SRAM
  • Interrupt Controller
  • Frequency/Timing
  • Video Display
  • Full GBC Color Palettes
  • Joypad Input
  • Audio Output
  • Link Cable (via networking?)
  • CPU overclocking
  • Hardware Save States
  • SRAM Save States
  • Gameshark/Genie Cheats
  • Trivial Debugger/Dissassembler
  • VRAM Viewer

About

An experimental Game Boy Color (GBC) emulator written in Rust

License:MIT License


Languages

Language:Rust 100.0%