Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FIFA International Soccer (Europe) — a 3DO disc that spends two thirds of itself on other people's football

Documentation of one retail 3DO CD-ROM, measured from a CHD image. No bytes of the product are in this repository — hashes and figures only. Seventh 3DO object in this pipeline, second-largest of the seven, and the most video any of them is by twenty-seven points.

The short sheet

title              FIFA International Soccer, Electronic Arts Canada, Europe
pressed            1994-09-15 16:30:09   (/rom_tags type 0x0c, 1904 epoch)
image              FIFA International Soccer (Europe).chd   385,562,785 bytes
                   sha1 9a06dadce6ae4a0df9d618b0bdd9ac9677c4ec73
track              1, MODE1_RAW, SUBTYPE:NONE, PREGAP:0, no audio track
sectors            302,380  =  90.8048 % of a 74-minute CD
user area          619,274,240 bytes
volume             Opera, not ISO 9660; declares 302,080 blocks = 590 MiB exactly
files              395 in 21 directories, 521,691,261 bytes, 359 distinct sha1
sector map         closes: 0 owned by nothing, 0 double-claimed
integrity          sync, MSF, EDC, ECC P, ECC Q clean on 302,380 of 302,380
43 Data Streamer films          392,298,496 bytes = 63.3481 % of the user area
   19,597 Cinepak frames, 320 x 240, EXACTLY 15 fps, 21:52.30
   every frame decoded, every macroblock accounted for, 43 of 43
recorded sound, ALL of it       177,263,598 bytes = 28.6244 %
   22,050 Hz on 53 of 54 files and on 43 of 43 films; zero eight-bit files
60 SHPM art containers            3,453,196 bytes, 3,891 members, 60 of 60 read
15 C0FB archives                  4,773,136 bytes,   349 members, 15 of 15 read
9 FNTM fonts                         60,996 bytes, size identity 9 of 9
41 national squads, 20 names each              in TeamData.Bin, 46,252 bytes
the whole tournament structure                 in /data, 56,280 bytes
identified                      82.7447 % of the user area   (ceiling 84.2424 %)

What this disc is for

A football game in which the football is the smallest thing on the disc. Twenty-one of the 43 films are named for a year and a country — 1966Ger1, 1970Braz4, 1986Ital2 — and one of them opens GREAT MOMENTS IN WORLD CUP HISTORY / 1966 / ENGLAND VS. GERMANY over archive footage. The game's own data — squads, fixtures, art, archives, binaries — is 10,398,191 bytes, 1.6791 % of the object.

Six things this disc did to the platform notes

  1. It broke [4 of 4]. Copyright (C) Electronic Arts Canada Inc. 1993. is in /launchme and /playlist, where six discs of six had no studio copyright line in text. The corrected claim is in 10, and it is a restatement rather than a deletion: the name is also a picture here, and the text is a library banner dated 1993 on a disc pressed in 1994.
  2. It uses the Data Streamer without a stream header. The first chunk of all 43 films is CTRL, 24 bytes, payload SYNC; there is no top-level SHDR anywhere. Two tools in this box selected on SHDR and gave a confidently wrong answer — one put 64.7915 % of the object in UNKNOWN and one refused all 43 files. 04.
  3. The block quantum is honoured with no field to read it from. All 43 films are a whole number of 32,768 bytes, remainder zero, on a disc that declares the value nowhere. 03.
  4. The frame count IS encoded twice here, 42 of 43 — where the sixth disc broke that mark on three of seven — and the one exception goes the other way: stream.attack declares 100 frames and multiplexes 84.
  5. Open question 10 gets four joins on one object. Four regions of mastering fill, each beginning at the block immediately after a run of root-directory copies. 02.
  6. Open question 13 gets a fourth point and the bracket narrows 125 days to 30, and the notes' account of how the two CPORT49.ROM versions differ is corrected: the 68 bytes are the signing pass, present on both discs, and the two compilations differ in 891 bytes of 1,332. 15.

Two formats nobody has had, and an attributed name the bytes refute

