Index of the Dreamcast disc documentation — one repository per pressing, plus the shared platform checklist they all feed into.
It has two entries. Sonic Adventure (USA), MK-51000, 1999, and
Dino Crisis (Italy), T7019D 13, Capcom, 2000.
The first entry's job was to convert marks: sixteen of eighteen were converted, five were corrected in place, and the sentence the checklist called its single most important line turned out to be false of the first retail disc that ever exercised it.
The second entry's job is different, and it is the reason this index exists.
A first entry leaves measurements; a second one is only worth having if it
breaks some. This one promoted eight marks, added eight more, and falsified
the checklist's highest-value instruction — hash the IP.BIN bootstrap
region across discs — by doing the thing the instruction did not say to do.
The two bootstrap hashes differ, which is what a hash can tell you; 99.6893 %
of the 32,512 bytes agree, which only a diff can. It also put a [0 of 2]
into section 9 for a codec label that is wrong about both discs.
This index and its companion checklist were created before the first pipeline rather than out of it, so that the first disc had somewhere to be filed and a set of questions to be measured against.
Every one of these is a commercial GD-ROM opened from IP.BIN up: the two-area
disc layout, the header the build asserts about itself, the ISO 9660 volume
behind it, the SH-4 executable — scrambled or not, and the first one was
not — the middleware that most of the content actually belongs to, and the ARM7
sound program nobody reads. No repository here contains disc images or game
assets — only measurements and the code to reproduce them.
| Shared platform findings | dc-platformnotes-doc — the canonical checklist every disc feeds into. Two discs in: sixteen [2 of 2] marks, one [0 of 2], one instruction falsified and rewritten, two corrections in place, and two still [unverified] because neither disc disassembled any SH-4 |
| Disc-by-disc comparison | section 10, Baselines — it lives there and is not duplicated here. Two rows and seventeen columns, the two newest added because the second disc gave them values the first could not |
Listed in the order they are documented, which is normally also the order in which the checklist's questions get answered. The Saga column is filled in where a title belongs to a series that may one day earn its own index; it is empty where it does not.
| Title | Year | Studio | Saga | What it is |
|---|---|---|---|---|
| Sonic Adventure | 1999 | Sonic Team | Sonic the Hedgehog | MK-51000, area U, three-track BIN/CUE of 1,222,515,861 bytes. The first disc of this platform, and it falsified the platform checklist's most important line before anything else was opened: 1ST_READ.BIN is not scrambled — entropy 5.5078, 38.46 % zero bytes, an English string 48 bytes in. .PRS derived from two bytes of a head census and closed on 843 of 843: LZ77 with an 8-bit LSB-first control word, no Huffman, correcting the checklist. Behind it, 17,083 textures in 582 PVMH archives and 442 loose .PVR, geometry closing 414 of 414 where a rule was stated. 4,197 CRI ADX streams, big-endian inside little-endian AFS archives, 5 h 46 m 07 s of audio; ten MPEG-1 program streams, 10,346 frames, 5 m 45 s, two of them anamorphic for VGA and settled by a person looking at a logo. Two ARM7 sound drivers of 33,408 bytes each whose copyright banners carry the only human names in the readable 11 % — and, once the compressor was opened, 244 more in plain ASCII inside SUMMARY.PRS. The filesystem stamps 2,842 files with one instant and the binaries carry seventy-five build stamps spanning 1998-06-23 to 1999-08-02. No dummy file: 3,436 unclaimed zero sectors. 79.0009 % of the file bytes are a recording of something |
| Dino Crisis | 2000 | Capcom | | T7019D 13, area E, three-track BIN/CUE of 1,201,166,751 bytes, pressed for Italy. The second disc of this platform, and its job was to break the first one's measurements — it did, on the checklist's highest-value line: the IP.BIN bootstrap block is 99.6893 % identical across the two discs, in four patches of 101 bytes, where a hash comparison had said "not shared". A third of the high-density track is a hole of 171,491 zero sectors placed in front of the data, and the 294 files that follow run with zero inter-file gap. The 276 .DAT opened from a padding string nobody was looking for — dummy header , 32,361 times on a disc with no DUMMY file — into a load script whose sector accounting closes on 265 of 265 and whose image container closes on 3,141 of 3,141 members, 102,277,632 of 102,277,632 bytes classified. Behind it, the localisation: Italia and italiano count zero in five spellings over all 681,217,300 file bytes, because the Italian is painted into 320×240 bitmaps — «Questo gioco contiene scene violente e sanguinose» is 153,600 bytes of pixels — and spoken in a red-book track that is not a file, five blocks in English, French, German, Spanish and Italian. Six languages on a disc that declares one. Seven Sofdec films, 62.8827 % of the file bytes, each carrying a 2,030-byte private-stream packet naming its source files and its authoring minute, whose frame count agrees with an independent walk on 7 of 7 — a clock the first disc's ten films do not have. 110 people are named and 108 of them are 4-bit palette indices, in two credit rolls no string search can reach. And 867 absolute build paths from a C: drive, against zero on the first disc |
On the Saga column, and one of the two cells has just been filled. The
rule this paragraph used to quote was shared bytes — a saga cell is filled
when two objects here can be shown to share a member — and that rule was
superseded in
pc-gamelist-doc, for a measured
reason: Resident Evil 2 shares 12 files with Resident Evil and 221 with
FINAL FANTASY VIII, and all 233 are Microsoft's, so a rule whose honest output
is Resident Evil 2 belongs to the Final Fantasy saga is measuring the wrong
thing. The rule now reads: a Saga cell names the video-game series the title
belongs to, and is filled once a second member of that series has been measured
in this collection.
Sonic Adventure's cell was empty because it was a saga of one, and it is not
one any more:
pc-themurderofsonicthehedgehog-doc
measured The Murder of Sonic the Hedgehog (Windows, Unity, 2023) and the
second-member criterion is met. The cell is filled with Sonic the Hedgehog,
and the objection is written rather than resolved: the two objects share a
franchise and nothing else — different studio, different decade, different
platform, different engine, different genre — and zero bytes, measured in
both directions. The argument is in that repository's chapter
13.
Dino Crisis stays blank: there is no second Dino Crisis here.
And Dino Crisis is where the rule has to be held to. This collection
already contains two Capcom survival-horror discs —
pc-residentevil-doc and
pc-residentevil2-doc —
with the same publisher, the same fixed-camera room structure and a
recognisably identical naming convention: ROOM<stage><room><variant>.RDT
there, ST<stage><room>.DAT here, one file per room with the stage in the name.
That is a resemblance, and a resemblance is not a shared member. crossall.py
found 0 crossings of 291 hashes against 73 repositories and 52,991 hash
tokens, including those two. The cell stays empty, and the comparison goes
in prose where it belongs.
The disc fills the column in prose instead, which no other object here has
done. BIBLIOGR.TXT, 241 bytes in the low-density area, is a
bibliographic-file-identifier declared by the ISO 9660 volume descriptor and it
lists the series with its years:
SONIC the Hedgehog ,1991
SONIC the Hedgehog 2 ,1992
SONIC the Hedgehog 3 ,1994
SONIC and KNUCKLES ,1994
SONIC JAM ,1997
SONIC Adventure (for Japan) ,1998
Note the last line: the disc dates its own Japanese version to 1998 and itself to 1999. It is a fact about the object and it is told here rather than pressed into a cell it does not satisfy.
Written before rather than after, and answered here one at a time. Where the first entry did not do a thing, it says so.
1. Say what the dump was. — Done. Three-track BIN/CUE, MODE1/2352 +
AUDIO + MODE1/2352, 14,564 + 1,063 + 504,150 sectors, 1,222,515,861 bytes
over four files, every track dividing by 2,352 with remainder zero. It is the
faithful form: it keeps both areas, IP.BIN, and the 304 bytes per sector of
sync, header, EDC and ECC — all of which were checked, and 518,714 data
sectors of 518,714 pass every one of the five tests. What it loses is
subchannel data and the drive's table of contents, so this repository makes
claims about the disc's content and none about its pressing.
And a fourth thing, not in the checklist: the same object weighs
1,222,515,861, 1,064,826,448 or 1,051,494,320 bytes depending on what you call
the object — a spread of 16.26 % — so the entry names its denominator
(declared files, 1,051,494,320) before its first percentage and never changes it.
2. Fix the LBA convention in the first paragraph and never leave it. —
Done, and the disc asserts the base three times independently. Every extent
resolves only with 45,000 subtracted; the volume descriptor declares the whole
track; and the CD sector headers say 45,000 too, on 504,150 sectors of
504,150. That third witness is written by the frame layer rather than by the
filesystem, and it was not in the platform notes.
The tool had to be fixed before any of it could be read. iso9660.py
resolved extents as file offsets, walked into a zero, and printed
files : 0 with exit status 0 on an image holding 2,826 files. It now takes
--lba-base and raises when a non-empty root directory record yields no
entries.
3. Descramble 1ST_READ.BIN, and prove it descrambled. — Not applicable,
and that is the finding. It is not scrambled: entropy 5.5078 bits/byte,
38.46 % zero bytes, 9,355 printable runs of six or more covering 1.18 %, and
the string Lib Handle Start at offset 0x30. A scrambled file sits above 7.9
bits and about 0.39 % zeroes. The instruction in the checklist is now inverted —
measure the entropy first — and the published hash carries the qualifier the
checklist asked for: 721651c549ad00a04e6a8c299a780cb7e72669f9, the bytes as
they lie on the disc.
What was not done: not one SH-4 instruction was decoded. Every claim about
this binary is about strings, entropy and byte histograms.
4. Separate the dummy padding out of the capacity figure. — Done, and
there is no dummy file. 0 of 2,826 names contain DUMMY. The padding is
3,436 unclaimed sectors, 7,036,928 bytes, 0.5756 % of the raw dump, in two
all-zero runs. So the capacity figure needs no adjustment and is honest as it
stands: 500,714 of 504,150 sectors claimed, 99.3185 %, on an accounting that
closes to remainder zero.
5. Hash the IP.BIN bootstrap and logo region, and the low-density warning
track. — Done, and this is the first entry's most durable output.
IP.BIN whole c8bbf86ce125dfc716137a77988500fe56e8bb3c (32,768 bytes); header
39aa54a309c1647e8863f32536bf835bf00f9709 (256); bootstrap and logo
ecc407cacf78c18d9bc85da896c172edfb1a0d58 (32,512); the warning track
0fbfde20b242982862a011ba8ed8031e2c6f24a4 (2,500,176 bytes, 12.1733 s of body
after a 2 s silent pregap); and 0GDTEX.PVR
e7b98073ce7f9fb33236f727e418cd9aab95d0b1 (131,104 bytes, 256×256 ARGB4444
twiddled, global index 0). None of them can be interpreted by one disc. That
is the point.
6. Find the ARM7 sound driver. — Done, and there are two.
/MANATEE.DRV and /SONICADV/MASARU.DRV, tag SDRV, 33,408 bytes each,
sharing 31.42 % of their bytes and twelve of their thirteen printable runs. The
thirteenth is a copyright banner that differs only in a date — 1998.12.08
against 1998.11.27 — and carries the only human names anywhere in the
readable 11 % of a 1.2 GB disc. So the instruction becomes find out how many
there are, and read the banner first. Neither driver was disassembled.
7. Publish notes/sha1-all.txt. — Done, plus three companion lists:
2,826 high-density files with their absolute LBAs, 16 low-density files, and
4,088 members of the two .AFS archives, because a file-level list of this
disc has 2,842 rows and the disc holds at least 22,987 addressable things.
Each entry here carries the full write-up for its title, in the form the other family indices use: the prose that would otherwise sit in the Game and engine documentation table of the profile README, so that the profile can stay an index and this can be where the detail lives.
A GD-ROM in three tracks and two densities, 1,222,515,861 bytes, of which 79.0009 % of the declared file bytes are a recording of something: five hours forty-six minutes of CRI ADX audio across 4,197 streams, and five minutes forty-five seconds of MPEG-1 film across ten. Seven years and one platform away from the 1992 floppy set whose figure was 0.6083 %, and the two were measured to the same definition.
Everything interesting on it was behind something. 88.9212 % of the
high-density file bytes were in four formats nobody had opened, and the day's
work was opening them: a .PRS decompressor derived from the bit population of
two control bytes printed in a head census — 0xff is eight literals, 0x3f is
six — closing on 843 of 843 files with the input consumed exactly; the
PVMH texture archives behind 582 of them, chaining to the last byte and
matching their own entry counts on 582 of 582, 16,641 textures; the two
.AFS speech archives, 2,044 members each, all non-empty, accounting to
remainder zero; and the ADX header, whose self-describing 80 01 footer
closes the file on 4,196 of 4,197 — the one exception, SSRACING.ADX,
published by name, holding 83.67 % of its declared samples and no footer.
Three things the disc said about itself that the documentation did not.
Its executable is not scrambled, and the platform checklist's most important
line said it would be. .PRS is LZ77 with no Huffman stage, and the checklist
said otherwise. And its CD sector headers encode the 45,000 base independently
of the filesystem — on 504,150 sectors of 504,150 — with the packed-BCD minutes
field running past 99 into a, b, c on 99,300 of them, which a validator
that requires BCD reports as a hundred thousand corrupt sectors on a perfect
dump.
And the studio. Sonic Team counted zero on the readable eleven per
cent, in three casings. The disc spells it SONIC TEAM, in capitals, once,
inside SUMMARY.PRS — beside 244 distinct names in plain ASCII under
eighteen section headings, from Yuji Naka to two guitarists in the special
thanks. Three casings out of four is not a search, and a search of an object
that is 89 % compressed is not a measurement of that object.
The seven points above were the first entry's list and they are answered there. They are not re-answered here — the second entry did all seven again, got the same shape of answer, and that is worth one line each in its technical sheet.
The second entry's own obligation is to compare, and comparison has a failure mode the first entry could not have: agreeing. A second disc that confirms everything has produced nothing the first disc had not already produced, and a mark promoted because nothing contradicted it is worth less than no mark at all. So the standard is the falsifier's.
1. Re-measure rather than inherit. — Done. Every one of the seven
questions the first entry left was re-run on this object, and where that needed
the first disc's bytes — its films, its drivers, its executable — its track 3 was
re-cooked and the files re-extracted, because that repository's _work/ was
deleted when its session ended. No figure here is quoted from there without being
re-derived.
2. Break something. — Done, three times. The IP.BIN bootstrap region is
shared and the instruction to hash it was wrong. Stream 0xC0 in a Sofdec film
carries CRI ADX and not MPEG audio, on both discs — a [0 of 2]. And the
first disc's rounded mastering timestamp turns out to have been a choice rather
than a property of the tool: this one reads 2000-10-23 20:04:30 GMT+09:00, to
the second.
3. Publish what the third disc can break. — Done. Five hash lists,
including sha1-vendor-assets.txt, which publishes sub-file regions — the
bootstrap block, the audio track's body, the 44-byte loader prologue shared by
both executables — because on this platform the unit of sharing is smaller than a
file and a file-level list cannot see it. Plus a recorded absence: there is no
0GDTEX.PVR on this disc, 0 .PVR of 294, which removes it from the first
entry's list of three candidate vendor assets.
4. Say which string the Studio cell came from. — Done, and it is a trap
of the opposite shape to the first entry's. The first disc's studio is named
once, in capitals, in a compressed file, and three of four casings found nothing.
Here three different strings name three different companies: IP.BIN's
company field says SEGA LC-T-70, both volume descriptors say
CAPCOM CO.,LTD., and 1ST_READ.BIN carries CAPCOM twice while the foot
of the disc's own credit roll reads PRESENTED BY CAPCOM in pixels. The cell
says Capcom — on the volume descriptors, the copyright file and the credits;
SEGA LC-T-70 is a licensee code and is recorded as one, not as a publisher.
5. Say which year, when the disc says two. — Done. IP.BIN says
20001023, both volume descriptors and all 297 directory records say
2000-10-23, and COPYRIGH.TXT says 1999, 2000 — as does the title-screen
bitmap, in pixels, six hundred megabytes away. The cell takes 2000, the year
the object was made; 1999 is the year the game was, and it lives in the prose.
A GD-ROM in three tracks and two densities, 1,201,166,751 bytes, of which 84.7172 % of the declared file bytes are a recording or a rendering of something — seven MPEG-1 films at 62.8827 % and 822 CRI ADX streams at 21.8345 %. That is third in this collection's media table, and the session expected it to be first. Against the raw dump the same bytes are 48.0456 %, which is thirteenth. Thirty-six and a half percentage points and ten places, decided by one sentence about what to call the object. No disc here has had a denominator that mattered this much.
A third of the high-density track is nothing, and the nothing is in front. 171,491 unclaimed sectors, 351,213,568 bytes, every one read and every one zero, running from sector 27 to sector 171,367 — after which the 294 files run to the end of the track with zero inter-file gap over 332,632 sectors. There is no dummy file, 0 of 294 names. It is a seek-time layout paid for with a hole instead of a junk file, and the first disc — 0.68 % unclaimed — could not have shown it.
The day's work was 276 files with no tag, 15.0140 % of the disc, 160 distinct
eight-byte heads, and nothing in this collection that had ever opened one. They
fell to a string nobody was looking for: dummy header , which pads the header
block of 265 of them and appears 32,361 times on a disc whose filenames
contain the word DUMMY zero times. Behind it, a load script of 16-byte records —
type, size, destination address, flags — whose sector accounting closes on
265 of 265 files; and inside that an image container, DPX, whose member
offsets satisfy offsets[0] == 16 + 4 x count on 612 of 612 blocks and whose
blit records satisfy size == 12 + w*h*2 on 3,141 of 3,141 members.
102,277,632 of 102,277,632 bytes classified, remainder zero.
The pixel format was settled by looking. ARGB1555 rather than RGB565, because the Capcom wordmark comes out right in one and wrong in the other; and the indexed rule — a blit's width counts 16-bit words, so a palettised surface is twice or four times as wide — because 112 item icons render as noise on a green field at 16 bits and as pistols, shotguns, medical packs and four security keycards at eight. Ten sessions of this branch have now settled a question by decoding a picture and looking at it, ten times out of ten.
Then the localisation, which is the reason this pressing exists and which no
string search can find. Italia, italiano, Italiano, ITALIA and
ITALIANO count zero each, in two independent encodings, over all
681,217,300 file bytes, coverage 100 %. There is nothing to find: the Italian is
painted into the bitmaps. WARNING.DAT is 153,600 bytes of pixels carrying
seven words — Questo gioco contiene scene violente e sanguinose — and fifteen
more screens carry the rest of the interface the same way. The other Italian on
the disc is spoken, in the 79-second red-book track, which no filesystem
declares and which is therefore outside every percentage in the repository: five
blocks by five voices, cut at five measured silences, English, French, German,
Spanish, Italian, of which the first runs 12.50 seconds — the length of the
American disc's entire warning track. The length of a red-book track on this
platform is a count of the region's languages.
Six languages on a disc that declares one, and one of the six is Japanese:
five headerless .DAT of dialogue bitmaps, 328,192 bytes, whose row widths had to
be derived by autocorrelation because they are 147, 154, 160, 175 and 182 pixels
and no guess would have found them.
Seven films carry a clock the filesystem does not have. Every .SFD holds one
2,030-byte packet on MPEG private stream 0xBF naming its .sfd, .m1v and
.sfa sources with a YYYYMMDDHHMM stamp beside each, and naming its
multiplexer: SFDMUX Ver.1.07 19990520 CRI. Its frame-count field agrees with an
independent walk of the elementary stream on 7 of 7, and its video duration on
7 of 7. The first disc's ten films carry none, and no printable string at all
in 183,687,168 bytes.
And 110 people are named, 108 of whom no string search can reach. Two are in
the ARM7 sound driver's copyright banner — Y.Kashima / K.Suyama, the same two
engineers as the first disc, in a third build dated 1999.06.16 — and 108 are 4-bit
palette indices in two credit rolls, STUFF.DAT and STUFF2.DAT, one for the
game and one headed DREAMCAST VERSION STAFF, with zero names in common.
contacts.py scanned 1,250,182,168 bytes across three corpora and found nothing,
correctly, because a search for text cannot find a name that was drawn.