Skip to content

Therons Quest Technical Reference

Daniel Nylander edited this page Aug 6, 2026 · 30 revisions

Theron's Quest Technical Reference

Scope

Theron's Quest is a PC Engine CD target. Firestaff accepts original Track 02 media through a strict CUE/BIN handoff and verifies known media identities. It does not assume ISO-9660 files or create a directory from a disc image.

Record-Based CD Layout

System Card access is record-based relative to a CD base. Official Hu7 layouts compile record constants into the executable, so the final disc has no runtime file directory to enumerate. Firestaff follows observed loader record handoffs rather than filename scans.

The verified JP/US Track 02 chain is:

  • CD_EXEC record 0x0003e7 into local RAM at $4000;
  • a traced stage-two one-sector CD_READ into local RAM at $3800;
  • record 0x0004df for JP and 0x0004e0 for US;
  • a payload beginning BRK $ff with a bounded $0308 envelope.

The resulting 218-entry manifest is structural provenance only. It has no object, level, palette, bitmap, or text meaning until loader control flow proves that meaning. Separately, the authenticated US Track 02 user-data stream now yields a byte-verified 53-entry descriptor table at UD 0x619900. That closes descriptor-byte provenance only; it does not decode the referenced graphics blocks or establish level/object semantics.

Startup, Levels, and Saves

M12-to-M11 receipts preserve CUE declarations, raw-sector form, known hash, IPL, stage-two record, user-data span, header, and payload hash. Incomplete bitmap or object-table evidence blocks title, Soul Room, Continue, and dungeon entry rather than producing a synthetic route.

Level/object candidates are staged and committed atomically only when every original-data receipt validates. Descriptor proximity and repeated byte shapes are not semantic evidence. The descriptor receipt is read from the real US BIN, while the game-owned consumer handoff remains open.

The full-dungeon receipt now retains authenticated US and JP source-object records for all seven dungeons, including category, source index, link, position and raw bytes. A compact census preserves decoded raw type values, including high values outside generic DMBUILDER ranges. These values are diagnostic only; they are not host item IDs or inventory indices.

SRM discovery validates gzip framing, optional header fields, CRC32, and ISIZE. Opaque original bodies remain unavailable until their layout is correlated with evidence. Firestaff-native export is no-replace atomic, protecting original Save Disk artifacts. Continue itself is transactional and carries the consumed media route mask, checksum, and selected level bank.

Multi-Level Object Table and Progression

Track 02 object-table decode has been extended from level-0/32x27-only to every level of a dungeon: theron_v1_track02_read_object_table() bounds records against the real per-dungeon level count (0..THERON_MAX_LEVELS_PER_DUNGEON-1), and theron_v1_track02_decode_dungeon_level_object_table() extracts one level's records from a full-dungeon buffer. theron_v1_world_apply_track02_object_table_for_dungeon() routes decoded records to every loaded level of a dungeon. Two object kinds were added to carry decoded fields: THERON_OBJTYPE_SOUND (ambient sound ID) and THERON_OBJTYPE_PIT (pit records own their grid position). theron_v1_transition_execute() implements stairs (validated target level), progression advance, theron_v1_world_reset_for_dungeon(), and quest-complete handling at the end of move_party_internal().

Verification

cmake --build build --target firestaff_theron_v1_track02_ipl_loader_probe \
  firestaff_theron_v1_track02_level_handoff_probe \
  test_theron_v1_startup_save_resume_pc34 --parallel

FIRESTAFF_THERON_TRACK02_US_BIN="/path/to/us-track02.bin" \
FIRESTAFF_THERON_TRACK02_JP_BIN="/path/to/jp-track02.bin" \
  ./build/firestaff_theron_v1_track02_level_handoff_probe

Open technical work remains semantic binding for later loader records, object tables, non-startup levels, original SRM bodies, and packaged-app capture.

For strict CUE/record handling and Stage 2/3 receipts, see Theron's Quest Track 02 Internals.

Clone this wiki locally