Skip to content

Experimental GameBoy Emulator implementation in Rust.

Notifications You must be signed in to change notification settings

gcarq/romoulade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Romoulade

Build Status

Experimental Gameboy Emulator implementation in Rust.

State

This emulator is not production ready and mainly a emulation exploration project. At this point it is capable of processing the Original Gameboy Bootstrap ROM.

Blargg's CPU test results

Test No. Result Remark
01-special Passed
02-interrupts Passed
03-op sp,hl Passed
04-op r,imm Passed
05-op rp Passed
06-ld r,r Passed
07-jr,jp,call,ret,rst Passed
08-misc instrs Passed
09-op r,r Passed
10-bit ops Passed
11-op a,(hl) Passed

Debugger

Passing --debug starts a simple debugger, this feature is WIP and might just not work.

Debugger

Usage

romoulade 0.1.0
gcarq <[email protected]>
Experimental GB Emulator

USAGE:
    romoulade [FLAGS] <ROM>

FLAGS:
        --debug           Enable debugger
    -h, --help            Prints help information
        --no-fps-limit    Disable fps limit for debugging purposes
    -V, --version         Prints version information

ARGS:
    <ROM>    Path of the ROM to load

Development

$ git clone https://github.com/gcarq/romoulade
$ emerge media-libs/libsdl2 # pacman -S sdl2; apt install libsdl2-dev
$ cd romoulade
$ cargo run -- <path_to_rom>

This repository is open to contributions. The code should follow the Rust style guideline.

Dependencies

  • Rust
  • SDL2-2.0

TODOs

  • ROM banking: Implement MBC2+
  • Increase instruction test coverage
  • Finish Pixel Processing Unit
  • Implement Sound Processing Unit
  • Pass Test ROMs
  • ...

Resources

About

Experimental GameBoy Emulator implementation in Rust.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published