LBreakout2 2.5.1 original Win32 package

Source-only preparation, 2026-10-18. No game, installer, build or browser was executed. No gameplay or compatibility claim follows from this inventory. The title has no public desktop entry or recorded qualification in integration HEAD 5081b1cb9 (apps, TODOS, re-notes and shared messageboard checked).

Recovery and originals

Official listing: https://sourceforge.net/projects/lgames/files/lbreakout2/2.5/ (dated September 25, 2004). Download: https://downloads.sourceforge.net/project/lgames/lbreakout2/2.5/lbreakout2-2.5.1-win32.zip

Recover by downloading the exact ZIP into a fresh evidence directory, checking the ZIP hash, and extracting unchanged paths. Do not merge into existing game data. Keep acquisition plus extraction below 50 MB and preserve at least 2 GiB free with a 64 MiB early-stop margin. Read lbreakout2/README and COPYING; the archive includes GNU GPL version 2. This is source/license inspection, not an installer acceptance or public distribution decision.

Static launch closure

The client directory contains 220 files, including gfx, gui_theme, levels and sounds. Preserve all paths relative to that directory. Original bundled DLLs: SDL.dll, SDL_mixer.dll, SDL_net.dll, libpng.dll, zlib.dll.

The client EXE imports SDL, SDL_mixer, SDL_net, KERNEL32 and MSVCRT. SDL imports WINMM/KERNEL32/USER32/GDI32/MSVCRT; mixer imports SDL/MSVCRT/KERNEL32/WINMM; net imports WSOCK32/SDL/MSVCRT/KERNEL32. libpng imports zlib/MSVCRT and zlib imports MSVCRT. libpng/zlib are bundled but are not direct EXE imports; retain them without claiming the executable necessarily loads them dynamically.

MSVCRT is absent from the original ZIP, despite README's packaging recipe mentioning it. Authentic shared runtime is available at /home/user/wine-assembly/test/binaries/dlls/msvcrt.dll, 278,581 bytes, SHA256 887eb5ce93edb7192ca3e9220f07f9ca0f94db02af5862ebcbdfcb852db99fd1; it imports KERNEL32 only. Seed that exact existing runtime explicitly alongside the five original DLLs. No other non-system imported DLL is missing for the client's static closure. This does not assert all system API implementations are supported or all runtime-selected resources are known. Server launch is outside this task (its directory lacks SDL.dll and MSVCRT).

Next bounded observation

Root grants the serialized runtime slot and pins current source/prebuilt module before execution. Prepare the ordinary direct-EXE route with the client directory as VFS root/current directory, all 220 client files, five explicit original DLL seeds and authentic MSVCRT. No command-line game switches are needed by the README's Win32 route; do not invent settings or overwrite original files.

First observation should be passive, no input: internal 60-second limit, 85-second external hard deadline, 8 MiB log cap, admission above 2 GiB + 128 MiB, owned-process stop at 2 GiB + 64 MiB. Use --no-build, an explicit canonical --wasm path, --real-ticks, and a fresh run directory. Verify all fixture and source hashes before/after, inspect actual screenshot/log, record actual exits and independently check owned PIDs absent. Publish honest result metadata last. Any runtime failure remains a new observed boundary, not proof of a missing API based solely on this static inventory. Ordinary menu/control planning follows only after reviewed launch evidence; no server/network execution is proposed.

Passive original launch, 2026-10-18

Run 20261018-lbreakout2-passive-startup reached the original 640x480 main menu. sample-0.png and final.png were personally reviewed: Local Game, Quick Help, Controls and the highscore panel are visible. No input was sent. No missing file/API boundary appeared in the retained log; this establishes startup only. Next ordinary action is Local Game after a separate runtime grant, with Controls or Quick Help inspected before asserting bindings or player movement.

Actual start HEAD bcb523527031cc8d29e3e96181f24c448a39b719 differs from approved 848fbb3d0 only by root coordination updates. Exact module SHA256: a4a4bc6aef0f50a191d83acdd0857ff390537701adc381d81436845f20b969e3. The direct route explicitly mounted all 220 client files under C:\LBREAKOUT, set that cwd and seeded all five original DLLs plus authentic CRT. It used cooperative CLI with real elapsed ticks; no build/browser/server ran.

Child 2260640 and controller 2260630 exited 0 after 60.201 seconds; independent process/group inspection found neither alive. All 3192 physical runtime/CRT pins and all 230 original payload hashes passed independent postflight. Minimum free disk was 2,835,402,752 bytes; log 26,188 bytes; no resource guard fired. Preserve the initial preflight refusal in the prep directory: pinning all tracked files included concurrent TODOS edits, so root approved narrowing pins to runtime inputs before any child was launched. No runtime source was changed.

review.json was written last in the run directory. There is no corpus candidate entry yet, so this is investigation evidence, not an unrelated dashboard result. Runtime is released. Gameplay, audio, FPS and public deployment remain unclaimed.

