diff --git a/.gitignore b/.gitignore
index 0ceed5b0..60388609 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,7 +17,7 @@ backup
.old
tmp
.godot
-rd-submodules/es-de/patches-tmp
+rd-submodules/es-de/patches-tmp*
# Python #
##########
diff --git a/emu-configs/parsers/gzdoom.sh b/emu-configs/parsers/gzdoom.sh
new file mode 100644
index 00000000..be5f8f7a
--- /dev/null
+++ b/emu-configs/parsers/gzdoom.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+input_file="$1"
+params=""
+LOG_FILE="$rdhome/.logs/gzdoom.log"
+command='gzdoom +fluid_patchset /app/share/sounds/sf2/gzdoom.sf2 $params >> "$LOG_FILE" 2>&1'
+
+# Function to log messages
+log() {
+ local message="$1"
+ local timestamp="$(date '+%Y-%m-%d %H:%M:%S')"
+ echo "$timestamp - $message" >> "$LOG_FILE"
+ echo "$timestamp - $message"
+}
+
+# Check if the file is .wad or .WAD
+if [[ $input_file =~ \.wad$ || $input_file =~ \.WAD$ ]]; then
+ log "Processing file: $input_file"
+ exec $command
+ log "Command executed with parameters: retroarch -L /app/share/libretro/cores/gzdoom_libretro.so $params"
+# Check if the file is .doom
+elif [[ $input_file =~ \.doom$ ]]; then
+ log "Processing file: $input_file"
+ while IFS= read -r line; do
+ params+="-file $line "
+ log "Added -file $line to parameters"
+ done < "$input_file"
+ exec $command
+ log "Command executed with parameters: retroarch -L /app/share/libretro/cores/gzdoom_libretro.so -file $params"
+else
+ echo "Unsupported file format. Please provide a .wad, .WAD, or .doom file."
+ log "Unsupported file format: $input_file"
+fi
\ No newline at end of file
diff --git a/emu-configs/parsers/gzdoom.sh.todo b/emu-configs/parsers/gzdoom.sh.todo
deleted file mode 100644
index 93b07b57..00000000
--- a/emu-configs/parsers/gzdoom.sh.todo
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/bash
-
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2021-present AmberELEC (https://github.com/AmberELEC)
-
-#. /etc/profile
-
-ROM="${1##*/}"
-PLATFORM="doom"
-CONF="/storage/.config/distribution/configs/distribution.conf"
-
-function get_setting() {
- #We look for the setting on the ROM first, if not found we search for platform and lastly we search globally
- PAT="s|^${PLATFORM}\[\"${ROM}\"\].*${1}=\(.*\)|\1|p"
- EES=$(sed -n "${PAT}" "${CONF}" | head -1)
-
- if [ -z "${EES}" ]; then
- PAT="s|^${PLATFORM}[\.-]${1}=\(.*\)|\1|p"
- EES=$(sed -n "${PAT}" "${CONF}" | head -1)
- fi
-
- if [ -z "${EES}" ]; then
- PAT="s|^global[\.-].*${1}=\(.*\)|\1|p"
- EES=$(sed -n "${PAT}" "${CONF}" | head -1)
- fi
-
- [ -z "${EES}" ] && EES="false"
-}
-
-# Show FPS
-get_setting "show_fps"
-echo ${EES}
-if [ "${EES}" == "auto" ] || [ "${EES}" == "disabled" ] || [ "${EES}" == "false" ] || [ "${EES}" == "none" ] || [ "${EES}" == "0" ]; then
- SHOWFPS='0'
-else
- SHOWFPS='1'
-fi
-
-EE_DEVICE=$(cat /storage/.config/.OS_ARCH)
-RUN_DIR="/storage/roms/doom"
-CONFIG="/storage/.config/distribution/gzdoom/gzdoom.ini"
-SAVE_DIR="/storage/roms/gamedata/gzdoom"
-
-if [ ! -L "/storage/.config/gzdoom" ]
-then
- ln -sf "/storage/.config/distribution/gzdoom" "/storage/.config/gzdoom"
-fi
-
-if [ ! -f "/storage/.config/distribution/gzdoom/gzdoom.ini" ]
-then
- cp -rf /usr/config/distribution/gzdoom/gzdoom.ini /storage/.config/distribution/gzdoom/
-fi
-
-mkdir -p ${SAVE_DIR}
-
-params=" -config ${CONFIG} -savedir ${SAVE_DIR}"
-
-# EXT can be wad, WAD, iwad, IWAD, pwad, PWAD or doom
-EXT=${1#*.}
-
-# If its not a simple wad (extension .doom) read the file and parse the data
-if [ ${EXT} == "doom" ]; then
- dos2unix "${1}"
- while IFS== read -r key value; do
- if [ "$key" == "IWAD" ]; then
- params+=" -iwad $value"
- fi
- if [ "$key" == "MOD" ]; then
- params+=" -file $value"
- fi
- done < "${1}"
-else
- params+=" -iwad ${1}"
-fi
-
-params+=" +gl_es 1 +vid_preferbackend 3 +cl_capfps 0 +vid_fps $SHOWFPS"
-
-cd "${RUN_DIR}"
-/usr/bin/gzdoom ${params} >/tmp/logs/gzdoom.log 2>&1
\ No newline at end of file
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index ff882dd5..e0f38994 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -512,6 +512,7 @@
Doom
%ROMPATH%/doom
.desktop .iwad .IWAD .pk4 .PK4 .pwad .PWAD .sh .wad .WAD
+ gzdoom.sh %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/prboom_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/boom3_libretro.so %ROM%
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 03f59628..87d1b28e 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -1290,6 +1290,8 @@ modules:
tag: v1.6.5
commit: 3aec70b0556a8d7aed7903d1a3e4d9a18c5d1649
+ - rd-submodules/shared-modules/gzdoom/gzdoom.json
+
# SOLARUS - END
# External manifests end
@@ -1354,6 +1356,9 @@ modules:
- ln -s /app/bin/retrodeck.sh /app/bin/retrodeck
- ln -s /app/tools/configurator.sh /app/bin/configurator
+ # DOOM/WOLF parsers
+ - cp emu-configs/parsers/*.sh ${FLATPAK_DEST}/bin
+
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 9dc43930..a9682176 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 9dc439300e92338d5b2bc3fc680eedd4fe1d3b0c
+Subproject commit a96821769848a711db1ed0b71883f91383e2b4ab
diff --git a/rd-submodules/ryujinx b/rd-submodules/ryujinx
index ff79306a..c0d938b8 160000
--- a/rd-submodules/ryujinx
+++ b/rd-submodules/ryujinx
@@ -1 +1 @@
-Subproject commit ff79306a50b484ce992d02a23e091d79fcde4cac
+Subproject commit c0d938b8f64f9e1353ef290049f66c8dcc40e46d
diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules
index 76809270..55a8e460 160000
--- a/rd-submodules/shared-modules
+++ b/rd-submodules/shared-modules
@@ -1 +1 @@
-Subproject commit 76809270588f87c6c14df96fef2dde9a7bac84f4
+Subproject commit 55a8e460c6343229597a13e973ba4855c27a1c4c