Skip to content

About

Index of the Sega Dreamcast disc documentation: one repository per pressing, plus the shared GD-ROM platform checklist they feed into. Empty so far - created before the first disc so that disc one has a structure to be filed into. Format archaeology only, no disc images, no game assets.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

dc-gamelist-doc

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

The discs

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.

What the first entry had to do, answered point by point

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.

The write-ups

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.

Sonic Adventure — Dreamcast, 1999, MK-51000

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.

What the second entry had to do in addition, which is one thing and a large one

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.

Dino Crisis — Dreamcast, 2000, T7019D 13, pressed for Italy

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.

About

Index of the Sega Dreamcast disc documentation: one repository per pressing, plus the shared GD-ROM platform checklist they feed into. Empty so far - created before the first disc so that disc one has a structure to be filed into. Format archaeology only, no disc images, no game assets.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors