# Artifact Index

## Main Game Artifacts

| SHA-256 | Path |
| --- | --- |
| `1e5becb85840d0cc7a1d334b7cc43bdb83e51c7c7f8243bead8db679e9ffb22d` | `/games/pokemon_pro/game` |
| `a76da91f0cfdaecceb579ef27d223ab8a86c313d0eefa5217b96823c43c97e69` | `/games/pokemon_pro/conagent` |
| `2f1a958c1f859c339c716e53cc9ee752412373c486ea2a1bfd116eefce4617a3` | `/games/pokemon_pro/image.bin` |
| `a7df00dbbfb75838fd19d57ada30f4247d2ef1bc4b357ca0a64ab60f3a679af0` | `/games/pokemon_pro/spike3/spike_menu/image.bin` |
| `04af0fd78866ec3ae60b10311dedb3df2f3877595d19ee7bb01665ab10512778` | `/games/pokemon_pro/assets/godot/main.pck` |
| `caf06531ca1b969b6d727d76af7ace8931277dbdb6584ecb5a238f427fe0a76a` | `/games/spk/index/pokemon_pro-0_83_0.sidx` |

## Generated Asset Extraction Artifacts

These files are workspace-local generated artifacts, not target-root files.

| SHA-256 | Path | Notes |
| --- | --- | --- |
| `36fb0f000743093338a4994b75ce0de40611154dfc1d43f3d2d4b539036c9b79` | `assets/manifest.json` | Manifest for `main.pck` extraction into `assets/godot_raw/` and `assets/openable/`. |
| `e97b226472d7531464f8a95c0d01a2661c0486f21beb74216acd9d8c737cc436` | `assets/loose_manifest.json` | Manifest for openable copies harvested from loose `/games/pokemon_pro/assets` files. |
| `ad44ee65ddbd7f0a44e0a4b7f15332460fa48185fc45b12dc74b10f9dece9334` | `project.zip` | Improved Godot editor reconstruction with restored PNG source paths and loose `lcd`/`nuk` assets; 980,835,332 bytes. |
| `ad44ee65ddbd7f0a44e0a4b7f15332460fa48185fc45b12dc74b10f9dece9334` | `project_reconstructed.zip` | Same improved archive as `project.zip`, kept under an explicit reconstruction name. |
| `05d2606f23e694c369c855a232a787e03b8c838b346558df615598f01519cca1` | `project_basic_exported.zip` | First-pass exported-resource-only Godot wrapper; 255,346,627 bytes. |
| `bf673928249f53f763ebeb56bda55fab75128523194c41188b2df529eddcec98` | `godot_editor_project_reconstructed/project.godot` | Reconstructed Godot 4.4.1 project settings wrapper based on `project.binary`; autoload uses the compiled `SpikeSoundIds` global name. |
| `d56d6efd7a5b6cbf26cd1a2fcf1292b11ba3131fdefc3e821edde1b6f8be240e` | `godot_editor_project_reconstructed/RECONSTRUCTION_MANIFEST.json` | Manifest for the improved reconstruction: 1,050 restored PNG sources and media-audio scan summary. |
| `256ffb7711beecdc9f165e40d8f84fd2b1e474798bc4b497ab64558129f94964` | `analysis/media-audio-scan.tsv` | `ffprobe` scan of Godot and loose media containers; one AAC-bearing MP4 found. |
| `a89999280fcf84a7e757c88246c35dcf3c49f7ec548c40b3b051aec3f2336ac1` | `rootfs-triage-wiki/scripts/build_godot_editor_reconstruction.py` | Static reconstruction builder for restored PNG sources, loose asset copy, media scan, autoload wrapper names, and zip packaging. |
| `19187f77af51093e2262ba8a042ec5a41cb5be20f9f12d19ef8855055567b952` | `rootfs-triage-wiki/scripts/search_audio_assets.py` | Whole-target-root static audio search helper; scans filenames, `file(1)`, magic signatures, strings, and `ffprobe` stream metadata. |
| `fafbd090ed03f1f0bb10e319ac01028a8f1120c3fd02c931415671377c1fe6ee` | `rootfs-triage-wiki/scripts/parse_radium_image.py` | Static Radium `image.bin` parser; validates section 8 CRC, extracts PCM chunk metadata, resolves section 5 opcode `0x0b` sound references, decodes generic section 5 opcode streams with image-specific table offsets, records opcode payload fields, and writes full/capped WAV exports. |
| `db6cdbd7d35da08cd432f27137aa7bd5e427981dc62151059e28cfd9526a774c` | `rootfs-triage-wiki/scripts/dump_radium_opcode_tables.py` | Static native opcode table dumper for Radium command streams; writes handler addresses, payload lengths, observed command counts, and common payloads for the main and SPIKE menu images. |
| `fa9da51e188771fd5ce1f9e0df0f586ab14948e6aa5d3d155df20f081d04cb8e` | `rootfs-triage-wiki/scripts/build_media_preview_pages.py` | Generates split wiki preview pages for exported sounds, Pokedex voice labels, catalog-matched ASR labels, low-confidence ASR review candidates, catalog-offset candidate labels, unresolved structural review rows, SPIKE menu sounds, best-named sound aliases, confirmed native sound-name aliases, sound-test-adjacent candidate rows, ASR draft labels, openable image/video/text/font assets, and Radium section 3 bitmap previews. |
| `f5c6d5046dd7c3591b4de9201c7cd7254e1fa0ff6d6363ed09c19ccceebc050b` | `rootfs-triage-wiki/scripts/export_radium_section3_bitmaps.py` | Static section 3 bitmap-record exporter; writes raw-indexed PNG previews when payload length supports `width * height` pixels and marks compact records as undecoded. |
| `e972f7bdbec246c3bf50f783cdb6dfcd8638c501450a0335c422971f762b9673` | `rootfs-triage-wiki/scripts/build_best_named_sound_aliases.py` | Builds one best-available named alias per exported main-game and SPIKE-menu WAV while preserving confirmed/aligned/catalog-ASR/ASR-review/catalog-offset-candidate/draft/duplicate-hash/hash-match/structural name provenance. |
| `01e3abd11d6bb77763b9043c226e0f0ae9b6b7dc8c2cddd4658efb4af36c4df0` | `rootfs-triage-wiki/scripts/build_asr_review_sound_labels.py` | Filters rejected Whisper ASR rows into low-confidence content-derived review candidates; these labels are weaker than accepted ASR and not native-confirmed. |
| `02a5df386d57609d8ed58d244bd3a8c0da2612d9615a3b51bb93316227214319` | `rootfs-triage-wiki/scripts/build_asr_catalog_sound_labels.py` | Matches accepted ASR transcripts to known Godot `SE_PK_VO_*` catalog constants using exact phrase matches and narrow documented ASR error variants. |
| `02033a942c02c8e8277ab6d97ca914f6b45be3f05b494b48c5b4389fda4ac5cf` | `rootfs-triage-wiki/scripts/build_pokedex_voice_aliases.py` | Aligns Radium objects `409` through `1545` to Pokedex description/name/category clips using `pokemon_data.txt` and ASR evidence, including six duplicate description variants. |
| `e09b6d47a3fb9a91f9e1236bf5fb95b36252f3fddbd52878c2f8dc79e482a2a1` | `rootfs-triage-wiki/scripts/build_catalog_offset_candidate_labels.py` | Builds an audit-only catalog-order offset candidate table from the two Ghidra-confirmed native anchor blocks; candidates are not promoted into best-name aliases. |
| `b6602ee951006b784fa0c2e75287ff7cb4d45f989b1d1f6155375888b6c0a5e3` | `rootfs-triage-wiki/scripts/transcribe_sound_draft_labels.py` | Local Whisper ASR helper for draft content labels on exported WAVs; output labels are triage aids, not native symbols. |
| `53fc124eb6ed43c8f93acb44495db55be1a15c7785d06ce964861851e7f964f7` | `rootfs-triage-wiki/scripts/extract_native_sound_registrations.py` | Static AArch64 extractor for native `GodotSpikeBridge` sound registration calls in `/games/pokemon_pro/game`. |
| `a0cf4cad90fcccfd97140599935e56d8e49ef68560aff6e25813e731ac3c20c0` | `rootfs-triage-wiki/scripts/build_native_named_sound_aliases.py` | Builds confirmed-name hardlink aliases for native sound registrations. |
| `e9a156d4371e03232c6826bd70e1576e34b6720352beafb06a9f41321c32cf1e` | `rootfs-triage-wiki/scripts/extract_native_sound_test_labels.py` | Extracts native sound-test-adjacent candidate rows and builds audit hardlink aliases for the candidate WAVs. |
| `ac0f243ec3fb29e1cd61cdd8b807ac1578bc1202e03538be3314c4380dbea723` | `rootfs-triage-wiki/scripts/extract_godot_gdc_strings.py` | Static decoder for exported Godot `.gdc` files: strips `GDSC` header, decompresses Zstandard payloads, and recovers plain plus XOR-`0xb6` strings. |
| `94e7de1da3f5183a457c4d26e6e93b8249bac9c4c6fe83f37802fc465b1ddfd2` | `rootfs-triage-wiki/scripts/build_viewer.py` | Static wiki viewer builder with media directives, a deterministic 2,545-sound index, scoped page search, and inline sound preview/download results. |
| `4bcc7c331f3d9cb28248ee1479941bbbfc7dc5a2708fd50b137fb036e92301ba` | `rootfs-triage-wiki/sound-index.json` | Generated canonical sound-search index with title, filename, provenance metadata, source gallery, and WAV path for all 2,545 best-named sounds. |
| `975df239ca2930e91abf7af5e53cb24a865ce31faf11a2bba9adae6e61995c3a` | `analysis/audio-search/summary.json` | Broad target-root audio scan summary: 7,375 files scanned, 281 stream-bearing files, 0 target-root files with audio streams. |
| `9f0132e612f2a6aafb5b00335cbf74b7f5fb57c5b34a4f9bda21e02b6ad0f91b` | `analysis/audio-search/filename-hits.tsv` | Audio-related filename hits; system audio stack files and images, not gameplay sound content. |
| `818e61772280cd597c3b101aa90b90764630bd8d7892ea5c20bf5e48f34d408c` | `analysis/audio-search/file-type-hits.tsv` | `file(1)` media/audio-looking hits; target-root video containers plus firmware false positives. |
| `8707c33b9ce6b33c693dcf187f277b474d0abd4086858096b041d3e1f2abd0eb` | `analysis/audio-search/magic-hits.tsv` | Binary magic signature hits, including expected codec/library false positives and invalid Ogg-like executable offsets. |
| `b93b2019c8b021267e96c77fee7932f30e8d8f8f71b0c424e4f74f9e02f3c9d9` | `analysis/audio-search/ffprobe-streams.tsv` | `ffprobe` stream metadata for target-root files; all parsed streams are video/non-audio. |
| `0587eb42a19459c99f35574b0892ea20a97737ad11c498189698392e7c7cc95a` | `analysis/audio-search/audio-related-strings.json` | Audio-related string samples from target-root support files and game binaries. |
| `6e87e7e5fb591d23336026299c3f2d8122b21fbebaa179dceee39227d6b68dc1` | `analysis/radium-image/header.json` | Parsed `/games/pokemon_pro/image.bin` header, section 8 CRC summary, command-reference summary, and generic command-stream summary; stored and calculated CRC32 both `0x3f401e79`. |
| `0c0d5c62f99def85df6cc2bd897e49cbc7f6940faf8598b5190632681e2711ec` | `analysis/radium-image/section4_table.tsv` | First-pass section 4 table parse: 27 rows, 32 bytes each. |
| `6c978cc5aca4b033ab5d805943e0dab395734c1506689c1c917496337bb5f7e8` | `analysis/radium-image/section3_bitmap_manifest.tsv` | Section 3 bitmap-record manifest: 1,477 pointer records, 1,449 raw indexed PNG previews, and 28 compact payload records left undecoded. |
| `5166347f4071c06e9aba93c150544b6bd1b4b3c7940dc039b517a429e100e137` | `analysis/radium-image/section3-bitmaps/` | Combined checksum over 1,449 generated section 3 bitmap preview PNG files. |
| `6bae024f109b39e5c07caff4cd9f51b43b4c33ec9f23b1d8f537e1e829d6500f` | `analysis/radium-image/section8_entries.tsv` | Parsed section 8 table: 2,491 rows of offset/key/count metadata for headerless PCM chunks. |
| `6bae024f109b39e5c07caff4cd9f51b43b4c33ec9f23b1d8f537e1e829d6500f` | `analysis/radium-image/pcm_candidates.tsv` | PCM candidates derived from section 8; all 2,491 rows produce bounded nonzero PCM lengths. |
| `35eb78ca13b2ba60bd861f4c4d1ba5245cfc35c101c58e6fadba33b11de17299` | `analysis/radium-image/command_sound_refs.tsv` | Static section 5 command-stream references: 12,710 opcode `0x0b` rows resolving local object IDs and variants to all 2,491 section 8 PCM chunks. |
| `2b831075a86f2d6b4bd7a939abd091325d39744f3850c69a4acda52749c7016f` | `analysis/radium-image/command_stream_summary.tsv` | Generic section 5 stream decode summary: 12,655 stream rows, 2,531 unique stream offsets, no malformed streams. |
| `027f6d19feff25b61244dea05bb2210368918c667bf4dac7f9cb278e8f95d16d` | `analysis/radium-image/command_opcode_rows.tsv` | Per-opcode section 5 decode rows with payload hex and generic little-endian field views: 108,765 command rows across 13 observed opcodes. |
| `fc061d33187c619ce75b9c321b2c5a08bdb938b142ffcc7fbcbfa566370f1d4d` | `analysis/radium-image/command_opcode_payload_summary.tsv` | Compact section 5 opcode payload summary for the main game image: command counts, unique payload counts, and common payload field values. |
| `51b1321758abf11f32dfe58dbb8906f1e36dcf2be028e367fd52fccab11d8131` | `analysis/radium-image/command_opcode_histogram.tsv` | Compact histogram of observed main-game section 5 opcodes and payload sizes. |
| `904a2146f0cd98560887cbbc0298a19b43d25020ae0c4a4598bc96728e1afcc2` | `analysis/radium-image/opcode_handler_table.tsv` | Main-game native opcode table dump: 19 entries with handler addresses, payload lengths, observed command counts, sound-reference counts, and common payloads. |
| `2cd69dd62290e99b015fdb4c819d9afc08999e6f1c55398e3847466ccc3a22a4` | `analysis/radium-image/sound_export_manifest.tsv` | Full sound export manifest: 2,491 deterministic WAV names, object/chunk refs, durations, channels, and offsets. |
| `78527ee3196c931b9d4856c90370cc0a34ed78feb849e2f42a40938a49ba8ac4` | `analysis/radium-image/sound_export_manifest.json` | JSON version of the full sound export manifest. |
| `c13f5856e4d513d880ca0b11d7bf3b673d021b7c1ba943289bab0ec834c8f5fe` | `analysis/radium-image/native_sound_id_map.tsv` | Ghidra-confirmed native sound-name map: 25 `GodotSpikeBridge` names, native IDs, registration call offsets, and string offsets. |
| `23da581619acf17232111a64d9883342c751308a402cb81899aca8d38f64de76` | `analysis/radium-image/native_named_sound_manifest.tsv` | Confirmed-name alias manifest linking native IDs to full-export WAVs and alias paths. |
| `64ea65706b60f89bfa8324eb3672951e8ac395bb7c184383128c842e39f3cfe0` | `analysis/radium-image/native_sound_test_label_manifest.tsv` | Native sound-test-adjacent candidate manifest linking 4 raw candidate rows to full-export WAVs and audit alias paths. |
| `d35eeca159a84358072bc0dea34feeacd1c6031a16ed492e4bacdae41e74f0a2` | `analysis/radium-image/asr_draft_sound_labels.tsv` | Local Whisper draft-label manifest: 2,486 rows transcribed, 1,705 accepted draft content labels. |
| `1ec01c850fd65aa5553cae652be493da64e36d702cfa677740ea93af331bc0d9` | `analysis/radium-image/asr_catalog_sound_label_candidates.tsv` | Catalog-match overlay: 220 accepted ASR rows matched to 90 known `SE_PK_VO_*` Godot voice catalog constants; inferred, not native-confirmed. |
| `35562e1c0e46c839bf7557f5659b0e4465f1321febb997134d53420f8b025cb8` | `analysis/radium-image/asr_review_sound_label_candidates.tsv` | Low-confidence review overlay: 169 rejected-ASR rows retained as weak content-derived candidates for human audit. |
| `31b767ed38401765c06c0d333739cb1218d6dfd598f8939237517e353fd133a3` | `analysis/radium-image/catalog_offset_candidate_labels.tsv` | Catalog-order offset audit: 225 rows with 25 confirmed native anchors, 199 unpromoted neighboring candidates, and 1 sound-test-candidate disagreement. |
| `d0d4a3894bb734ab0461baffa07918ffb3c9f47292a72e0f842aec682b368fa5` | `analysis/radium-image/sounds/` | Combined checksum over the per-file SHA-256 list for all 2,491 exported WAV files; directory size about 1.1 GiB. |
| `2513e32787cce9333a68481a3e9ba61d39affcc2990dce6e34b89704ac846aa8` | `analysis/radium-image/sounds-native-named/` | Combined checksum over the 25 confirmed-name WAV aliases; hardlinks to full-export WAV payloads. |
| `79ab3d3633c2d2034785dd49b855f8e5fedc2cf1512284c57699cc2a8a671717` | `analysis/radium-image/sounds-native-sound-test/` | Combined checksum over the 4 sound-test-adjacent candidate WAV aliases; hardlinks to full-export WAV payloads for audit. |
| `c53d2b82c1a26803ea40ac8b71b0fbde5335601f5e955f98bec45cf985b6694a` | `analysis/radium-image/pokedex_voice_label_manifest.tsv` | Pokedex voice alignment manifest: 1,137 rows for objects `409` through `1545`, with six duplicate description variants. |
| `3c1a9d36e1ca402bc183aa240b41df2fd788244354fa7043445221daec6ae89c` | `analysis/radium-image/sounds-pokedex-voice/` | Combined checksum over 1,137 aligned Pokedex voice WAV aliases. |
| `30a7cbf8c9dc0ee228ad1e481fb6096da848162c8a62905f28c81e35802d6ab3` | `analysis/all-sound-best-name-manifest.tsv` | Complete best-available named sound manifest: 2,545 rows covering 2,491 main-game WAVs and 54 SPIKE-menu WAVs with confirmed, aligned, catalog-ASR, low-confidence ASR-review, catalog-offset-candidate, draft, duplicate-hash, hash-match, or structural name provenance. |
| `900249bd3dc788ffac90060361cbf4b0b3e08e2d914108e66d30a68c84c072a4` | `analysis/radium-image/sounds-best-named/` | Combined checksum over 2,491 best-named main-game WAV aliases, including 220 catalog-matched ASR names, 34 low-confidence ASR-review names, 196 catalog-offset candidate names, and 1 duplicate-hash inherited confirmed name. |
| `0e270c384a14139587e7d5e1fe5ff23efb4631bd2093446eea96f5667328c893` | `analysis/radium-spike-menu-image/header.json` | Parsed SPIKE menu `/games/pokemon_pro/spike3/spike_menu/image.bin` header; section 8 CRC `0xb8fe11f9` matches, with 300 resolved command sound refs and generic stream summary. |
| `25b1d867ec76a08c5d98516a6022355aeb7671e82f4c5350d0e82c854b5ec51f` | `analysis/radium-spike-menu-image/section4_table.tsv` | First-pass section 4 table parse for the SPIKE menu image: 27 rows, 32 bytes each. |
| `a30feeef50cc2b26a4b5f32661202265f5a37306bcb35ec27a716190fce9dfd1` | `analysis/radium-spike-menu-image/section8_entries.tsv` | Parsed SPIKE menu section 8 table: 54 rows, all bounded PCM candidates. |
| `a30feeef50cc2b26a4b5f32661202265f5a37306bcb35ec27a716190fce9dfd1` | `analysis/radium-spike-menu-image/pcm_candidates.tsv` | SPIKE menu PCM candidates derived from section 8; all 54 rows produce bounded nonzero PCM lengths. |
| `8ddfd47fd6d066e9da4573bceb1cace9eee976476fd178301dfe817e9035bd48` | `analysis/radium-spike-menu-image/command_sound_refs.tsv` | Static SPIKE menu section 5 command-stream references: 300 opcode `0x0b` rows resolving local object IDs and variants to all 54 section 8 PCM chunks. |
| `e37ea95cd4b83827975ae1986255c3f580cfda20dfc9a8e8031d9a99454a07d7` | `analysis/radium-spike-menu-image/command_stream_summary.tsv` | Generic SPIKE menu section 5 stream decode summary: 340 stream rows, 68 unique stream offsets, no malformed streams. |
| `86274559c18487e6ea1b717ed5e114608e3dcdeddd68531469e8e52f21f790d1` | `analysis/radium-spike-menu-image/command_opcode_rows.tsv` | Per-opcode SPIKE menu section 5 decode rows with payload hex and generic little-endian field views: 2,065 command rows across 10 observed opcodes. |
| `fc0b051db9df47287a0827be5e48cc0ceaa84e6acbc63491a86045d70c804149` | `analysis/radium-spike-menu-image/command_opcode_payload_summary.tsv` | Compact section 5 opcode payload summary for the SPIKE menu image: command counts, unique payload counts, and common payload field values. |
| `21970c852818377c528c6b5d3324f3573786aa9bb885fbec492decc6381660ac` | `analysis/radium-spike-menu-image/command_opcode_histogram.tsv` | Compact histogram of observed SPIKE menu section 5 opcodes and payload sizes. |
| `0e10b997cf1beee324d2ed59fb6df17960c5ef4ffabbd2cd7211e0965bc9a406` | `analysis/radium-spike-menu-image/opcode_handler_table.tsv` | SPIKE menu native opcode table dump: 19 entries with handler addresses, payload lengths, observed command counts, sound-reference counts, and common payloads. |
| `13c87842755d123b4e1f28e176fa65cf636b10f6db4f8176b6e0c55907879cd0` | `analysis/radium-spike-menu-image/sound_export_manifest.tsv` | SPIKE menu sound export manifest: 54 deterministic WAV names, object/chunk refs, durations, channels, and offsets. |
| `1e4368123b723716567cf77e4029878cad4caa7e6c1cad41eadbcac4d7978820` | `analysis/radium-spike-menu-image/sound_export_manifest.json` | JSON version of the SPIKE menu sound export manifest. |
| `7d75cb16331405ae0179ebc0e765c30f5c81bfc073948d984dd1cbcbf537a744` | `analysis/radium-spike-menu-image/sounds/` | Combined checksum over 54 exported SPIKE menu WAV files. |
| `1cb6cd892f6ac5ae0bba76fee0933dd077417b4073d79ae6aad99f3469dc68a3` | `analysis/radium-spike-menu-image/sounds-best-named/` | Combined checksum over 54 best-named SPIKE-menu WAV aliases. |
| `f3d5a11da30d91b75757a411b23e14319e9fd09883b80a5318ef24e8875a0326` | `analysis/godot-introspection/gdc_script_summary.tsv` | Summary of 93 decoded `.gdc` scripts, decompressed sizes, recovered token counts, and validated sound-reference counts. |
| `8bf24ccb9ddaaab578bd50313232df3b2f55f286e5a2820e4ad1d4bf487a536a` | `analysis/godot-introspection/gdc_strings.tsv` | Recovered plain and XOR-`0xb6` string tokens from compiled Godot scripts. |
| `0db013f19c74d3bade949b59ce6dfeda68d35def01c78e1cd374f02b17705d3b` | `analysis/godot-introspection/gdc_sound_refs.tsv` | Validated `SE_*` references from compiled Godot scripts: 760 catalog constants and 12 direct Pokedex scene references. |
| `6eafaeeb0bc59a5d05a9a22f60a432a3b0e9fb21b0725609b20e25f6547c41ab` | `analysis/radium-image/wav-preview-manifest.json` | Manifest for 20 capped WAV previews generated from section 8 PCM chunks at 44.1 kHz. |
| `b39a9123afb9c65da5babf6b8531a7597f0008c94c3d34e5480647676efaeb26` | `analysis/media-preview-pages.json` | Generated preview-page summary: 2,491 main sounds, 1,137 Pokedex voice labels, 220 catalog-matched ASR labels, 169 low-confidence ASR review candidates, 225 catalog-offset candidate rows, 345 unresolved structural review rows, 54 SPIKE menu sounds, 2,545 complete best-named sound aliases, 25 confirmed native sound aliases, 4 sound-test-adjacent candidate rows, 1,705 draft ASR labels, 1,212 images, 273 videos, 1,170 text files, 5 fonts, and 1,449 Radium section 3 bitmap previews. |
| `e7833d43c8cbbe1225fd61f6b2e68d4849931a0f2ae1c7d8def9c92105bb8a1f` | `rootfs-triage-wiki/sound-catalog-offset-candidates.md` | Generated preview page with 225 audit-only catalog-offset candidate audio entries. |
| `3f35647f82fd9257351dd687c1614318e4def57efa6b0182f66a1278e3979300` | `rootfs-triage-wiki/sound-asr-review-candidates.md` | Generated preview page with 169 low-confidence ASR review candidate audio entries. |
| `c710013ae59cea8451c4211954678b835da98613aa6687d7a88116f5e92eb5d3` | `rootfs-triage-wiki/sound-unresolved-review.md` | Generated preview page with 345 remaining structural object-reference audio entries grouped by duration/channel review buckets. |
| `0899658ff2760be786ba4f682c4920a99a55c51350801c602528f47cecf2ffa2` | `rootfs-triage-wiki/radium-section3-bitmaps.md` | Generated preview index for 1,449 decoded Radium section 3 bitmap PNGs and 28 undecoded compact payload rows. |
| `e33480f3c18c1e81096fa029b671765f13316b0bad33b9718de5587e316d3137` | `rootfs-triage-wiki/scripts/extract_godot_pck_assets.py` | Static Godot PCK extractor and converter. |
| `b5ddb933f125cf6b54b81c56f4e3430ded50d843c045a49f0727a1f7ebc5f66f` | `rootfs-triage-wiki/scripts/harvest_loose_openable_assets.py` | Static loose-asset copier for PNG, TTF, MP4, and MOV files. |
| `257cb2d9ba653385aba63157a3bc143bb479c5188071ef529996d3f5da258b71` | `analysis/topper-emulator/topper_emulator.py` | MicroPython SPIKE node-board emulator for the Magikarp topper serial-key path; 6,452 bytes. |
| `32263b75f49aefba04596c196f85cc4ae4477eb536f767fcdeac7c0d5fc40e9b` | `analysis/topper-emulator/README.md` | Emulator notes and recovered command summary; 5,820 bytes. |
| `5b510902f4027e364702a61338ff613bde2b77d8441ba2703b343e642cac0453` | `analysis/netbridge-emulator/netbridge_emu.py` | Python host-side emulator for the RP2040 netbridge UART protocol, bridge commands, CRC response, PTY/socket serving, and a stub nodebus device. |
| `542b9835e6b6d8107d68cc6d62bfdfe85995fe61029c36ffcdba3e0295f6d455` | `analysis/netbridge-emulator/test_netbridge_emu.py` | Unit tests for host frame escaping/checksum, version response, firmware CRC response, and node serial-key command. |
| `b7a05a1f4d3cffc7d163e26afed6fa5402ee1a94df1687447dc1aefe067e03cd` | `analysis/netbridge-emulator/README.md` | Runbook and porting notes for the host-side netbridge emulator. |
| `a27f5e00f09a014391418f6822dc6c5481c224ef0cf42786b8b290ecd508d9c3` | `analysis/netbridge-pico-firmware/CMakeLists.txt` | Pico SDK and portable host-test build file for the RP2040 netbridge firmware recreation. |
| `d01867dc66873799b966cf24b7574d9e389277f1556d88b92fd61342ea760222` | `analysis/netbridge-pico-firmware/include/netbridge_protocol.h` | Shared host-frame protocol and model API for the Pico firmware recreation. |
| `918b434ad6c8b4a0455b4eea0bd7ed8c341fb4e709bc6012c0aa43b4c074601e` | `analysis/netbridge-pico-firmware/src/netbridge_protocol.c` | Portable STX/ETX/ESC frame encoder/decoder for the Pico firmware recreation. |
| `6ea214bb401d325a90721630f156bd917ca83a09a1782d9acb85a24e0ff8016c` | `analysis/netbridge-pico-firmware/src/netbridge_model.c` | Portable bridge command and stub nodebus model for the Pico firmware recreation. |
| `708aff6ad0d42b5893c69acf3e7553b710869209fd9404e6c752ccb74cb9b182` | `analysis/netbridge-pico-firmware/src/pico_main.c` | Pico SDK entry point using UART0 on GPIO 16/17 at 2,000,000 baud with GPIO 25 heartbeat. |
| `838c17c4d290be3131cda58dbba8b58e7fa7048313462bc86570f71c88a43e71` | `analysis/netbridge-pico-firmware/tests/host_protocol_test.c` | Portable C host test for frame escaping, version, CRC, and node serial-key responses. |
| `b55cae30a3b97d2d7f6c412cb2a899cac54674417805791fae101e5547e6ecd9` | `analysis/netbridge-pico-firmware/README.md` | Build, wiring, and scope notes for the Pico firmware recreation. |

