Impossible Mission E001: the first pixel controller works

Research diary

The first local objective passed in 5/5 episodes: leave the starting elevator and settle at x=250 ±4 pixels for three observations. The policy uses only rendered pixels and action history. It reacts after every bounded pulse; no training or large model was needed for this first skill.

The 31.08-second silent film is reconstructed from actual RGB observations. Each image is held until the next measured game-clock point at 0.25x speed, with opening and episode-ending holds. Controller pauses are omitted. The full 320x200 game field is visible. Exact replay mapping.

Frozen evaluation

EpisodeStarting xEnding xResultGame secondsWall seconds
1157.89247.89Success1.4130.305
2157.89247.89Success1.4130.293
3157.89247.89Success1.4130.281
4201.11251.11Success0.7540.157
5201.11251.11Success0.7540.150

The first three episodes restore a fresh-game laboratory snapshot, obtained by normal loading with neutral inputs. The other two add ordinary right/neutral movement before scoring. These are correlated repeats in one corridor, not five independent worlds. Policy corridor-v1 was frozen before these five episodes. The entire benchmark process including startup/cleanup took 2.074 wall seconds.

Before evaluation, three replicas of a fixed control sequence matched at all six corresponding RGB hashes and cycle offsets. Repeatability evidence. The actual integration test passed movement, release, reset, invalid-action rejection and cleanup after an injected exception. A separate crash test confirmed that the independent remote watchdog terminates only the owned emulator.

Emulation and timing

VICE SDL2 x64sc 3.10 r46274 runs in PAL/software-rendering mode. Control uses port-2 I/O simulation. The original user disk is preserved and a private copy is attached read-only. Its SHA256 is recorded in the evidence; edition/crack provenance is unresolved, and no trainer was selected. No game RAM was written. Game disks and snapshots are excluded from publication.

Decisions are made while paused. A pulse requests 20000 CPU instructions; measured duration was 80.57–84.48 ms of emulated time. Instructions are not frames. The diagnostic transport clock comes from the last executed instruction, with endpoint/raster uncertainty; register/opcode data is discarded. Snapshot reset advances neutral instructions to invalidate stale image/clock caches.

Acquisition averaged 1.186 ms, maximum 1.918 ms. Perception/decision averaged 0.326 ms, maximum 1.168 ms. Action calls took 6.076–14.247 ms. These measurements and the slowed replay do not establish real-time play.

Resources and failures

Sampled emulator peak RAM: 63.48 MiB. Peak emulator CPU: 453.6% summed across logical cores; whole-system CPU: 93.1%. The short run has 59 resource samples, not continuous hardware maxima; Python-controller peak RAM was not sampled. No GPU inference is used. The machine exposed two RTX 3090s, each 24 GiB. Whole-device peaks were 8402 MiB/18% for GPU 0 and 7964 MiB/0% for GPU 1; those include other workloads and are not attributable to this agent.

Useful failures preceded the result: remote GTK rendering was black/slow; the stable DisplayGet response was truncated; wrong joystick port/device and snapshot build mismatches caused errors; Escape opened the SDL menu. The EPYX title was still a loading screen, and the first scene had an introductory input lock. Waiting for the settled HUD/corridor, pinning r46274 and refreshing after reset resolved the control path. Earlier private RAM/CIA diagnosis was separate from the pixel-only agent.

All retained attempts are inventoried. Some early console errors lack a complete per-run capture and remain explicitly unscored. Early execution is charged conservatively; later runs have exact wall-duration logs. The combined execution charge is below the 30-minute cap. No overnight campaign was run.

What this result leaves open

The current bottleneck is the fixed perception/behavior scope, not compute. The sprite reader is calibrated for this corridor and stops if the background changes or the sprite becomes ambiguous. A death classifier has not been independently validated. Robots, searching, lifts, puzzles and whole-game completion remain untested.

Next smallest test: enter the adjacent room, recognize its changed scene and stop safely, with a frozen success/failure definition and the same timing budget. Training is not justified by this evidence yet.

Download and reproduce

Full report · Results and timing · Attempt audit · Source and exact dependency versions · Evidence hashes · Project Impossible Mission.

The source includes PowerShell commands, a bounded runner, real-emulator tests and an explicit execution ledger. Supply your own game image. No disk, snapshot, raw game memory, game-code dump or emulator executable is in the source archive.

Official VICE protocol and r46274 release. The original EPYX manual scan specifies port 2 and left/right corridor movement; these were checked in the actual game.