EmuDeck/functions/EmuScripts/emuDeckMelonDS.sh
Dragoon Dorise 00a8f1c19c
New paths (#1381)
* new paths

* /

* EmuDeck/

* mv

* no &

* ESDE new location

* ESDE new path

* no symlink load

* bigpemu new path

* force move

* global vars

* oopsie

* missing $emudeckBackend

* better migration detection

* Keep Appimages in Applications

* Keep Appimages in Applications
2025-01-02 13:42:31 +01:00

218 lines
5.5 KiB
Bash

#!/bin/bash
#variables
melonDS_emuName="MelonDS"
melonDS_emuType="$emuDeckEmuTypeFlatpak"
melonDS_emuPath="net.kuribo64.melonDS"
melonDS_releaseURL=""
melonDS_configFile="$HOME/.var/app/net.kuribo64.melonDS/config/melonDS/melonDS.ini"
#cleanupOlderThings
melonDS_finalize(){
echo "NYI"
}
#Install
melonDS_install(){
setMSG "Installing $melonDS_emuName"
installEmuFP "${melonDS_emuName}" "${melonDS_emuPath}" "emulator" ""
}
#Fix for autoupdate
Melonds_install(){
melonDS_install
}
#ApplyInitialSettings
melonDS_init(){
setMSG "Initializing $melonDS_emuName settings."
configEmuFP "${melonDS_emuName}" "${melonDS_emuPath}" "true"
melonDS_setupStorage
melonDS_setEmulationFolder
melonDS_setupSaves
#SRM_createParsers
melonDS_addSteamInputProfile
melonDS_flushEmulatorLauncher
}
#update
melonDS_update(){
setMSG "Updating $melonDS_emuName settings."
configEmuFP "${melonDS_emuName}" "${melonDS_emuPath}"
updateEmuFP "${melonDS_emuName}" "${melonDS_emuPath}" "emulator" ""
melonDS_setupStorage
melonDS_setEmulationFolder
melonDS_setupSaves
melonDS_addSteamInputProfile
melonDS_flushEmulatorLauncher
}
#ConfigurePaths
melonDS_setEmulationFolder(){
setMSG "Setting $melonDS_emuName Emulation Folder"
BIOS9PathSetting='BIOS9Path='
BIOS7PathSetting='BIOS7Path='
FirmwarePathSetting='FirmwarePath='
DSiBIOS9PathSetting='DSiBIOS9Path='
DSiBIOS7PathSetting='DSiBIOS7Path='
DSiFirmwarePathSetting='DSiFirmwarePath='
DSiNANDPathSetting='DSiNANDPath='
LastROMFolderSetting='LastROMFolder='
changeLine "$BIOS9PathSetting" "${BIOS9PathSetting}${biosPath}/bios9.bin" "${melonDS_configFile}"
changeLine "$BIOS7PathSetting" "${BIOS7PathSetting}${biosPath}/bios7.bin" "${melonDS_configFile}"
changeLine "$FirmwarePathSetting" "${FirmwarePathSetting}${biosPath}/firmware.bin" "${melonDS_configFile}"
changeLine "$DSiBIOS9PathSetting" "${DSiBIOS9PathSetting}${biosPath}/dsi_bios9.bin" "${melonDS_configFile}"
changeLine "$DSiBIOS7PathSetting" "${DSiBIOS7PathSetting}${biosPath}/dsi_bios7.bin" "${melonDS_configFile}"
changeLine "$DSiFirmwarePathSetting" "${DSiFirmwarePathSetting}${biosPath}/dsi_firmware.bin" "${melonDS_configFile}"
changeLine "$DSiNANDPathSetting" "${DSiNANDPathSetting}${biosPath}/dsi_nand.bin" "${melonDS_configFile}"
changeLine "$LastROMFolderSetting" "${LastROMFolderSetting}${romsPath}/nds" "${melonDS_configFile}"
}
#SetupSaves
melonDS_setupSaves(){
setMSG "Setting $melonDS_emuName Saves Folder"
mkdir -p "${savesPath}/melonds/saves"
mkdir -p "${savesPath}/melonds/states"
SaveFilePathSetting='SaveFilePath='
SavestatePathSetting='SavestatePath='
changeLine "$SaveFilePathSetting" "${SaveFilePathSetting}${savesPath}/melonds/saves" "${melonDS_configFile}"
changeLine "$SavestatePathSetting" "${SavestatePathSetting}${savesPath}/melonds/states" "${melonDS_configFile}"
}
#SetupStorage
melonDS_setupStorage(){
setMSG "Setting $melonDS_emuName Storage Folder"
# Leaving this so user can still place database files here if need be
mkdir -p "$storagePath/melonDS/cheats"
# Breaks saving cheats in melonDS, commenting out for now
# CheatFilePathSetting='CheatFilePath='
# changeLine "$CheatFilePathSetting" "${CheatFilePathSetting}${storagePath}/melonds/cheats" "${melonDS_configFile}"
}
#WipeSettings
melonDS_wipe(){
setMSG "Wiping $melonDS_emuName config directory. (factory reset)"
rm -rf "$HOME/.var/app/$melonDS_emuPath"
}
#Uninstall
melonDS_uninstall(){
setMSG "Uninstalling $melonDS_emuName."
uninstallEmuFP "${melonDS_emuName}" "${melonDS_emuPath}" "emulator" ""
}
#setABXYstyle
melonDS_setABXYstyle(){
echo "NYI"
}
#Migrate
melonDS_migrate(){
echo "NYI"
}
#WideScreenOn
melonDS_wideScreenOn(){
echo "NYI"
}
#WideScreenOff
melonDS_wideScreenOff(){
echo "NYI"
}
#BezelOn
melonDS_bezelOn(){
echo "NYI"
}
#BezelOff
melonDS_bezelOff(){
decho "NYI"
}
#finalExec - Extra stuff
melonDS_finalize(){
echo "NYI"
}
melonDS_IsInstalled(){
isFpInstalled "$melonDS_emuPath"
}
melonDS_resetConfig(){
melonDS_init &>/dev/null && echo "true" || echo "false"
}
melonDS_addSteamInputProfile(){
addSteamInputCustomIcons
setMSG "Adding $melonDS_emuName Steam Input Profile."
#rsync -r "$emudeckBackend/configs/steam-input/melonds_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/"
rsync -r --exclude='*/' "$emudeckBackend/configs/steam-input/" "$HOME/.steam/steam/controller_base/templates/"
}
melonDS_setResolution(){
case $melonDSResolution in
"720P") WindowWidth=1024; WindowHeight=768;;
"1080P") WindowWidth=1536; WindowHeight=1152;;
"1440P") WindowWidth=2048; WindowHeight=1536;;
"4K") WindowWidth=2816; WindowHeight=2112;;
*) echo "Error"; return 1;;
esac
RetroArch_setConfigOverride "WindowWidth" $WindowWidth "$melonDS_configFile"
RetroArch_setConfigOverride "WindowHeight" $WindowHeight "$melonDS_configFile"
}
#setABXYstyle
melonDS_setABXYstyle(){
buttonA='Joy_A='
buttonB='Joy_B='
buttonX='Joy_X='
buttonY='Joy_Y='
changeLine "$buttonA" "$buttonA""0" "${melonDS_configFile}"
changeLine "$buttonB" "$buttonB""1" "${melonDS_configFile}"
changeLine "$buttonX" "$buttonX""2" "${melonDS_configFile}"
changeLine "$buttonY" "$buttonY""3" "${melonDS_configFile}"
}
melonDS_setBAYXstyle(){
buttonA='Joy_A='
buttonB='Joy_B='
buttonX='Joy_X='
buttonY='Joy_Y='
changeLine "$buttonA" "$buttonA""1" "${melonDS_configFile}"
changeLine "$buttonB" "$buttonB""0" "${melonDS_configFile}"
changeLine "$buttonX" "$buttonX""3" "${melonDS_configFile}"
changeLine "$buttonY" "$buttonY""2" "${melonDS_configFile}"
}
melonDS_flushEmulatorLauncher(){
flushEmulatorLaunchers "melonds"
}