## Docker/QEMU Emulation Scaffold

These files are workspace-local generated support artifacts, not target-root evidence files. Runtime disk images under `emulation/work/` are mutable and intentionally not treated as durable hashes here.

| SHA-256 | Path | Notes |
| --- | --- | --- |
| `0bd0dbb8078c5a5cc7a8131523cc7475732681a908c1542136f9aa3c73af915f` | `emulation/compose.yaml` | Docker Compose entry point for QEMU, noVNC, dashboard, conagent backend ports, and optional netbridge emulator env. |
| `62449c2a30e70eacb59e65edaa581d0e43859ce72aa7d0cebf4ee9bda81d6957` | `emulation/docker/Dockerfile` | Debian-based emulator image with QEMU, noVNC, ffmpeg, qemu-user-static, initramfs tools, AArch64 cross tools, ARM64 Mesa EGL/GLVND runtime packages, and ARM64 Mesa Vulkan/lavapipe drivers. |
| `86d366aaadc007f2479b117dd1bca3c2799d90eb9ca0a37f13880cfee1694ffb` | `emulation/docker/fetch-debian-arm64-kernel.sh` | Downloads Debian ARM64 kernel/modules and builds an initramfs with DRM/`virtio_gpu` modules. |
| `dc0dfa3a01323f80d6e902a7df082b1dc1a5c973ef211c8d805889200609c739` | `emulation/docker/entrypoint.sh` | Container entrypoint for image preparation, noVNC, conagent backend, dashboard, optional netbridge emulator, and QEMU startup. |
| `6ea31e7664c1179516caa8fb9435667442444b10901d9d564ddc86aa4b429489` | `emulation/scripts/prepare-rootfs-image.sh` | Builds the generated ext4 guest image from target-root entries and injects guest helpers, Mesa fallback drivers/runtime libraries, Vulkan ICD metadata, GLVND descriptor, and stubs. |
| `878427ff0b8930097f28ef17cb27d7314e0dba8198f9de091fbef7ca630c1ef9` | `emulation/scripts/run-qemu.sh` | Starts QEMU `virt` with `virtio-blk`, multi-output `virtio-gpu`, noVNC-facing VNC, serial logs, networking, a control socket, and optional netbridge serial. |
| `19218459e198a1e21bcbd720b32568c4873d2fb074a3920504b773e63f179c19` | `emulation/guest/emu-init` | Guest init for mounts, diagnostics, `/dev/dri/card1` compatibility symlink, hardware placeholders, control agent startup, and target launch. |
| `a02dba6a4793386aea46715c71e0ac617daeebdc089611928051601eab60a59e` | `emulation/guest/setup-fake-devices.sh` | Creates early inert device placeholders, optional `/dev/ttyAMA5` netbridge serial mapping, and hardware setup log. |
| `0212843e592f9fb87d2110c4f468df580cc56c1c118d2a4a87dc19e50c754abb` | `emulation/guest/guest-control-agent.sh` | Guest virtio-serial event logger for dashboard switch events. |
| `ceee33ca3ce178067fdc8993f5cc2ef54dcbdc9277fe9b682f3f77505fe690ec` | `emulation/guest/launch-target.sh` | Launches `boot_display`, SPIKE menu, main game, monitor scripts, or shell with emulator Mesa/EGL and optional real-netbridge-serial environment. |
| `b8b289eeccb83d3036cbb06ebacedcb2807333ff735097717cc473cac8f21e96` | `emulation/dashboard/server.py` | Browser dashboard and JSON switch-event API. |
| `ae65658eb53d8e116a0c1b342140e4267211bd3752a25e1e65b28547cb4df7a5` | `emulation/stubs/spike3emu_stub.c` | AArch64 `LD_PRELOAD` stub for logging/faking selected device opens/ioctls, DRM connector compatibility, GBM/EGL tracing/fallbacks, and optional `/dev/ttyAMA5` passthrough. |
| `1062b060d4bf6a4798bcca3ee188d4c53322271cd882f8ef36b6996b716572a0` | `emulation/scripts/capture-vnc.py` | Raw RFB/VNC framebuffer capture helper used to verify browser-visible QEMU output. |
| `61f62ec692e91cddcd1dd81d7edb32aaeb7951f80c82f64b472fa54f9009e217` | `emulation/README.md` | User-facing emulator runbook, optional netbridge mode, and current limitations. |
| `239ddcc7b6928582df66273cd557bf939dbc14f792f554c6ee2e6d4844ac00ca` | `rootfs-triage-wiki/docker-qemu-emulation.md` | Wiki page documenting implementation, verified progress, optional netbridge wiring, and the current display and hardware blockers. |
| `62eddb1582076ca9e07b3910e71673e7d15e4cd3599d73ce51e3a4148e5b95ad` | `rootfs-triage-wiki/analysis-evidence-map.md` | Cross-reference from durable `analysis/` outputs to wiki findings, confidence boundaries, and open enrichment work. |
| `ac568dc027509f7c30475f444490771cdfa37e2510deeb32cda29367ee5ec78a` | `rootfs-triage-wiki/netbridge-re.md` | Wiki page documenting Ghidra-backed netbridge protocol recovery, emulator use, Docker wiring, and Pico firmware recreation. |

