mirror of
https://github.com/dragoonDorise/EmuDeck.git
synced 2024-06-02 03:27:47 -04:00
169 lines
4.3 KiB
Bash
Executable file
169 lines
4.3 KiB
Bash
Executable file
#!/bin/bash
|
|
#variables
|
|
Citra_emuName="Citra"
|
|
Citra_emuType="AppImage"
|
|
Citra_emuPath="citra_emu"
|
|
Citra_releaseURL=""
|
|
Citra_configFile="$HOME/.config/citra-emu/qt-config.ini"
|
|
|
|
#cleanupOlderThings
|
|
Citra_finalize(){
|
|
echo "NYI"
|
|
}
|
|
|
|
#Install
|
|
Citra_install(){
|
|
setMSG "Installing $Citra_emuName"
|
|
installEmuFP "${Citra_emuName}" "${Citra_emuPath}"
|
|
curl -L https://github.com/citra-emu/citra-web/releases/download/2.0/citra-setup-linux > citra-setup-linux && chmod +x citra-setup-linux && ./citra-setup-linux --accept-licenses --confirm-command install
|
|
rm citra-setup-linux
|
|
}
|
|
|
|
#ApplyInitialSettings
|
|
Citra_init(){
|
|
setMSG "Initializing $Citra_emuName settings."
|
|
configEmuFP "${Citra_emuName}" "${Citra_emuPath}" "true"
|
|
Citra_setupStorage
|
|
Citra_setEmulationFolder
|
|
Citra_setupSaves
|
|
Citra_addSteamInputProfile
|
|
}
|
|
|
|
#update
|
|
Citra_update(){
|
|
setMSG "Updating $Citra_emuName settings."
|
|
cd $HOME/.citra && ./maintenancetool update
|
|
Citra_setupStorage
|
|
Citra_setEmulationFolder
|
|
Citra_setupSaves
|
|
Citra_addSteamInputProfile
|
|
}
|
|
|
|
#ConfigurePaths
|
|
Citra_setEmulationFolder(){
|
|
setMSG "Setting $Citra_emuName Emulation Folder"
|
|
|
|
gameDirOpt='Paths\\gamedirs\\3\\path='
|
|
newGameDirOpt='Paths\\gamedirs\\3\\path='"${romsPath}/3ds"
|
|
sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$Citra_configFile"
|
|
|
|
#Setup symlink for AES keys
|
|
mkdir -p "${biosPath}/citra/"
|
|
mkdir -p "$HOME/.local/share/citra-emu/sysdata"
|
|
ln -sn "$HOME/.local/share/citra-emu/sysdata" "${biosPath}/citra/keys"
|
|
}
|
|
|
|
#SetupSaves
|
|
Citra_setupSaves(){
|
|
linkToSaveFolder citra saves "$HOME/.local/share/citra-emu/sdmc"
|
|
linkToSaveFolder citra states "$HOME/.local/share/citra-emu/states"
|
|
}
|
|
|
|
|
|
#SetupStorage
|
|
Citra_setupStorage(){
|
|
|
|
if [ ! -f "$storagePath/citra/nand" ] && [ -d "$HOME/.local/share/citra-emu/nand/" ]; then
|
|
|
|
echo "citra nand does not exist in storagepath."
|
|
echo -e ""
|
|
setMSG "Moving Citra nand to the Emulation/storage folder"
|
|
echo -e ""
|
|
|
|
mv "$HOME/.local/share/citra-emu/nand/" $storagePath/citra/nand/
|
|
mv "$HOME/.local/share/citra-emu/sdmc/" $storagePath/citra/sdmc/
|
|
|
|
unlink "$HOME/.local/share/citra-emu/nand/"
|
|
unlink "$HOME/.local/share/citra-emu/sdmc/"
|
|
|
|
ln -ns "${storagePath}/citra/nand/" "$HOME/.local/share/citra-emu/nand/"
|
|
ln -ns "${storagePath}/citra/sdmc/" "$HOME/.local/share/citra-emu/sdmc/"
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
#WipeSettings
|
|
Citra_wipe(){
|
|
setMSG "Wiping $Citra_emuName config directory. (factory reset)"
|
|
rm -rf "$HOME/.config/citra-emu"
|
|
}
|
|
|
|
|
|
#Uninstall
|
|
Citra_uninstall(){
|
|
setMSG "Uninstalling $Citra_emuName."
|
|
cd $HOME/.citra && ./maintenancetool purge
|
|
}
|
|
|
|
#setABXYstyle
|
|
Citra_setABXYstyle(){
|
|
echo "NYI"
|
|
}
|
|
|
|
#Migrate
|
|
Citra_migrate(){
|
|
echo "Begin Citra Migration"
|
|
emu="Citra"
|
|
migrationFlag="$HOME/.config/EmuDeck/.${emu}MigrationCompleted"
|
|
#check if we have a nomigrateflag for $emu
|
|
if [ ! -f "$migrationFlag" ]; then
|
|
#citra flatpak to appimage
|
|
#From -- > to
|
|
migrationTable=()
|
|
migrationTable+=("$HOME/.var/app/org.citra_emu.citra/data/citra-emu" "$HOME/.local/share/citra-emu")
|
|
migrationTable+=("$HOME/.var/app/org.citra_emu.citra/config/citra-emu" "$HOME/.config/citra-emu")
|
|
|
|
# migrateAndLinkConfig "$emu" "$migrationTable"
|
|
fi
|
|
|
|
#move data from hidden folders out to these folders in case the user already put stuff here.
|
|
origPath="$HOME/.var/app/org.citra_emu.citra/data/citra_emu/"
|
|
|
|
citra_setupStorage
|
|
|
|
rsync -av "${origPath}citra/dump" "${storagePath}/citra/" && rm -rf "${origPath}citra/dump"
|
|
rsync -av "${origPath}citra/load" "${storagePath}/citra/" && rm -rf "${origPath}citra/load"
|
|
rsync -av "${origPath}citra/sdmc" "${storagePath}/citra/" && rm -rf "${origPath}citra/sdmc"
|
|
rsync -av "${origPath}citra/nand" "${storagePath}/citra/" && rm -rf "${origPath}citra/nand"
|
|
rsync -av "${origPath}citra/screenshots" "${storagePath}/citra/" && rm -rf "${origPath}citra/screenshots"
|
|
rsync -av "${origPath}citra/tas" "${storagePath}/citra/" && rm -rf "${origPath}citra/tas"
|
|
}
|
|
|
|
#WideScreenOn
|
|
Citra_wideScreenOn(){
|
|
echo "NYI"
|
|
}
|
|
|
|
#WideScreenOff
|
|
Citra_wideScreenOff(){
|
|
echo "NYI"
|
|
}
|
|
|
|
#BezelOn
|
|
Citra_bezelOn(){
|
|
echo "NYI"
|
|
}
|
|
|
|
#BezelOff
|
|
Citra_bezelOff(){
|
|
echo "NYI"
|
|
}
|
|
|
|
#finalExec - Extra stuff
|
|
Citra_finalize(){
|
|
echo "NYI"
|
|
}
|
|
|
|
Citra_IsInstalled(){
|
|
isFpInstalled "$Citra_emuPath"
|
|
}
|
|
|
|
Citra_resetConfig(){
|
|
Citra_init &>/dev/null && echo "true" || echo "false"
|
|
}
|
|
|
|
Citra_addSteamInputProfile(){
|
|
addSteamInputCustomIcons
|
|
rsync -r "$EMUDECKGIT/configs/steam-input/citra_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/"
|
|
} |