Skip to content

samcday/oxideboy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oxideboy

Eventually, this will be a fully featured Gameboy/Gameboy Color emulator written in Rust.

Goals

  • High quality, thoroughly documented, and performant code, useful as a learning resource for Gameboy emulation.
  • Cycle accuracy with various original hardware models for accurate emulation.
  • Full-featured debugging interface

Why another Gameboy emulator?

Well let's be real, I'm writing this because I want to. But here's some post-rationalization:

  • Some of the most highly accurate emulators, lke BGB & Beaten Dying Moon, are not open source and thus not very useful for learning about Gameboy emulator development.
  • Other high quality emulators, like Sameboy, mooneye-gb, etc, suffer from either a) overengineered code that is difficult to read, or b) C++ that is difficult (for me, and I'm sure many others) to reason about.

Roadmap

  • Initial implementation of CPU, PPU, APU, serial, interrupts, etc.
  • Save states
  • Frame / cycle rewinding
  • Remove all panics and do graceful error handling
  • Web-based debugger
    • Memory viewer/editor
    • Jump to location
    • CPU+HW register viewer/editor
    • Breakpoints
    • Break
    • Step forward
    • Step frame
    • Step backward
    • VRAM viewer
    • Load symbol map
  • Cart memory bank controllers
    • MBC1
    • MBC2
    • MBC3
    • MBC5
    • MBC7
  • PPU cycle accuracy
  • Blargg test suite
    • instr_timing
    • mem_timing
    • cpu_instrs
    • dmg_sound
    • oam_bug
  • mooneye-gb test suite
    • acceptance
    • acceptance/bits
    • acceptance/instr
    • acceptance/oam_dma
    • acceptance/ppu
    • acceptance/serial
      • with skipped bootrom
      • with real bootrom
    • acceptance/timer
    • mbc1
  • mealybug-tearoom test suite
  • GBC implementation
    • Bootrom + skip
    • RAM banking
    • VRAM banking
    • KEY1 register mode select
    • CGB palettes
    • VRAM DMA
    • BG Map attributes
    • Infra port?
    • PCM registers
  • SGB implementation
    • Bootrom + skip
    • SGB command packet protocol
    • SGB border
    • SGB color palettes

About

Yet another Gameboy emulator written in Rust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published