-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
What's shipped, what's next, what won't be — for the GenX-DOS emulator catalog.
GenX-DOS bundles platforms from the 8-bit microcomputing/console era (roughly 1975-1990). The cutoff is era, not strict CPU bit-width — what counts is whether the system belongs to that generation.
In: anything from the 8-bit era — Apple I/II, Atari 2600 / 400 / 800XL / 7800, BBC Micro / Master / Electron, Commodore PET / VIC-20 / MAX / 64 / 16 / Plus/4 / 128, MSX1 / MSX2, NES, Vectrex, ColecoVision, Intellivision, ZX81 / Spectrum, Amstrad CPC, Tandy CoCo.
Out: systems that defined the 16-bit GUI/console leap (Atari ST, Amiga, Macintosh, Archimedes, Sega Genesis, SNES, PC-Engine), and anything 32-bit+ (Saturn, N64, PlayStation, Neo Geo). The era rule is about the kind of system, not the calendar year — Genesis (1988) overlaps the calendar 8-bit era but represents the jump to 16-bit hardware and is out.
Intellivision (CP1610, 16-bit ALU) is the technical edge case the era framing handles cleanly: Mattel marketed it as "the first 16-bit console", but it's universally grouped with 8-bit-era consoles (1979 launch, Atari 2600 contemporary). In.
| Category | Platform | Year | Dir | Engine | Notes |
|---|---|---|---|---|---|
| Console | Atari 2600 | 1977 | javatari/ |
ppeccin/javatari.js v5.0.4 | |
| Console | Intellivision | 1979 | intellivision/ |
jzIntv WASM (custom loader) | exec+grom BIOS bundled |
| Console | ColecoVision | 1982 | coleco/ |
EmulatorJS + gearcoleco | RetroPad → keypad remap |
| Console | Vectrex | 1982 | jsvecx/ |
DrSnuggles/jsvecx (raz0red port) | Mine Storm in BASIC slot |
| Console | NES | 1983 | jsnes/ |
EmulatorJS + FCEUmm libretro | swapped from bfirsh/jsnes 2.1 for audio quality; dir kept |
| Console | Atari 7800 | 1986 | js7800/ |
raz0red/JS7800 v0.0.9 | |
| Console | Magnavox Odyssey² | 1978 | odyssey2/ |
libretro-o2em → WASM + custom SDL2 frontend | EJS path rejected (cores not EJS-flavored); 10 first-party + Imagic titles; o2rom.bin BIOS bundled |
| Apple | Apple I | 1976 | apple1/ |
scullin/apple1js | 10 tapes (Integer BASIC + 6502 asm) |
| Apple | Apple ][+ | 1977 | apple2/ |
whscullin/apple2js (webpack) | 10 .dsk; URL rewrite ?game=→?disk=
|
| Acorn | BBC Micro | 1981 | jsbeeb/ |
mattgodbolt/jsbeeb v1.12.0 | 10 .ssd
|
| Acorn | Acorn Electron | 1983 | electron/ |
dmcoles/elkjs | 10 UEF; row-doubling fix |
| Acorn | BBC Master 128 | 1986 | jsbeeb/ |
jsbeeb ?model=Master
|
10 Master-enhanced .ssd/.dsd
|
| Atari | Atari 400 | 1979 | atari800/ |
atari800 v5.2.0 WASM (self-built) | ?machine=atari |
| Atari | Atari 800XL | 1983 | atari800/ |
atari800 v5.2.0 WASM (self-built) | default; shares core |
| Commodore | PET | 1977 | pet/ |
EmulatorJS + VICE xpet | 3032 default, per-game 4032 override |
| Commodore | VIC-20 | 1980 | vic20/ |
EmulatorJS + VICE xvic | memory_expansions='all' |
| Commodore | MAX Machine | 1982 | max/ |
EmulatorJS + VICE x64 (Ultimax mode) | Japan-only |
| Commodore | C64 | 1982 | c64/ |
EmulatorJS + VICE x64 | |
| Commodore | C16 | 1984 | c16/ |
EmulatorJS + VICE xplus4 (c16pal mode) |
shares xplus4 core |
| Commodore | Plus/4 | 1984 | plus4/ |
EmulatorJS + VICE xplus4 | |
| Commodore | C128 | 1985 | c128/ |
EmulatorJS + VICE x128 (native mode) | per-game video (VICII / VDC); CSS scaleY hack for 856×288 framebuffer |
| MSX | MSX1 | 1983 | webmsx/ |
ppeccin/WebMSX | shared core, ?M=MSX1 flag |
| MSX | MSX2 | 1986 | webmsx/ |
ppeccin/WebMSX | shared core, default machine |
| Sinclair | ZX81 | 1981 | jtyone/ |
Simon Holdsworth/JtyOne | hex-format tapes |
| Sinclair | ZX Spectrum | 1982 | jsspeccy/ |
gasman/JSSpeccy 3 v3.2 | WASM Z80 |
| Amstrad | CPC | 1984 | amstradcpc/ |
floooh/chips-test tiny8bit | sokol_args URL params; 10 .dsk + 3D Construction Kit (1991) |
| Tandy | Color Computer (CoCo) | 1980 | xroar/ |
Ciaran Anscomb/XRoar v1.10 |
Shared infrastructure
-
_shared/— controls.css, frame.css, NumLock JS, VICE softkeys, gamedocs link JS -
_shared-ejs/— single EmulatorJS framework + 5 VICE cores + gearcoleco + FCEUmm cores (9 bundles share; ~25 MB saved vs per-bundle copies)
See Emulators for the per-platform integration recipes.
- Sega Master System (multiple WASM/JS cores) — 1985, Z80
- Sega Game Gear (same cores as SMS) — 1990, Z80
- Atari Lynx (Handy.js / libretro handy) — 1989, 65C02
- Nintendo Game Boy / Color (many JS options) — 1989, Sharp LR35902 (Z80-derived)
Listed for clarity — these are the 16-bit/32-bit transition and beyond.
- NEC PC-Engine / TurboGrafx-16 — 16-bit-era console
- Nintendo SNES — 16-bit-era console
- Sega Saturn / Nintendo 64 / PlayStation / Neo Geo AES — 32-bit and beyond
- Sinclair QL (1984) — no turn-key bundle; sQLux build is ~4h project
-
Sinclair ZX80 (1980) — re-investigated 07/06/2026. ROMs OK (Paul Farrow's fruitcake.plus.com archive + the EightyOne
zx80.rom). JtyOne ZX80 mode is broken: its display-sync state machine writes to ports FD/FE behind0 != zx81opts.machine, so machine==0 (ZX80) never updates, the keyboard scan never fires, and only space + enter register. zame-dev'sjs-zx8xworks correctly but ships with only/* Copyright 2010, Slava Tretyak */and no SPDX header. Door stays open if JtyOne fixes the gate, zame-dev adds a licence, or a maintained MIT/BSD ZX80 JS emulator appears. - Cambridge Z88 (1988) — OZvm is Java/C++ desktop only
- Sinclair NewBrain (1982) — MAME driver broken (VFD doesn't get data)
- Sinclair MK14 (1977) — MAME-only, very obscure (256-byte RAM kit)
- Microvision (1979) — split-CPU emulators don't pair with available ROMs
-
Commodore CBM-II / B-series (1982-84) — VICE cores exist (
xcbm2+xcbm5x0) but library is ~5 commercial games + business productivity. ~25K units sold worldwide. Not enough game content for a 10-entry bundle. - Acorn Atom — investigated, didn't meet quality bar; jsbeeb Atom mode patches reverted and tapes deleted.
-
Macintosh Plus (
macplus/) — removed 25/05/2026 -
Acorn Archimedes (
archimedes-live/) — removed 25/05/2026 -
Atari ST (
estyjs/) — removed 25/05/2026 -
Commodore Amiga 500 (
amiga/) — removed 25/05/2026 - Atari 5200 — removed from menu tree; not retro enough focus
-
Sega Genesis (
genesis/) — removed 05/06/2026; Motorola 68000 16-bit, outside 8-bit focus
-
Menu reformat sweep — ✅ done as of 05/06/2026. Every game menu normalised to a 4-column
# Title (Year) CODElayout, year-sorted ascending, alphabetical within year. See Customising the Filesystem for the format spec. All 609 echo rows acrossfs.jsverify at exactly 45 chars. -
Per-game gamedocs pages — replacing the per-emulator
controls.htmlwith researched gameplay instructions atgamedocs/<platform>/<key>.html. Console tier ✅ complete + Atari 8-bit family ✅ complete + Acorn family ✅ complete + Sinclair family ✅ complete + Amstrad CPC ✅ + Commodore family ✅ complete (PET / VIC-20 / MAX / C64 / C16 / Plus/4 / C128). Done: Apple I (10/10), Apple ][ (10/10), Odyssey² (10/10), ColecoVision (10/10), Intellivision (10/10), NES (10/10), Atari 2600 (10/10), Atari 7800 (10/10), Vectrex (11/11), Atari 800XL (10/10), Atari 400 (10/10 — Choplifter added 07/06/2026; Star Raiders shared with 800XL), BBC Micro (10/10), Acorn Electron (10/10), BBC Master (10/10), ZX Spectrum (10/10), ZX81 (10/10), Amstrad CPC (10/10), Commodore PET (10/10), Commodore VIC-20 (10/10), Commodore MAX Machine (10/10 — Mole Attack + Money Wars added 07/06/2026), Commodore 64 (10/10), Commodore 16 (10/10), Commodore Plus/4 (10/10), Commodore 128 (10/10), MSX1 (10/10), MSX2 (10/10), Tandy CoCo (10/10), TI-99/4A (10/10). 281 pages total — gamedocs sweep ✅ COMPLETE across all 28 sub-systems. -
Controls-link URL wiring — emulators that rewrite their URL on load (jtyone, amstradcpc, jsbeeb Master) need
window._genxGameKeystashed before the rewrite so the corner controls link can resolve the right gamedocs page. javatari + js7800 preserve?game=alongside their added?ROM=/?cart=params, so no wiring needed there. atari800 reads?game=directly with no rewrite — clean as well. - C128 indie dates — 4 of 7 homebrews (Phazer, Rockfall 128, Wumpus 2.0, World at War) have no internal version stamp anywhere; fall back to zimmers.net file mtimes (one definitive, one fuzzy).
- MAX Multimax-extracted carts — 7 games extracted from the MultiMax EasyFlash compilation (CSDb release 210760): Jupiter Lander (bank 10), Speed/Bingo Math (bank 31), Billiards (bank 0, 16K), Pinball Spectacular (bank 27), MAX BASIC (bank 15, 16K), Mole Attack (bank 17), Money Wars (bank 18). All seven verified — first five by MD5-matching against the prior session's extracts, the latter two by screen-code PETSCII title-text fingerprinting. Remaining unknown banks (Sea Wolf, Le Mans, Avenger, etc.) lack identifiable strings; would need empirical VICE testing or menu-table decode to extract.
- PET: 3 games skipped — Microchess 2.0, 3D Star Trek, Cosmiads load at non-standard addresses VICE doesn't autostart. Recoverable with manual cleanup.
-
CRT 4:3 bezels — planned for every emulator page; staging at
emulators/_shared/bezels/. Curated set: 70s.png (HMV cabinet), 80s.png (solid-state TV), Acorn (Microvitec CUB), Amstrad (CTM640 — only fully-attributed entry, CC-BY-SA 2.5 Bill Bertram via Wikimedia Commons), Apple (Monitor ///), Commodore (1084S), PC (IBM 5153), Sinclair (generic 80s TV), Vectrex. 8 of 9 still need source verification per ATTRIBUTION.md — integration blocker until resolved.