From 6a18020c9f51d5df647ca26ce1b9e8890825b8f5 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 11 Jun 2026 12:14:07 +0200 Subject: [PATCH] fix: prefer .exe/.com over .bat in setup executable detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a game has both SETUP.BAT and SETUP.EXE, the sort comparator was picking SETUP.BAT (smaller file size) over SETUP.EXE. Batch files often contain 'win SETUP.EXE' to launch Windows-first — which fails in DOSBox since WIN.COM isn't available. Now .exe and .com files are sorted before .bat files at the same directory depth, so the actual DOS setup utility is preferred. --- src/main/java/org/dostalgia/ExecutableDetector.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/dostalgia/ExecutableDetector.java b/src/main/java/org/dostalgia/ExecutableDetector.java index f8f2fee..ea0b4b0 100644 --- a/src/main/java/org/dostalgia/ExecutableDetector.java +++ b/src/main/java/org/dostalgia/ExecutableDetector.java @@ -105,7 +105,13 @@ public class ExecutableDetector { }); if (candidates.isEmpty()) return null; - candidates.sort(Comparator.comparingInt(Candidate::depth).thenComparingLong(Candidate::size)); + candidates.sort(Comparator + .comparingInt(c -> { + String n = c.path().toLowerCase(); + return n.endsWith(".bat") ? 1 : 0; // prefer .exe/.com over .bat + }) + .thenComparingInt(Candidate::depth) + .thenComparingLong(Candidate::size)); return candidates.getFirst().path(); }