From 5b55a53b737f113ad18581076955641e7cebb6dc Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 28 May 2026 14:57:13 +0200 Subject: [PATCH] Skip creating .setup.jsdos bundles for Windows games - Move platform detection before setup bundle creation - Only create setup bundle when platform != 'windows' - Also hide the Setup button in GameDetail for Windows games - Windows setup executables (INSTALL.EXE) can't run in DOSBox anyway --- frontend/src/pages/GameDetail.svelte | 2 +- src/main/java/com/dostalgia/UploadResource.java | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/frontend/src/pages/GameDetail.svelte b/frontend/src/pages/GameDetail.svelte index 6cd0910..617fc97 100644 --- a/frontend/src/pages/GameDetail.svelte +++ b/frontend/src/pages/GameDetail.svelte @@ -232,7 +232,7 @@ ▶ Unplayable {/if} - {#if game.has_setup} + {#if game.has_setup && game.platform !== 'windows'} {/if} diff --git a/src/main/java/com/dostalgia/UploadResource.java b/src/main/java/com/dostalgia/UploadResource.java index ef7a8b1..58feb76 100644 --- a/src/main/java/com/dostalgia/UploadResource.java +++ b/src/main/java/com/dostalgia/UploadResource.java @@ -85,15 +85,16 @@ public class UploadResource { Path bundlePath = svc.getGamesDir().resolve(bundleFile); createBundle(extractDir, mainExe, bundlePath); - // Create setup bundle if a setup executable was found - if (setupExe != null) { + // Detect platform (DOS vs Windows) by reading the main EXE header + String platform = detectPlatform(Path.of(mainExe)); + + // Create setup bundle only if the game is a DOS executable + // (Windows setup bundles are useless — they need Windows to run) + if (setupExe != null && !"windows".equals(platform)) { Path setupBundlePath = svc.getGamesDir().resolve(gameId + ".setup.jsdos"); createBundle(extractDir, setupExe, setupBundlePath); } - // Detect platform (DOS vs Windows) by reading the main EXE header - String platform = detectPlatform(Path.of(mainExe)); - // Save metadata Game game = new Game(gameId, title); game.setBundleFile(bundleFile);