Restoring Your Gaming Memories
Non-profit Flash game preservation project. We manually patch broken AS2 code using JPEXS Free Flash Decompiler and run every game directly in the browser via Ruffle — using a custom fork with emulator-compatibility fixes specific to certain game engines.
Web Page: https://darkarchong.github.io/SeikiOS_FlashPage/
- A broken
.swfis decompiled with JPEXS Free Flash Decompiler - Original AS2 bugs (e.g. broken state-machine transitions with placeholder
"XXX"targets) are identified and patched manually - Emulator-compatibility patches are applied when needed (e.g. terrain walkability hooks for Inkagames engine, see below)
- The patched game is published here, running via our Ruffle fork — no Flash Player installation required
/
├── index.html ← main catalog (lists games from _games.json)
├── _games.json ← game metadata (id, title, thumbnail, status, bugs_fixed)
├── .nojekyll ← required for GitHub Pages to serve underscore-prefixed files
├── assets/
│ ├── css/style.css ← dark-maroon + gold theme
│ ├── js/catalog.js ← async catalog loader
│ └── logo.svg ← SEIKIOS logo + favicon
├── ruffle/ ← self-hosted Ruffle fork bundle (~11 MB)
│ ├── ruffle.js
│ ├── core.ruffle.<hash>.js
│ ├── <hash>.wasm
│ ├── LICENSE_MIT
│ └── LICENSE_APACHE
└── games/
└── [game-id]/
├── index.html ← player + patch log
├── game.swf ← patched SWF
├── thumbnail.png ← catalog cover
└── patch/ ← (planned) original AS2 sources of patched files
The upstream Ruffle CDN works for most Flash games but has two known issues that affect the Inkagames engine (used by Spongebob Saw Game, Bart Saw Game, Lisa Saw Game, Homer Saw Game, Batman Saw Game, Obama Ghostbusters, and many other point-and-click adventures by Inkagames):
- EditText
word_wrap=true+autosizeempty-state regression — produces million-pixel-tall popups that cause GPU stalls and drop framerate to <1 fps. Patched incore/src/display_object/edit_text.rsby clampingcontent_widthto a usable minimum. - AVM1
eval("path.to.button")scope-chain resolution gap — buttons attached dynamically via eval() paths fail to register handlers, leaving entire scene menus unresponsive. Patched incore/src/avm1/activation.rsby adding a_rootfallback lookup.
The fork is hosted under /ruffle/ in this repo so all games on SEIKIOS pick it up automatically.
There is a third, deeper engine issue (terrain walkability array built before MovieClip shapes settle in their final transforms) that affects all Inkagames. Since fixing it inside Ruffle would require restructuring its frame-execution pipeline, we patch it at the SWF level — see the Spongebob index.html patch log and the frame_1 DoAction of any patched Inkagame.
- Create
games/[game-id]/withgame.swf,thumbnail.png, andindex.html(copy fromgames/spongebob-saw-game/index.htmlas template) - Edit the new
index.html:- Update title, game-meta badges, and the bug list at the bottom
- Keep the
<script src="../../ruffle/ruffle.js">reference to the local Ruffle fork
- Add an entry to
_games.json:{ "id": "your-game-id", "title": "Your Game Title", "thumbnail": "games/your-game-id/thumbnail.png", "status": "patched", "bugs_fixed": 0 } - For Inkagames specifically: paste the universal terrain-walkability patch into frame_1 DoAction of the SWF before saving (see the Spongebob patch as reference; the code is reusable verbatim).
- Commit and push — GitHub Pages auto-deploys in 1-5 minutes.
- Vanilla HTML / CSS / JS — no build step, no dependencies, no npm
- Custom Ruffle fork — built from
ruffle-rs/rufflewith three Inkagames-specific patches - GitHub Pages — free HTTPS hosting
- JPEXS Free Flash Decompiler — for decompiling, editing AS2, and recompiling SWFs
All games belong to their original creators. SEIKIOS only hosts patched versions for preservation purposes. If you are a rights holder and want a game removed, please open an issue.