diff --git a/src/main/java/com/dostalgia/UploadResource.java b/src/main/java/com/dostalgia/UploadResource.java index 58feb76..71ae61d 100644 --- a/src/main/java/com/dostalgia/UploadResource.java +++ b/src/main/java/com/dostalgia/UploadResource.java @@ -447,10 +447,13 @@ public class UploadResource { /** * Detect whether an executable targets DOS or Windows by reading its PE/NE header. * + * Note: LE (Linear Executable) is used by DOS/4GW, DOS/32A, PMODE/W + * — all 32-bit DOS extenders for games like DOOM, Blood, Duke Nukem 3D. + * Only PE (Portable Executable) and NE (New Executable) are Windows. */ static String detectPlatform(Path exePath) { String name = exePath.getFileName().toString().toLowerCase(); @@ -487,12 +490,10 @@ public class UploadResource { // PE = Portable Executable (Win32) // NE = New Executable (Windows 3.x) - // LE = Linear Executable (VxD, OS/2) + // LE = Linear Executable (DOS/4GW, DOS/32A — 32-bit DOS extenders) // LX = Extended Linear Executable (OS/2 2.x) if ((sig1 == 0x50 && sig2 == 0x45) // PE - || (sig1 == 0x4E && sig2 == 0x45) // NE - || (sig1 == 0x4C && sig2 == 0x45) // LE - || (sig1 == 0x4C && sig2 == 0x58)) // LX + || (sig1 == 0x4E && sig2 == 0x45)) // NE return "windows"; return "dos"; // Plain MZ without known Windows signature