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.
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 %)
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.
- It broke
[4 of 4].Copyright (C) Electronic Arts Canada Inc. 1993.is in/launchmeand/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. - It uses the Data Streamer without a stream header. The first chunk of
all 43 films is
CTRL, 24 bytes, payloadSYNC; there is no top-levelSHDRanywhere. Two tools in this box selected onSHDRand gave a confidently wrong answer — one put 64.7915 % of the object inUNKNOWNand one refused all 43 files. 04. - 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.
- 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.attackdeclares 100 frames and multiplexes 84. - 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.
- Open question 13 gets a fourth point and the bracket narrows 125 days to
30, and the notes' account of how the two
CPORT49.ROMversions 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.
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:
SHPMoccurs 387 times over the pressing against 60 files, and 312 of them are inside the twelvegameart*.vivfiles, 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.
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 frame — passes
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.
| 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 |
notes/sha1-all.txt— 395 records, sha1 first, then size, then path;notes/copies.txt— 467 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 perSHPMmember;notes/viv-members.txt— 349 records, one per0xC0FBmember.
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
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.
This repository's findings are folded into 3do-platformnotes-doc, which now covers seven discs.