https://gitlab.synchro.net/main/sbbs/-/commit/83e326fb7e847072d16d154b
Added Files:
xtrn/syncduke/download.js
Modified Files:
src/doors/syncduke/.gitignore xtrn/syncduke/install-xtrn.ini
Log Message:
syncduke: optional installer download of the shareware DUKE3D.GRP
SyncDuke ships no game data, so a fresh install has no GRP to run. Add an optional installer step that fetches the freely-redistributable shareware Episode 1 GRP so the door is playable out of the box -- mirroring SyncDOOM's getwads.js Freedoom fetch.
download.js downloads 3D Realms' original shareware install package and extracts DUKE3D.GRP from it. The GRP is two archive layers deep
(3dduke13.zip -> DN3DSW13.SHR self-extractor -> DUKE3D.GRP); Synchronet's Archive (libarchive) reads both, and the result is byte-identical to the canonical 11,035,779-byte "SHAREWARE 1.3D" GRP. Idempotent (skips a GRP already present), non-fatal if offline, and SpiderMonkey 1.8.5-compatible. install-xtrn.ini runs it as a prompted, non-required [exec:download.js] step after the config copy, so it can read the [grp] dir from syncduke.ini.
Named download.js (not getgrp/getmaps) so it can grow more options later
(map packs, the registered GRP) once the door can load them -- today it only fetches the base game GRP. .gitignore also gains *.grp so a dropped-in GRP
is never accidentally committed (it is proprietary game data, not ours to redistribute from the repo even though the shareware package is).
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net