Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Broken Sword: The Angel of Death — a GOG installation, measured

A read-only measurement of a live GOG installation of Broken Sword: The Angel of Death (Revolution Software with Sumo Digital, published by THQ, 2006), Windows edition, gameId 1207658973. Nothing was executed — in particular not the folder's Direct3D proxy. Nothing was written to the installation. No member of any archive was extracted and no decoded asset is in this repository.

the object 31 files, 9 directories, 2,668,075,144 bytes, on a hard disk
duplication 31 distinct sha1 of 31 — zero whole files; 579 duplicate members inside the archives, 41,157,103 bytes
the three masses bs4.pak, english.pak, audio.pak = 99.3801 %, all three beginning EmPackFi, a format documented nowhere
verified by the installer 1 file of 31 — a 207-byte hash database with one MD5, and it is the language archive
the package opened: 17,978 members that tile all three files with zero overlap, gaps never larger than 255 bytes, and header + members + slack == filesize, delta zero on three of three
the trap the record's first field is a pointer to the member's name relative to its own record. The obvious reading agrees on record 0 and drifts twelve bytes per record after it, returning a plausible filename for all 17,978 and never failing
the engine Emmersion, 3,449 occurrences in ASCII and 2 in UTF-16. Immersion, the spelling in the literature, occurs 0 times in 2.67 GB in two independent encodings
the technology amBX of Philips, 1,073 occurrences in six casings, a 4 MB video member, and 220 identifiers compiled into the executable. Amex, the name in the literature, occurs 0 times
the largest thing 1,987 compiled 3D scenes, 1,557,790,042 bytes = 58.3863 % — the first object in this collection whose plurality is modelled geometry
the calendar 1,967 of those scenes carry an ASCII timestamp at byte 200 of their own header — 100 distinct days from 2006-04-20 09:24:55 to 2006-08-14 12:07:50, with a weekday histogram and a lunch hour
the sound 7,902 members, 11 h 22 m 06 s; voice mono at 160 kbit/s on 6,098 of 6,098, music stereo at 192
the film 8 Bink videos, 13,129 frames, 298.74 s — of which 2 m 39 s is a screen-capture tutorial
the thesis 37.6177 % of the object is recorded sound and film, against 71.2028 % for the same studio's previous game
the crossing 291 archive members are byte-identical to Broken Sword 3's — 87.83 % of this game's bitmaps, 100 % of its animation event maps, and zero of its sound, film or geometry. The collection's twelve-session rule that no game data ever crosses is over
the platforms PlayStation 0 occurrences, and 53 PlayStation 2 textures at half the resolution of their pc siblings, in a folder called ps2, in a Windows-only product
the program bs4pc.exe, 4,797,440 bytes = 0.1798 %, with no CompanyName key and a version resource reading dont_change_XXXXXXXXXXXXXXXXXXXXXXXXXX
the paths 26,212 distinct DOS paths over 100 % of the object, all on one drive Z:, because this archive stores the full build path of every member where the previous game stored a hash
predictions 66 written before an archive was opened; 48 hits, 11 halves, 6 misses = 53.5 of 65 = 82.31 %

The question this object asks. An installation of 2.67 gigabytes and thirty-one files, of which the program is 0.1798 % and has the word dont_change in its own version resource, while 99.3801 % sits in three containers that announce themselves with eight bytes and then say nothing — and the only file the installer took the trouble to verify is the one holding the language. What did you buy, and who built it?

The answer this repository gives: 17,978 assets, of which 1,987 are compiled scenes that carry, in ASCII, the minute they were exported and the name of the person who exported them — and they were built by about twenty people over a hundred working days between the twentieth of April and the fourteenth of August 2006, which the object states about itself and no catalogue records.

The chapters

00 — The predictions sixty-six bets, written before a byte of the archives was read
01 — What this object is thirty-one files, three denominators, and the one file anybody checked
02 — The spec sheet every number with the command that makes it again
03 — The two manifests a hundred and eighty promises and one kept
04 — The engine Emmersion 3,449 to 0, and the technology called amBX and not Amex
05 — The package format eight bytes, twelve more, and a pointer that points at itself
06 — The members 17,978 things, and none of the three archive names is right
07 — EMDF and the calendar a hundred working days, written into the assets
08 — The recordings eleven hours and twenty-two minutes of sound, five minutes of film
09 — The binaries ten programs, one signature, a placeholder that shipped, a hook from 2017
10 — The paths and the machines twenty-six thousand paths, and why yesterday's game had three
11 — The language one archive, one DWORD, and six languages nobody asked for
12 — Against the collection the rule held for twelve sessions and broke today
13 — The port that never was PlayStation zero, and fifty-three PlayStation 2 textures
14 — The tools 248, of which 156 do not apply, and a leak check that caught me twice
15 — The leftovers sixty-four megabytes the product does not need
16 — The thesis 37.6177 %, and the majority is not a recording
17 — Corrections fourteen in the briefing, four of mine
18 — Open questions what is still shut, and what the crossing made answerable
19 — The scoring 48 hits, 11 halves, 6 misses, and the one that would have cost the session

What is in this repository

docs/ — the twenty chapters above. notes/ — the raw output of every tool run, with the installation path redacted. tools/ — 248 Python scripts, of which 7 were written for this object: empack.py, emdf.py, mpegaudio.py, whichmember.py, crossmembers.py, thesis.py and leakhere.py.

No asset. Not one member of any archive, not a frame of video, not a second of audio, not an image. The archives were read and never opened onto disk.

Reproducing

Every chapter opens with the command that makes its numbers. The installation root is always an argument and never a constant:

python tools/treecensus.py "<install dir>" --tsv notes/tree.tsv
python tools/empack.py "<install dir>/bs4.pak" --census --tsv members.tsv
python tools/empack.py "<install dir>/manual.pdf" --expect-fail
python tools/emdf.py --archive "<install dir>/bs4.pak" --tsv members.tsv --selftest
python tools/mpegaudio.py --archive "<install dir>/audio.pak" --tsv members.tsv --selftest
python tools/thesis.py --tsv members-bs4.tsv --tsv members-english.tsv \
                       --tsv members-audio.tsv --total 2668075144
python tools/leakhere.py "<install dir>"
python tools/checkscore.py docs/19-scoring.md

About

A read-only measurement of a live GOG installation of Broken Sword: The Angel of Death (2006). The three EmPackFi archives opened: 17,978 members, 58.4 % compiled 3D scenes that date themselves, Emmersion 3449:0, amBX 1073:0, and 291 members shared with Broken Sword 3.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages