diff options
| author | crecher <crecher@crecher.net> | 2026-10-12 04:07:09 +0200 |
|---|---|---|
| committer | crecher <crecher@crecher.net> | 2026-10-12 04:07:09 +0200 |
| commit | 8b0292cccf768efdd5295fe0b662488cbc671079 (patch) | |
| tree | f2896047a2328d8aea9a7f7815a6cf8d9c0636ea /README.md | |
| parent | 7775f9ad5407f2be4b03c300d1db4c745fda2f69 (diff) | |
| download | gones-8b0292cccf768efdd5295fe0b662488cbc671079.tar.gz gones-8b0292cccf768efdd5295fe0b662488cbc671079.zip | |
added cart package, more tests, tests are now at ./tests and added .gitignore
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..9fa3119 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +nes emulator in go + +TODO: +emulator base +- [x] cpu passing nestest +- [x] cart package (iNES parser, mapper 0) + +system bus (nes package) +- [ ] Bus type: 2KB RAM mirrored through $1FFF, PPU regs $2000-$3FFF (mirrored every 8), APU/IO $4000-$4017, cart $4020+ +- [ ] OAM DMA at $4014 (stalls CPU 513/514 cycles) +- [ ] reuse it in nestest_test.go instead of the test-only bus +- [ ] CPU stall hook and proper IRQ/NMI line (polled between instructions) + +ppu, background +- [ ] registers $2000-$2007 and v/t/x/w latch logic +- [ ] nametables with mirroring, pattern tables, palettes, buffered $2007 reads +- [ ] 341 dots x 262 lines timing, 3 dots per CPU cycle +- [ ] vblank flag and NMI +- [ ] 256x240 framebuffer and RGB palette + +frontend and input +- [ ] cmd/gones with Ebitengine, one frame per 1/60s +- [ ] controller $4016/$4017 strobe and shift register, keyboard mapping + +ppu, sprites +- [ ] OAM, per-scanline evaluation, 8-sprite limit, 8x8 and 8x16, flip, priority +- [ ] sprite-0 hit + +more mappers +- [ ] MMC1 (1), UxROM (2), CNROM (3), AxROM (7) +- [ ] MMC3 (4) with scanline IRQ +- [ ] battery-backed save files + +apu +- [ ] pulse x2, triangle, noise, DMC, frame counter, mixer +- [ ] resampling and audio output + +accuracy +- [ ] missing unofficial NOPs +- [ ] run blargg's CPU, PPU, APU and MMC3 test ROMs +- [ ] decide whether to go cycle-stepped + +polish +- [ ] save states, pause/reset, fullscreen, gamepad +- [ ] headless mode with framebuffer-hash regression tests + + +testing: +run "go test ./..." to run all test, "go test ./... -v" for verbose + +disclaimer: +not affiliated with or endorsed by nintendo. no commercial roms are included, bring your own. (i dont want to get shot by nintendo :D) +tests/testdata/nestest.nes and nestest.log are by kevin horton (kevtris), included for testing only. +provided as is, without warranty. |