diff --git a/documentation/PER_DEVICE_DOCUMENTATION/SM8250/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/SM8250/SUPPORTED_EMULATORS_AND_CORES.md index 61adc7690f..23a2d00430 100644 --- a/documentation/PER_DEVICE_DOCUMENTATION/SM8250/SUPPORTED_EMULATORS_AND_CORES.md +++ b/documentation/PER_DEVICE_DOCUMENTATION/SM8250/SUPPORTED_EMULATORS_AND_CORES.md @@ -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)
**retroarch:** atari800
| |Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
| |Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
| -|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
**bigpemu:** bigpemu-sa (default)
| +|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
| |Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .lyx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
**mednafen:** lynx
| |Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
| |Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
| diff --git a/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh b/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh index 786e29b6ff..30bea45a59 100644 --- a/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh +++ b/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh @@ -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)"