Skip to content

v0.1.10

@monteslu monteslu tagged this 01 Jun 14:51
From a remote user's NES→Genesis play-screen port feedback. Six items, all
verified (the two flagged "if you change one thing" are the first two):

- inspectBackgroundMap (NES render:false) now returns DECODED structured data
  instead of a 4096-char CIRAM hex blob: `tiles` grid, `subPaletteGrid`
  (per-tile BG sub-palette 0-3, decoded from the attribute table so the agent
  never hand-decodes the 2-bit-per-16x16-block format), and `distinctTiles`.
  New `decodeNametable()` in platforms/nes/ppu.js. Plus the scoping that was
  asked for: `region:{x,y,w,h}` sub-rectangle, `attributesOnly:true` (smallest
  payload), and `outputPath` to spill a full-screen decode to disk + return a
  summary. The reported three-step "raw hex -> Python decode -> eyeball"
  collapses to one call. (ppu.test.js +3 cases.)

- inspectPalette: NES `area:"bg"|"sprite"|"all"` + `subPalette:0-3` filters.
  "confirm BG sub-palette 3" goes from 32 entries to 4 (~87% smaller). Swatch
  PNG still shows the full set.

- pressButton: was holding for `frames` then stepping 1 more to release but
  reporting `frames+1`, contradicting the documented default of 2. Now reports
  `frames` (held) + `releaseFrames` + `framesStepped` honestly.

- loadMedia: omit `framebuffer` until a frame has run (the pre-boot default
  e.g. 256x192 doesn't match real output e.g. 256x224 and misled dimension
  routing); return a `framebufferNote` pointing at stepFrames instead.

- buildSource: strip the GCC -ftime-report timing table + LTO interprocedural
  phase dump from the inline log/tail on SUCCESS (noise that crowded out the
  linker-map/objcopy signal). Full untrimmed log still written to logPath;
  nothing stripped on failure. (toolchain.denoise.test.js, 4 cases.)

All verified live through the MCP wire. Suite 372 -> 379, all green.
Assets 2
Loading