## Generated Static Triage Artifacts

These files are workspace-local generated artifacts, not target-root files.

| Path | Notes |
| --- | --- |
| `analysis/static-triage/game.strings` | Offset strings for `/games/pokemon_pro/game`. |
| `analysis/static-triage/game.objdump-p.txt` | Dynamic section/program metadata for `/games/pokemon_pro/game`. |
| `analysis/static-triage/game-image-bin.binwalk.txt` | `binwalk` report for `/games/pokemon_pro/image.bin`. |
| `analysis/static-triage/spike-menu-image-bin.binwalk.txt` | `binwalk` report for `/games/pokemon_pro/spike3/spike_menu/image.bin`. |
| `analysis/static-triage/netbridge.strings` | Offset strings for `/games/pokemon_pro/spike3/netbridge/netbridge.elf`. |
| `analysis/static-triage/netbridge.objdump-p.txt` | Program headers for `/games/pokemon_pro/spike3/netbridge/netbridge.elf`. |
| `analysis/static-triage/node-firmware-ranges.md` | Parsed Intel HEX record/range summary for top-level node firmware. |
| `analysis/static-triage/pokemon_pro_0_83_0_sidx.strings` | Offset strings for `/games/spk/index/pokemon_pro-0_83_0.sidx`. |
| `analysis/static-triage/sidx-path-summary.txt` | Summary of package paths found in the `.sidx` strings. |

