Revert "melonds-sa: refactor start script to replace ini entries if they"

This reverts commit 61b67968c5.
This commit is contained in:
spycat88
2025-11-23 22:21:22 +00:00
parent 83c886ddd6
commit f2f885a1c9
2 changed files with 59 additions and 70 deletions

View File

@@ -17,7 +17,7 @@
|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)<br>**retroarch:** atari800<br>|
|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)<br>|
|Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)<br>|
|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)<br>**bigpemu:** bigpemu-sa (default)<br>|
|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)<br>|
|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .lyx .o .zip .7z|**retroarch:** handy (default)<br>**retroarch:** beetle_lynx<br>**mednafen:** lynx<br>|
|Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)<br>**hatarisa:** hatarisa<br>|
|Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)<br>|

View File

@@ -1,52 +1,37 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
. /etc/profile
set_kill set "-9 melonDS"
# Load gptokeyb support files
#load gptokeyb support files
control-gen_init.sh
source /storage/.config/gptokeyb/control.ini
get_controls
CONF_DIR="/storage/.config/melonDS"
MELONDS_INI="${CONF_DIR}/melonDS.ini"
MELONDS_INI="melonDS.ini"
SWAY_CONFIG="/storage/.config/sway/config"
# INI Setter
set_ini() {
key="$1"
value="$2"
file="$3"
if grep -q "^${key}=" "$file" 2>/dev/null; then
sed -i "s|^${key}=.*|${key}=${value}|" "$file"
else
echo "${key}=${value}" >> "$file"
fi
}
# Create config directory if missing
if [ ! -d "${CONF_DIR}" ]; then
cp -r "/usr/config/melonDS" "/storage/.config"
cp -r "/usr/config/melonDS" "/storage/.config/"
fi
# Create savestate directory
mkdir -p "/storage/roms/savestates/nds"
if [ ! -d "/storage/roms/savestates/nds" ]; then
mkdir -p "/storage/roms/savestates/nds"
fi
# Ensure melonDS.gptk exists
#Make sure melonDS gptk config exists
if [ ! -f "${CONF_DIR}/melonDS.gptk" ]; then
cp "/usr/config/melonDS/melonDS.gptk" "${CONF_DIR}/melonDS.gptk"
cp -r "/usr/config/melonDS/melonDS.gptk" "${CONF_DIR}/melonDS.gptk"
fi
# Emulation Station Features
GAME=$(basename "${1}")
PLATFORM=$(basename "${2}")
#Emulation Station Features
GAME=$(echo "${1}" | sed "s#^/.*/##")
PLATFORM=$(echo "${2}"| sed "s#^/.*/##")
GRENDERER=$(get_setting graphics_backend "${PLATFORM}" "${GAME}")
IRES=$(get_setting internal_resolution "${PLATFORM}" "${GAME}")
SORIENTATION=$(get_setting screen_orientation "${PLATFORM}" "${GAME}")
@@ -56,106 +41,110 @@ SROTATION=$(get_setting screen_rotation "${PLATFORM}" "${GAME}")
SHOWFPS=$(get_setting show_fps "${PLATFORM}" "${GAME}")
VSYNC=$(get_setting vsync "${PLATFORM}" "${GAME}")
# CPU Cores
#Set the cores to use
CORES=$(get_setting "cores" "${PLATFORM}" "${GAME}")
unset EMUPERF
[ "${CORES}" = "little" ] && EMUPERF="${SLOW_CORES}"
[ "${CORES}" = "big" ] && EMUPERF="${FAST_CORES}"
# Graphics Backend
if [ "$GRENDERER" -gt "0" ]; then
set_ini ScreenUseGL "$GRENDERER" "${MELONDS_INI}"
set_ini 3DRenderer "1" "${MELONDS_INI}"
#Graphics Backend
if [ "$GRENDERER" > "0" ]; then
sed -i "/^ScreenUseGL=/c\ScreenUseGL=$GRENDERER" "${CONF_DIR}/${MELONDS_INI}"
sed -i "/^3DRenderer=/c\3DRenderer=1" "${CONF_DIR}/${MELONDS_INI}"
else
set_ini ScreenUseGL "0" "${MELONDS_INI}"
set_ini 3DRenderer "0" "${MELONDS_INI}"
sed -i '/^ScreenUseGL=/c\ScreenUseGL=0' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^3DRenderer=/c\3DRenderer=0' "${CONF_DIR}/${MELONDS_INI}"
fi
# Internal Resolution
if [ "$IRES" -gt "0" ]; then
set_ini GL_ScaleFactor "$IRES" "${MELONDS_INI}"
#Internal Resolution
if [ "$IRES" > "0" ]; then
sed -i "/^GL_ScaleFactor=/c\GL_ScaleFactor=$IRES" "${CONF_DIR}/${MELONDS_INI}"
else
set_ini GL_ScaleFactor "1" "${MELONDS_INI}"
sed -i '/^GL_ScaleFactor=/c\GL_ScaleFactor=1' "${CONF_DIR}/${MELONDS_INI}"
fi
# Screen Orientation
if [ "$SORIENTATION" -gt "0" ]; then
set_ini ScreenLayout "$SORIENTATION" "${MELONDS_INI}"
#Screen Orientation
if [ "$SORIENTATION" > "0" ]; then
sed -i "/^ScreenLayout=/c\ScreenLayout=$SORIENTATION" "${CONF_DIR}/${MELONDS_INI}"
else
set_ini ScreenLayout "2" "${MELONDS_INI}"
sed -i '/^ScreenLayout=/c\ScreenLayout=2' "${CONF_DIR}/${MELONDS_INI}"
fi
# Screen Layout (defaults)
set_ini Screen1Enabled "0" "${MELONDS_INI}"
#Screen Layout
# Screen Layout
sed -i '/^Screen1Enabled=/c\Screen1Enabled=0' "${CONF_DIR}/${MELONDS_INI}"
enable_second_screen() {
set_ini ScreenSizing "4" "${MELONDS_INI}"
set_ini Screen1Enabled "1" "${MELONDS_INI}"
sed -i '/^ScreenSizing=/c\ScreenSizing=4' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^Screen1Enabled=/c\Screen1Enabled=1' "${CONF_DIR}/${MELONDS_INI}"
}
if [ "$SLAYOUT" = "6" ]; then
enable_second_screen
elif [ -n "$SLAYOUT" ] && [ "$SLAYOUT" != "0" ]; then
set_ini ScreenSizing "$SLAYOUT" "${MELONDS_INI}"
sed -i "/^ScreenSizing=/c\ScreenSizing=$SLAYOUT" "${CONF_DIR}/${MELONDS_INI}"
elif [ "${DEVICE_HAS_DUAL_SCREEN}" = "true" ]; then
enable_second_screen
else
set_ini ScreenSizing "0" "${MELONDS_INI}"
sed -i '/^ScreenSizing=/c\ScreenSizing=0' "${CONF_DIR}/${MELONDS_INI}"
fi
# Screen Swap
if [[ "${DEVICE_HAS_DUAL_SCREEN}" = "true" && ( -z "$SLAYOUT" || "$SLAYOUT" = "6" ) ]]; then
if [ "$SWAP" = "1" ]; then
set_ini ScreenSizing "5" "${MELONDS_INI}"
set_ini Screen1Sizing "4" "${MELONDS_INI}"
sed -i '/^ScreenSizing=/c\ScreenSizing=5' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^Screen1Sizing=/c\Screen1Sizing=4' "${CONF_DIR}/${MELONDS_INI}"
else
set_ini ScreenSizing "4" "${MELONDS_INI}"
set_ini Screen1Sizing "5" "${MELONDS_INI}"
sed -i '/^ScreenSizing=/c\ScreenSizing=4' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^Screen1Sizing=/c\Screen1Sizing=5' "${CONF_DIR}/${MELONDS_INI}"
fi
else
set_ini ScreenSwap "${SWAP:-0}" "${MELONDS_INI}"
sed -i "/^ScreenSwap=/c\ScreenSwap=${SWAP:-0}" "${CONF_DIR}/${MELONDS_INI}"
fi
# Screen Rotation
if [ "$SROTATION" -gt "0" ]; then
set_ini ScreenRotation "$SROTATION" "${MELONDS_INI}"
#Screen Rotation
if [ "$SROTATION" ] >"0"; then
sed -i "/^ScreenRotation=/c\ScreenRotation=$SROTATION" "${CONF_DIR}/${MELONDS_INI}"
else
set_ini ScreenRotation "0" "${MELONDS_INI}"
sed -i '/^ScreenRotation=/c\ScreenRotation=0' "${CONF_DIR}/${MELONDS_INI}"
fi
# Vsync
set_ini ScreenVSync "${VSYNC:-1}" "${MELONDS_INI}"
#Vsync
if [ "$VSYNC" = "1" ]; then
sed -i '/^ScreenVSync=/c\ScreenVSync=1' "${CONF_DIR}/${MELONDS_INI}"
else
sed -i '/^ScreenVSync=/c\ScreenVSync=1' "${CONF_DIR}/${MELONDS_INI}"
fi
# Show FPS
#Show FPS
if [ "$SHOWFPS" = "1" ]; then
export GALLIUM_HUD="simple,fps"
export GALLIUM_HUD="simple,fps"
fi
# Extract archive
# Extract archive to /tmp/melonds
TEMP="/tmp/melonds"
rm -rf "${TEMP}"
mkdir -p "${TEMP}"
if [[ "${1}" == *.zip ]]; then
unzip -o "${1}" -d "${TEMP}"
ROM=$(find "${TEMP}" -maxdepth 1 -name "*.nds" | head -n 1)
ROM=$(find "${TEMP}" -maxdepth 1 -type f -name "*.nds" | head -n 1)
elif [[ "${1}" == *.7z ]]; then
7z x -y -o"${TEMP}" "${1}"
ROM=$(find "${TEMP}" -maxdepth 1 -name "*.nds" | head -n 1)
ROM=$(find "${TEMP}" -maxdepth 1 -type f -name "*.nds" | head -n 1)
else
ROM="${1}"
fi
# QT Wayland
#Set QT Platform to Wayland
export QT_QPA_PLATFORM=xcb
@PANFROST@
@HOTKEY@
@LIBMALI@
# Regenerate TOML
rm -f "${CONF_DIR}/melonDS.toml"
#Generate a new MelonDS.toml each run (temporary hack)
rm -rf "${CONF_DIR}/melonDS.toml"
# Launch emulator
#Run MelonDS emulator
$GPTOKEYB "melonDS" -c "${CONF_DIR}/melonDS.gptk" &
${EMUPERF} /usr/bin/melonDS -f "${ROM}"
kill -9 "$(pidof gptokeyb)"