Skip to content

Roadmap

Retro Jack edited this page Jun 5, 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, MS-DOS.

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 (25 emulator dirs, 28 sub-systems)

Category Platform Year Dir Engine Notes
DOS MS-DOS 1981 jsdos/ caiiiycuk/js-dos v7.0.0 DUKE / KEEN sub-menus, 20 .jsdos bundles
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 (~12.6 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) — JtyOne supports it, but ROMs need hosting
  • 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. Apple I (10/10) and Apple ][ (10/10) done; remaining 26 platforms still using the shared controls page.
  • Controls-link URL wiring — emulators that rewrite their URL on load (jtyone, js7800, javatari, amstradcpc, jsbeeb Master) need window._genxGameKey stashed before the rewrite so the corner controls link can resolve the right gamedocs page.
  • 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 — 4 games extracted by string-fingerprint from the EasyFlash compilation, bank → game mapping not yet verified end-to-end.
  • 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/.

Clone this wiki locally