Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Harry Potter and the Order of the Phoenix (PC, 2007) — a measurement

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 short spec sheet

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

What is here

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

Six things this disc says

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.


Reproducing it

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 to pc-harrypotter1-doc as to this repository.

tools/listdiff.py compares any two of them without either disc being present. That is the whole reason they exist.

About

Harry Potter and the Order of the Phoenix (PC, EA, 2007) - a measurement of the retail DVD: a pressed disc whose image was built with UltraISO, an ISO 9660 that is not ISO 9660, SecuROM with no version string, and the eight-disc streak of zero shared files ending on five DirectX cabinets

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages