├── .github └── workflows │ └── tests.yaml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── NOTES.md ├── README.md ├── TODO.md ├── docs ├── GBCPUman.pdf └── Game Boy Programming Manual.pdf ├── emu-wasm ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── src │ └── lib.rs └── www │ ├── .gitignore │ ├── README.md │ ├── bootstrap.js │ ├── index.html │ ├── index.js │ ├── package.json │ └── webpack.config.js ├── emu ├── Cargo.toml ├── src │ └── main.rs └── tests │ ├── blargg_tests.rs │ └── common.rs ├── flake.lock ├── flake.nix ├── lib ├── Cargo.toml └── src │ ├── cartridge.rs │ ├── cpu.rs │ ├── debug.rs │ ├── dma.rs │ ├── dmg_boot.bin │ ├── error.rs │ ├── instructions.rs │ ├── joypad.rs │ ├── lib.rs │ ├── memory.rs │ ├── ppu.rs │ ├── registers.rs │ ├── rtc.rs │ └── timer.rs └── samples ├── blargg ├── cpu_instrs │ ├── 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 │ └── instr_timing.gb ├── cgb-acid2.gbc ├── donkey_kong_country.gbc ├── dr_mario_world.gb ├── dragon_warrior_monsters.gbc ├── kirbys_dreamland.gb ├── legend_of_zelda_links_awakening.gbc ├── mooneye └── oam_dma │ ├── basic.gb │ └── reg_read.gb ├── opus5.gb ├── pokemon_gold.gbc ├── pokemon_yellow.gbc ├── smb_deluxe.gbc ├── tetris_world.gb └── tetris_world_dx.gbc /.github/workflows/tests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/.github/workflows/tests.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["emu", "lib"] 3 | -------------------------------------------------------------------------------- /NOTES.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/NOTES.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/README.md -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/TODO.md -------------------------------------------------------------------------------- /docs/GBCPUman.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/docs/GBCPUman.pdf -------------------------------------------------------------------------------- /docs/Game Boy Programming Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/docs/Game Boy Programming Manual.pdf -------------------------------------------------------------------------------- /emu-wasm/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | www/package-lock.json 3 | -------------------------------------------------------------------------------- /emu-wasm/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/Cargo.lock -------------------------------------------------------------------------------- /emu-wasm/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/Cargo.toml -------------------------------------------------------------------------------- /emu-wasm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/README.md -------------------------------------------------------------------------------- /emu-wasm/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/src/lib.rs -------------------------------------------------------------------------------- /emu-wasm/www/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /emu-wasm/www/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/www/README.md -------------------------------------------------------------------------------- /emu-wasm/www/bootstrap.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/www/bootstrap.js -------------------------------------------------------------------------------- /emu-wasm/www/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/www/index.html -------------------------------------------------------------------------------- /emu-wasm/www/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/www/index.js -------------------------------------------------------------------------------- /emu-wasm/www/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/www/package.json -------------------------------------------------------------------------------- /emu-wasm/www/webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu-wasm/www/webpack.config.js -------------------------------------------------------------------------------- /emu/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu/Cargo.toml -------------------------------------------------------------------------------- /emu/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu/src/main.rs -------------------------------------------------------------------------------- /emu/tests/blargg_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu/tests/blargg_tests.rs -------------------------------------------------------------------------------- /emu/tests/common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/emu/tests/common.rs -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/flake.lock -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/flake.nix -------------------------------------------------------------------------------- /lib/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/Cargo.toml -------------------------------------------------------------------------------- /lib/src/cartridge.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/cartridge.rs -------------------------------------------------------------------------------- /lib/src/cpu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/cpu.rs -------------------------------------------------------------------------------- /lib/src/debug.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/debug.rs -------------------------------------------------------------------------------- /lib/src/dma.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/dma.rs -------------------------------------------------------------------------------- /lib/src/dmg_boot.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/dmg_boot.bin -------------------------------------------------------------------------------- /lib/src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/error.rs -------------------------------------------------------------------------------- /lib/src/instructions.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/instructions.rs -------------------------------------------------------------------------------- /lib/src/joypad.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/joypad.rs -------------------------------------------------------------------------------- /lib/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/lib.rs -------------------------------------------------------------------------------- /lib/src/memory.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/memory.rs -------------------------------------------------------------------------------- /lib/src/ppu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/ppu.rs -------------------------------------------------------------------------------- /lib/src/registers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/registers.rs -------------------------------------------------------------------------------- /lib/src/rtc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/rtc.rs -------------------------------------------------------------------------------- /lib/src/timer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/lib/src/timer.rs -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/01-special.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/01-special.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/02-interrupts.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/02-interrupts.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/03-op sp,hl.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/03-op sp,hl.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/04-op r,imm.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/04-op r,imm.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/05-op rp.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/05-op rp.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/06-ld r,r.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/06-ld r,r.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/07-jr,jp,call,ret,rst.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/07-jr,jp,call,ret,rst.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/08-misc instrs.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/08-misc instrs.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/09-op r,r.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/09-op r,r.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/10-bit ops.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/10-bit ops.gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/11-op a,(hl).gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/11-op a,(hl).gb -------------------------------------------------------------------------------- /samples/blargg/cpu_instrs/cpu_instrs.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/cpu_instrs/cpu_instrs.gb -------------------------------------------------------------------------------- /samples/blargg/instr_timing/instr_timing.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/blargg/instr_timing/instr_timing.gb -------------------------------------------------------------------------------- /samples/cgb-acid2.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/cgb-acid2.gbc -------------------------------------------------------------------------------- /samples/donkey_kong_country.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/donkey_kong_country.gbc -------------------------------------------------------------------------------- /samples/dr_mario_world.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/dr_mario_world.gb -------------------------------------------------------------------------------- /samples/dragon_warrior_monsters.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/dragon_warrior_monsters.gbc -------------------------------------------------------------------------------- /samples/kirbys_dreamland.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/kirbys_dreamland.gb -------------------------------------------------------------------------------- /samples/legend_of_zelda_links_awakening.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/legend_of_zelda_links_awakening.gbc -------------------------------------------------------------------------------- /samples/mooneye/oam_dma/basic.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/mooneye/oam_dma/basic.gb -------------------------------------------------------------------------------- /samples/mooneye/oam_dma/reg_read.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/mooneye/oam_dma/reg_read.gb -------------------------------------------------------------------------------- /samples/opus5.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/opus5.gb -------------------------------------------------------------------------------- /samples/pokemon_gold.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/pokemon_gold.gbc -------------------------------------------------------------------------------- /samples/pokemon_yellow.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/pokemon_yellow.gbc -------------------------------------------------------------------------------- /samples/smb_deluxe.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/smb_deluxe.gbc -------------------------------------------------------------------------------- /samples/tetris_world.gb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/tetris_world.gb -------------------------------------------------------------------------------- /samples/tetris_world_dx.gbc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aksiksi/gbc/HEAD/samples/tetris_world_dx.gbc --------------------------------------------------------------------------------