Skip to content

reformed gameboy emulator in golang with revised structure

License

Notifications You must be signed in to change notification settings

strayacode/RoseGB

Repository files navigation

RoseGB

reformed gameboy emulator in golang with revised structure

Screenshots:

Test Pass Checklist:

Blargg:

  • 01-special.gb
  • 02-interrupts.gb
  • 03-op sp, hl.gb
  • 04-op r, imm.gb
  • 05-op rp.gb
  • 06-ld r, r.gb
  • 07-jr, jp, call, ret, rst.gb
  • 08-misc instrs.gb
  • 09-op r,r .gb
  • 10-bit ops.gb
  • 11-op a, (hl).gb
  • cpu_instrs.gb
  • instr_timing.gb

tests:

  • boot_regs-dmgABC.gb

instr:

  • daa.gb

MBC1:

  • bits_bank1.gb
  • bits_bank2.gb
  • bits_mode.gb
  • bits-ramg.gb
  • multicart_rom_8Mb.gb
  • ram_64kb.gb
  • ram_256kb.gb
  • rom_1Mb.gb
  • rom_2Mb.gb
  • rom_4Mb.gb
  • rom_8Mb.gb
  • rom_16Mb.gb
  • ram_512kb.gb

TODO:

  • Interrupts
  • Timers
  • Proper joypad functionality
  • OAM + DMA
  • finish off MBC1
  • More interactive VRAM viewer
  • play/pause/step functionality
  • add emulator window that can be "popped out" of the main window to play the emulator on any screen
  • be able to easily change the size of the game window
  • pixel fifo
  • full restructure of emulator for optimization
  • audio
  • add more debugging features, live preview of background/window with frame, sprite properties etc.

Usage:

to compile RoseGB in the terminal type go build rosegb.go apu.go bus.go cartridge.go cpu.go debug.go interrupt.go opcodes.go ppu.go timer.go keypad.go and use ./rosegb path-to-file to run

use the flag -skip-bootrom if you don't own a copy of the dmg bootrom

About

reformed gameboy emulator in golang with revised structure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages