Measurements of Crash 'n Burn (3DO, Crystal Dynamics, 1993) — a launch title, sold with the console on 4 October 1993.
One pressed CD-ROM: one track, 307,446 sectors, 629,649,408 bytes of user data, 451 files. Not a folder, not an install, not a dump of somebody's hard disk: the object measured here is exactly the object that was sold. Every number below has a command in tools/ that reproduces it and a saved run in notes/.
| user data | 629,649,408 bytes — the denominator for every percentage here |
| files / bytes in files | 451 / 555,875,804 (88.2833 %) |
| directories | 38 |
| distinct SHA-1 | 444 of 451 |
| file system | Opera, not ISO 9660 — derived from the bytes, 03 |
| sectors owned by nothing and not mastering fill | 0 |
mastering fill (iamaduck) |
35,387 sectors = 11.5100 % |
| directory copies that disagree | 2 of 41 groups |
| absolute build paths | 0, over 100 % of the pressing |
| timestamps anywhere in the file system | 0 — the format has no date field |
| Red Book audio tracks | 0 |
| Cinepak, Data Streamer | 0, in any form |
| recorded media | 10.73 % .. 33.77 % — a band, 14 |
| unknown formats when this started | 15 |
| unknown formats now | 11, and one partly — 16 |
This is the first pressing documented for this platform, so it also fills in
the first row of the shared checklist at
3do-platformnotes-doc and
the first entry of
3do-gamelist-doc. That
checklist was written before any disc was opened, so every claim in it was
marked [unverified]; this disc confirmed some, corrected others, deleted two,
and left the rest marked as they were.
No asset from the disc is in this repository. No frame of the movies, no
picture, no sound, no module, no byte of the image. _work/, _pre/,
prompt.txt and the .chd are all in .gitignore — the object sits inside
this repository's folder, and that was verified in both directions with
git check-ignore -v --no-index before the first git add.
1. A quarter of a gigabyte was hiding behind one field. The pre-briefing
handed to this session reported 326 files and 155,275 sectors owned by
nothing, of which 119,513 were "something else" — 244 megabytes, 38.87 % of
the disc, in eighteen runs. They were files. next_block in the Opera
directory-block header is a block index inside the directory, not an
absolute address, and four directories on this disc span more than one block.
Read correctly there are 451 files and zero unowned sectors, and the
sector accounting closes with no double claims.
03 · 04
2. Two of the file system's own copies disagree with themselves. Opera
records every copy of a file or directory in the directory entry, so comparing
them costs one pass over 146 blocks. /System/Folios names its three folios in
upper case in the first copy and lower case in the second and third;
/rom_tags has two copies that differ in 8 bytes, and only one of them can be
the file the console reads. The 3DO platform notes said a disagreement would be
the finding of the day. There are two.
03
3. It is a third full-motion video, in a codec the studio wrote itself.
Cinepak occurs zero times, FILM zero, STRM zero — and /BIGFILE is
188 megabytes of movies with FMV_Open and FMV_DecompressFrame in the
executable beside it. 7,239 frames of 128 × 96, 5-5-5 pixels, 4 × 4 blocks
from a shared dictionary of 19,200, laid out in a boustrophedon that was
measured rather than guessed. The container's header names five continuation
files and the disc has three: EXTRA.3 and EXTRA.4 were cut.
07
4. The studio's name is on the disc twice, and neither is where anyone
looked. Crystal Dynamics occurs zero times over 629 megabytes.
Crystal dynamics, with a small d, occurs seven — in the instrument-name
slots of seven ProTracker modules, where the person who converted the music
signed the work. And (C) 1993, CRYSTAL DYNAMICS, INC. is drawn in pixels on
/CNB/Glue/FMVLegal.img, the frame the movies play inside. The game's own
title is on the disc only as pixels too.
09 · 06
5. A header field that is right on 30 files and wrong on 31. Every picture
on this disc is LRform — the console's interleaved framebuffer order — and the
pixelorder byte in the IMAG chunk says so on the 30 credits screens and
says the opposite on the other 31. A decoder that trusts the field produces 31
wrong pictures out of 61. Two art pipelines and a launch schedule.
06
6. Three menu pictures called UNKOWN1, UNKOWN2 and UNKOWN3 have
names. /launchme holds two string tables — twelve circuits and twelve menu
pictures — in the same order, agreeing on nine. The other three fall out:
UNKOWN1 is gold, UNKOWN2 is silver, UNKOWN3 is bronze. The typo has
been pressed on this disc since launch day.
08
| 00 | predictions, written before the disc was opened — 38.0 of 58 |
| 01 | one pressing: the object is the thing that was sold |
| 02 | the sheet: every number with the command that makes it again |
| 03 | the Opera file system: one field, read as an address, hid 244 megabytes |
| 04 | every sector: the accounting closes, and 11.5 % of the disc is a duck |
| 05 | two scripts calling each other in a circle, and thirty-four ARM images |
| 06 | the cel: a geometry proved to the last byte, and a field that is right half the time |
| 07 | 131 movies: a codec derived far enough to see a face, and not far enough |
| 08 | twelve circuits: 57 % of the disc in one directory |
| 09 | nine and a half seconds, and nine Amiga modules that have no Paula |
| 10 | 114 paths, 23 wrong about case, and two files named and never pressed |
| 11 | the sixteenth session of the protection question, and a new kind of answer |
| 12 | what is not here: no Red Book, no Data Streamer, no dates |
| 13 | a zero that could not have been anything else, and four crossings not made of bytes |
| 14 | is it a video game: a band, because a quarter of the disc is of undetermined kind |
| 15 | thirty names, drawn in pixels, published on purpose |
| 16 | what a second 3DO disc should do first |
| 17 | one wrong field, thirteen wrong numbers, and eleven of my own |
| 18 | prediction scoring, clause by clause |
| 19 | 74,813,823 bytes that carry nothing, counted exactly |
Written for this disc, because nothing in the collection could read it:
| opera.py | the Opera file system — label, block header, entry, copy list, and a negative control that must fail before anything is censused |
| sectormap3do.py | every sector attributed to exactly one owner, with the total made to close |
| opercopies.py | every copy the directory claims, compared byte for byte |
| bigfile.py | the movie archive and the movie format inside it — a partial decoder, and it says so |
| markers.py | four-character markers per file, with the chance expectation beside every count |
| discstr.py | strings over the user data of a whole track, not over a file tree |
| disccontacts.py | the same for contact data, counted and not printed |
| aiffread.py | AIFF and AIFF-C from the COMM chunk, with the 80-bit rate decoded |
| modread.py | ProTracker validated and split into score and sample, with contact data redacted at the point of output |
| aifstr.py | the two-way cross-reference, exact and case-folded |
The other 279 came from the previous session. iso9660.py, xa.py, cdxa.py
and subch.py do not apply — there is a disc and it is not that disc.
mzcensus.py, pecensus.py, pe.py and ne.py do not apply — the
executables are ARM Image Format. protscan.py does not apply and its zero is
reported as the tool read nothing, which is what it printed.
chdman extractcd -i "Crash n Burn (USA Korea).chd" -o _work/cnb.cue -ob _work/cnb.bin
python tools/opera.py _work/cnb.bin --selftest
python tools/opera.py _work/cnb.bin --list > notes/listing.txt
python tools/opera.py _work/cnb.bin --extract _work/files
python tools/sectormap3do.py _work/cnb.bin --runs
python tools/opercopies.py _work/cnb.bin
python tools/discstr.py _work/cnb.bin --file notes/strings.txt
python tools/bigfile.py _work/files/BIGFILE --member 76
chdman is MAME's. A copy lives in 3do-platformnotes-doc/bin/, gitignored
there, so the next 3DO pipeline does not have to find it again.