aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md (renamed from README)30
1 files changed, 15 insertions, 15 deletions
diff --git a/README b/README.md
index 605481d..49ebf61 100644
--- a/README
+++ b/README.md
@@ -1,19 +1,19 @@
-nes emulator in go
+# nes emulator in go
im trying to make it somewhat commented so yeah :D
-TODO:
-emulator base
+### TODO:
+#### emulator base
- [x] cpu passing nestest
- [x] cart package (iNES parser, mapper 0)
-system bus (nes package)
+#### system bus (nes package)
- [/] Bus type: 2KB RAM mirrored through $1FFF, PPU regs $2000-$3FFF (mirrored every 8), APU/IO $4000-$4017, cart $4020+ (APU still missing)
- [ ] OAM DMA at $4014 (stalls CPU 513/514 cycles)
- [x] reuse it in nestest_test.go instead of the test-only bus
- [ ] CPU stall hook and proper IRQ/NMI line (polled between instructions) - PPU currently fires NMI straight from Console.Step, see its doc comment
-ppu, background
+#### ppu, background
- [x] registers $2000-$2007 and v/t/x/w latch logic
- [x] nametables with mirroring, palettes, buffered $2007 reads (pattern tables go through the mapper already)
- [x] 341 dots x 262 lines timing, 3 dots per CPU cycle, odd-frame skip dot
@@ -21,36 +21,36 @@ ppu, background
- [ ] background shift-register pixel pipeline, PPUMASK clipping
- [ ] 256x240 framebuffer and RGB palette
-frontend and input
+#### frontend and input
- [ ] cmd/gones sdl2 gui (veandco/go-sdl2): window, framebuffer texture, one frame per 1/60s, vsync
- [ ] sdl2 audio output (queue or callback)
- [ ] controller $4016/$4017 strobe and shift register, keyboard mapping
-ppu, sprites
+#### ppu, sprites
- [ ] OAM, per-scanline evaluation, 8-sprite limit, 8x8 and 8x16, flip, priority
- [ ] sprite-0 hit
-more mappers
+#### more mappers
- [ ] MMC1 (1), UxROM (2), CNROM (3), AxROM (7)
- [ ] MMC3 (4) with scanline IRQ
- [ ] battery-backed save files
-apu
+#### apu
- [ ] pulse x2, triangle, noise, DMC, frame counter, mixer
- [ ] resampling and audio output
-accuracy
-- [ ] missing unofficial NOPs
+#### accuracy
+- [ ] implement all unofficial instructions
- [ ] run accuracycoin and blargg's CPU, PPU, APU and MMC3 test ROMs
-polish
+#### polish
- [ ] save states, pause/reset, fullscreen, gamepad
- [ ] headless mode with framebuffer-hash regression tests
- [ ] movie support
- [ ] (maybe) tas tools
-testing:
-run "go test ./..." to run all test, "go test ./... -v" for verbose
+### testing:
+run `go test ./...` to run all tests
-tests/testdata/nestest.nes and nestest.log are by kevin horton (kevtris), included for testing only.
+`tests/testdata/nestest.nes` and `tests/testdata/nestest.log` are by kevin horton (kevtris), included for testing only.