SHPM, 60 files, the whole of the game's own art, derived from the bytes: magic, a size equal to the file, a member count, a four-character set name, then char[4] + absolute offset per member. 16 + 8 × count == the first member's offset on 60 of 60. Ten files carry an optional palette block that announces its entry count twice.

0xC0FB, 15 files. The pre-briefing arrived with a name on it — Electronic Arts' own compression family — flagged as an external reference and tested on the bytes:

SHPM occurs 387 times over the pressing against 60 files, and 312 of them are inside the twelve gameart*.viv files, exactly 26 per file. A compressed stream does not contain its members' magic numbers in the clear.

They are uncompressed archives with a 24-bit offset table, they nest, and all fifteen tile exactly. 06.

And a decoder that was arithmetically perfect and wrong

cvidmovie.py rebuilt its Cinepak codebooks on every frame, so every sparse codebook update drew its un-updated entries as black. The census this pipeline uses — strips sum to the declared height, chain closes to the last byte, coded + skipped == macroblocks on every framepasses identically before and after the fix, because every block is still decoded, from the wrong entry.

It took a person looking at 43 contact sheets to catch it, and the fix takes stream.1966Ger1 from 33–65 % black per frame to 0.70 %. 05.

The chapters

00 59 clauses written before any extracted byte was read
01 what it is, which denominator, what it keeps and loses
02 every figure with the command that reproduces it
03 43 films, 19,597 frames, 21:52.30, all decoded
04 CTRL where SHDR should be, and two tools that were sure
05 the Cinepak codebook, and the only check that caught it
06 SHPM, 0xC0FB, and a name the bytes refute
07 41 AIF images, three exceptions, and EXIT TO DOS (Y/N)
08 one sample rate across 28.6 %, and a bank forked for one number
09 41 squads, every league from 2 to 24, and a bracket
10 the copyright line and the Red Book line
11 820 names, no person identified, and the marker list
12 the fourth disc of one SDK drop, 138 crossings of 359
13 every byte of the user area in exactly one bucket
14 what was named, opened far enough to say what it is not
15 six in the pre-briefing, six of mine, one owed backwards
16 59 clauses scored, two totals, no offset applied

The published lists

  • notes/sha1-all.txt — 395 records, sha1 first, then size, then path;
  • notes/copies.txt467 records, one per copy the Opera directory declares, hashed over its whole block range;
  • notes/film-list.txt — 43 records with payload hashes, so a film shared with another disc survives remultiplexing and is still findable;
  • notes/shpm-members.txt — 3,891 records, one per SHPM member;
  • notes/viv-members.txt — 349 records, one per 0xC0FB member.

The tools

tools/ holds 460 Python files: 457 inherited from the sixth disc's repository, and three written here — filmcensus.py, shpmread.py and vivread.py. Four inherited tools were repaired and every repair is documented in the source and in 15:

account3do.py   defect 19  selected Data Streamer files on SHDR alone
account3do.py   defect 17  printed the FIFTH disc's Watcom region on any disc
streamaudit.py  defect 19  the same selector; refused 43 files of 43
streamaudit.py             printed "of the eight files" while walking 43
ccbread.py                 a counter initialised and never incremented
cvidmovie.py               rebuilt the Cinepak codebooks on every frame

What is not here

Nothing derived from the product. _work/ — 1,306,195,126 bytes of extracted track, tree, contact sheets and decode logs — is ignored, along with the .chd, prompt.txt and _pre/. The check that protects this repository is not the extension list, because 43 films called stream.<anything> have no extension to filter on; it is

git ls-files | grep -Eiv "^(README|docs/|notes/|tools/|\.gitignore)"

run in both directions, empty, with a positive control that fires.

The platform notes

This repository's findings are folded into 3do-platformnotes-doc, which now covers seven discs.

About

One retail 3DO CD-ROM, measured: FIFA International Soccer (Europe), 1994. 63.35 % of it is 43 Cinepak films of 1960s-80s World Cup footage - 19,597 frames at exactly 15 fps, all decoded. Data Streamer with no SHDR. Two studio formats derived. No product bytes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages