Skip to content

Latest commit

 

History

History
189 lines (148 loc) · 10.7 KB

File metadata and controls

189 lines (148 loc) · 10.7 KB

Scoring the predictions

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.

The scoring

# 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.

What the wrong ones bought

2 — the overrun. The most valuable miss on the page.

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.

11b and 11c — the cruncher, and the names

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-DAVE was 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.

5 and 4b — the expansion factor and the resident band

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.

14 and 14b — the text

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.

9b — how the game reaches the tracks

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.

10f — nonvolatile.library

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.

19 — the $VER: count

"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.

20 — "the game itself will be ordinary"

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:

  • intro ships a working Amiga hardware debugger — 47 register-name strings lifted from Commodore's hardware/custom.i, and copdis, a copper list disassembler with a null guard and an unknown-opcode path;
  • alf ships 46.9 % debug information, the full SAS/C 6.00 symbol table, alf.c and a line-number table;
  • alfred.info's DefaultTool is the string JUNK;
  • 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.

What the right ones were worth

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 opens cd.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.