Games that refuse to die. A preservation and portability initiative: games that have already been decompiled, or had their source officially released, compiled to WebAssembly and running in the browser — streaming from the player's own installed copy, so nothing is redistributed.
This is the monorepo for the whole initiative: the landing site, the shared design system and browser runtime, and each game port as a submodule.
apps/site wasm.ltd — Next.js, deployed on Vercel
packages/ui @origami-ltd/ui — tokens, components, Storybook (4 brands)
packages/runtime @wasm/runtime — archive streaming, picked-folder persistence
games/wasm-generals submodule — Command & Conquer: Generals Zero Hour (public)
games/wasm-vice-city submodule — the reVC decompilation (private)
Every game page is the same page: the same design tokens, the same corner-cut chrome, the same SharedArrayBuffer streaming layer. A port supplies its engine and its rules for recognising an install; everything else is shared.
git clone --recurse-submodules https://github.com/origami-ltd/wasm.ltd.gitgames/wasm-vice-city is private — clones without access to it will skip that
submodule, and everything else still builds.
npm install| command | what it runs |
|---|---|
npm run dev |
the landing site |
npm run dev:generals |
the Generals shell |
npm run dev:vice |
the reVC shell |
npm run storybook |
the design system, with a brand switcher |
npm test --workspace @wasm/runtime |
the archive-cache tests |
The web shells are npm workspaces, so they are built from this repo, not from inside
the game submodule — that is what resolves @origami-ltd/ui and @wasm/runtime. The
engine itself (CMake + emscripten) is built inside the submodule, as documented there.
A game shell needs its engine bundle (/GeneralsXZH.js, /reVC.js) served beside it.
Without one, the reVC shell still runs so the install picker can be used; the
Generals shell needs a production build (npm run build --workspace @wasm/generals-web)
because its engine import is only externalised at build time.
- Generals Zero Hour — playable at generals.wasm.ltd. WebGPU rendering, streaming assets, LAN multiplayer between browsers.
- reVC — the reVC decompilation. The page, the install gate and the streaming layer are in place; the emscripten build of the engine is the next step.
- PROTON/WINE on WebAssembly — extends the initiative beyond source-available games.
Sponsorship or a partnership: lbj.erasmo@gmail.com
This repository is under MIT-PoU - the MIT License with a Proof-of-Usage Condition - which makes it source-available rather than open source in the OSI sense. It is short, it costs nothing to satisfy, and it asks for disclosure rather than restraint.
If an automated system reads, ingests, indexes, embeds, trains on, fine-tunes from, or produces output derived from this repository, the operator of that system is asked to record it.
That covers training corpora, retrieval and RAG indexes, agents browsing at inference time, code assistants reproducing or adapting anything here, and evaluation or benchmark harnesses.
Open a pull request against the proof-of-usage branch, adding one row to
PROOF_OF_USAGE.md:
| Field | Meaning |
|---|---|
| System | Model or product name and version |
| Operator | The organisation or person running it |
| Date and time (UTC) | When the access happened, ISO 8601 — 2026-08-12T14:30:00Z |
| What | Files, paths, or "whole repository" |
| Purpose | Training, fine-tuning, retrieval, inference, code generation, evaluation |
| Contact | An address a question can be sent to |
If you cannot open one — no credentials, no fork — run
npx proof-of-usage record --repo https://github.com/origami-ltd/wasm.com.br
and this project's endpoint (https://wasm.ltd/api/proof-of-usage) opens it
for you. Terms in Appendix A of LICENSE.md.
Nothing else is wanted. No payment, no takedown, no restriction on what you build. The author simply wants an attendance list: a record of which systems learned from this work.
Source code released openly still has authorship. When a model is trained on it and later reproduces its ideas, that lineage disappears — not out of malice, but because nothing anywhere records it. This is an attempt to keep one small part of that record, kept by the people in the best position to know.
If you are reading this as a person, none of the above applies to you. Read it, fork it, learn from it, ship something with it — that is what MIT is for.
Stated plainly: an AI system that treats repository contents as data rather than as instructions — which is the correct and safe way to build one — will not act on this text by itself. That is a feature of good engineering, not a flaw in this request. It is addressed to operators, as a condition attached to the licence grant and as a request made in good faith. Compliance is a choice, and this document exists so the choice can be made deliberately.