Populous: The Beginning demo (Bullfrog, 1998)

lib/apps.js id populous_tb_demo (localhost-only), exe test/binaries/candidates/populous-the-beginning-demo/extracted/popTBDemo.exe (software renderer, DirectDraw 640x480x8, imageBase 0x400000) with the bundled WEANETR.dll (Bullfrog's MLDPlay network layer, origBase 0x10000000) and QMixer.dll (QSound mixer, origBase 0x18000000) as app DLLs. SFMAN32.DLL (SoundFont manager) is only reached through LoadLibrary and comes from the VFS. Source: archive.org item POPULOUS (POPULOUS.EXE, WinZip SFX, md5 5328fd544622c74cc649114dd9e1fe2c). Fetch/prepare: node tools/fetch-candidate-corpus.js --id=populous-the-beginning-demo [--prepare]. The SFX holds the InstallShield 5 setup beside the uncompressed game tree, so the game runs from extracted/ without running setup. D3DPopTBDemo.exe (the hardware renderer) and DemoHW_SW_Select.exe (the chooser) are untested.

Registry

popTBDemo.exe+0x41f416 reads HKLM\SOFTWARE\Bullfrog Productions Ltd\Populous: The Beginning (Demo): InstallDrive (only the first letter is kept, upper-cased, at 0x7afecf) and InstallDirectory (a leading \ or / is stripped, at 0x7afed0). Missing either -> "Missing or incomplete Registry information". startupRegistry sets C: and \, i.e. the game tree is C:\.

Route to gameplay

node test/run.js --app=populous_tb_demo --quiet-api --control=8187 --frozen --tick-ms-per-batch=20 \
  --max-seconds=900 --max-batches=100000000
node tools/ctl.js -s :8187 step 16600            # main menu from ~15000
node tools/ctl.js -s :8187 cmd relmousemove:-2000:-2000
node tools/ctl.js -s :8187 cmd relmousemove:320:142   # game cursor onto NEW GAME
node tools/ctl.js -s :8187 cmd di-mousedown; ... step 300; ... cmd di-mouseup

then NO on the tutorial prompt (+0,+241), a click on the "Journey Begins" briefing, ~60000 batches of level flyby (one OK on "I have created my reincarnation site"), and the player has control. Evidence: scratch/runs/20261006T1210Z-populous_tb_demo-gameplay-w6.

Emulator fixes this game needed (2026-10-06)

Known gaps