Ordinary gameplay preparation (no new runtime grant)

scratch/runs/20261018-lbreakout2-gameplay-prep contains the bounded controller, atomic request publisher, input bridge, source-only tests and PLAN.json. Refresh all pins before execution. The passive route's real elapsed ticks, cooperative mode and exact original mounts/DLLs remain; the changes are ordinary renderer inputs and 180-second guest / 185-second soft / 210-second hard limits. Input admission ends at 175 seconds. Existing disk/log guards remain.

The original README does not establish default bindings. Inspect the actual Controls and Quick Help screens using visible menu items before making binding claims. Passive menu positions suggest Controls near (180,340) and Local Game near (180,272), but each action must cite a freshly reviewed local screenshot hash. Inspect the resulting Local Game setup before selecting visible Start. Compare an actual paddle against fixed bricks before/after left/right pointer movement and after an idle interval, then release the ball only by the binding shown in the original UI. README troubleshooting explicitly warns simultaneous paddle movement and ball release/fire may lose events; separate these actions.

Keyboard and mouse holds receive independent host-timer releases, including shutdown, without waiting for screenshots. Only one hold may be active. Six pure-JS normal/early-close cases verify mouse down/up, key down/up and ordinary mouse movement; stale screenshot hashes reject. No runtime source is changed, no game input has yet been sent, and no paddle/ball gameplay is claimed.

Registered first-level route, 2026-10-18

20261018-lbreakout2-registered-gameplay used --app=lbreakout2_251 after the dedicated verifier confirmed all 220 original client files, 219 exact companion mappings and authentic CRT. Registry cwd/guest executable/empty args and six seed paths were independently checked against the passive route. Source HEAD 886e1f279, same exact a4a4bc6a module; real ticks and cooperative mode.

Ordinary arrow navigation and Enter opened Quick Help, Controls, Local Game, then Start Original Set. Reviewed controls-settled.png shows Left/Right arrows, Y Left Fire, Space Right Fire, X Paddle Turbo, C Ball Turbo, Backspace Return. Escape returned from help and controls. Initial pointer move/held-click attempts did not visibly activate Controls; keyboard menu navigation did work.

level-start.png and final.png show Late At Night (1/25), fixed bricks, paddle and attached ball. The level screenshot arrived at the 175-second input cutoff, after menu/help inspection consumed the window. No paddle movement or ball release was attempted. This is a real level launch, not player-control qualification. Audio/FPS also remain unqualified.

Child 2273779 and controller 2273766 exited 0 after 180.210 seconds; independent PID/group inspection found no survivors. All 3413 runtime/fixture/CRT pins and 230 original hashes passed postflight. Minimum disk 2,610,061,312 bytes; log 62,752 bytes; no guard fired. The dashboard result is unknown for the pending control criterion, with exact route/artifact hashes retained. Runtime released.

Next fresh grant can use the now observed short route: on fresh main menu Down selects Local Game, Enter opens its submenu, first Down selects Resume Last Game, second Down selects Start Original Set, Enter launches. Review each transition; then compare Left/Right held paddle positions against fixed bricks and idle, followed by separate Space fire only after reviewing the actual level. Preserve the same input cutoff and resource limits; do not extend an expired run.

Registered ordinary paddle control and ball release

Run 20261018-lbreakout2-controlled-gameplay qualifies narrow original first-level control. The same registered route and exact a4a4bc6a module used source HEAD 20361ede9a92b3ee30d0cbd85b9a5c382639d5cf. The observed short menu route reached the original board without repeating Help/Controls or changing any settings.

Personally reviewed images show the same-life paddle center at approximately x320 (level.png), x196 after Left 250 ms (left-released.png), and x442 after Right 500 ms (right-released.png), all against the same fixed bricks. left-settled.png and right-idle.png retain their respective paddle positions after release. Separate Space 150 ms detaches the ball, visibly above the paddle in launchball-released.png. This is ordinary renderer keyboard input using the bindings previously read in original Controls, with no guest memory writes.

The later ball-progress.png shows life loss and a newly attached ball. The request label paddle-live overstated that state: its capture actually shows a second prelaunch paddle move, not established live-ball correction. A second Space release is visible in launchsecond-released.png. Preserve that loss and limitation; no full-game, sustained-play, audio or FPS claim follows.

Child 2285750 and controller 2285732 exited 0 through ordinary host quit after 101.931 seconds, both independently absent with an empty process group. All 3413 runtime/fixture/CRT pins and 230 original hashes passed postflight. Ten key down/up pairs were balanced (150–500 ms host holds). Minimum free disk was 2,569,498,624 bytes; log 54,276 bytes; no guard fired. Runtime was released before documentation. result.json was published last, with visual-review.json, artifact hashes, exact commands and independent process/input receipts. Evidence checker reports no missing/invalid records; only the unrelated retained historical Zuma containment error remains. Public deployment is not authorized.