diff --git a/src/main/java/com/dostalgia/GameService.java b/src/main/java/com/dostalgia/GameService.java index 201bb08..9b41360 100644 --- a/src/main/java/com/dostalgia/GameService.java +++ b/src/main/java/com/dostalgia/GameService.java @@ -230,12 +230,36 @@ public class GameService { String dir = parts[0]; String exe = parts[1]; StringBuilder sb = new StringBuilder(); - sb.append("[sdl]\nautolock=true\nusescancodes=true\noutput=surface\n\n"); - sb.append("[cpu]\ncore=auto\ncycles=auto\n\n"); - sb.append("[mixer]\nnosound=false\nrate=44100\n\n"); - sb.append("[sblaster]\nsbtype=sb16\nirq=7\ndma=1\nhdma=5\n\n"); - sb.append("[dos]\nxms=true\nems=true\numb=true\n\n"); - sb.append("[autoexec]\n@echo off\nmount c .\n"); + sb.append("[sdl]\n"); + sb.append("autolock=true\n"); + sb.append("usescancodes=true\n"); + sb.append("output=surface\n"); + sb.append("\n"); + sb.append("[cpu]\n"); + sb.append("core=auto\n"); + sb.append("cycles=auto\n"); + sb.append("\n"); + sb.append("[mixer]\n"); + sb.append("nosound=false\n"); + sb.append("rate=44100\n"); + sb.append("\n"); + sb.append("[sblaster]\n"); + sb.append("sbtype=sb16\n"); + sb.append("irq=7\n"); + sb.append("dma=1\n"); + sb.append("hdma=5\n"); + sb.append("\n"); + sb.append("[dos]\n"); + sb.append("xms=true\n"); + sb.append("ems=true\n"); + sb.append("umb=true\n"); + sb.append("\n"); + sb.append("[dosbox]\n"); + sb.append("memsize=64\n"); + sb.append("\n"); + sb.append("[autoexec]\n"); + sb.append("@echo off\n"); + sb.append("mount c .\n"); // Mount CD images as D:, E:, … so games can find their CD. // Deduplicate by parent directory — prefer data formats over descriptors. Set seenDirs = new java.util.HashSet<>(); diff --git a/src/main/java/com/dostalgia/UploadResource.java b/src/main/java/com/dostalgia/UploadResource.java index 1459577..85d8799 100644 --- a/src/main/java/com/dostalgia/UploadResource.java +++ b/src/main/java/com/dostalgia/UploadResource.java @@ -880,12 +880,36 @@ public class UploadResource { /** Build config for a CD-only game (no executables on the filesystem). */ private String buildCdOnlyDosboxConf(List cdImages) { StringBuilder sb = new StringBuilder(); - sb.append("[sdl]\nautolock=true\nusescancodes=true\noutput=surface\n\n"); - sb.append("[cpu]\ncore=auto\ncycles=auto\n\n"); - sb.append("[mixer]\nnosound=false\nrate=44100\n\n"); - sb.append("[sblaster]\nsbtype=sb16\nirq=7\ndma=1\nhdma=5\n\n"); - sb.append("[dos]\nxms=true\nems=true\numb=true\n\n"); - sb.append("[autoexec]\n@echo off\nmount c .\n"); + sb.append("[sdl]\n"); + sb.append("autolock=true\n"); + sb.append("usescancodes=true\n"); + sb.append("output=surface\n"); + sb.append("\n"); + sb.append("[cpu]\n"); + sb.append("core=auto\n"); + sb.append("cycles=auto\n"); + sb.append("\n"); + sb.append("[mixer]\n"); + sb.append("nosound=false\n"); + sb.append("rate=44100\n"); + sb.append("\n"); + sb.append("[sblaster]\n"); + sb.append("sbtype=sb16\n"); + sb.append("irq=7\n"); + sb.append("dma=1\n"); + sb.append("hdma=5\n"); + sb.append("\n"); + sb.append("[dos]\n"); + sb.append("xms=true\n"); + sb.append("ems=true\n"); + sb.append("umb=true\n"); + sb.append("\n"); + sb.append("[dosbox]\n"); + sb.append("memsize=64\n"); + sb.append("\n"); + sb.append("[autoexec]\n"); + sb.append("@echo off\n"); + sb.append("mount c .\n"); // Mount CD images as D:, E:, … // Resolve one image per directory with format priority (.cue > .iso > .ccd > .img > .bin) char driveLetter = 'D'; @@ -959,6 +983,9 @@ public class UploadResource { sb.append("ems=true\n"); sb.append("umb=true\n"); sb.append("\n"); + sb.append("[dosbox]\n"); + sb.append("memsize=64\n"); + sb.append("\n"); sb.append("[autoexec]\n"); sb.append("@echo off\n"); sb.append("mount c .\n");