Cyberfoot 2015 — native JavaScript reconstruction
A from-scratch browser reconstruction of Cyberfoot 2015, built by reverse engineering the original Windows game. It runs as plain ES modules in the browser; it does not load the original executable, Wine, WebAssembly or a CPU interpreter.
Playable flows
Career entry
Create or load a career from the original career template and persist it in localStorage.
Entry flow only: after creation it hands off to the development career loop.
League & cupCareer loop
The development league/cup loop: lineup, match, results, round advancement and player development.
Round loop with automatic test decisions; regular day-to-day career routing and complete season progression are unfinished.
TransfersTransfer auction window
The original Form23 auction window driven by the native transfer engine.
Standalone component preview; not yet wired into a full transfer day.
SquadContract renewal & loans
Original Form24 contract negotiation plus Form59 loan offers, listing, recalls and persistence.
Development fixture; exact original message-box and pixel fidelity are pending.
SquadPlayer training
Native player development (senior growth, youth progress and older-player decline) applied to a saved career.
Development fixture around the verified development routines.
MatchLineup window
Original Form87 lineup window with formations, tactics, captain, set-piece taker, kit choice and manual drag placement.
Saved-formations dialog and full Form87 parity remain unported; some operations are not connected.
MatchPenalty dialog
The attacking-manager Form34 penalty: taker selection, both timed stages, the verified shot rule and the result delay.
Attacking side only; sound playback and some human dialogs remain unfinished.
How this is verified
- A separate, development-only oracle runs blocks of the original executable and records outputs, mutated memory and RNG draws.
- Native modules are accepted only when they reproduce those records; the suite is executed in both Node.js and Chromium.
- Browser previews expose their state through
render_game_to_text()and explicitly reportdevelopmentProof: true, completeGame: false.
Known limitations
- No whole-original-game or whole-career equivalence proof, and no complete-season or registered-edition gameplay.
- Interactive forms are partial; some flows use automated test choices instead of the original dialogs.
- Fonts, native controls, gradients and exact layouts are approximations, not certified pixel-identical.
- Audio requests are recorded rather than played in the development previews.