Contributing
GenX-DOS is a one-person preservation hobby project, but bug reports, doc fixes, and small improvements are very welcome.
Reporting problems
- Something's broken (a game won't boot, keys are wrong, display glitches): open an issue with the bug-report template. The system, game, browser, and the exact URL from the address bar are the four things that make it reproducible.
- Security concerns: see SECURITY.md — please report privately.
- Rights holders: if you want a bundled title removed, open an issue — see the takedown note in ATTRIBUTION.md. Removal requests are honoured.
Running it locally
./GenX-DOS.sh # or: python3 -m http.server 8765
Open http://127.0.0.1:8765/prompt/. There is no build step — edit, refresh,
done. One gotcha: browsers cache prompt/javascript/fs.js aggressively, so
hard-refresh (Ctrl+Shift+R) after editing the virtual filesystem.
Ground rules for pull requests
Keep PRs small and focused. A few project conventions:
- Every change gets a CHANGELOG bullet under
## [Unreleased]in CHANGELOG.md. - Never modify vendored emulator runtime (the upstream JS/WASM inside
systems/<name>/). Hand-written GenX-DOS code lives inprompt/javascript/,systems/_shared/,systems/_shared-ejs/genx-*.js, and each bundle'splay.html— that's the code that's open to change. - Third-party additions need an ATTRIBUTION.md entry (source, author, licence) — see the "How to add a new attribution entry" section there.
- Don't submit game ROMs, BIOSes, or disk images in PRs.
- Authored JS/JSON is Prettier-formatted; vendored code is left byte-faithful.
- Error rendering in wrappers uses
textContent(neverinnerHTMLconcatenation) — CodeQL scans every push.
Proposing a new system
The scope rule is 8-bit feel — sprite-based, chiptune, low-res; the aesthetic decides, not the calendar. Check the Roadmap first: it lists what's shipped, what's plausible, and what's been ruled out (and why). The integration recipe is on the Emulators wiki page.
Licensing
By contributing you agree your contribution is licensed under the repo's terms: CC BY-NC 4.0 for the original GenX-DOS work, with the LGR terminal base and all bundled third-party components keeping their upstream licences — see LICENSE.TXT and ATTRIBUTION.md.