From ae4f5184578b6f3dc0909f0c12a2ce653c5ab3ec Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 30 Nov 2023 09:37:26 +0100 Subject: [PATCH] GZDOOM: added .doom parser --- emu-configs/gzdoom/gzdoom.sh | 29 ++++++++++++++++++++--------- es-configs/es_systems.xml | 2 +- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/emu-configs/gzdoom/gzdoom.sh b/emu-configs/gzdoom/gzdoom.sh index 02049f0b..6e9f4617 100644 --- a/emu-configs/gzdoom/gzdoom.sh +++ b/emu-configs/gzdoom/gzdoom.sh @@ -12,7 +12,7 @@ echo "RetroDECK GZDOOM wrapper init." | tee -a "$LOG_FILE" IWAD_FILES=("DOOM1.WAD" "DOOM.WAD" "DOOM2.WAD" "DOOM2F.WAD" "DOOM64.WAD" "TNT.WAD" "PLUTONIA.WAD" "HERETIC1.WAD" "HERETIC.WAD" "HEXEN.WAD" "HEXDD.WAD" "STRIFE0.WAD" "STRIFE1.WAD" "VOICES.WAD" "CHEX.WAD" - "CHEX3.WAD" "HACX.WAD" "freedoom1.wad" "freedoom2.wad" "freedm.wad" # unlicenced iwads + "CHEX3.WAD" "HACX.WAD" "freedoom1.wad" "freedoom2.wad" "freedm.wad" # unlicensed iwads "doom_complete.pk3" # this includes them all ) @@ -24,14 +24,25 @@ if [ ! -e "$1" ]; then fi filename=$(basename "$1") # Extracts only the filename from the full path +extension="${filename##*.}" # Extracts the file extension -shopt -s nocasematch # Enable case-insensitive matching -if [[ "${IWAD_FILES[@]}" =~ "$filename" ]]; then - type="iwad" +if [ "$extension" == "doom" ]; then + map_file="$1" + iwad="-iwad $(head -n 1 "$map_file")" + file="-file $(tail -n +2 "$map_file" | sed 's/.*/-file &/')" + + echo "Found a .doom file: $1, parsing it." | tee -a "$LOG_FILE" + echo "Calling GZDoom with: \"$iwad $file\"." | tee -a "$LOG_FILE" + gzdoom -config /var/config/gzdoom/gzdoom.ini $iwad $file | tee -a "$LOG_FILE" else - type="file" -fi -shopt -u nocasematch # Disable case-insensitive matching after use + shopt -s nocasematch # Enable case-insensitive matching + if [[ "${IWAD_FILES[@]}" =~ "$filename" ]]; then + type="iwad" + else + type="file" + fi + shopt -u nocasematch # Disable case-insensitive matching after use -echo "Found $type: $1, loading it." | tee -a "$LOG_FILE" -gzdoom -config /var/config/gzdoom/gzdoom.ini -$type "$1" | tee -a "$LOG_FILE" \ No newline at end of file + echo "Found $type: $1, loading it." | tee -a "$LOG_FILE" + gzdoom -config /var/config/gzdoom/gzdoom.ini -$type "$1" | tee -a "$LOG_FILE" +fi diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index 3bf2a4fb..5dcda268 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -511,7 +511,7 @@ doom Doom %ROMPATH%/doom - .desktop .iwad .IWAD .pk4 .PK4 .pk3 .PK3 .pwad .PWAD .sh .wad .WAD + .doom .desktop .iwad .IWAD .pk4 .PK4 .pk3 .PK3 .pwad .PWAD .sh .wad .WAD gzdoom.sh %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prboom_libretro.so %ROM%