Skip to content

v1.0.3

Choose a tag to compare

@danielgatis danielgatis released this 25 Jul 23:32
refactor: library-only core with a debug observation surface

Drop the wire protocol (proto/server/cmd/nesd) and its docs. The only
consumer was cmd/nesd; the examples and the WASM build already use the
Console Go API directly, so the emulator is now a pure in-process library.

Move the public package from the module root into nes/ so the import path
basename matches the package name and consumers no longer alias the import.
Remove the stale /nes rule from .gitignore, which had started shadowing the
new package directory.

Add the observation surface an external debugger builds on, all zero-cost
when unused: an optional bus Observer (every CPU read/write), a MemFilter
(Game Genie reads, value locks and blocks), and OAM/PaletteRAM/SetRegister
accessors. Covered by new tests; the full suite still passes 436/436 with
the accuracy floors (AccuracyCoin 141/141, nestest, blargg) intact.