## SPIKE Support Artifacts

| SHA-256 | Path |
| --- | --- |
| `022619c279d51d0efc9a3ba289140ebc05c202b11b6c26d4685503feb7ada8d8` | `/games/pokemon_pro/spike3/bin/dprint` |
| `4b189cabd04c27ccf3583c6d708fe48dde8c17e2b5ad0056610d45a915868a04` | `/games/pokemon_pro/spike3/bin/boot_display` |
| `5e12b2e65d077ca0fa0ad18df2fc302d350dfc91b716c41967015db6e964a755` | `/games/pokemon_pro/spike3/bin/bttest` |
| `05b7f7c329da79fb24078df69c8401c7a47be5c8a855b73fb937e052bce28d85` | `/games/pokemon_pro/spike3/netbridge/netbridge.elf` |
| `624c999309240592979ddeb839258f21cb46633a6b2bbbd43543a55fd97157dc` | `/games/pokemon_pro/spike3/netbridge/rp2040.cfg` |
| `5777f6f0db066335e619ecd1ee8b3f1fc594ebff072d52b7ada4f89370eaa96a` | `/games/pokemon_pro/spike3/netbridge/spike3-swd.cfg` |
| `b6b795fddf4a593d98595f71bf5638f6737d18b364eae657337147dc075148af` | `/games/pokemon_pro/spike3/netbridge/version.txt` |
| `3928411d136f58197dc6fd8dd9a9f2f2f5150c55dd3fa1637ad68a6931eb01f6` | `/games/pokemon_pro/spike3/spike_menu/game` |

