Hermes Agent 27a9c180d7
Build & Deploy / build-and-deploy (push) Successful in 1m35s
Fix: skip DOS extender executables (DOS4GW etc.) when finding main game exe
DOS4GW.EXE is a 32-bit DOS extender that ships with many DOS games
(DOOM, Fallout, Duke Nukem 3D, etc.). The findMainExe algorithm was
picking it as the main executable because it's typically large and at
the ZIP root, causing the autoexec to run 'DOS4GW' with no arguments
→ 'DOS/4GW fatal error (1004): syntax is DOS/4GW <executable.xxx>'

Added SKIP_EXE_NAMES set with known DOS extenders, DPMI hosts,
debuggers, memory managers, and uninstallers.
2026-05-29 09:15:23 +02:00
2026-05-28 23:14:35 +02:00

Dostalgia

A nostalgic DOS game hub. Upload your old DOS games, scrape artwork, and play them directly in the browser via js-dos (WebAssembly DOSBox).

Quick Start

# Build and run with Docker
docker build -t dostalgia .
docker run -p 8765:8765 -v $(pwd)/data:/data dostalgia

Open http://localhost:8765

Development (without Docker)

Terminal 1 — Frontend dev server:

cd frontend && npm install && npm run dev

Terminal 2 — Quarkus dev server:

mvn quarkus:dev

Open http://localhost:5173 (Vite proxies API calls to Quarkus on port 8765)

Production build (local)

cd frontend && npm install && npm run build
mvn package -DskipTests
java -jar target/quarkus-app/quarkus-run.jar

Architecture

  • Backend: Quarkus (Java 21, JAX-RS) — ~5 REST resource classes, zero database
  • Frontend: Svelte 5 SPA with hash-based routing
  • Emulation: js-dos v8 loaded from CDN, runs DOSBox in WebAssembly
  • Storage: JSON-per-game under /data/games/{id}/game.json

API

Method Path Description
GET /api/games List all games
GET /api/games/:id Get game details
PATCH /api/games/:id Update game metadata
DELETE /api/games/:id Delete a game
POST /api/upload Upload a game ZIP (multipart)
POST /api/games/:id/cover Upload cover art
GET /api/igdb/search?q= Search IGDB (placeholder)

Game JSON Schema

{
  "id": "doom",
  "title": "Doom",
  "year": 1993,
  "genre": "FPS",
  "developer": "id Software",
  "bundle_file": "doom.jsdos",
  "has_cover": true,
  "ready": true
}
S
Description
A nostalgic DOS game hub — upload, scrape artwork, and play your classic games in the browser
Readme MIT 5.6 MiB
Languages
Java 62.2%
Svelte 24.7%
JavaScript 8.8%
CSS 3.4%
Dockerfile 0.5%
Other 0.4%