diff options
| author | crecher <crecher@crecher.net> | 2026-10-12 16:41:11 +0200 |
|---|---|---|
| committer | crecher <crecher@crecher.net> | 2026-10-12 16:41:11 +0200 |
| commit | 84801d18b9885c6d70914c67a76d8ac8e3b2b20d (patch) | |
| tree | f5e6c2ba2b2a7738a22226ca19b7562832cbce8a | |
| parent | 0be10a289132f7ed9b42d5949db844227075e7ce (diff) | |
| download | gones-84801d18b9885c6d70914c67a76d8ac8e3b2b20d.tar.gz gones-84801d18b9885c6d70914c67a76d8ac8e3b2b20d.zip | |
i changed my mind i like markdown
| -rw-r--r-- | README.md (renamed from README) | 30 |
1 files changed, 15 insertions, 15 deletions
@@ -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. |