Skip to content
/ sloppy Public

A cross-platform Gameboy emulator written in C++

Notifications You must be signed in to change notification settings

squk/sloppy

Repository files navigation

sloppy emu

Multiplatform Gameboy Color emulator

DMG: in progress CGB: not started

dmg-acid2 test passing: dmg-acid2 test passing image

Work in progress. Currently debugging emulator opcodes on a computer's CLI.

Tests

Blargg's tests

cpu instrs test pass/fail
01-special 👍
02-interrupts 👍
03-op sp,hl 👍
04-op r,imm 👍
04_op_r_imm.h 👍
05-op rp 👍
06-ld r,r 👍
07-jr,jp,call,ret,rst 👍
08-misc instrs 👍
09-op r,r 👍
10-bit ops 👍
11-op a,(hl) 👍

mooneye-gb tests

Acceptance Tests

Test pass/fail
add sp e timing
boot div dmg0
boot div dmgABCmgb
boot div S
boot div2 S
boot hwio dmg0
boot hwio dmgABCmgb
boot hwio S
boot regs dmg0
boot regs dmgABC
boot regs mgb
boot regs sgb
boot regs sgb2
call timing
call timing2
call cc_timing
call cc_timing2
di timing GS
div timing
ei sequence
ei timing
halt ime0 ei
halt ime0 nointr_timing
halt ime1 timing
halt ime1 timing2 GS
if ie registers
intr timing
jp timing
jp cc timing
ld hl sp e timing
oam dma_restart
oam dma start
oam dma timing
pop timing
push timing
rapid di ei
ret timing
ret cc timing
reti timing
reti intr timing
rst timing

Timer

Test pass/fail
div write 👍
rapid toggle
tim00 div trigger
tim00 👍
tim01 div trigger
tim01 👍
tim10 div trigger
tim10 👍
tim11 div trigger 👍
tim11 👍
tima reload
tima write reloading
tma write reloading

Memory Bank Controllers

MBC1

Test pass/fail
bits bank1 👍
bits bank2 👍
bits mode 👍
bits ramg 👍
rom 512kb 👍
rom 1Mb 👍
rom 2Mb 👍
rom 4Mb 👍
rom 8Mb 👍
rom 16Mb 👍
ram 64kb
ram 256kb 👍
multicart rom 8Mb

MBC2

Test pass/fail
bits ramg
bits romb
bits unused
rom 512kb
rom 1Mb
rom 2Mb
ram

MBC5

Test pass/fail
rom 512kb
rom 1Mb
rom 2Mb
rom 4Mb
rom 8Mb
rom 16Mb
rom 32Mb
rom 64Mb

Mooneye GB manual tests

Test pass/fail
sprite priority 👍

deps

https://devkitpro.org/ https://github.com/devkitPro/libgba

resources

https://www.cl.cam.ac.uk/~pv273/slides/emulation.pdf
http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf
http://www.meditronik.com.pl/doc/plus/um0080.pdf
https://mgba.io/2015/06/27/cycle-counting-prefetch/
https://cturt.github.io/cinoop.html
https://github.com/drhelius/Gearboy
https://github.com/mattrubin/Gambit
https://gb-archive.github.io/salvage/decoding_gbz80_opcodes/Decoding%20Gamboy%20Z80%20Opcodes.html
http://www.devrs.com/gba/files/gbadevfaqs.php

About

A cross-platform Gameboy emulator written in C++

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages