Skip to content

TheSorm/Boy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boy

Boy is a Gamboy (dmg not 0) emulator written in Java.

Goals

  • Writing a good understandable emulator without any magic
  • Understanding how the hardware works to make a clear implementation

Non-goals

  • Having the best performance

To-do

  • Pass all tests for dmg (not 0)
  • Implement sound
  • Make implementation of MBC1 clearer
  • Implement all other MBC's

Tests

Blargg's cpu_instrs tests

Test Boy
01-special 👍
02-interrupts 👍
03-op sp,hl 👍
04-op r,imm 👍
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) 👍

Blargg's instr_timing tests

Test Boy
instr_timing 👍

Blargg's mem_timing tests

Test Boy
01-read_timing 👍
02-write_timing 👍
03-modify_timing 👍

Mooneye GB acceptance tests

Test Boy
add sp e timing 👍
boot div dmgABCmgb
boot hwio dmgABCmgb 👍
boot regs dmgABC 👍
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 👍

Bits (unusable bits in memory and registers)

Test Boy
mem oam 👍
reg f 👍
unused_hwio GS 👍

Instructions

Test Boy
daa 👍

Interrupt handling

Test Boy
ie push 👍

OAM DMA

Test Boy
basic 👍
reg_read 👍
sources dmgABCmgbS

PPU

Test Boy
hblank ly scx timing GS
intr 1 2 timing GS 👍
intr 2 0 timing 👍
intr 2 mode0 timing 👍
intr 2 mode3 timing 👍
intr 2 oam ok timing 👍
intr 2 mode0 timing sprites
lcdon timing dmgABCmgbS 👍
lcdon write timing GS 👍
stat irq blocking
stat lyc onoff
vblank stat intr GS 👍

Serial

Test Boy
boot sclk align dmgABCmgb

Timer

Test Boy
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

Mooneye GB emulator-only tests

MBC1

Test Boy
bits ram en 👍
rom 512Kb 👍
rom 1Mb 👍
rom 2Mb 👍
rom 4Mb 👍
rom 8Mb 👍
rom 16Mb 👍
ram 64Kb 👍
ram 256Kb 👍
multicart rom 8Mb

Mooneye GB manual tests

Test Boy
sprite priority 👍

About

Gameboy emulator written in Java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages