Skip to content

Commit

Permalink
Implement a basic interactive debugger
Browse files Browse the repository at this point in the history
Supports:
* Breakpoints
* Disassembling instruction at PC or a specific address (w/ operand values)
* Print registers/CPU state
* Print values at a given address
  • Loading branch information
maxfierke committed Sep 8, 2024
1 parent 7b63f58 commit a2a47c9
Show file tree
Hide file tree
Showing 6 changed files with 481 additions and 15 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ a gameboy emulator for funsies
- [X] Implement timer
- [X] Pass Blargg's `cpu_instrs`/`02-interrupts.gb` ROM (manually verified)
- [X] Pass Blargg's `instr_timing.gb` ROM (manually verified)
- [X] Implement a basic interactive debugger
- [ ] Pass Blargg's `mem_timing.gb` ROM (manually verified)
- [ ] Implement LCD
- [ ] Implement PPU, VRAM, OAM, etc.
Expand Down
2 changes: 2 additions & 0 deletions debug/debugger.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ func NewDebugger(name string) (Debugger, error) {
switch name {
case "gameboy-doctor":
return NewGBDoctorDebugger(), nil
case "interactive":
return NewInteractiveDebugger()
case "none":
return NewNullDebugger(), nil
default:
Expand Down
Loading

0 comments on commit a2a47c9

Please sign in to comment.