Army Men installed-game remote preparation
No remote transfer or game run occurred. Root reported Boat push rejected
403 api_key_action_forbidden because the key cannot perform SSH. Army did
not attempt push/scp/SSH or encode original binaries through another route.
All433 installed-state VFS files and the original exported registry remain
missing from the intended remote Army directory. Source/control scripts can
use normal Git, but this does not transport ignored originals. An authorized
ordinary file route and a fresh root runtime grant are still prerequisites.
The proposed sandbox is bx_z8xgsuxz, scheduled expiry00:57UTC. Dungeon Siege
owns its sole runtime until release. Its /home/user/wa-toolhelp-validation
and /home/user/toolhelp-input are separate; Army's proposed destination is
/home/user/army-men-installed-20261019. Nothing in those remote locations
was overwritten, and no remote build/browser/public hosting was attempted.
Exact local bundle
Plain staging directory /home/user/army-men-remote-stage-20261019 contains
1588 sealed files totaling138,321,151 bytes, plus transfer-manifest.json.
Manifest SHA-256:
30292d621253080a88c97b047f97483cc3cbcdd2ffed2827e8d891f3fc11edac.
This is a prospective transfer identity, not a successful transfer receipt.
The bundle includes1121 physical runtime source/font/tool files from root
3c791a0231267d4bd5a2db3160ad830c40a869da, canonical wasm
93818216116a49fbc2b52074a80254d5f8aebdef753b7f22b34d90be84c323c6,
pngjs dependency, all433 exported VFS files, exported registry, actual parsed
shortcut/installation/root-review receipts, source identity and new controller.
Every VFS path was independently rehashed against the installed-run artifact
seal before preparation. Originals are hardlinked into the staging directory;
cross-filesystem runtime sources/module cost about47.4MB of additional local
storage, plus small dependency/metadata overhead. No fixture bytes changed.
Remote prospective file cost is138.4MB plus filesystem overhead,256MiB output
budget and512MiB admission buffer. Exact remote headroom must be refreshed.
Evidence: scratch/runs/20261019-army-men-remote-preparation/ contains
preparation.json and the complete transfer-manifest.json. The installed state
remains independently recoverable in the prior installed-run final-vfs and
registry; Git contains recipes/control source, not these ignored binaries.
Ready command, conditional on authorized transfer and root grant
node /home/user/army-men-installed-20261019/controller.js \
/home/user/army-men-installed-20261019 \
/home/user/army-men-gameplay-run-20261019 --root-runtime-granted
Controller source: tools/army-men-installed-remote-run.js. It verifies the
whole bundle and installed EXE before launch, parses the actual installed
shortcut using production parser, then uses its original target, cwd and empty
arguments. Guest target is
C:\Program Files\The 3DO Company\Army Men Demo\ArmyMenDemo.exe.
The complete actual exported VFS/registry accompanies it. No guessed registry,
raw-source direct-launch shortcut, binary patch or installer bypass is used.
Finish was not clicked in the successful installer run. Installed files, shortcut and App Paths agree; absence of observed Finish is not itself a reason to replay the installer. Keep post-Finish cleanup unproved and only revisit setup if an actual missing-state failure demonstrates a need.
The controller uses explicit canonical wasm, no build, cooperative CLI, 60s guest/75s soft/90s hard group deadline,4MiB log,256MiB output limit, 512MiB admission buffer, admission free minus768MiB above2,281,701,376 and original hard stop2,214,592,512. HTTP controls are private port8143. Capture before/after input with ordinary ctl click/key commands; no automatic menu coordinates. Stop first failure. If menu appears, inspect it and select normal Boot Camp as the original readme recommends. Re-observe its briefing and any subsequent controls before proceeding. If playable, record a baseline, hold/release Numpad8 movement, then a distinct Space/left-mouse aim/fire action as documented, with delivered-input receipts and reviewed gameplay frames. No menu, cinematic, static scene or time-based animation alone proves control. Stay within the single allocation; a missing menu or deadline is not a retry authorization. Save actual module/source/fixture pins and process-group absence.
Validation so far is source syntax, diff checks, all433 state hashes and bundle identity. The remote controller has not run, dependencies are not runtime-qualified on that host, and no gameplay/frame-rate/audio claim follows.
Independently authorized public-source alternative
Root explicitly permits fresh acquisition from the same public HTTPS archive
using the retained original recovery hashes. This does not retry SSH transfer
or transmit local ignored files. The tracked
docs/re-notes/army-men-original-payload-hashes.json contains only the187
original file identities. tools/recover-army-men-authorized.js now accepts
that manifest as an optional fourth CLI argument. After a separate root
acquisition/runtime grant, an ordinary Git checkout of this source recipe can
run, on the remote host:
node tools/recover-army-men-authorized.js /home/user \
/home/user/army-men-fresh-public-original-20261019 \
/home/user/ARMY_RECIPE_CHECKOUT/docs/re-notes/army-men-original-payload-hashes.json
Replace the recipe checkout path with its actual ordinary Git clone location. The recovery takes exactly the18,373,265-byte pinned public ZIP, retains its 18,418,688-byte wrapper, extracts43,721,065 payload bytes and checks all187 hashes. No installer runs in acquisition. Approximate original retention cost is81MB plus filesystem overhead. A fresh30s bootstrap and90s ordinary installer stage would then produce the authentic installed state remotely, about250MB cumulative state before optional redundant captures, under the same disk/output guards. Their current local controllers require porting and review before remote use; this is a plan, not an executable remote install claim. Never substitute source-directory game launch for normal setup.
The emulator source must be an independent exact3c791a023 checkout, not the Dungeon Siege candidate branch. Build only after a fresh root grant, using normal vendored build; require the resulting canonical SHA93818216 as pinned above before game execution. No ignored wasm bytes are encoded or transferred. DS owns runtime until release. Then freshly generated installation/shortcut identities replace the local transfer-manifest in a reviewed game controller.
Preferred fast route remains the already verified local installed state if disk headroom recovers: fresh source-time free3,020,328,960 was66,678,784 below the3,087,007,744 admission including256MiB output and512MiB transient buffer. No floor or output reserve was reduced to force admission. Otherwise the public-source remote route is reproducible with extra acquisition/bootstrap/ installation work. Neither route has started a game or new installer run.
Source identity correction before first game launch
Local CLI preflight stopped before creating its output directory or spawning
a guest: the bundle's authentically captured rootHead is
bfb1be4a9dd79bd095e0479abae8d3ec6f5ec83a, while the proposed controller
asserted3c791a023. The staging script captured current HEAD dynamically at
00:29:48; the later preparation.json and notes incorrectly hardcoded the
requested3c identity. Bundle identity and manifest were not modified: original
manifestSHA30292d62 remains exact and all pinned bytes pass verification.
Git comparison shows bfb1 differs3c only in TODOS.md and ops/STATUS.md.
Independent byte comparison of all1121 bundled runtime files against3c Git
blobs found zero differences. Module93818216 and433 original state files
remain exact. Thus source bytes match the intended3c runtime, while the
actual captured metadata commit is bfb1. Preserve both distinctions.
The no-spawn failure and correction are recorded separately in
scratch/runs/20261019-army-men-local-preflight-identity/review.json.
Do not rewrite the sealed bundle or historical receipt to hide this failure.
Preguest missing helper and repaired immutable v2 bundle
After root reviewed the identity comparison, one local CLI allocation passed
fresh admission and spawned PID2759317 at00:34:03. It exited1 before loading
the guest: Cannot find module './runner-experiment-report', required by
runner-experiments.js. No original game code or input ran, so this is a bundle
closure defect, not a game compatibility failure. Minfree3,018,174,464,
no guard, all old bundle pins unchanged, process group absent. Evidence
scratch/runs/20261019-army-men-installed-local-observe/ retains exact
controller, pre/postflight, full failure log and review/artifact seal.
Root authorized source-only repair. The old immutable bundle remains exact.
New /home/user/army-men-local-stage-v2-20261019 contains1593 files,
138,372,795 bytes plus transfer manifest, SHA-256
4dbe716634a95041a7f0e6039bb599fcd32f337dd44cad73460fd0767d82e72d.
All433 original state files/registry/shortcut remain unchanged. Shared files
are hardlinks; added source/metadata is small. Runtime source files now1124:
the original1121 plus exact bfb1 tracked runner-experiment-report.js,
runner-win-census.js and compile-src.js. Static boot seed
test/binaries/tlbs/stdole2.tlb was also missing; it is now linked from the
same verified state/vfs/windows/system/stdole2.tlb, without changing bytes.
Identity remains authentic bfb1, wasm93818216.
tools/check-army-men-runtime-bundle.js performs source-only module-resolution
and syntax checks without requiring run.js or compiling/running a guest.
The recursive literal-require closure has95 files; all resolve and parse.
Known dynamic/static checks cover39 paths: win16 ordinal JSON, API signatures,
wasm, system typelib, bitmap fonts and scalable font substitutions. Dynamic
media modules are already in lib; WINE_REGION_MAP override is cleared by the
controller. Optional headlessGL GLFW/WebGL packages and skia-canvas remain
absent: only explicitly requested GPU or app decodeImage paths use them;
this ordinary software CLI/EXE route requests neither. No GPU qualification.
Negative preflight on the old bundle correctly reports the three missing
runner helpers and typelib. Positive v2 has zero required failures.
The new tools/army-men-installed-local-observe.js requires that preflight
again before spawning. Per root's observation grant, output reserve is64MiB,
plus512MiB admission buffer, original hardstop2,214,592,512 and60/75/90s,
4MiB log. It omits finalVFS/captured-handoff exports because all433 original
input files are already retained; PNGs/input/log/registry suffice for first
observation. No output-budget reduction changes the original disk floor.
New ready command, not run; a new root grant is required:
node /home/user/army-men-local-stage-v2-20261019/controller.js \
/home/user/army-men-local-stage-v2-20261019 \
/home/user/wine-assembly/scratch/runs/20261019-army-men-installed-local-v2 \
--root-runtime-granted
Source preflight results, exact v2 manifest and provenance correction are in
scratch/runs/20261019-army-men-local-preflight-identity/. Original failed
bundle/runtime evidence is preserved. No retry or game result is claimed.
v2 first original game startup: native fixture missing
Root granted one v2 allocation after seal/conflict/admission checks. Original PE entry0046fee0 loaded, original smackw32 DLL initialized, real installed cwd/registry mounted, then batch0 trapped on MFC42.DLL ordinal1168: IAT0066d8c0, EIP0046fa54, return004703be. Exit1, no guard, minimum free 3,014,184,960, all1593 bundle pins unchanged, owned group absent. No screenshot, menu or input occurred. Log also identified native comctl32/ole32/msvcrt absent. This is native-fixture provisioning, not a reason to stub the MFC ordinal.
Production test/run.js searches EXE/dlls, EXE directory, sibling Shared_DLLs,
then runtime/test/binaries/dlls when building the initial native PE graph.
It does not search mounted C:\Windows\System at that stage. The original
Army package already includes the matching MFC42/CRT pair, and setup copied
them into the433-file exported state; their presence in guest VFS alone did
not satisfy this physical-host discovery. Do not replace them with a newer
VC6 MFC/CRT pair from shared fixtures.
Root authorized immutable source/fixture preparation only. New local stage
/home/user/army-men-local-stage-v3-20261019 has1599 sealed files,
140,978,265 bytes plus manifest, SHA-256
8bba6c008ed0234c80dda912d6e5d4cadbe18b0ddba3ace98d347a3f27087bbc.
All old bundles and433 original state files remain unchanged. Four hardlinked
physical native fixtures (2,600,752 bytes) now occupy the existing loader's
runtime/test/binaries/dlls discovery location; no guest state or source fix.
| DLL | Bytes | SHA-256 and provenance |
|---|---|---|
| mfc42.dll | 954640 | 73b4b8b26b9632d67fd0d5f631326cfe54fb0d00959423eb616adfb8001b0717; original Army DLLs/MFC42.DLL, exact installed system copy |
| msvcrt.dll | 277776 | befb0220cffdb1a440ab6b7b94638ea659a5e44cba615186eb8464dec1675e5e; original Army DLLs/MSVCRT.DLL, exact installed system copy |
| comctl32.dll | 577808 | 28a41e6a35c4509924a32a99841a815cf49e1d3ee6912ec26a823e45472edfa4; existing VC6 redistributable fixture documented in test/binaries/dlls/SOURCES.md |
| ole32.dll | 790528 | bb487eb6c5ade54d5ae0352f75cec84b4f1cbbb8d9fca5b3718d813b4a0c938d; existing local Explorer98 fixture4.71.2900 referenced in black-white-2 re-notes; exact archive extraction not independently reconstructed, local use only |
New source-only check-army-men-native-fixtures.js uses the production graph
resolver/import detector and same physical search order. It finds exactly
five real DLLs: these four and original installed smackw32, with zero missing
native transitive dependencies. Remaining imports are registry-designated
WAT system modules. oleaut32 was audited but is not in this graph and was not
added. MFC ordinal1168 has a real nonzero export RVA4227 (base1/count6466).
Both MFC and CRT selected bytes are checked against exact original system
copies. The local controller now requires source and native preflight before
spawning. Source95-module/39-static checks still pass. These checks execute
no guest and make no native-DllMain or gameplay claim.
Evidence scratch/runs/20261019-army-men-installed-local-v2/ retains full
batch0 failure, physical pin/guard/cleanup receipts, native audit, v3 graph
and source preflight, v3 manifest/ready receipt, review and artifact seal.
Proposed ready command uses v3/controller.js with v3 bundle and a new
scratch/runs/20261019-army-men-installed-local-v3 output directory; same
60/75/90s,64MiB outputs,512MiB admission buffer and original hard floor.
No retry has run; fresh root grant/admission are required. Finish remains
unobserved and original setup/game qualification distinctions remain intact.
v3 bounded original startup: CPUINF32 clock-port polling
Root subsequently granted one v3 run, retained as
scratch/runs/20261019-army-men-installed-local-v3. All five native DLLs
initialized successfully. ArmyMen created a 640x480 window, but first/later/final
images are identical uniformly white (SHA-256
05ccd0e84bdfb1fcee0ea5f6ad413c5a808e6847e3c46982457ec09f6ff9b680).
No menu appeared and no game input was sent. Normal 60-second bound stopped at
5598 batches, exit0, no guard, minimum free2,946,252,800; all1599 pins unchanged
and owned process group absent. This is startup-blocked, not gameplay success.
Finish remains unobserved. Original accepted licence remains independently true.
Both snapshots and final log sample EIP0x0111cda1, EAX0xff. This maps to
original CPUINF32.dll (19968 bytes, SHA-256
5e7f97ecbb834822a9913124f181c1e82ffbda6a7c13f2deb1f963c09383f31e),
whose only staged duplicates are original armymen/dlls and installed system
copies. Its PE entry RVA2150 plus logged dynamic DllMain111d150 gives loaded
base111b000, also logged EBX; preferred base10000000 maps the sampled instruction
to original VA10001da1. This is triangulated identity, not an explicitly named
dynamic-load log entry.
Saved disassembly shows helper10001ccc writes zero to port70 then reads port71.
Calibration10001d33 saves that value, polls until it changes, then samples RDTSC.
Sample10001da1 compares the polled value with the baseline. Pinned
src/06b-core-handlers.wat $th_port_io ignores OUT70 and returns floating-high
FF for IN71: only PIT/speaker/VGA/PCI ports are implemented. Thus this loop has
no advancing clock value. The logged FF supports the source explanation; no
direct stack-memory capture was taken. Worker T1 was waiting on handle2, but
the main thread's sampled hot loop identifies an independent concrete blocker.
Evidence includes disassembly, pinned port handler, snapshots, log, all images, review and artifact seal. Next source work is real CMOS index/data RTC behavior using the existing emulated calendar/timezone policy, with focused fixtures and RDTSC calibration-unit review. No game patch, skipped calibration, random input, longer identical run, or automatic retry is justified.