Harry Potter e la Pietra Filosofale, PC CD-ROM, Electronic Arts, October 2001.
Volume HARRY_POTTER_SIP_2210B, 292,173 sectors, 598,370,304 bytes, 540 files
in 30 folders. Unreal Engine 1. SafeDisc 2.40.010.
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/.
| 00 — Predictions | 100 clauses written before anything was measured, never edited |
| 01 — The disc is here | what seven sessions could not ask, and what this one can |
| 02 — One hundred and fifty | the tail past the volume, from four independent sources; the 155 of three earlier discs closed |
| 03 — Two primaries | 344 bytes in a field ISO 9660 requires to be zero, holding six of this disc's boundaries |
| 04 — Five hundred and forty files | the census, the magics, the eleven duplicate groups |
| 05 — The extent map | 21,281,745 bytes outside any file, accounted to zero |
| 06 — 9,343, which was wrong | a border measured three times, three answers, and the read window that explains all three |
| 07 — Inside the hole | 720 readable sectors nobody had a reason to look at |
| 08 — SafeDisc 2.40.010 | the version at the offset that works, and a company that named itself nowhere |
| 09 — Four clocks and an offset | a DLL linked after the tree was stamped; 571 records against 2 descriptors |
| 10 — Reading Epic's format | the package reader, and the six oracles that make it trustworthy |
| 11 — Seven versions | the version field is Epic's; its distribution is this build's |
| 12 — Ninety-one and eighty-seven | no tracker modules, an apostrophe that cost 363,659 bytes |
| 13 — Thirty-one maps in a line | the story order, from ChangeLevel strings |
| 14 — Dobby | the same order, from a localisation file for a module that does not exist |
| 15 — What the extensions lie about | 46 MB of art and audio in files whose extension says code |
| 16 — Strings for modules that are not here | two renderers cut, and a readme that names the cards |
| 17 — Twenty-five languages | fifteen axes, no language on all of them, Hungarian on one |
| 18 — Six bytes | three near-identical packages, the difference attributed byte by byte |
19 — dhunt.KNOWWONDER |
the studio's name appears once inside the software, in a machine path |
| 20 — Whose disc is this | 89.09 % written for this disc, with the rule stated |
| 21 — Against eight trees | the seventh zero, 16,434 files compared |
| 22 — Which edition | a three-language southern-European SKU, decided in five lines by the disc |
| 23 — Open questions | twelve, each with what was tried |
| 24 — Prediction scoring | 41 hits, 19 halves, 31 misses, 8 unresolved |
| 25 — Tools | 18 of 56 inherited tools apply; 35 written here |
| 26 — Leftovers | measurements without a home |
150. The lead-out is at LBA 292,323 and the volume declares 292,173. Four independent sources — the ISO descriptor, the mounted filesystem, the CD table of contents and the Windows device-length ioctl — split two against two, and the gap is exactly the Red Book lead-in. Three earlier discs in this collection showed 155; those five extra sectors were never on a disc.
A table hidden in a field that must be zero. Of the two primary volume descriptors, sector 17 is clean and sector 16 carries 344 non-zero bytes in the application-use and reserved areas. Twelve of those bytes are a run of integers and six are exact boundaries of this disc, including both edges of a region no filesystem describes.
The border of that region is 818, and a binary search cannot find it. Cold seeks report 755, stably, three times over. The drive reads 64 sectors per request and fails the whole request if any of them is bad, so the lowest failing cold seek is 818 − 63. The true unreadable region is 818 to 10,097, 9,280 sectors, 19,005,440 bytes, and both numbers were written on the disc by whoever made it unreadable.
Thirty-one levels in one line. Lev_Tut1 → … → Snapes_Office → startup,
recovered from ChangeLevel strings inside the map packages and confirmed at
every step by a numbering table in System/Dobby.int — a localisation file for
a module that is not on the disc, named after a character from the next book.
Zero disagreements between the two sources. The filenames are wrong in exactly
one place.
The studio is credited on the box and not in the game. 6,779 bytes of
credits name a hundred and eighty people and attribute the work to "PC Team".
KnowWonder appears once in 540 files: inside a 3ds Max exporter comment, as
the domain half of C:\Documents and Settings\dhunt.KNOWWONDER\Desktop\...,
attached to the Golden Snitch's texture.
Eighty-nine per cent. The engine is Epic's, the compiler Microsoft's, the protection Macrovision's, the installer InstallShield's, and 4.85 % of the disc is a DirectX redistributable — and 89.09 % of the file bytes were still written for this disc, because by 2001 the engine was small and the content was not.
Everything needs Python 3 and nothing else. E: is the drive with the disc in
it; substitute your own letter.
# the physical disc
python tools/toc.py E # TOC, lead-out, the 150
python tools/leadout.py E # what is past the volume
python tools/vds.py E # the four descriptors
python tools/vds.py E 16 17 # byte-by-byte, the 344
python tools/vdpayload.py E # the payload's shape
python tools/vdmatch.py E notes/extents-iso.txt # its integers vs the layout
# the layout, and the hole
python tools/isodev.py E --extents # the LBA-ordered map
python tools/isodev.py E --tz # 571 records, one offset
python tools/edges.py E # the binary search (91 s)
python tools/edgerun.py E # sequential runs (110 s)
python tools/window.py E --check # solves the read window
python tools/gapstruct.py E 107 817 # what is inside the hole
# the content
python tools/census.py E:/ # 540 files
python tools/upkg.py E:/ --oracle # 249 packages, six oracles
python tools/upkg.py E:/ --versions # the seven versions
python tools/umx.py E:/Music --tags # 91 x mp2
python tools/mapchain.py E:/Maps # the thirty-one
python tools/dobby.py E:/ # the cross-check
python tools/langtable.py E:/ # fifteen axes
python tools/whose.py E:/ # the byte accounting
# the session
python tools/verify.py E:/ # nine outstanding predictions
python tools/toolcheck.py E:/ <old tools dir> # which inherited tools applyReading a failed sector on this drive costs about 6.6 seconds and reading a good
one about 0.3, so edges.py, edgerun.py and window.py are the slow ones and
their cost is printed with their result. Nothing here writes to the disc, and
nothing retries a failed sector.
No asset from the disc. _work/ is ignored by name and holds the extracted
music, the sector-16 payload and the name dump; the disc's own files stay on the
disc. notes/ holds the saved output of every run a document cites.
The other versions of this tie-in — PSX, GBC, GBA and later — had different gameplay and different story beats. That is true, it is the interesting part, and one disc cannot say anything about it. There is no chapter about it here.
One observation in this repository is not a measurement and is labelled wherever it appears: the owner of this copy reports a KnowWonder logo on the back of the printed case, after the ELSPA mark. No scan of the packaging is here and nothing on the disc corroborates it. §01, §19, §22.
HL-DT-ST DVDRAM GP60NB60 USB Device
Every [phys] number in these documents came from that drive. Where a number
depends on the disc spinning, the document says how many times it was re-read.