Harry Potter e l'Ordine della Fenice, PC DVD-ROM, Electronic Arts, June 2007.
Volume HPOOTP, 1,826,656 sectors, 3,740,991,488 bytes, 1,187 files in 26
folders. ISO 9660 + UDF, no Joliet. SecuROM. 97.94 % of the disc is two
files, and the image was built with a desktop ISO editor.
The material is the retail disc itself, in a drive, at E:\ — not an image
and not a copy. Every number below has a command behind it and the output of
that command is in notes/.
The full one, with a command in every cell, is 02 — The spec sheet.
| medium | DVD-ROM, single layer, pressed (layer type 1, embossed), 1,826,656 sectors = 114,166 ECC blocks of 16, no unreadable sector over a full pass |
| filesystems | ISO 9660 + UDF 1.02, both describing 1,187 files / 26 folders / 3,736,552,698 bytes and agreeing exactly. No Joliet — because the ISO primary namespace is non-conformant and carries the long names itself. Windows mounts the UDF |
| mastering | UltraISO V8.5, *EZB UltraISO 1,222 times — a pressed disc whose image was assembled with a desktop ISO editor |
| engine | RenderWare, on EA's RealCore 6.27.01 and RealGraph 6, with Havok (Havok-4.0.0-r1) — the same four as the 2005 disc, RealCore at the same point release. In-house layers eauk_renderframework, eauk_shadercore, hp_gamesystems, seedrt; D3D9, DirectInput 8, XInput 1.3 |
| containers | 2 ZIP (50 members, all deflate) → 6 EA BIGF archives → 1,540 entries, 4,900,150,264 bytes ; 43 Microsoft MSCF cabinets, all signed |
| graphics | 386 GIF89a, 144 JPEG, 7 BMP (24 bpp), 1 ICO — all outside the game. Video inside: 55 On2 VP6, 981,251,196 bytes, all movies/neutral/… |
| audio | 146 .sdt sound banks and one 140 MB .mus, inside the archives, not decoded — §18 says why |
| text | windows-1252 throughout, except two UTF-16LE files: Localization.ini and — inconsistently — the Italian readme |
| languages | 26 codes on 9 axes, none on all nine; 3 installed (NumLanguages=3, fr/de/it, English off); 16 help-booklet languages; 24 codes in each of five Localization.ini sections |
| toolchain | Microsoft linker 8.00 on 10 of 13 loose binaries, 7.10 on 3; 13 of 13 signed |
| protection | SecuROM — four sections in hp.exe named ars / est / artem / celare, plus .securom; entry point inside est; no version string anywhere |
| provenance | no studio company name; a certificate reading O=Electronic Arts, OU=UK Studio, L=Guildford, ST=Surrey, C=GB, and a PDB path z:\phoenix\code\release_pc\game\built\pc\hp_unity_f.pdb |
| whose disc | 98.08 % by bytes, 45.49 % by file count — 52.59 points apart |
| against the collection | 500 files byte-identical to the 2005 disc (40 distinct contents), 0 against the 2001 disc and 0 against eight other trees |
| 00 — Predictions | 100 clauses written before anything was measured, never edited |
| 01 — Provenance: three points, two holes | the disc, its two measured siblings, the two Harry Potter discs that are missing, and the sentence this repository has no right to write |
| 02 — The spec sheet | every hard number in one place, tables only, a command in every cell |
| 03 — UltraISO against GEAR | six measurable differences between two implementations of the same two standards — including an ISO 9660 that is not ISO 9660, which is why there is no Joliet |
| 04 — The field that saturated | a lead-out reported 674,807 sectors too early, proved to be a one-byte field running out, with a tool that reproduces both siblings' published values |
| 05 — The census | 1,187 files, 663 distinct contents outside the archives, and 43 cabinets each carrying a signature the format does not describe |
| 06 — Against ten trees | the streak of eight zeros breaks, on five DirectX cabinets — and the 2001 disc, hashed at last, shares nothing with either DVD |
| 07 — Ars est celare artem | nine PE sections, four of them spelling a Latin tag, one packed at entropy 8.000, and a protection vendor that writes no version number |
| 08 — Who made this | a certificate naming a town, a debug directory that survived the packer, and a mapped drive the disc identifies by contradicting itself |
| 09 — Two archives | fifty members, six BIGF, 1,540 entries — and a proof that the split is the 32-bit ZIP ceiling, listed without unpacking 4.94 GB |
| 10 — Forty controllers | which half of a DirectInput GUID is the vendor, proved from this disc alone by twelve content pairings |
| 11 — The clocks | six clocks, an hour that was the other disc's mastering tool's fault, and a signature nobody timestamped |
| 12 — The languages | three installed, sixteen booklets, twenty-four titles, and a template still carrying another franchise's patch URLs |
| 13 — The help booklet | 1,113 files, sixteen languages, not one page shared with the 2005 disc and every stylesheet and build log shared |
| 14 — Whose disc | 98.08 % by bytes against 45.49 % by count, and the one membership call that moves it |
| 15 — Three discs, six years | twenty-nine axes, three columns, fifty-eight checked citations, and the four axes where the second step reverses the first |
| 16 — The payload | 125 bytes in a field the standard requires to be zero, one integer equal to the disc, and one that has the shape of a date nine days too late |
| 17 — The read window | a third disc, and a claim from the second that measures 9 of 11 instead of 11 of 11 |
| 18 — Open questions | fourteen, five of them closed during the session, each with what was tried and what an answer would cost |
| 19 — Prediction scoring | 67 hit, 11 half, 22 miss, 0 unresolved — and the analogy rule that worked while the theory behind it did not |
| 20 — Tools | 29 of 99 inherited tools said something true, 11 said something false, 26 do not apply, and 14 were written here |
| 21 — Leftovers | measurements without a home, including a Danish translator who translated a placeholder |
The image was built with a desktop ISO editor, and the disc is pressed.
layer type 1 is embossed, the profile is 0x0010 DVD-ROM, there is one track
and no session border. And the application identifier says
UltraISO V8.5 CD & DVD Creator, (c) 2006 EZB Systems, Inc., with
*EZB UltraISO in every one of the 1,213 UDF File Entries and nine volume
structures — 1,222 signatures where the 2005 disc had 1,717 saying GEAR. An
industrially pressed DVD whose filesystem carries the name of a desktop tool.
Who ran it, and why, is not on the disc.
Its ISO 9660 is not ISO 9660, and that is why there is no Joliet. 1,185 of
1,187 file names carry lower-case letters, 67 carry spaces, 747 have stems
longer than eight characters, and not one carries the ;1 version suffix
the standard requires — in the primary descriptor. Joliet exists to carry
names the primary is not allowed to hold; this primary holds them anyway, so
there is no supplementary descriptor at all. Six layout differences from the
2005 disc follow from choices like that one, and they are in
03.
A lead-out 674,807 sectors before the end of the disc is a byte running out.
READ TOC returns MSF 255:59:74, which is LBA 1,151,849 and the largest
address three one-byte fields can express. This volume is 1,826,656 sectors and
would need M=405. The proof needs no disc: fed the two siblings' volume sizes,
the same three lines of arithmetic reproduce both of their published MSF values
exactly.
The streak of eight zeros breaks, and the 2001 disc still contributes one.
500 files here are byte-identical to files on the 2005 disc — 40 distinct
contents, 32,311,885 bytes, of which 97.8 % is five DirectX cabinets and the
rest is the help booklet's furniture and four RoboHelp build logs. Not one
.htm matched. The 2001 disc went back into the drive during this session and
its 540 files were hashed for the first time: zero shared with either DVD.
Four years and a change of studio transmit nothing; twenty months and the same
building transmit forty files.
The protection changed vendor and stopped saying its version. SafeDisc wrote
2.40.010 and 4.50.000 at a fixed offset in a file named DIAG.EXE. Here
there is no DIAG.EXE, no .TMP, no BoG_, and no version number in any shape
in 10,329,160 bytes. What there is: nine PE sections instead of five, four of
them named ars, est, artem and celare — the four words of ars est
celare artem, with the last two swapped — one of them 5.9 MB at entropy 8.000
marked writable and executable, and one of them a statically linked zlib 1.2.2.
The people are in the certificate and in the debug directory. hp.exe is
Authenticode-signed to C=GB, ST=Surrey, L=Guildford, O=Electronic Arts, OU=UK Studio. Its DEBUG directory — relocated into the packer's own section,
because a packed executable still has to load — carries
z:\phoenix\code\release_pc\game\built\pc\hp_unity_f.pdb, and eleven more
source paths name eauk_shadercore, eauk_renderframework and
realcore\6.27.01. Two structures written by two unrelated tools, naming the
same organisation. KnowWonder appears zero times; so does every actor's name.
Everything runs on Python 3 with the standard library only, on Windows, with the disc in a drive. Nothing needs administrator rights except the raw-device reads, which need the volume handle Windows gives an ordinary user for read-only access.
git clone <this repo>
cd pc-harrypotter5-doc
# the disc, from the outside
python tools/spti.py E # medium, geometry, drive
python tools/toc.py E # the lead-out that saturates
python tools/msf.py --lba 1826656 # and why it does
python tools/vds.py E # ISO descriptors
python tools/udf.py E --iso notes/isodev-extents.txt
# the layout
python tools/isodev.py E --extents > notes/isodev-extents.txt
python tools/gapname.py E --gaps 0-258 302-1559 1826652-1826655
# a full pass: 17 minutes, and it earns the phrase "no unreadable sector"
python tools/sweep.py E --sha1
# the tree
python tools/census.py E:/ --sha1 > notes/sha1-all.txt
python tools/census.py _work/iso --dups
python tools/whose5.py _work/iso --zip-bytes 3659430452 --zip-files 2
# the containers, without unpacking them
python tools/zipdir.py E:/0compressed.zip --list
python tools/big.py E:/0compressed.zip --list
python tools/cmapcensus.py E:/0compressed.zip
python tools/cabsig.py _work/iso/DirectX/*.cab --names
python tools/bigpad.py E:/0compressed.zip data.big --dump fingerpr.int
# the executable
python tools/securom.py _work/fromzip/hp.exe --around 0x8BC148
python tools/authenticode.py _work/fromzip/hp.exe
python tools/machpaths2.py _work/fromzip
# against the collection
python tools/listdiff.py notes/sha1-nozip.txt ../pc-harrypotter4-doc/notes/sha1-all.txt
python tools/threedisc.py
# before committing
python tools/checklinks.py
python tools/checkscore.py docs/19-prediction-scoring.md
_work/ holds a copy of the 1,185 loose files and four extracted zip members;
it is not in the repository and nothing in docs/ depends on it existing —
every path above can be re-derived from the disc.
Two hash lists are published, both one line per file — hash, size, path:
notes/sha1-all.txt— this disc, 1,187 lines;notes/hp1-sha1-all.txt— the 2001 disc, 540 lines, hashed during this session and belonging as much topc-harrypotter1-docas to this repository.
tools/listdiff.py compares any two of them without either disc being present.
That is the whole reason they exist.