Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Harry Potter and the Philosopher's Stone (PC, 2001) — a measurement

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/.


What is here

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

Six things this disc says

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_Officestartup, 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.


Reproducing it

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 apply

Reading 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.

What is not in this repository

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.

What is not measured

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.

Drive

  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.

About

Harry Potter and the Philosopher's Stone (PC, Electronic Arts, 2001) measured from the retail disc: ISO 9660 layout, a table hidden in the volume descriptor, the read window that hides the border of a 9,280-sector unreadable region, 249 Unreal Engine 1 packages, and 31 levels in one line.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages