Skip to content

Roadmap

Retro Jack edited this page Jun 8, 2026 · 53 revisions

Roadmap

What's shipped, what's next, what won't be — for the GenX-DOS emulator catalog.

Scope rule: 8-bit era only

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.


✅ Shipped (24 emulator dirs, 27 sub-systems)

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.


⏳ Still to go

Plausible (8-bit era, browser emulator exists, would need a recipe pass)

  • TI-99/4A (Js99er) — 1981, classed with the 8-bit micros despite TMS9900 internals
  • 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)

Out of scope under the 8-bit-era rule

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

❌ Rejected (don't re-investigate without new information)

Quality / hosting / library size

  • 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 behind 0 != zx81opts.machine, so machine==0 (ZX80) never updates, the keyboard scan never fires, and only space + enter register. zame-dev's js-zx8x works 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.

Out of scope (16-bit, removed)

  • 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

Maintenance threads (shipped systems, open follow-ups)

  • Menu reformat sweep — ✅ done as of 05/06/2026. Every game menu normalised to a 4-column # Title (Year) CODE layout, year-sorted ascending, alphabetical within year. See Customising the Filesystem for the format spec. All 609 echo rows across fs.js verify at exactly 45 chars.
  • Per-game gamedocs pages — replacing the per-emulator controls.html with researched gameplay instructions at gamedocs/<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). 251 pages total. 2 sub-systems remaining: MSX2, CoCo.
  • Controls-link URL wiring — emulators that rewrite their URL on load (jtyone, amstradcpc, jsbeeb Master) need window._genxGameKey stashed 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.

Clone this wiki locally