Skip to content

SID Detector II v1.5.05

Latest

Choose a tag to compare

@MichaelTroelsen MichaelTroelsen released this 28 May 09:42
· 3 commits to master since this release

Internal refactor, Q-page test coverage, and documentation. No new user-facing detection behaviour over v1.5.04 — this release rolls up the work that landed just after the v1.5.04 tag was cut (all still V1.5.04 in source, now under a clean version).

Single source of truth for chip-type names

The Q page and the debug page each carried their own code→name mapping, and they had drifted — that's what produced the v1.5.04 $01/$02 6581/8580 swap and the $0E SIDKick-pico mismap. They're now consolidated: one sid_type_index resolver + a 17-byte sid_code_to_slot table feed two row-aligned name tables (sidname_short_* for the 6-char Q page, sidname_long_* for the debug page). Adding a chip is one row in each — they can't disagree. ULTISID ($20–$26) stays special-cased in each printer, where the detail levels legitimately differ (debug names all 7 filter-curve variants; the Q page only distinguishes 8580 vs 6581 family). Binary shrank 49222 → 49184 bytes.

Q-page test suite

  • Unit (headless, make ci now 43/43): T36–T43 exercise sid_type_index directly — the keystone resolver that now drives both pages. They guard the exact codes that drifted: $01→6581, $02→8580, $08→Nano, $09→PDsid, $0E→SIDKick-pico-6581, $30→SIDFX, $F0→NoSID, $0F→UNKWN.
  • Hardware (make hw_test TEST 9): enters the Quality page on a real U64, reads screen RAM after the decay measurement settles, and logs the per-slot sidcheck grade + $D418 decay into the run report — the real-silicon numbers VICE can't produce.

Documentation

  • README: Quality-page feature row + a dedicated section (row format, the two fingerprints, the per-slot operand-patch porting, the VICE N00-decay caveat); test-coverage table brought current from S8 to S14.
  • STORY.md: new section 24 "The Quality Fingerprint Page — Grading What You Detect" — the design, the sidcheck cycle-timing port, the two emulator-hidden bugs (KickAsm (label),y zero-page truncation; the calcandloop txs/tsx tail-call trap), and the table consolidation.

Verified

make ci 43/43. Q-page WinVICE smoke renders the expected layout; debug page shows D400: 8580 FOUND for type $02 (the swap fix holds through the refactor). Variant goldens unaffected.