# Space Cadet · Khairul Edition

A mobile presentation and touch-control shell for the existing Space Cadet WebAssembly port. This is an unofficial browser adaptation, not a new engine or an official Microsoft release.

Engine: https://github.com/k4zmu2a/SpaceCadetPinball
WebAssembly port: https://github.com/alula/SpaceCadetPinball
Original runtime files obtained from: https://alula.github.io/SpaceCadetPinball/
Date: 5 September 2026

The MIT engine notice is preserved in vendor/LICENSE-engine.txt. That license does not assign rights to the original game art, sounds, or game data. Original materials remain the property of their respective owners. This package does not claim otherwise. This build is shared for playtesting.

Changes: responsive desktop/landscape UI, portrait presentation cropped and rearranged from the original framebuffer, multitouch controls mapped to original keys, launch charge indicator, pause/help/restart controls, optional fullscreen, native player/demo/music/effects access, a mission guide, and a service worker for secure-context offline use. The PWA uses one stable URL; a waiting update does not reload an active or paused game without the player's explicit update confirmation.

Game physics, missions, rules, scoring, table, and bundled audio use the upstream engine. Phone v4 adds a small pinned WebAssembly interface for the high-score UI and reuses the original score-insertion instructions. Its native high-score drawing block is bypassed in favour of an HTML form; the runtime JavaScript and game data are unchanged. Of 1,676 original function bodies, 1,675 remain byte-identical; the UI-render function gains one branch. Five interface functions are appended.

V7 applies `patch-original-features.cjs` to that high-score-patched binary. It appends 18 narrowly scoped ABI exports plus two internal startup helpers for native player count, demo, music, effects and start/restart actions; 1,681 original function bodies remain byte-identical. The final Wasm SHA-256 is `b597ea1edd49ddcdff1bac8d6f83905a3f12c06fb3a475167004ed6547936afa`; `vendor/SpaceCadetPinball.wasm.original-features.patch.json` records the input hash, output hash, source mappings and omitted unverified getters. Full Tilt multiball is excluded because this package documents the Space Cadet XP table, not a Full Tilt-only path. This port may differ from the original Windows executable. Pixel-identical presentation applies only to game content; surrounding controls and portrait arrangement are adapted for phones.

Original MIDI is delivered by `original-music.js` through the original native TSF renderer and bundled MIDI data. No replacement tune or synthesizer has been added.
