Take the disc mount out of the source, so someone else's copy of the media works
Three files hardcoded /media/reala-misaki/BDROM -- extract.py, 07_motion_survey.py and check.sh -- which made the pipeline unrunnable for anyone whose disc mounts anywhere else. DLX_BDROM now overrides it everywhere, defaulting to /media/$USER/BDROM, so this box is unchanged and another one works. Verified by running extract.py against a symlinked mount at a different path. check.sh's failure message names the path it looked at and the variable to set, instead of assuming udisks put it where this machine puts it. README gains a "Reproducing this" section: no media ships here and none of it is redistributable, so it says what you have to bring (the disc) and what is already packaged (vasm is vendored as a binary with its source tarball; the k-means is hand-rolled, so numpy and Pillow are the whole Python dependency). It also names the two gates that SKIP rather than fail -- the px68k second-core pass and the IPL ROM DMAC gate -- because both live outside this repo and a silent skip is worth reading as a skip. One trap called out rather than left to bite: scene selection is a hard-coded stream number, not a search. A different pressing that numbers its .m2ts files differently will extract the wrong footage and the green light will PASS on it. check.sh ALL GREEN. Claude-Session: https://claude.ai/code/session_01194oWYW8DQXK1SZ2DnChW6
This commit is contained in:
@@ -125,6 +125,49 @@ mounted) re-runs both display regression tests, the rate-control drift test, the
|
||||
display-path coherency counterexample and a 120-frame 68000 decode, then prints
|
||||
`ALL GREEN`.
|
||||
|
||||
## Reproducing this
|
||||
|
||||
**No media ships in this repo, and none of it is redistributable.** Bring your
|
||||
own Dragon's Lair Blu-ray. Everything else needed to rebuild every number and
|
||||
every picture above is here or is packaged.
|
||||
|
||||
You need:
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| the disc | loop-mounted read-only. `udisksctl loop-setup -r -f DRAGONS_LAIR.iso` — the tree was built against a decrypted UDF 2.x image (7-Zip cannot read UDF 2.x; use the loop mount) |
|
||||
| `python3` | plus **numpy** and **Pillow**. Nothing else — the k-means is hand-rolled rather than pulling in sklearn |
|
||||
| `ffmpeg` / `ffprobe` | frame extraction, and the README clips |
|
||||
| **MAME** | tested on 0.277, with the `x68000` ROM set. The rigs drive it headless via `-autoboot_script` |
|
||||
| vasm (m68k, Motorola syntax) | **vendored**: `tools/vasm/vasmm68k_mot` is a Linux x86-64 binary, with the source tarball beside it to rebuild elsewhere |
|
||||
|
||||
Then:
|
||||
|
||||
```sh
|
||||
export DLX_BDROM=/path/to/your/mounted/bluray # if not /media/$USER/BDROM
|
||||
./tools/bench/check.sh # ~3 min, prints ALL GREEN
|
||||
```
|
||||
|
||||
`DLX_BDROM` is honoured by every tool that reads the disc. Two stages are
|
||||
optional and **skip rather than fail** when their input is absent, because both
|
||||
live outside this repo:
|
||||
|
||||
- `PX68K=/path/to/px68k` — a px68k checkout, for the second-CPU-core gate. This
|
||||
is the cheapest strong test in the tree (seconds, no MAME, no ROMs), and it is
|
||||
what licenses the bus and cycle figures.
|
||||
- `IPLROM=/path/to/iplrom.dat` — the X68000 IPL ROM, for the DMAC-configuration
|
||||
gate (FINDINGS 52). Defaults to `~/mame/roms/iplrom.dat`.
|
||||
|
||||
To rebuild the stills and clips in `docs/img/` you also need a paced recording
|
||||
run — see the header of `tools/media/make_readme_media.py`.
|
||||
|
||||
**Scene selection is a hard-coded stream number**, not a search: the gates use
|
||||
stream `00020` and `00223` of the disc's 224 `.m2ts` files, which are the ones
|
||||
FINDINGS §1 and §25 characterise. A different pressing may number them
|
||||
differently, and if so the green light will extract the wrong footage rather
|
||||
than fail — check that `tmp/fr_singe/` looks like the Singe encounter (which is
|
||||
what the directory is named for) before trusting any figure.
|
||||
|
||||
## Read first
|
||||
- **`docs/FINDINGS.md`** — measured hardware facts, content statistics, codec
|
||||
decision, and a section on measurement traps that produced three separate
|
||||
|
||||
Reference in New Issue
Block a user