Skip to content

v0.1.0

@monteslu monteslu tagged this 30 May 17:52
SNES (no core patch needed — snes9x already shadows $2100-$213f into
Memory.FillRAM by full register address):
- decodePpuRegs/ppuRegsPopulated decode OBSEL/BGMODE/BGxSC/BGxNBA/TM/TS/
  color-math from snes_fillram; getRenderingContext returns real OBJ size,
  tile base, per-layer tilemap/char bases, screen enables.
- inspectSprites: renderable vs hidden (+reason), resolved tileVramAddr and
  cgramPaletteRange, real OBJ size from live OBSEL, renderableCount.
- checkObjPalettes flags unintended OBJ palette lines — not just all-zero,
  but flat-fill, default-ramp, and lines referenced above the uploaded block.
- frame overlay, whichTilesAreRendered, metasprite capture use live OBSEL.
- parse-errors: parseWla extracts the real error from wlalink's symbol-table
  flood; splitByStage tolerates parenthesized markers and ignores a tool's
  own banner lines.
- MENTAL_MODEL/TROUBLESHOOTING: OBJ stable-path recipe + tool-led sprite debug.

Playtest: window title defaults to the loaded ROM/project name (deriveTitle);
runSource gains optional projectName.

GBA wasm: cc1-arm.wasm shipped with ~95MB of DWARF debug info (136MB total).
Add -g0 to the emcc relink flags so future builds are lean; strip-wasm-debug.mjs
drops the .debug_*/name custom sections from the existing artifact (136MB ->
38MB, validated + builds a real GBA ROM).

npm publish: verify-wasm.mjs asserts each package's shipped .wasm exists, is
sized, and has valid wasm magic; wired as publish-all.mjs preflight and as
prepublishOnly in every wasm-bearing package.

Tests: 351/351.
Assets 2
Loading