Beneath a Steel Sky — GOG Windows ScummVM
The local fixture is the GOG offline installer recorded under
gog-free-beneath-a-steel-sky in test/candidate-corpus/manifest.json and
sources.md. GOG listed the game at USD 0.00 when the corpus was inventoried;
that price does not make the proprietary installer redistributable, so the
installer and extracted payload remain gitignored local fixtures.
Payload and launch
The selected English payload contains 113,787,793 bytes (108.5 MiB). Its two
large files are sky.dsk at 72,395,713 bytes (69.0 MiB) and the bundled
32-bit Windows scummvm.exe at 34,898,432 bytes (33.3 MiB). It is retained
locally at:
test/binaries/candidates/gog-free-beneath-a-steel-sky/installed
The runtime is GOG's ScummVM 2.0.0 package. It runs directly in Wine-Assembly—there is no host Wine process and no DOSBox layer:
node test/run.js \
--exe=test/binaries/candidates/gog-free-beneath-a-steel-sky/installed/scummvm/scummvm.exe \
'--args=-c c:\beneath.ini --path=c:\ beneath' \
--env=SDL_RENDER_DRIVER=software \
--vfs-include=../sky.cpt --vfs-include=../sky.dnr \
--vfs-include=../sky.dsk \
'--vfs-mount=test/binaries/candidates/gog-free-beneath-a-steel-sky/installed/__support/app/beneath.ini=c:\beneath.ini' \
--dll-seed=test/binaries/candidates/gog-free-beneath-a-steel-sky/installed/scummvm/SDL2.dll \
--winver=win2k --screen=800x600 --batch-size=5000
node test/test-beneath-scummvm.js is the bounded local acceptance. It checks
that ScummVM selects Beneath a Steel Sky (v0.0372 cd), remains live, and
visibly renders the Virgin Interactive splash instead of an empty SDL window.
A longer scripted local probe also passed the stronger gameplay check. The
visually reviewed frame at
/private/tmp/free-gog-screenshots.EC8yad/1-beneath-a-steel-sky.png shows the
playable industrial opening scene with Foster and the live cursor. This does
not widen the bounded automated test's claim; it records the manual gameplay
evidence used for the seven-game GOG inventory.
Installer investigation
The installer is a two-process Inno Setup package. Wine-Assembly directly ran
the 91,327,544-byte outer PE32/i386 executable. It extracted a 1,259,104-byte
inner runner and called CreateProcessW, which Wine-Assembly deliberately does
not implement. The exact child command was recovered with
--break-api=CreateProcessW; the inner .tmp was then executed directly with
its /SL5 loader metadata and the original installer mounted at
C:\setup_beneath_a_steel_sky_1.0_(20270).exe.
The harness normally exposes a running image as C:\<basename>. Using the
inner runner's original basename therefore occupied
C:\setup_beneath_a_steel_sky_1.0_(20270).tmp, but Inno later opens that path
with CREATE_NEW as a staging destination. The resulting collision produced a
misleading "source file does not exist" dialog. Keeping the .tmp extension
while giving the runner a different basename removes the collision and reaches
the Installing page.
That corrected direct run did not complete: after a 900-second bound the setup
log still ended immediately after Starting the installation process, and the
VFS contained no destination game files. The changing slideshow and EIP proved
the UI remained live, but this is effectively a hang in the first payload step,
not merely a large install—the complete selected payload is only 108.5 MiB.
For runtime testing, the same GOG Inno records were therefore unpacked with a
local innoextract 1.9 build. This is a payload-extraction workaround, not a
claim that the installer completes inside Wine-Assembly.
Like Lure of the Temptress, this SDL 2.0 build needs the per-process
SDL_RENDER_DRIVER=software setting. Wine-Assembly's software GDI presentation
then renders the game correctly; no global renderer policy is changed.