Skip to content

Commit 749340a

Browse files
authored
Merge pull request #12 from bgyss/codex/hashreference-xxxxx-rom
Hash title-a24b9e807b456252 assets across repo
2 parents 1a9d0ec + ccedf85 commit 749340a

37 files changed

Lines changed: 629 additions & 167 deletions

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
/.devenv.flake.nix
66
/devenv.lock
77
/game-data/
8+
/config/title-hash-registry.toml
9+
/config/title-hash-tracking.log
810

911
# Python cache
1012
__pycache__/

PLANS.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This file tracks implementation work derived from specs that do not yet have a c
2222
- SPEC-170 Function Discovery and Control-Flow Graph
2323
- SPEC-180 XCI Title Intake
2424
- SPEC-190 Video-Based Validation
25-
- SPEC-200 DKCR HD First-Level Milestone (macOS/aarch64)
25+
- SPEC-200 title-a24b9e807b456252 First-Level Milestone (macOS/aarch64)
2626

2727
## SPEC-000: Project Charter and Ethics
2828
Outcome
@@ -307,23 +307,23 @@ Exit criteria (from SPEC-190)
307307
- Similarity metrics are stable across two consecutive runs.
308308
- Validation artifacts remain external and are referenced via provenance metadata.
309309

310-
## SPEC-200: DKCR HD First-Level Milestone (macOS/aarch64)
310+
## SPEC-200: title-a24b9e807b456252 First-Level Milestone (macOS/aarch64)
311311
Outcome
312-
- Produce a macOS/aarch64 static recompilation of DKCR HD that reaches and plays the first level.
312+
- Produce a macOS/aarch64 static recompilation of title-a24b9e807b456252 that reaches and plays the first level.
313313

314314
Work items
315-
- [x] Complete XCI intake for the DKCR HD title (SPEC-180 inputs and outputs).
315+
- [x] Complete XCI intake for the title-a24b9e807b456252 title (SPEC-180 inputs and outputs).
316316
- [x] Identify required OS services and implement or stub them in the runtime.
317317
- [x] Implement the minimal GPU translation path needed for the first level.
318-
- [x] Create a per-title config and patch set for DKCR HD.
318+
- [x] Create a per-title config and patch set for title-a24b9e807b456252.
319319
- [x] Run video-based validation against the first level (SPEC-190).
320320

321321
Exit criteria (from SPEC-200)
322322
- The macOS/aarch64 build boots and reaches the first playable level.
323323
- First-level gameplay matches the reference video within defined tolerances.
324324
- No proprietary assets or keys are stored in the repo or build outputs.
325325

326-
## Future Work Notes: DKCR HD Video Validation (SPEC-190/200)
326+
## Future Work Notes: title-a24b9e807b456252 Video Validation (SPEC-190/200)
327327
Requirements to finalize:
328328
- Define the capture spec (resolution, fps, constant frame rate, audio rate/bit depth/channels, container/codec).
329329
- Define alignment parameters (search window, pre-roll, min match window, segment length).
@@ -346,12 +346,12 @@ Validation artifact index fields (external):
346346
- Pointers to the run metadata record and per-stage timing summary.
347347

348348
Artifact paths and naming (external only):
349-
- Reference captures: `/Volumes/External/validation/dkcr-hd/reference/YYYY-MM-DD/`.
350-
- Recompiled captures: `/Volumes/External/validation/dkcr-hd/recompiled/YYYY-MM-DD/`.
351-
- Alignment outputs: `/Volumes/External/validation/dkcr-hd/alignment/YYYY-MM-DD/`.
352-
- Reports: `/Volumes/External/validation/dkcr-hd/reports/YYYY-MM-DD/validation-report.json`.
353-
- Run metadata: `/Volumes/External/validation/dkcr-hd/runs/YYYY-MM-DD/run.json`.
354-
- Artifact index: `/Volumes/External/validation/dkcr-hd/index/YYYY-MM-DD/run-index.json`.
349+
- Reference captures: `/Volumes/External/validation/title-a24b9e807b456252/reference/YYYY-MM-DD/`.
350+
- Recompiled captures: `/Volumes/External/validation/title-a24b9e807b456252/recompiled/YYYY-MM-DD/`.
351+
- Alignment outputs: `/Volumes/External/validation/title-a24b9e807b456252/alignment/YYYY-MM-DD/`.
352+
- Reports: `/Volumes/External/validation/title-a24b9e807b456252/reports/YYYY-MM-DD/validation-report.json`.
353+
- Run metadata: `/Volumes/External/validation/title-a24b9e807b456252/runs/YYYY-MM-DD/run.json`.
354+
- Artifact index: `/Volumes/External/validation/title-a24b9e807b456252/index/YYYY-MM-DD/run-index.json`.
355355
- Provenance entries should include the external paths and file hashes.
356356

357357
Timeline checklist (per validation run):

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ Legal and provenance policy:
3737
- `docs/xci-intake.md` documents the XCI intake workflow and mock extractor format.
3838
- `docs/validation-artifacts.md` defines validation artifact indexing, workflows, and dependencies.
3939
- `docs/validation-video.md` describes the hash-based video validation workflow.
40+
- `docs/title-hash-ingest.md` documents hash-based title/data ingest and local decoder-ring files.
4041
- `scripts/capture-validation.sh`, `scripts/capture-video-macos.sh`, `scripts/capture_video.sh`, and `scripts/validate_artifacts.sh` provide capture and validation helpers.
42+
- `scripts/ingest_hashed_title.sh` hashes title/data paths for private local workspaces.
43+
- `scripts/rewrite_title_refs_in_history.sh` rewrites commit-message title references to hash ids.
4144

4245
## Back Pressure Hooks
4346
These hooks add fast, consistent feedback to keep the repo autonomous and reduce review churn. Hooks are defined in `.pre-commit-config.yaml` and can be run with `prek` (preferred) or `pre-commit`.

RESEARCH.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Needed research:
7575
- Capture tooling behavior and determinism guarantees.
7676
- Input timing and latency characteristics for Switch titles.
7777
- Video/audio similarity metrics and drift analysis.
78-
- Operational checklist for DKCR validation artifacts (see `docs/dkcr-validation-prereqs.md`).
78+
- Operational checklist for title-a24b9e807b456252 validation artifacts (see `docs/title-a24b9e807b456252-validation-prereqs.md`).
7979

8080
## Seed Resources (Reviewed)
8181
- Jamulator write-up on static recompilation pitfalls and concurrency: https://andrewkelley.me/post/jamulator.html
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
schema_version = "1"
2+
3+
# Local-only secret decoder ring.
4+
# Copy this file to `config/title-hash-registry.toml` and keep it untracked.
5+
6+
[[titles]]
7+
name = "example-title-slug"
8+
id = "title-0123456789abcdef"
9+
name_sha256 = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
10+
game_data_dir = "game-data/title-0123456789abcdef"
11+
created_at = "2026-02-08T00:00:00Z"
12+
13+
[[ingest_runs]]
14+
timestamp = "2026-02-08T00:00:00Z"
15+
title = "example-title-slug"
16+
id = "title-0123456789abcdef"
17+
game_data_dir = "game-data/title-0123456789abcdef"
18+
mode = "move"
19+
xci_renamed = 1
20+
video_renamed = 2

crates/recomp-runtime/src/boot.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ mod tests {
198198

199199
#[test]
200200
fn boot_context_runs_plan_and_records() {
201-
let mut context =
202-
BootContext::new("DKCR HD Sample").with_assets_root("game-data/dkcr-hd/romfs");
201+
let mut context = BootContext::new("title-a24b9e807b456252 Sample")
202+
.with_assets_root("game-data/title-a24b9e807b456252/romfs");
203203
context.register_service_stubs(&[
204204
ServiceStubSpec::new("svc_sm", StubBehavior::Noop),
205205
ServiceStubSpec::new("svc_fs", StubBehavior::Noop),

docs/automation-loop.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ Invoke the loop with:
4545
recomp automate --config automation.toml
4646
```
4747

48-
## DKCR Validation Inputs
49-
The DKCR validation run requires external reference and capture artifacts. Track the required
50-
paths and timecodes in `docs/dkcr-validation-prereqs.md` before wiring a DKCR-specific
48+
## title-a24b9e807b456252 Validation Inputs
49+
The title-a24b9e807b456252 validation run requires external reference and capture artifacts. Track the required
50+
paths and timecodes in `docs/title-a24b9e807b456252-validation-prereqs.md` before wiring a title-a24b9e807b456252-specific
5151
`automation.toml`.
5252

5353
## Next Steps

docs/dkcr-hd-runbook.md

Lines changed: 0 additions & 68 deletions
This file was deleted.

docs/reference-media.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ Reference media stays outside the repo. Only hashes and metadata are tracked.
3535
If the source is variable frame rate, normalize to constant fps before hashing.
3636
Record the normalization profile and source path in `[normalization]` within
3737
`reference_video.toml`.
38-
For DKCR-specific validation inputs, see `docs/dkcr-validation-prereqs.md`.
38+
For title-a24b9e807b456252-specific validation inputs, see `docs/title-a24b9e807b456252-validation-prereqs.md`.
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# DKCR HD Boot Path (Scaffold)
1+
# title-a24b9e807b456252 Boot Path (Scaffold)
22

33
This document sketches a first-level boot path using the new runtime stubs. The goal is to
44
capture the minimal service, graphics, audio, and input wiring needed to reach the first
55
playable level without bundling proprietary assets.
66

77
## Boot Flow Summary
8-
- Mount external RomFS at `game-data/dkcr-hd/romfs`.
8+
- Mount external RomFS at `game-data/title-a24b9e807b456252/romfs`.
99
- Initialize stub services (SM, FS, VI, HID, audio) for early boot.
1010
- Submit placeholder graphics commands and present frames.
1111
- Submit placeholder audio buffers.
@@ -22,8 +22,8 @@ use recomp_runtime::{
2222
};
2323
use recomp_runtime::{CommandStream};
2424

25-
let mut boot = BootContext::new("DKCR HD Sample")
26-
.with_assets_root("game-data/dkcr-hd/romfs");
25+
let mut boot = BootContext::new("title-a24b9e807b456252 Sample")
26+
.with_assets_root("game-data/title-a24b9e807b456252/romfs");
2727

2828
boot.register_service_stubs(&[
2929
ServiceStubSpec::new("svc_sm", StubBehavior::Log),
@@ -46,6 +46,6 @@ println!("boot steps: {}", trace.steps().len());
4646
```
4747

4848
## Notes
49-
- `samples/dkcr-hd/title.toml` contains stub mappings and the RomFS path.
50-
- `samples/dkcr-hd/patches/first-level.toml` records placeholder patches for the first level.
49+
- `samples/title-a24b9e807b456252/title.toml` contains stub mappings and the RomFS path.
50+
- `samples/title-a24b9e807b456252/patches/first-level.toml` records placeholder patches for the first level.
5151
- Replace stub service calls with real implementations as the pipeline matures.

0 commit comments

Comments
 (0)