docs/00-predictions.md was written after the TOC and the subchannel reads and
before the PVD, and committed unchanged. This scores it.
Score: 19 right, 7 wrong, 1 vacuous.
The wrong ones are the point of the exercise, and what they bought is at the bottom.
| # | prediction | outcome | |
|---|---|---|---|
| 1 | nothing exotic fills the data track; the disc is small and that is the result; 99 % of the physical disc is audio | 918 data sectors, 92,445 audio sectors, 99.02 % | ✅ |
| 2 | volume space size exactly 918, no overrun, the previous fifteen overruns are a dumper artefact | volume is 691, overrun is 227 real MODE1 sectors cut into the master | ❌ |
| 3 | no hole | no hole | ✅ |
| 4 | Guardian's floor breaks; payload 1.30–1.45 MB | 1,261,776 B, 43.9 % below the floor, inside the predicted range | ✅ |
| 4b | resident 2.0–2.8 MB | 1,636,635 B | ❌ |
| 5 | expansion 1.7–2.2× | 1.297×, the lowest of eleven | ❌ |
| 6 | nesting depth 0 | depth 0, reached by decoding | ✅ |
| 7 | preparer is not Pocock | Abersoft |
✅ |
| 7b | final run 32 sectors | 32 sectors, LBA 659–690 | ✅ |
| 8 | root directory record normal | 33 s older than its newest file, identical in three places | ✅ |
| 9 | Red Book is the whole music answer; zero tracker modules | 9 tracks, zero modules, zero 8SVX, zero Player magic | ✅ |
| 9b | the game names tracks as constants (the Banshee shape) | not determinable — commands built at run time | ❌ |
| 10 | no C2P | 163 constants as data, 0 as immediates | ✅ |
| 10b | $B80000 absent |
absent | ✅ |
| 10c | $B80030 absent |
absent | ✅ |
| 10d | C2P port absent | absent | ✅ |
| 10e | $C0DE0000 absent |
absent | ✅ |
| 10f | nonvolatile.library shipped in libs/, possibly opened by nobody |
not shipped at all; libs/ holds lowlevel.library only |
❌ |
| 11 | "cruncher follows the label" → RNC or Liberation's codec | real RNC ProPack method 1, CRC-validated 7 of 7 | ✅ |
| 11b | "cruncher follows the studio" → a ninth codec or none; BABY.PAK will not begin with RNC |
it begins RNC\x01 |
❌ |
| 11c | at least four names pair between *.PAK and *.unpack |
zero pair — the two sets are different assets | ❌ |
| 12 | no file is an exact removable-media length | none; largest is 816,616 | ✅ |
| 12b | the seven 1,024-byte .map files are index tables, not graphics |
32 × 32 tile indices, proved seven of seven | ✅ |
| 13 | PVD reads 1993, in December; step 39 confirms rather than falsifies | 1993-12-06, and setpatch 40.14 (7.10.93) puts the floor two months earlier |
✅ |
| 14 | string-table model: inline in code (Gunship) | no string table at all — the words are drawn | ❌ |
| 14b | prose under 0.5 % on disc | 0.607 % on disc, 0.468 % resident | ❌ |
| 15 | every FORM big-endian, fewer than ten of them | zero FORMs — no test to run | ⬜ vacuous |
| 16 | publisher is Mindscape; same-publisher pair with Liberation | PVD says Mindscape |
✅ |
| 17 | no VM; measure the distinct-target ratio if a table turns up | zero VM; two tables, 100 % distinct both | ✅ |
| 18 | alfred and intro are hunk executables at 25–45 relocs/KB; .PAK/.unpack are pure data |
intro 42.46/KB; .PAK/.unpack have no hunk header |
✅ |
| 18b | alfred in the same band |
16.46/KB whole-file — an average of a program and a picture; ~57/KB over its code portion | ❌ half |
| 19 | at least one $VER: exists |
three exist — all three are Commodore's, none in the game | ❌ right for the wrong reason |
| 20 | the disc is interesting only as the set's first physical disc; the game itself is ordinary | the MCN and the overrun both delivered — and the game was not ordinary | ❌ |
Counting 18b as one wrong and 19 as wrong: 19 right, 7 wrong, 1 vacuous.
I predicted the volume would be exactly 918 sectors and that fifteen discs' overruns were an artefact of their dumpers. Wrong on both counts, and being wrong produced the mechanism:
The declared volume is 691. The disc physically carries 918 sectors of valid, addressable, EDC-clean MODE1 data. The 227 extra are all zero, and they stop exactly where track 2's pregap begins.
So the overrun is real, it is in the glass master, and its size is not arbitrary: the data run is padded up to the start of the next track's pregap. That single sentence explains the whole 32..232 range across the set without invoking a dumper artefact anywhere, and I would not have gone looking for it if the prediction had been right. This is what the brief means by a wrong prediction being worth writing.
I backed "the cruncher follows the studio" at 3:1 and predicted a ninth codec.
It is plain RNC ProPack. And I predicted the *.PAK / *.unpack names would
pair up as Superfrog's CRM/ and RAW/ did; they do not pair at all —
BABY.PAK unpacks to 61,440 bytes and babyp.unpack is a 12,544-byte tile bank
for a different purpose.
What that bought is a correction to how the set has been reading packers:
A packer is a weak signal for studio identity and a strong one for era. The set had been reading it the other way round. Myth's Bytekiller-under-
DAVEwas interesting because it was unusual, not because packers normally identify studios.
And a cheap methodological reminder: a naming convention that looks like a known pattern is still a name. One line of arithmetic refuted it.
Both were ranges written without a mechanism, and I said so when writing them. Both are wrong. The honest reading is that they were guesses and the previous two hits were luck.
They bought one real thing: two 2D platformers now sit at opposite ends of the expansion scale — Alfred Chicken 1.297×, Superfrog 3.25×. Genre was already dead as a predictor; this kills it a second time on the same genre, which is stronger than killing it across genres.
And they forced the honest form of the figure, which is two denominators rather than one: the eleven RNC streams expand 4.59×, and the disc expands 1.297× only because 85 % of it was never packed.
I predicted the Gunship model and under 0.5 %. Neither. There is no string
table of any kind, because there is essentially no text: frontend.pak decodes
to a 320 × 184 image of the words ALFRED CHICKEN, drawn.
That is a fifth model for the checklist — no table, the words are pixels — and it came out of being wrong about which of the four existing models applied.
It also changed how the prose figure should be read. 0.607 % is true and uninformative; the informative version is that 78.8 % of the prose belongs to a debugger and a C runtime, 19.6 % to Commodore, and 0 % to any asset file.
I predicted named constants. There are none; the commands are assembled at run time, exactly like the blitter control words and the copper lists. Wrong, but it established a pattern: this engine stores no control words of any kind. Three independent subsystems, three times the same answer, and the third one turned a failed check into a property of the engine.
I predicted the Superfrog shape — shipped and opened by nobody. It is not shipped. The conclusion (no save system) is the same and is confirmed two ways, but the route is a third one the set had not seen, and predicting the wrong route is what made me check both.
"At least one $VER: exists" is technically true and completely misleading:
there are three and every one belongs to Commodore. Scored wrong deliberately,
because the checklist asks for the exact form, and "the disc is versioned but
the games are not" is a different statement from "the only version string is
somebody else's".
Being wrong here is what sent me looking for another dating instrument, and that found the thing this disc contributes to the checklist:
Expanded RCS
$Header:keywords. Machine-stamped at check-out, carrying a path, a revision, a timestamp and a user name — four fields where a$VER:carries two.JJS,Hard0:alfred/rcs/, 1993-11-19 and 1992-09-29.
Step 39 has been about third-party copyright years. This is a fourth kind of
dating evidence and it is stronger than a $VER:, because a human types a
$VER: and a version-control system stamps an RCS keyword.
The prediction that the disc would only be interesting as the set's first physical disc. The physical side delivered as predicted. The game did not cooperate:
introships a working Amiga hardware debugger — 47 register-name strings lifted from Commodore'shardware/custom.i, andcopdis, a copper list disassembler with a null guard and an unknown-opcode path;alfships 46.9 % debug information, the full SAS/C 6.00 symbol table,alf.cand a line-number table;alfred.info's DefaultTool is the stringJUNK;- the boot script tests for a developer's own volume,
JJSDISK:, and the RCS keywords name the build machine's disk,Hard0:, and its user,JJS; - the two executables are two builds of one code base fourteen months apart, and the older one is the one that still has the scaffolding in it.
The lesson from Superfrog — that predicting a disc will be boring is the most reliably wrong prediction available — holds for a third time. On Myth I predicted interest and got it; here I predicted the interest would be entirely in the plastic and the plastic was the less interesting half.
Two are worth noting because they were conditioned on a mechanism rather than a base rate, which is what the brief asks for:
- Akiko, all four figures. Predicted absent, not because 3 of 17 discs load
$B80000, but because this disc boots AmigaDOS and leaves Exec alive, and a disc with a live OS reaches the CD through the OS. It openscd.device. Correct for the stated reason. - Step 39 confirming rather than falsifying. Written in advance precisely
because a test that only ever fires is not a test.
setpatch 40.14 (7.10.93)put a hard floor sixty days under a PVD that reads 1993-12-06, and everything agreed. First clean pass in the set.
And one that was right for a mechanism the set can reuse: the seven 1,024-byte
.map files are index tables. That prediction, plus the 128-byte divisibility
of every graphics piece, is what let the tile geometry be derived — 16 × 16, 4
planes, max index exactly N−1 in seven of seven — instead of guessed.