Files
pokemon_pinball_wiki/analysis-evidence-map.md
2026-07-10 22:39:27 -05:00

5.7 KiB

Analysis Evidence Map

Purpose

This page maps the durable outputs under analysis/ to the wiki pages that interpret them. It is an inventory of locally generated evidence, not a claim that every recovered label or emulator behavior is target-confirmed.

Confidence terms used throughout the wiki:

  • Confirmed static evidence: directly supported by a target file, hash, string offset, decoded table, or reproducible parser output.
  • Validated host artifact: a host-side parser or emulator passed its local checks, but has not necessarily been accepted by the game or physical hardware.
  • Inferred label: derived from ordering, ASR, content matching, or structural correlation and still needs native/script confirmation.
  • Runtime observation: observed only in the generated QEMU guest copy; it does not modify or authenticate the extracted rootfs evidence.

Coverage Summary

Analysis area Durable evidence Current result Interpretation
Static binary and package triage analysis/static-triage/ Offset strings and ELF metadata for the main game, SPIKE menu, and netbridge; .sidx paths; Intel HEX address ranges Confirmed static evidence; see main-game-behavior.md and package-image-firmware.md.
Whole-rootfs audio search analysis/audio-search/summary.json 7,375 files scanned; 281 files had parseable media streams; none had an audio stream Supports the conclusion that gameplay audio is stored in Radium image.bin, not as ordinary rootfs audio files; see audio-asset-search.md.
Main Radium image analysis/radium-image/header.json Section 8 CRC matches (0x3f401e79); all 2,491 PCM rows are bounded; 12,710 sound references resolve; 12,655 command streams decode with zero malformed streams Confirmed parser output; see radium-image-format.md and sound-export.md.
SPIKE menu Radium image analysis/radium-spike-menu-image/header.json Section 8 CRC matches (0xb8fe11f9); all 54 PCM rows are bounded; 300 sound references resolve; 340 command streams decode with zero malformed streams Confirmed parser output; see sound-spike-menu.md.
Radium command tables analysis/radium-image/command_opcode_rows.tsv, analysis/radium-spike-menu-image/command_opcode_rows.tsv 108,765 main-game command rows across 13 observed opcodes; 2,065 SPIKE-menu rows across 10 opcodes The stream structure is decoded, but most non-0x0b opcode semantics remain open.
Radium bitmaps analysis/radium-image/section3_bitmap_manifest.tsv 1,477 records: 1,449 raw indexed previews and 28 compact payloads still undecoded Partial static recovery; see radium-section3-bitmaps.md.
Compiled Godot scripts analysis/godot-introspection/ 93 .gdc script summaries, 760 sound constants, and 772 validated sound-reference rows String/catalog recovery is confirmed; general bytecode/control-flow recovery remains incomplete.
Sound naming analysis/all-sound-best-name-manifest.tsv One best-available name for 2,545 exports: 2,491 main-game and 54 SPIKE-menu WAVs Mixed provenance. Native names are stronger than Pokedex alignment, catalog/ASR matches, draft ASR, and structural fallbacks.
Native sound names analysis/radium-image/native_named_sound_manifest.tsv 25 registrations recovered from direct native call sites Confirmed static names.
Pokedex voice alignment analysis/radium-image/pokedex_voice_label_manifest.tsv 1,137 aligned voice rows Strong structural/content alignment, but not a general native object-name map.
ASR and catalog enrichment analysis/radium-image/asr_draft_sound_labels.tsv, asr_catalog_sound_label_candidates.tsv, asr_review_sound_label_candidates.tsv 2,486 ASR rows, 220 catalog matches, and 169 low-confidence review candidates Inferred labels. The viewer isolates these catalogs from research search by default.
Conagent backend analysis/conagent-machine-emulator/ Configurable host-side HTTP/time/machine-state emulator Validated host artifact; protocol coverage is intentionally partial; see conagent-machine-emulator.md.
Netbridge analysis/netbridge-emulator/, analysis/netbridge-pico-firmware/ Python UART emulator plus portable/Pico protocol model for recovered framing, version, CRC, and stub node commands Host tests pass. Full game acceptance and live electrical/timing validation remain open; see netbridge-re.md.
Topper node analysis/topper-emulator/ MicroPython model for the recovered serial-key command path Static protocol recovery plus host artifact; live nodebus validation remains open.

Important Boundaries

  • analysis/ is derived material. Original target paths and target hashes remain in artifact-index.md.
  • CRC validation proves that the decoded table matches the extracted image bytes; it does not prove every inferred semantic label.
  • ASR text is a search aid. It is not a native symbol source and may contain recognition errors.
  • Emulator unit tests validate the recreated model, not compatibility with every game state or the physical SPIKE bus.
  • QEMU results come from emulation/work/rootfs.ext4, a generated copy with injected helpers and shims. See docker-qemu-emulation.md for the runtime boundary and current blockers.

Open Enrichment Work

  1. Assign semantics to the remaining Radium opcodes by tracing native consumers.
  2. Decode the 28 compact section 3 bitmap payloads and verify palette/alpha behavior.
  3. Recover broader .gdc bytecode control flow where strings alone do not establish reachability.
  4. Promote inferred sound names only when supported by native registration, script linkage, or runtime evidence.
  5. Validate netbridge and topper models against the game or hardware captures before describing them as target-compatible.