GenX‑DOSWIKI PromptArticle↩ Site

Attribution

GenX-DOS bundles third-party emulators, libraries, system ROMs, and visual assets. This file is the canonical record of those components and the terms under which they are redistributed.

It is maintained alongside CHANGELOG.md: whenever a new emulator, BIOS, ROM, bezel, font, or other asset is added or replaced, an entry is added here.

The summary list in README.md is a quick-reference; this file is the authoritative version.


Site code


Emulators

Each bundle directory contains the upstream LICENSE or COPYING file where one was provided. Build recipes for self-compiled WASM bundles live with their bundle (systems/odyssey2/build.sh, systems/cpc/BUILDING-WASM.md); atari800's build-wasm.sh lives in the Retro-Jack/atari800 fork rather than the bundle.

Bundle directory Upstream project Author(s) Licence
systems/apple1/ apple1js whscullin MIT
systems/apple2/ apple2js whscullin MIT
systems/bbcmicro/, systems/bbcmaster/ jsbeeb, built from the Retro-Jack/jsbeeb fork (same engine in two bundles — the Micro bundle boots Model B, the Master bundle boots model=Master; local changes in the fork's GENX-CHANGES.md) Matt Godbolt GPL-3.0-or-later
systems/electron/ ElkJS Darren Coles (6502 core ported from Tom Walker's Elkulator) © Darren Coles 2013 (no SPDX header in source)
systems/jsnes/ EmulatorJS + FCEUmm libretro core EmulatorJS team; libretro/libretro-fceumm GPL-3.0 (EmulatorJS), GPL-2.0 (FCEUmm)
systems/stella/ EmulatorJS + Stella (stella2014) libretro core EmulatorJS team; stella-emu / libretro GPL-3.0 (EmulatorJS), GPL-2.0 (Stella)
systems/js7800/ EmulatorJS + ProSystem (prosystem) libretro core EmulatorJS team; libretro/prosystem GPL-3.0 (EmulatorJS), GPL-2.0 (ProSystem)
systems/msx1/, systems/msx2/ WebMSX (same engine in two bundles — the MSX1 bundle boots M=MSX1, the MSX2 bundle boots M=MSX2) Paulo Peccin MIT
systems/jsspeccy/ JSSpeccy 3.2 Matt Westcott (gasman) GPL-3.0
systems/jtyone/ JtyOne (port of Mike Wynne's EightyOne) Simon Holdsworth GPL-2.0
systems/xroar/ XRoar (WASM) Ciaran Anscomb GPL-3.0-or-later
systems/trs80/ sdltrs (SDL2 TRS-80 emulator), built from source to WASM Mark Grebe / Jens Guenther (gitlab.com/jengun/sdltrs) BSD-2-Clause
systems/trs80/sdltrs.wasm (embedded) TRS-80 Model I Level II BASIC ROM (12 KB) © Tandy / Microsoft Bundled for emulator-only use; embedded into the WASM at build time via --embed-file (no separate ROM file ships)
systems/js99er/ Js99'er (vanilla-JS build) Rasmus Moustgaard GPL-2.0
systems/js99er/carts/*.rpk TI-99/4A cartridge ROMs (10 commercial titles, 1980-1983) Texas Instruments / Imagic / Sega — original publishers Distributed for retro-preservation; carts are 40+ years out of commerce.
systems/atari800/, systems/atari400/ atari800 v5.2.0, built from source to WASM (same core shipped in two bundles — the 400 bundle boots OS-B, the 800XL bundle boots OS-XL) atari800 project GPL-2.0+
systems/atari800/atari800.wasm, systems/atari400/atari800.wasm (embedded) AltirraOS-XL 3.41 + AltirraOS-800 + AltirraBASIC Avery Lee Freely-redistributable open-source OS replacement, compiled into the WASM via --enable-altirra_bios (no separate ROM file ships)
systems/intv/ jzIntv (WASM build) Joe Zbiciak Free for personal/non-commercial use. WASM build mirrored from mholzinger/intellivision-overlay-editor
systems/odyssey2/ libretro-o2em, custom SDL2/emscripten frontend original o2em by Daniel Boris + Andre de la Rocha; libretro fork by libretro authors; frontend by Retro-Jack GPL-2.0+ (libretro-o2em); frontend bundled under repo terms
systems/cpc/ floooh's tiny8bit CPC WASM — locally rebuilt from floooh/chips-test (status bar + muted-speaker icon patched out, plus gx_state_* save-state wrappers; see systems/cpc/BUILDING-WASM.md) Andre Weissflog MIT
systems/pet/pet2001/ pet2001 (vanilla-JS PET 2001 emulator) Thomas Skibo BSD-2-Clause
systems/_shared-ejs/ EmulatorJS framework EmulatorJS team GPL-3.0
systems/_shared-ejs/ejs/data/cores/ VICE libretro cores (x64, x128, xvic, xplus4) vice-emu.sourceforge.net GPL-2.0
systems/_shared-ejs/ejs/data/cores/ gearcoleco libretro core (ColecoVision) Drhelius GPL-3.0
systems/_shared-ejs/ejs/data/cores/ FCEUmm libretro core (NES) libretro/libretro-fceumm GPL-2.0
systems/_shared-ejs/ejs/data/cores/ Stella libretro core (stella2014, Atari 2600) stella-emu / libretro GPL-2.0
systems/_shared-ejs/ejs/data/cores/ gambatte libretro core (Game Boy / Game Boy Color) libretro/gambatte (sinamas) GPL-2.0
systems/_shared-ejs/ejs/data/cores/ handy libretro core (Atari Lynx) libretro/libretro-handy (K. Wilkins) zlib / GPL-compatible
systems/_shared-ejs/ejs/data/cores/ genesis_plus_gx libretro core (Sega Game Gear / Master System / Mega Drive) libretro/Genesis-Plus-GX (Eke-Eke) non-commercial redistribution licence (see core)
systems/_shared-ejs/ejs/data/cores/ prosystem libretro core (Atari 7800) libretro/prosystem (Greg Stanton, libretro port) GPL-2.0

How the cores are mirrored

EmulatorJS-flavoured libretro cores (FCEUmm, VICE family, gearcoleco, Stella, gambatte, handy, genesis_plus_gx, prosystem) are mirrored from cdn.emulatorjs.org/stable/ rather than rebuilt locally. The upstream CDN serves the same .data archives EmulatorJS itself loads from.

Exception — vice_x128 (C128) and gambatte (Game Boy): the current stable builds are broken — vice_x128 cold-boots to uninitialised-RAM garbage, and gambatte renders a blank white panel (no ROM ever displays). Both verified June 2026. We mirror the nightly builds of these two instead (cdn.emulatorjs.org/nightly/), which work. All other cores stay on stable.

Self-compiled WASM builds


BIOS and system ROMs

Bundled for emulator-only use. These remain the property of their copyright holders.

File System Copyright
systems/coleco/colecovision.rom ColecoVision © 1982 Coleco Industries
systems/lynx/lynxboot.img Atari Lynx boot ROM (512 bytes) © 1989 Atari Corp. (required by the handy core to start games)
systems/intv/exec.bin, grom.bin Intellivision EXEC + GROM © 1979 Mattel Electronics
systems/odyssey2/o2rom.bin Magnavox Odyssey² (MD5 562d5ebf…) © 1978 Magnavox/Philips.

Game ROMs

The repo bundles several hundred 8-bit-era game ROMs across all platforms. These remain the copyright of their original publishers and are included for historical preservation, emulator integration, and educational use.

Notable inclusions where the rights holder has explicitly released the software under permissive terms:

For every other commercial title, redistribution within this repo is on a preservation / personal-use basis. If you are a rights holder and want a title removed, open an issue at https://github.com/Retro-Jack/GenX-DOS/issues.


Research and reference sources

Reference works — not bundled code — consulted to get the per-game gamedocs right (control schemes and in-game behaviour). The project leans on them and is glad to say so.


Bezel artwork

systems/_shared/bezels/ holds the transparent PNG monitor/console frames used by the CRT-bezel overlays. Every platform is now wired to a bezel (the per-emulator integration pass is complete).

Per maintainer policy, bezel / wallpaper / texture artwork is not provenance-tracked — these are anonymous hardware shots or generic CRT frames sourced from public web archives where the original photographer is no longer reachable, then processed locally (alpha-keying, screen cutout) in GIMP. Source-code dependencies stay fully tracked (above). Wired bezels ship without credit comments.

Exception — Amstrad.png is properly source-cleared and carries a binding obligation: cropped from File:Amstrad_CPC464.jpg (Wikimedia Commons) by Bill Bertram (username Pixel8), 7 May 2005, CC-BY-SA 2.5. Modifications inherit share-alike; systems/cpc/play.html carries the author + licence as an attribution comment.

(Note: jsbeeb's CUB monitor frame lives inside systems/bbcmicro/dist/ and systems/bbcmaster/dist/ as part of the upstream build, not this shared set.)


Fonts


CSS / JS dependencies bundled per-emulator

Other emulator bundles vendor their upstream dependencies; where a bundle's runtime is locally modified (e.g. ElkJS above, the atari800 / CPC / o2em WASM rebuilds) the change is recorded here or in the CHANGELOG. The upstream LICENSE / COPYING files in each bundle directory cover the originals.


How to add a new attribution entry

When adding code or assets to the repo:

  1. Identify the upstream source and licence. If the licence is unclear, ask before bundling.
  2. Place the upstream LICENSE / COPYING file in the bundle directory alongside the binary or source it covers.
  3. Add a row to the relevant table above.
  4. Add a parallel entry in CHANGELOG.md under ## [Unreleased].
  5. If the licence is one of the BY-SA family, note in the table that modifications inherit share-alike — this affects what we can do with derived work.