Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Broken Sword: The Sleeping Dragon — a GOG installation, measured

A read-only measurement of a live GOG installation of Broken Sword: The Sleeping Dragon (Revolution Software, published by THQ, 2003), Windows edition, gameId 1207658708. Nothing was executed. Nothing was written to the installation. No asset was decoded and none is in this repository.

the object 6,748 files, 7 directories, 1,724,710,597 bytes, on a hard disk
duplication 6,748 distinct sha1 of 6,748 — zero
two manifests Galaxy's file list says 6,739; the installer's hash database says 6,736; the disk says 6,748. All three are right, at three different instants of the install
verified 6,736 MD5 of 6,736 match — 1,721,421,870 bytes proved intact
the engine RenderWare 3.6.0.3 of Criterion Software, decoded from the packed library ID 0x1803FFFF and confirmed by 110 source paths reading RenderWare/RW36Active/rwsdk/…
the renderer Direct3D 8. d3d9.dll appears nowhere in 1.7 GB, in any of three encodings
the program BSTSD.exe, 1,744,896 bytes = 0.1012 %, with no version resource at all
the streams 6,721 RenderWare audio containers, 813,813,760 bytes; header exactly 2,048 bytes each; four-bit ADPCM, 6,575 mono lines at 22,052 Hz and 146 stereo banks at 44,100
data.pak opened: 19,751 members that tile the file with zero gaps and zero overlaps — 5,744 bitmaps, 732 WAV, 2,975 RenderWare chunks in four engine versions, 1,188 PNG
the film 9 Bink videos, 13,985 frames, 557.2 s; size + 8 == filesize on 9 of 9
the thesis 71.2028 % of the object is recorded sound and film
running time 8:34 to 11:32 of sound against 9:17 of film
the platforms the PlayStation 2 memory-card dialogue ships inside the Windows product, and the build tree has pc as one platform folder among siblings: one data build for three machines, unstripped. Not a port, in either direction
predictions 70 written before anything was opened; 45 hits, 20 halves, 4 misses = 55.0 of 69 = 79.71 %
the experiment the GOG client's language was switched from English to Italian after chapters 00–19 were written: 6,580 files replaced, the executable swapped for a different 2007 build, data.pak grown by 1,970,823 bytes — and every structural count unchanged

The question this object asks. An installation of 1.72 gigabytes and 6,748 files with no duplication, of which the program is a thousandth and carries nobody's name, while 47 % of it is six thousand seven hundred and twenty-one RenderWare streams and another 39 % is a single file with no reader. How many files did you buy, and how many of them can you read? The answer this repository gives: 6,748 on the disk, 6,739 claimed, 6,736 proved — and all of them can be read, because both containers opened.

A note on the count. This repository has 21 documents, not the twenty the branch has landed on for ten sessions. The twenty-first exists because the object changed while it was being measured: the storefront client that installed it rewrote 6,580 of its 6,748 files after chapters 00–19 were finished, and a before-and-after of the same object is the one thing thirty-two discs and dead installations could never provide. Chapters 00–19 describe the English state, whose only surviving record is notes/sha1-all.txt and notes/tree.tsv in this repository; chapter 20 describes what changed.

The chapters

00 — The predictions seventy bets, written before a byte was read
01 — What this object is three counters, three numbers, and the denominator this repository publishes
02 — The spec sheet every number with the command that makes it again
03 — The two manifests a bug in a buffer, and 6,736 digests that all match
04 — The engine RenderWare 3.6.0.3, named 114 times, four versions in the archive
05 — The streams 6,721 files, one format, and forty-seven points of thesis
06 — The package 19,751 members, and the word that was in the wrong place
07 — The film nine files, nine minutes, and two folder names that both lie
08 — The binaries three files, one signature, a program that names nobody
09 — The dependencies nine DLLs, and 158 files promised and never delivered
10 — The calendar ten dates, none from the filesystem
11 — The paths and the machines three build paths, and a filter that threw the best one away
12 — Three installations what Galaxy writes, what the installer writes, and whether they agree
13 — Against the collection four crossings, an empty Saga cell, a PlayStation 2 inside a Windows game
14 — The tools 241, of which 155 do not apply
15 — The leftovers 145,169,513 bytes, and the worst number this column has recorded
16 — The thesis 71.2028 %, and half of it was in a file nobody could read
17 — Corrections twelve in the briefing, eight of mine
18 — Open questions what is still shut, and what would open it
19 — The scoring 45 / 20 / 4
20 — The language switch the object changed while it was being measured, and the twenty-document constraint was broken on purpose

Reproducing

Every figure names the command that produces it. <install dir> is an argument to every tool and is written down nowhere.

python tools/treecensus.py "<install dir>"
python tools/threesets.py --root "<install dir>"
python tools/hashdb.py "<install dir>/goggame-1207658708.hashdb" --check --root "<install dir>"
python tools/rwstream.py --selftest "<install dir>/data/movies/pal/teaser.bik" \
                         --census "<install dir>/data/streams"
python tools/pak.py "<install dir>/data.pak" --selftest "<install dir>/binkw32.dll" --census --wav
python tools/bink.py --census "<install dir>/data/movies"
python tools/leakthis.py "<install dir>"

Raw output is in notes/. Tools are in tools/, 241 of them, classified by python tools/toolclass.py, which refuses to print unless every one is in exactly one class.

Seven tools were written here — rwstream.py, pak.py, bink.py, threesets.py, pcmtest.py, leakthis.py, treediff.py — and three were repaired without changing what any other object was measured with.

About

A read-only measurement of a GOG install of Broken Sword: The Sleeping Dragon (2003). 6,748 files, 1.72 GB, zero duplication. Both GOG manifests reconciled and 6,736 MD5 verified; data.pak opened (19,751 members, no gaps); 6,721 RenderWare streams shown to be 4-bit ADPCM. Thesis: 71.2028 % sound and film.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages