mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Revert "melonds-sa: refactor start script to replace ini entries if they"
This reverts commit 61b67968c5.
This commit is contained in:
@@ -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>|
|
||||
|
||||
@@ -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)"
|
||||
|
||||
Reference in New Issue
Block a user