## SPIKE Scripts

| SHA-256 | Path |
| --- | --- |
| `e35a3b97ab3d2ff515d777d83f78da0256bf5d4d1c1e4af5f2b89c977d69299a` | `/games/pokemon_pro/spike3/scripts/find_trusted_devices.sh` |
| `58f888ae6049962adfee980cfe500f5d01a812fe07b0ee4e223625205513620c` | `/games/pokemon_pro/spike3/scripts/find_untrusted_devices.sh` |
| `2be517c5b1b4f6f1dae01d00935db964e98639b6a82dc707240ea39f2390b05c` | `/games/pokemon_pro/spike3/scripts/copy_newest_corefile_to_usb.sh` |

## Node Firmware Images

| SHA-256 | Path |
| --- | --- |
| `6ab4f2d8c6e2e4f10ae7c61dcc2c994dbbf490669cf014626577659cbe709314` | `/games/pokemon_pro/coil4node-LPC1112_101-1_33_0.hex` |
| `f3bd45e05f693b8bb99931f0bc9f65a9f6046de5a97d6157cf1ac4d38868ac1e` | `/games/pokemon_pro/pinnode-LPC1112_101-1_33_0.hex` |
| `6a073cd25469dfa0db41c9ec80e877f3cebaa9ffcc0c4c1afe81e110b86ac7ad` | `/games/pokemon_pro/hdmi_ws2812node-LPC1313-1_33_0.hex` |
| `f09048aae0f29852430d60f2316fde89459735d6f840c1d5ff467c3a2db48439` | `/games/pokemon_pro/tmc5041node-LPC1313-1_33_0.hex` |
| `7724048f99cb0bd41718cff45a2dd0c346e96ccd469ff0167fd5f8c3da558fdd` | `/games/pokemon_pro/pinnode-LPC1313-1_33_0.hex` |
| `8726374ef31843c04741467ec222e3866151ef4af01fca3d51de056016d0698f` | `/games/pokemon_pro/lcdnode-LPC1113_302-1_33_0.hex` |
| `9714787bf448873914c1a6fb1ddb89acb272e563f782d25ebc995f8672a3d416` | `/games/pokemon_pro/coil4_lednode-LPC1313-1_33_0.hex` |
| `f92a011475196fef8b7cd73c49a557022c46cfb60af96999b769a7144ed31861` | `/games/pokemon_pro/coil4node-LPC1313-1_33_0.hex` |
| `2226aedfa289ecca610e29de38418fa9df1319fdc20cbb45bf4e6a2cfda26651` | `/games/pokemon_pro/magsensornode-LPC812-1_33_0.hex` |
| `d44012247c045c5ad1502f0c68b903a25186195f23ee07d8948c6f045c143c1f` | `/games/pokemon_pro/hdminode-LPC1313-1_33_0.hex` |
| `97bd462868f9e9a1ac6a2dca2c3f14f277f621d6f4b43022f6e9f8184d062746` | `/games/pokemon_pro/ws2812pinnode-LPC1313-1_33_0.hex` |
| `4ea55b676552c2eb7c6256dd0cb8994e09fc553781a77afac8816423c5760982` | `/games/pokemon_pro/node4-LPC1124_303-1_33_0.hex` |
| `eb14c9ab8e730510b1f2b75f27c39be2345228561075c0d7334584e01d6082e1` | `/games/pokemon_pro/node4-LPC812-1_33_0.hex` |
| `f8c4af570b7419dee7ccffd4c0d219b4cad3a7fe785f934c2a864cbb100dde03` | `/games/pokemon_pro/ws2812node-LPC1313-1_33_0.hex` |
| `a59efe815648fce1316e11c05881ba3c05edd4bc0d857359a07fc902f61fdf4c` | `/games/pokemon_pro/pinnode-LPC1112_201-1_33_0.hex` |
| `21fb36da50792beca06372a27c122c4f6a45739d4e92a688f74217eb4311a8b9` | `/games/pokemon_pro/coil4node-LPC1112_201-1_33_0.hex` |
| `5ca73eb8f6c1fe2574f2fb5ed1b4fe383c91db28e9ac463fb91af42812a2fa42` | `/games/pokemon_pro/tmc2590node-LPC1313-1_33_0.hex` |

## Sensitive / Handle Carefully

The following file exists and is referenced by tooling, but its value is intentionally omitted:

- `/games/pokemon_pro/spike3/scripts/corefile_passphrase.txt`
