A byte-level description of a live Steam installation of Final Fantasy XI (Square 2002, Square Enix thereafter), Windows PAL edition, appId 230350. 66,192 files, 15,150,034,054 bytes, read-only. Nothing was executed, nothing was registered, nothing was contacted, and no decoded asset is shipped with this repository.
This is the largest object this collection has measured, the first from Steam, the first with a player's own saved state inside it, and the first measured while its service is still running — which means half of the product is not in the folder and cannot be measured from it. Chapter 01 says so before any number is given.
| files / directories / bytes | 66,192 / 1,167 / 15,150,034,054 |
| distinct sha1 | 61,184 of 66,192 — 5,008 redundant copies, 2.3308 % |
| the one file type that is 73.2738 % | 52,631 files called <number>.DAT, in 385 directories called <number>, with no name anywhere on the disk |
| entropy blocks above 7.5 | 22,515 of 271,996 = 8.2777 % — the least compressed object measured in many sessions |
| the index | nine VTABLE/FTABLE pairs, all 109,701 and 219,402 bytes, over one id space of 109,701 |
| ids claimed by more than one layer | 0. It is a partition, not a stack |
the .DAT chain |
derived from the bytes, closes on the exact last byte of 48,757 of 52,626 files, and on 0 of 130 files that are not .DAT |
| chunks inside them | 2,019,932, 105,987 distinct tags, 35 types |
| the manifests | four, 126,899 entries, and the 22-character field is MD5 in a permuted base64 alphabet |
| fields reproduced | 126,865 of 126,865 present = 100.0000 % |
| the program | FFXiMain.dll, 2,896,464 bytes = 0.0191 % of the disk |
| its compiler, in December 2025 | Visual C++ 6.0, linker 6.00 |
| its graphics dependency | one function, Direct3DCreate8, from d3d8.dll |
| middleware named, of any kind | 0 |
| COFF timestamps | 2002-09-17 to 2025-12-04 — 23 years 2 months, 16 distinct days |
| recorded sound and film | 26.2100 % by extension (24.5362 % by branch) |
| the two films | MPEG under an 8-byte XOR: 512x336 / 7 m 01 s and 640x480 / 11.93 s |
| how long it is | 22 h 35 m at 44,100 Hz — and the rate is not in the header |
| leftovers | 2,569,896,989 = 16.9630 %, published as a ceiling |
| crossings with 64 other repositories | 2 files of 61,184 — and 0 members of 739,235 |
1. Nine indexes over one id space, and they never overlap. Each ROM*
directory carries its own VTABLE/FTABLE pair. The pairwise intersection of
the nine claimed-id sets is zero everywhere off the diagonal: not one id of
109,701 is claimed twice, and each layer's volume table contains exactly two
values — zero and its own number. It is not a stack of overwrites, it is a
partition, and nine files could be concatenated into one without losing a bit.
The overlap the layering story predicts is real, but it lives elsewhere: in
113 pieces of content that exist in two layers and in the fact that ROM,
the 2002 directory, contains the names of expansions from 2013 and 2015.
Chapter 03.
2. The format that is 73 % of the object, opened. A .DAT is a chain of
chunks — 4-byte tag, then a u32 packing a 7-bit type, a 21-bit length in units
of sixteen, and 4 flag bits — with no directory, no index and no member names.
Walking it lands on the exact last byte of 48,757 files; the identical walk
over 130 files that are not .DAT closes on none. And the proof is not
arithmetic: a type-32 chunk decodes into a legible ASCII font sheet, and
another into 1024×2048 of kanji. Chapter 04.
3. A checksum nobody had read. All 126,899 manifest entries carry a
22-character field in a non-standard 64-character alphabet. 22 × 6 = 132 = 128 +
4, so if it is a 128-bit digest the last character can take only four values
— and it does, before anything else is known. The alphabet was then recovered
from forty files, and it is
TSG8IncW3HFKokOg79qzeCmZs2yBYEQVAUxR5rbwi4P@jMDLtpvad0f_J1hlN6uX. SHA-1 is
refused on width; CRC-32 gives 64 conflicts of 64. MD5 reproduces every field
of every manifest, exactly. Chapter 06.
4. The audio decodes, and a human recognised it. .spw and .bgw name
themselves SeWave and BGMStream in their own first bytes; two header bytes
give the channel count and the codec; the count at +20 times a per-codec
constant reproduces every body length exactly. Decoded as 4-bit ADPCM, the
correlation between adjacent samples is 0.9846 — against 0.0361 for the
identical bytes read as the other codec. And then one file was played, and the
person running the session named it: the Final Fantasy victory fanfare.
Chapter 05.
5. A product that costs twenty-three years to keep alive, in figures. A 1998
compiler, a 2000 graphics API, a 2003 Unicode shim for Windows 98 shipped twice,
a 2002 binary whose CompanyName reads SQAURE CO., LTD. — the U and the A
the wrong way round — and a Steam installation script that writes eleven
gamepad-button DWORDs for TetraMaster, a game that is not on the disk and
whose uninstaller silently un-registers a DLL that was never registered.
Chapters 07, 08
and 10.
Twelve figures in the pre-briefing do not survive re-derivation, and the biggest
is its headline. It computes the chance expectation for PS2 as if the string
were four bytes — 3.53 — and concludes that 479 occurrences are 136 times
chance. PS2 is three bytes, chance predicts 903.01, and 479 is 0.53 of
chance: below it, in the same band as Ogg and Wii, the two strings the
briefing correctly dismisses. Mapping the 479 shows 342 of them inside ADPCM
audio payload, and the two in FFXiMain.dll are the low bytes of pointers.
The real evidence is one string table in the launcher reading
PS2 · FFXI · W20 · W2U · IXFF, and four structural facts that do not need a
count. Chapter 07,
Chapter 18.
Five of my own errors are there too, including breaking the branch's own backslash rule twice — the second time writing a form feed and a backspace into a Python source — and writing the scoring card from memory inside the scoring document.
| 00 | 55 predictions, written before a byte was opened |
| 01 | what it is, and which of four denominators |
| 02 | every figure with the command that reproduces it |
| 03 | nine indexes, and where the Jenga went |
| 04 | the .DAT, and a font sheet that proves it |
| 05 | two containers, one codec, a fanfare, and two films |
| 06 | four manifests and a checksum nobody had read |
| 07 | an engine with no name and one Direct3D call |
| 08 | forty binaries and a company misspelling itself |
| 09 | ten days, sixteen days, and twenty-three years |
| 10 | Steam, nine COM servers, a game never shipped |
| 11 | 274 paths, and 123,765 that were not |
| 12 | the strings, and the four that mean nothing |
| 13 | the first object with a player inside it |
| 14 | 2 crossings of 61,184, and 0 of 739,235 |
| 15 | 16.96 %, published as a ceiling |
| 16 | 26.2100 %, and the half that is not here |
| 17 | 272 tools, 10 new, 183 that did not apply |
| 18 | mine, and the pre-briefing's |
| 19 | 44.5 of 55, and what is left open |
Every figure in this repository carries the command that reproduces it. The
predictions were written before anything was opened and are scored whether they
won or lost. Three formats were derived from the bytes this session — the .DAT
chunk chain, the two audio containers, and the manifest checksum — and each was
proved with something that is not arithmetic: a control that had to fail, a
picture you can read, a piece of music somebody recognised.
Nothing of the object is in this repository. No decoded texture, no WAV, no
extracted chunk, no member. .gitignore excludes the working directory, the
pre-briefing and the prompt, and git ls-files is checked line by line before
every commit.
Nothing was executed and nothing was registered. Nine of this object's DLLs
are in-process COM servers and its installation script hands them to
regsvr32; reading a PE does not register it, and regsvr32 was never invoked.
Nothing was contacted. This is an online game and a large share of its strings are host names. They are artefacts: counted, never resolved, never opened. No packet was captured, no session observed, no protocol exercised. The live half of this product is out of scope, and every number here is a statement about bytes at rest on 27 December 2025 — the day this installation was last written to, and the day a subscription lapsed.
The build-machine paths that are here — c:\image\ffxi\, D:\build0001\,
m:\FFXI\, C:\Program Files\PlayOnline\SQUARE\FINAL FANTASY XI — are
directories on machines at a company, compiled into a product sold in large
numbers, and are findings. The path of the machine that did the measuring is
not written anywhere.
There is personal data in this object, for the first time in this collection: 178 files and 2,421,300 bytes of one player's saved state, macros, logs, mail spool and screenshots directory. It is counted, characterised and not printed. Chapter 13.