mirror of
				https://github.com/RetroDECK/RetroDECK.git
				synced 2025-04-10 19:15:12 +00:00 
			
		
		
		
	
		
			
	
	
		
			79 lines
		
	
	
		
			2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			79 lines
		
	
	
		
			2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #!/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 |