Giter Club home page Giter Club logo

boy's Introduction

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 ๐Ÿ‘

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.