-
Notifications
You must be signed in to change notification settings - Fork 0
File Structure
Retro-Jack edited this page May 10, 2026
·
63 revisions
genx-dos/
├── README.md one-page entry point
├── CHANGELOG.md
├── index.html fake BIOS POST → redirects to prompt/
├── favicon.ico
├── make_fonts.py generates f12.N.png palette variants
│
├── prompt/ the DOS terminal
│ ├── index.html
│ ├── favicon.ico
│ ├── animated_favicon1.gif
│ ├── javascript/
│ │ ├── globals.js shared state (palette, paths, flags)
│ │ ├── goFontGo.js builds the 256 CSS rules
│ │ ├── classUtils.js add/remove/test class helpers
│ │ ├── keyboard.js keypress / keydown handlers
│ │ ├── terminal.js echo, executeBatch, prompt rendering
│ │ ├── fs.js the virtual C: drive
│ │ ├── commands-core.js handleCmd, dir, type, etc.
│ │ ├── commands.js echo, cd, cls, setcol, easter eggs
│ │ └── init.js entry point
│ └── img/
│ ├── f12.7.png master sprite sheet (light grey)
│ └── f12.<0-15>.png CGA palette variants
│
└── emulators/
├── jsbeeb/ BBC Micro (copied from mattgodbolt/jsbeeb)
├── archimedes-live/ Acorn Archimedes (mirror of pdjstone/archimedes-live)
├── jsnes/ NES (copied from bfirsh/jsnes)
├── genesis/ Sega Genesis (copied from lrusso/Genesis)
├── javatari/ Atari 2600 (copied from ppeccin/javatari.js)
├── jsdos/ MS-DOS (copied from caiiiycuk/js-dos)
├── webmsx/ MSX/MSX2/MSX2+ (mirror of ppeccin/WebMSX)
├── microvision/ Microvision (mirror of berrry.app emulator + IIFE bridge)
└── jsvecx/ Vectrex (copied from DrSnuggles/jsvecx)
| Emulator | Runtime | Wrapper | Game files |
|---|---|---|---|
jsbeeb/ |
dist/ (Vite build) |
the dist's own index.html (URL-driven) |
dist/discs/<publisher>/*.ssd |
archimedes-live/ |
mirrored static bundle (HTML/JS/WASM/data + ROMs) | the bundle's own index.html (hash-driven) |
software/*.zip (catalogue: software/software.json); ROMs in emu/roms/
|
jsnes/ |
dist/jsnes.min.js |
play.html |
roms/*.nes |
genesis/ |
Genesis.min.js |
play.html |
roms/*.bin |
javatari/ |
javatari.js |
play.html |
roms/*.a26 |
jsdos/ |
js-dos.js + wdosbox.wasm
|
play.html |
bundles/*.jsdos |
webmsx/ |
single 5 MB index.html (engine + UI + BIOSes inlined) |
the bundle's own index.html (URL-driven) |
games/msx1/*.zip + games/msx2/*.zip
|
microvision/ |
app.js (~57 KB) + styles.css (~12 KB) |
index.html with IIFE-bridge patch in app.js (?game= autoloader) |
roms/*.bin (5 P. Robson homebrew titles) |
jsvecx/ |
js/jsvecx.js (heavily compressed) + js/seamless.js
|
index.html?rom=… (URL-driven; never use seamless.html) |
roms/<publisher_or_author>/*.bin (~100 ROMs total) |
Each play.html-based emulator (NES, Genesis, Atari 2600, jsdos) also has a games.json mapping <key> → {title, rom} (or {title, bundle}). The URL-driven emulators (jsbeeb, archimedes-live, webmsx) take all their config via query string or hash and need no per-site wrapper.
| File | Purpose |
|---|---|
index.html |
4-second BIOS POST animation, then <meta refresh> to prompt/
|
prompt/index.html |
Loads the JS modules in order, hosts the terminal <div>
|
prompt/img/f12.7.png |
192×192 px, 16×16 grid of 12×12 px CP437 glyphs (light grey) |
prompt/img/f12.<N>.png |
Pre-tinted variant for CGA palette index N |
make_fonts.py |
One-shot PIL script that tints f12.7.png into the other variants |