MAN ENOUGH — BROWSER PRESERVATION Prepared November 2, 2026, America/New_York EDITION AND SCOPE This is the supplied English DOS CD-ROM edition, game version 1.10, running through DOSBox-X compiled to WebAssembly. The browser wrapper provides launch, desktop mouse/keyboard input, volume, disc switching and save-file controls. The original DOS program executes the game's logic. Both original CD images are staged unchanged. The browser requests portions using HTTP byte ranges as the game needs them. The original speech, music and other audio data are unchanged. Browser playback gain starts at 2400%, with a 100–4000% Sound control. The controlled fallback routes audio through a gain, compressor and final sample ceiling. Choose 100% for unboosted playback. The original digital media remains unchanged. These are browser wrapper changes. SOURCE INPUTS Keep the supplied Man-Enough_DOS_EN.zip unchanged and separately retained. The source edition includes an installed menough directory containing: AUTOEXEC.ME CONFIG.ME FILES.RLB MAN.EXE ME.UPD READ.ME TSAGE.CFG TSAGE.RLB cd/man1.iso cd/man2.iso Do not include personal saves or substitute a different game edition. The published release.json records source filenames, byte counts and SHA-256 identities. Matching those proves identity to the supplied source files; it does not independently authenticate a retail pressing. The original discs contain 494,630,912 and 518,277,120 bytes respectively. They remain separate data/man1.iso and data/man2.iso files. The small data/man-enough.jsdos package contains installed launch files/configuration. The supplied game ZIP and user saves stay outside the public deployment. Runtime corresponding-source archives are retained under source/. RUNTIME AND CORRESPONDING SOURCE Pinned browser packages: js-dos 8.5.3 and emulators 8.5.2. The current runtime uses direct fixed-rate PCM AudioWorklet output through the controlled volume chain. Its controlled 2048-frame ScriptProcessor fallback remains for unavailable Worklet setup. The fallback is a deprecated main-thread API, with a scheduling tradeoff when the page is busy. The final 4097-point WaveShaper clamps sample values to plus/minus 0.95, with no oversampling, after the compressor. QA inspects actual gain/mute and sampled raw/output digital levels; those measurements do not establish speaker loudness. No private audit mute or meter belongs in the production player. Read vendor/NOTICE.txt, vendor/GPL-2.0.txt and vendor/provenance.json for the runtime notices and patch description. Read source/upstream-source.json for the exact retained upstream source revisions, archive URLs and hashes. Readable range-filesystem and audio additions are retained alongside the runtime. Original game data has separate ownership from the runtime software. REBUILDING A WORKING COPY Use Node.js 20 or newer and a tar extraction tool. Work in a new, ordinary-copy staging directory, preserving the original archive and frozen releases separately. The portable runtime packaging helper is source/build-browser-runtime.cjs. Inspect its --help and current source before running. It accepts explicit game input, output, cache and hosted URL path arguments. A typical invocation from a copy of this game directory is: node source/build-browser-runtime.cjs --game-dir --output --cache --url-path /dos/man-enough The helper selects the approved installed files and pinned npm runtime packages. Keep the browser pages, wrapper sources, readable runtime patches, notices and source records with the generated runtime. Compare the resulting identities and patch behavior with the retained release; investigate any difference rather than replacing a known release automatically. The maintained release helper build-release.mjs in the retained working set generates release.json and a separate private, bounded upload manifest from explicit source and verification records. It requires passed launch, source integrity and range-delivery checks. It does not start or publish the game. Update the dated development note with the actual results before freezing the release. Keep private evidence, paths and upload receipts outside the public game tree. SERVING AND DEPLOYMENT Serve the copied public tree over HTTP for local review. File URLs do not provide the HTTP range behavior this player requires. The retained serve.mjs is a loopback-only server with MIME types and byte-range support. Deploy only the bounded game tree at /dos/man-enough/. The server must deliver CD range requests as HTTP 206 with the correct Content-Range and exact bytes. Keep WebAssembly MIME handling and the same-origin data paths intact. Publish runtime/data dependencies first, then player/landing/blog/release records, and guarded shared discovery links last. Retain existing projects/releases. Check the actual HTTPS bytes and permitted rendered behavior after upload. SAVES AND VERIFICATION Save inside the game, then use Save browser progress to retain the DOS files in this browser. Export save backup creates a separate portable copy. Import a backup before starting the game, then use the game's Restore menu. These are DOS save files, not emulator snapshots of the current screen. Clearing site data can remove browser saves; retain exported backups separately. The current acceptance results and limits are in release.json and dev-blog/2026-11-02-browser-restoration/. A successful download or archive test does not prove an in-game save/reopen/load cycle. Do not claim full campaign, disc-change or save durability acceptance beyond the recorded evidence. AI PLAY PREVIEW — November 3, 2026, America/New_York AI Play recognizes original rendered conversation choices and selected scene images, then sends ordinary mouse/keyboard input to the unchanged DOS program. The choice policy uses original conversation score operands and a stable original-slot tie break. It recognizes displayed text before choosing a number. Original program, discs, emulator WASM, audio patch and save namespace are retained. Use AI Play to start or continue, Pause AI to pause the game, and Take over for manual control. Trusted mouse/keyboard input inside the game also takes over. Hidden/unfocused windows, save operations, uncertain screens and input/recognition failures stop autonomous input. AI state is not written into original saves. This preview handles conversations and supported screens. Paintball navigation is not reliable enough for unattended play and intentionally pauses for manual control before another round. Unrecognized activities also require Take over. Resume AI after the activity. This is not a verified complete campaign player. Source: source/ai-play-source-1.2.1.zip; readable play/ai-*-1.2.0.js modules, play/player-1.2.0.js and original-data reference JSON files. The source archive includes source/license notes and reproducible read-only extraction tools. Exact acceptance and remaining limits are recorded in release.json and the November 3 development note. Resource coverage is distinct from full campaign acceptance; do not infer a verified complete playthrough from extracted choices. STARTUP FIX — 1.2.1 AI waits for the original MAN program to start before screen recognition. A DOS loading screen is not treated as an uncertain gameplay scene. PHONE STARTUP FIX — 1.2.2 — November 3, 2026, America/New_York The current player uses data/man-enough-1.2.2.jsdos. Only its DOSBox autoexec CD mount line changes: IMGMOUNT status output is redirected to DOS NUL. The original installed game files, lazy-CD manifest, two disc images, emulator WASM, audio route and save namespace COSOM-ManEnough-DOS-EN-v1 are unchanged. The old boot bundle is retained for the earlier release. The original player reproduced a black screen and native unreachable trap on a physical Samsung Z Fold4 in Chrome 156. The stack reached DOS_WriteFile from IMGMOUNT::MountIso; that caller lacks Asyncify instrumentation in the pinned core. Redirecting mount status avoids a yielding BIOS console write through that frame. This is a startup configuration workaround, not a game rewrite. The clean candidate, with the normal WebGL renderer and original vendor files, played its opening cafe video on the physical phone. Touch keyboard Escape reached the title screen. AI Play and Pause AI were exercised separately. Physical phone listening, a complete touch playthrough, iOS/Safari and later campaign/save coverage are not established by those observations. On phones, Start game launches the original game. The sidebar keyboard opens touch keys. AI Play can watch supported conversations; Pause AI and Take over remain available. Desktop mouse/keyboard are recommended for manual activities. Readable current player: play/player-1.2.2.js. Current configuration: dosbox.conf. Reproducible original-bundle update: source/prepare-mobile-boot-1.2.2.ps1 (PowerShell 7). Its four explicit parameters select the original boot bundle, a new output bundle, a configuration copy and a separate verification report. It verifies the original bundle identity, copies all members, changes only the mount command, refuses to overwrite output and verifies the new ZIP members. The runtime packaging helper also includes the same mount redirection. See dev-blog/2026-11-03-phone-startup/ and release.json for scope and checks. PHONE AUDIO/PERFORMANCE — 1.2.3 — November 3, 2026, America/New_York Coarse touch devices now use a fixed 12,000-cycle guest CPU budget. The tested Samsung could fall behind real time at 25,000 cycles. Desktop launch keeps the previous 25,000-cycle configuration. The original game, discs and WASM are unchanged. On supported browsers, PCM moves directly from the emulator worker to a dedicated AudioWorklet. The new processor uses fixed-rate linear resampling from the reported source rate to the hardware rate. It does not apply adaptive tempo, pitch shifting or WSOLA time stretching. A bounded180 ms prebuffer/rebuffer target absorbs delivery jitter. The previous controlled ScriptProcessor fallback remains available when the Worklet route cannot initialize. Every route retains the controlled 24x default gain,1x–40x adjustment, mute, compressor and +/-0.95 sample ceiling. The old upstream Worklet's direct destination connection is replaced; it cannot bypass the wrapper gain. The read-only CD filesystem prefetches at most two following 1 MiB blocks with at most two asynchronous requests. Demand/prefetch data share the same32 MiB LRU. All responses require206, exact Content-Range and exact byte count. Prefetch failure falls back to ordinary demand reading. CD files remain excluded from save archives; no original media bytes are changed and no full-disc download is forced. Counters stay in the local page. Scope: physical Samsung Z Fold4 Chrome 156 and desktop Edge launch/controls were tested. Phone source-clock intervals kept real-time pace after lowering the CPU budget. Some initial CD loading and scene transitions still produced missing output intervals in the instrumented tests. The tests establish an improvement, not gap-free playback for every network, scene or phone. Final perceptual smoothness confirmation and a complete phone campaign are not established. The processor/route tests run the actual JavaScript in a Node VM: a 440 Hz input remained440Hz; a 20-second stream with repeated100 ms packet holds avoided the tested underflows; gain/mute routing and cleanup were checked. These are not speaker measurements. Older digital-signal gain/RMS/ceiling measurements belong to the earlier fallback release; the shared processing chain is retained. REBUILD First build the approved1.2.2 baseline with the retained pinned runtime helper. Then run: node source/patch-mobile-runtime-1.2.3.mjs --base-vendor --output-vendor The patcher verifies all base identities and reproduces eight changed/retained runtime files. Copy the1.2.3 NOTICE, launch HTML and play/player-1.2.3.js with it. Readable additions: mobile-audio-bridge-1.2.3.js, pcm-worklet-source-1.2.3.js and read-ahead-source-1.2.3.js in this source directory. Original corresponding-source archives/licenses remain retained. Keep the original boot bundle1.2.2 and both ISO images. Save namespace remains COSOM-ManEnough-DOS-EN-v1.