Cloud Services Manager/Emulators: Clean up (#1270)

* Updated installEmuAI and installEmuFP to be more dynamic
    * Allows for selecting if the application is an "emulator", "remoteplay", or "genericapplication"
        * Based off the choice, copies the respective bash file to the correct location
    * Allows for selecting file format of the downloaded AppImage (in case it's compressed and needs to be extracted)
    * Updated relevant scripts to match new changes
    * Cleaned up formatting of these two scripts
    * Cleaned up remoteplay Flatpak scripts to match new changes (allows for easier maintenance)
    * With these changes, remoteplay and generic application AppImages will now have a desktop file created
        * Added relevant desktop icons
* Added generic applications to cloud services manager
    * Added Cider, Heroic Games Launcher, Plexamp, Spotify, and Tidal
    * Moved Spotify here from remoteplay scripts
* Added chiaki4deck to remote play scripts
    * Added copying configs from Chiaki to chiaki4deck (if one does not exist already)
* Added uninstall option if bash scripts are detected in the remoteplay or generic-applications folder
    * If user installed these applications independent of EmuDeck, these folders would be empty and therefore can be skipped in the uninstallation
* Updated emulator, remoteplay, and generic-application scripts to rely more heavily on installEmuAI, installEmuFP, uninstallEmuFP, uninstallEmuAI, and uninstallGeneric
    * This should ideally improve maintenance in the future and allow for easier contribution
* Updated emulator scripts to remove redunant/outdated code
* Added emulator folder for ES-DE and Pegasus (official support was added to ES-DE)
    * Added copying emulator scripts to the emulator folder and removing when uninstalled
* Updated binupdate and flatpakupdate to be in alphabetical order/tidied these scripts
This commit is contained in:
rawdatafeel 2024-06-27 12:41:59 -04:00 committed by Dragoon Dorise
parent 852db5d02f
commit 5dbee04a3d
67 changed files with 1433 additions and 368 deletions

View File

@ -43,12 +43,14 @@
/run/media/mmcblk0p1/Emulation/roms/daphne
/run/media/mmcblk0p1/Emulation/roms/desktop
/run/media/mmcblk0p1/Emulation/roms/desktop/cloud
/run/media/mmcblk0p1/Emulation/roms/desktop/generic-applications
/run/media/mmcblk0p1/Emulation/roms/desktop/remoteplay
/run/media/mmcblk0p1/Emulation/roms/doom
/run/media/mmcblk0p1/Emulation/roms/dos
/run/media/mmcblk0p1/Emulation/roms/dragon32
/run/media/mmcblk0p1/Emulation/roms/dreamcast
/run/media/mmcblk0p1/Emulation/roms/easyrpg
/run/media/mmcblk0p1/Emulation/roms/emulators
/run/media/mmcblk0p1/Emulation/roms/epic
/run/media/mmcblk0p1/Emulation/roms/famicom
/run/media/mmcblk0p1/Emulation/roms/fba

View File

@ -31,9 +31,11 @@ BigPEmu_install(){
cp "$EMUDECKGIT/tools/launchers/bigpemu.sh" "$toolsPath/launchers/bigpemu.sh"
# So users can still open BigPEmu from the ~/Applications folder.
cp "$EMUDECKGIT/tools/launchers/bigpemu.sh" "$HOME/Applications/BigPEmu/bigpemu.sh"
cp "$EMUDECKGIT/tools/launchers/bigpemu.sh" "$romsPath/emulators/bigpemu.sh"
chmod +x "${toolsPath}/launchers/bigpemu.sh"
chmod +x "$HOME/Applications/BigPEmu/bigpemu.sh"
chmod +x "$romsPath/emulators/bigpemu.sh"
createDesktopShortcut "$HOME/.local/share/applications/BigPEmu (Proton).desktop" \
"BigPEmu (Proton)" \
@ -164,10 +166,7 @@ BigPEmu_wipeSettings(){
#Uninstall
BigPEmu_uninstall(){
setMSG "Uninstalling $BigPEmu_emuName. ROMs will be retained in the ROMs folder. Saves will be retained in "$HOME/Applications/BigPEmu/UserData"."
find "$HOME/Applications/BigPEmu" -mindepth 1 -name UserData -prune -o -exec rm -rf '{}' \; &>> /dev/null
rm -rf "$HOME/.local/share/applications/BigPEmu (Proton).desktop"
BigPEmu_wipeSettings
uninstallGeneric $BigPEmu_emuName $BigPEmu_emuPath "" "emulator"
}
#setABXYstyle

View File

@ -253,14 +253,14 @@ Cemu_functions () {
# Uninstall
uninstall () {
setMSG "Uninstalling ${CemuNative[emuName]}."
rm -rf "${CemuNative[emuPath]}"
uninstallEmuAI "Cemu" "" "" "emulator"
}
# Install
install () {
echo "Begin Cemu - Native Install"
local showProgress="$1"
if installEmuAI "Cemu" "$(getReleaseURLGH "cemu-project/Cemu" ".AppImage")" "" "" "$showProgress"; then # Cemu.AppImage
if installEmuAI "Cemu" "$(getReleaseURLGH "cemu-project/Cemu" ".AppImage")" "" "" "emulator" "$showProgress"; then # Cemu.AppImage
:
else
return 1

View File

@ -12,7 +12,7 @@ Citra_texturesPath="$HOME/.config/citra-emu/load/textures"
Citra_install(){
echo "Begin $Citra_emuName Install"
local showProgress="$1"
if installEmuAI "$Citra_emuName" "$(getReleaseURLGH "PabloMK7/citra" "tar.gz" "" "appimage")" "citra" "tar.gz" "$showProgress"; then #citra-qt.AppImage
if installEmuAI "$Citra_emuName" "$(getReleaseURLGH "PabloMK7/citra" "tar.gz" "" "appimage")" "citra" "tar.gz" "emulator" "$showProgress"; then #citra-qt.AppImage
mkdir "$HOME/Applications/citra-temp"
tar -xvzf "$HOME/Applications/citra.tar.gz" -C "$HOME/Applications/citra-temp" --strip-components 1
mv "$HOME/Applications/citra-temp/citra-qt.AppImage" "$HOME/Applications"
@ -174,8 +174,7 @@ Citra_wipe(){
#Uninstall
Citra_uninstall(){
setMSG "Uninstalling $Citra_emuName."
rm -rf "$Citra_emuPath"
rm -rf $HOME/.local/share/applications/Citra.desktop
uninstallEmuAI $Citra_emuName "citra-qt" "" "emulator"
}
#setABXYstyle

View File

@ -36,7 +36,7 @@ Dolphin_cleanup(){
Dolphin_install(){
setMSG "${Dolphin_emuName}: Install"
echo ""
installEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}"
installEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}" "emulator" ""
}
#ApplyInitialSettings
@ -59,8 +59,8 @@ Dolphin_init(){
#update
Dolphin_update(){
setMSG "${Dolphin_emuName}: Apply configuration Update"
echo ""
configEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}"
updateEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}" "emulator" ""
Dolphin_setupStorage
Dolphin_setEmulationFolder
Dolphin_setupSaves
@ -110,7 +110,7 @@ Dolphin_wipe(){
#Uninstall
Dolphin_uninstall(){
flatpak uninstall "$Dolphin_emuPath" --user -y
uninstallEmuFP "${Dolphin_emuName}" "${Dolphin_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -14,7 +14,7 @@ DuckStation_cleanup(){
#Install
DuckStation_install(){
setMSG "Installing $DuckStation_emuName"
installEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}"
installEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}" "emulator" ""
}
#ApplyInitialSettings
@ -36,6 +36,7 @@ DuckStation_init(){
DuckStation_update(){
setMSG "Updating $DuckStation_emuName settings."
configEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}"
updateEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}" "emulator" ""
DuckStation_setupStorage
DuckStation_setEmulationFolder
DuckStation_setupSaves
@ -90,7 +91,7 @@ DuckStation_wipe(){
#Uninstall
DuckStation_uninstall(){
setMSG "Uninstalling ${DuckStation_emuName}."
flatpak uninstall "$DuckStation_emuPath" --user -y
uninstallEmuFP "${DuckStation_emuName}" "${DuckStation_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -14,14 +14,14 @@ Flycast_cleanup(){
#Install
Flycast_install(){
setMSG "Installing $Flycast_emuName"
installEmuFP "${Flycast_emuName}" "${Flycast_emuPath}"
installEmuFP "${Flycast_emuName}" "${Flycast_emuPath}" "emulator" ""
}
#ApplyInitialSettings
Flycast_init(){
setMSG "Initializing $Flycast_emuName settings."
configEmuFP "${Flycast_emuName}" "${Flycast_emuPath}" "true"
updateEmuFP "${Flycast_emuName}" "${Flycast_emuPath}" "emulator" ""
Flycast_setupStorage
Flycast_setEmulationFolder
Flycast_setupSaves
@ -79,7 +79,7 @@ Flycast_wipe(){
#Uninstall
Flycast_uninstall(){
setMSG "Uninstalling ${Flycast_emuName}."
flatpak uninstall "$Flycast_emuPath" --user -y
uninstallEmuFP "${Flycast_emuName}" "${Flycast_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -13,7 +13,7 @@ MAME_cleanup(){
#Install
MAME_install(){
installEmuFP "${MAME_emuName}" "${MAME_emuPath}"
installEmuFP "${MAME_emuName}" "${MAME_emuPath}" "emulator" ""
}
#Fix for autoupdate
@ -51,6 +51,7 @@ MAME_init(){
#update
MAME_update(){
configEmuAI "${MAME_emuName}" "mame" "$HOME/.mame" "${EMUDECKGIT}/configs/mame"
updateEmuFP "${MAME_emuName}" "${MAME_emuPath}" "emulator" ""
MAME_setupStorage
MAME_setEmulationFolder
MAME_setupSaves
@ -134,7 +135,7 @@ MAME_wipe(){
#Uninstall
MAME_uninstall(){
flatpak uninstall "$MAME_emuPath" --user -y
uninstallEmuFP "${MAME_emuName}" "${MAME_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -14,7 +14,7 @@ mGBA_cleanup(){
mGBA_install(){
echo "Begin mGBA Install"
local showProgress="$1"
if installEmuAI "$mGBA_emuName" "$(getReleaseURLGH "mgba-emu/mgba" "x64.appimage")" "" "" "$showProgress"; then #mGBA.AppImage
if installEmuAI "$mGBA_emuName" "$(getReleaseURLGH "mgba-emu/mgba" "x64.appimage")" "" "" "emulator" "$showProgress"; then #mGBA.AppImage
:
else
return 1
@ -97,7 +97,7 @@ mGBA_wipe(){
#Uninstall
mGBA_uninstall(){
setMSG "Uninstalling $mGBA_emuName."
rm -rf "$mGBA_emuPath"
uninstallEmuAI "$mGBA_emuName" "" "" "emulator"
}
#setABXYstyle

View File

@ -14,7 +14,7 @@ melonDS_finalize(){
#Install
melonDS_install(){
setMSG "Installing $melonDS_emuName"
installEmuFP "${melonDS_emuName}" "${melonDS_emuPath}"
installEmuFP "${melonDS_emuName}" "${melonDS_emuPath}" "emulator" ""
}
#Fix for autoupdate
@ -38,6 +38,7 @@ melonDS_init(){
melonDS_update(){
setMSG "Updating $melonDS_emuName settings."
configEmuFP "${melonDS_emuName}" "${melonDS_emuPath}"
updateEmuFP "${melonDS_emuName}" "${melonDS_emuPath}" "emulator" ""
melonDS_setupStorage
melonDS_setEmulationFolder
melonDS_setupSaves
@ -111,7 +112,7 @@ melonDS_wipe(){
#Uninstall
melonDS_uninstall(){
setMSG "Uninstalling $melonDS_emuName."
flatpak uninstall "$melonDS_emuPath" --user -y
uninstallEmuFP "${melonDS_emuName}" "${melonDS_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -33,6 +33,12 @@ Model2_install(){
fi
cp "$EMUDECKGIT/tools/launchers/model-2-emulator.sh" "$toolsPath/launchers/model-2-emulator.sh"
cp "$EMUDECKGIT/tools/launchers/model-2-emulator.sh" "$romsPath/model2/model-2-emulator.sh"
cp "$EMUDECKGIT/tools/launchers/model-2-emulator.sh" "$romsPath/emulators/model-2-emulator.sh"
chmod +x "$toolsPath/launchers/model-2-emulator.sh"
chmod +x "$romsPath/emulators/model-2-emulator.sh"
chmod +x "$romsPath/model2/model-2-emulator.sh"
createDesktopShortcut "$HOME/.local/share/applications/Model 2 Emulator (Proton).desktop" \
"$Model2_emuName (Proton)" \
@ -126,6 +132,9 @@ Model2_uninstall(){
rm -rf "$HOME/.local/share/applications/Model 2 Emulator (Proton).desktop" &>> /dev/null
rm -rf "$STEAMPATH/compatibilitytools.d/ULWGL-Proton-8.0-5-3" &>> /dev/null
rm -rf "$HOME/.local/share/ULWGL" &> /dev/null
rm -rf "${toolsPath}/launchers/model-2-emulator.sh"
rm -rf "$romsPath/emulators/model-2-emulator.sh"
rm -rf "$romsPath/model2/model-2-emulator.sh"
Model2_wipeSettings
}

View File

@ -16,7 +16,7 @@ PCSX2QT_install() {
local showProgress="$1"
#if installEmuAI "${PCSX2QT_emuName}" "https://github.com/PCSX2/pcsx2/releases/download/v1.7.4749/pcsx2-v1.7.4749-linux-appimage-x64-Qt.AppImage" "pcsx2-Qt" "$showProgress"; then # pcsx2-Qt.AppImage - filename capitalization matters for ES-DE to find it
if installEmuAI "${PCSX2QT_emuName}" "$(getReleaseURLGH "PCSX2/pcsx2" "Qt.AppImage")" "pcsx2-Qt" "" "$showProgress"; then # pcsx2-Qt.AppImage - filename capitalization matters for ES-DE to find it
if installEmuAI "${PCSX2QT_emuName}" "$(getReleaseURLGH "PCSX2/pcsx2" "Qt.AppImage")" "pcsx2-Qt" "" "emulator" "$showProgress"; then # pcsx2-Qt.AppImage - filename capitalization matters for ES-DE to find it
rm -rf $HOME/.local/share/applications/pcsx2-Qt.desktop &>/dev/null # delete old shortcut
else
return 1
@ -219,8 +219,8 @@ PCSX2QT_wipe() {
#Uninstall
PCSX2QT_uninstall() {
setMSG "Uninstalling $PCSX2QT_emuName."
rm -rf "$PCSX2QT_emuPath"
PCSX2QT_wipe
uninstallEmuAI "$PCSX2QT_emuName" "pcsx2-Qt" "" "emulator"
#PCSX2QT_wipe
}
#setABXYstyle

View File

@ -13,8 +13,8 @@ PPSSPP_cleanup(){
#Install
PPSSPP_install(){
setMSG "Installing $PPSSPP_emuName"
installEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}"
setMSG "Installing $PPSSPP_emuName"
installEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}" "emulator" ""
}
#Fix for autoupdate
Ppsspp_install(){
@ -38,6 +38,7 @@ PPSSPP_init(){
PPSSPP_update(){
setMSG "Updating $PPSSPP_emuName settings."
configEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}"
updateEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}" "emulator" ""
PPSSPP_setupStorage
PPSSPP_setEmulationFolder
PPSSPP_setupSaves
@ -72,7 +73,7 @@ PPSSPP_wipe(){
#Uninstall
PPSSPP_uninstall(){
flatpak uninstall "$PPSSPP_emuPath" --user -y
uninstallEmuFP "${PPSSPP_emuName}" "${PPSSPP_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -16,7 +16,7 @@ Primehack_cleanup(){
#Install
Primehack_install() {
setMSG "Installing $Primehack_emuName"
installEmuFP "${Primehack_emuName}" "${Primehack_emuPath}"
installEmuFP "${Primehack_emuName}" "${Primehack_emuPath}" "emulator" ""
}
#ApplyInitialSettings
@ -34,7 +34,8 @@ Primehack_init() {
#update
Primehack_update() {
setMSG "Updating $Primehack_emuName settings."
configEmuFP "${Primehack_emuName}" "${Primehack_emuPath}"
configEmuFP "${Primehack_emuName}" "${Primehack_emuPath}"
updateEmuFP "${Primehack_emuName}" "${Primehack_emuPath}" "emulator" ""
Primehack_setupStorage
Primehack_setEmulationFolder
Primehack_setupSaves
@ -73,7 +74,7 @@ Primehack_wipe() {
#Uninstall
Primehack_uninstall() {
flatpak uninstall "${Primehack_emuPath}" -y
uninstallEmuFP "${Primehack_emuName}" "${Primehack_emuPath}" "emulator" ""
}
#setABXYstyle
@ -83,7 +84,7 @@ Primehack_setABXYstyle(){
#Migrate
Primehack_migrate(){
migrateDolphinStates "primehack" "io.github.shiiion.primehack"
migrateDolphinStates "primehack" "io.github.shiiion.primehack"
}
#WideScreenOn

View File

@ -14,8 +14,7 @@ RMG_cleanup(){
#Install
RMG_install() {
setMSG "Installing $RMG_emuName"
installEmuFP "${RMG_emuName}" "${RMG_emuPath}"
installEmuFP "${RMG_emuName}" "${RMG_emuPath}" "emulator" ""
}
#Fix for autoupdate
@ -44,6 +43,7 @@ RMG_update() {
setMSG "Installing $RMG_emuName"
configEmuFP "${RMG_emuName}" "${RMG_emuPath}"
updateEmuFP "${RMG_emuName}" "${RMG_emuPath}" "emulator" ""
RMG_setupStorage
RMG_setEmulationFolder
RMG_setupSaves
@ -139,7 +139,7 @@ RMG_wipe(){
#Uninstall
RMG_uninstall(){
flatpak uninstall "$RMG_emuPath" --user -y
uninstallEmuFP "${RMG_emuName}" "${RMG_emuPath}" "emulator" ""
}
#Migrate

View File

@ -38,7 +38,7 @@ RPCS3_install(){
# Install RPCS3
local showProgress="$1"
if installEmuAI "$RPCS3_emuName" "$RPCS3_releaseURL" "rpcs3" "" "$showProgress"; then # rpcs3.AppImage - needs to be lowercase yuzu for EsDE to find it
if installEmuAI "$RPCS3_emuName" "$RPCS3_releaseURL" "rpcs3" "" "emulator" "$showProgress"; then #
:
else
return 1
@ -131,8 +131,8 @@ RPCS3_wipe(){
#Uninstall
RPCS3_uninstall(){
setMSG "Uninstalling $RPCS3_emuName."
rm -rf "$RPCS3_emuPath"
RPCS3_wipe
uninstallEmuAI "$RPCS3_emuName" "rpcs3" "" "emulator"
#RPCS3_wipe
}
#setABXYstyle

View File

@ -39,8 +39,8 @@ RetroArch_backupConfigs(){
#Install
RetroArch_install(){
setMSG "Installing $RetroArch_emuName"
installEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}"
setMSG "Installing $RetroArch_emuName"
installEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" "emulator" ""
RetroArch_installCores
}
@ -58,6 +58,7 @@ RetroArch_init(){
RetroArch_backupConfigs
configEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" "true"
updateEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" "emulator"
RetroArch_setEmulationFolder
RetroArch_setupSaves
RetroArch_setupStorage
@ -194,6 +195,7 @@ RetroArch_update(){
setMSG "Updating $RetroArch_emuName settings."
RetroArch_backupConfigs
configEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}"
updateEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" "emulator" ""
RetroArch_setEmulationFolder
RetroArch_setupSaves
RetroArch_setupStorage
@ -340,7 +342,7 @@ RetroArch_wipe(){
#Uninstall
RetroArch_uninstall(){
flatpak uninstall "$RetroArch_emuPath" --user -y
uninstallEmuFP "${RetroArch_emuName}" "${RetroArch_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -192,7 +192,7 @@ Ryujinx_wipe(){
#Uninstall
Ryujinx_uninstall(){
echo "Begin Ryujinx uninstall"
rm -rf "$Ryujinx_emuPath"
uninstallGeneric $Ryujinx_emuName $Ryujinx_emuPath "" "emulator"
}
#Migrate

View File

@ -13,9 +13,8 @@ ScummVM_cleanup(){
#Install
ScummVM_install(){
installEmuFP "${ScummVM_emuName}" "${ScummVM_emuPath}"
flatpak override "${ScummVM_emuPath}" --filesystem=host --user
flatpak override "${ScummVM_emuPath}" --share=network --user
installEmuFP "${ScummVM_emuName}" "${ScummVM_emuPath}" "emulator" ""
}
#Fix for autoupdate
@ -26,6 +25,7 @@ Scummvm_install(){
#ApplyInitialSettings
ScummVM_init(){
configEmuFP "${ScummVM_emuName}" "${ScummVM_emuPath}" "true"
updateEmuFP "${ScummVM_emuName}" "${ScummVM_emuPath}" "emulator" ""
ScummVM_setupStorage
ScummVM_setEmulationFolder
ScummVM_setupSaves
@ -84,7 +84,7 @@ ScummVM_wipe(){
#Uninstall
ScummVM_uninstall(){
flatpak uninstall "$ScummVM_emuPath" --user -y
uninstallEmuFP "${ScummVM_emuName}" "${ScummVM_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -15,7 +15,7 @@ Supermodel_cleanup(){
#Install
Supermodel_install(){
setMSG "Installing $Supermodel_emuName"
installEmuFP "${Supermodel_emuName}" "${Supermodel_emuPath}"
installEmuFP "${Supermodel_emuName}" "${Supermodel_emuPath}" "emulator" ""
}
#ApplyInitialSettings
@ -47,6 +47,7 @@ Supermodel_update(){
rm -rf "$HOME/.supermodel/Config/Games.xml"
fi
wget "$Supermodel_gamesList" -P "$HOME/.supermodel/Config/"
updateEmuFP "${Supermodel_emuName}" "${Supermodel_emuPath}" "emulator" ""
Supermodel_setupStorage
Supermodel_setEmulationFolder
Supermodel_setupSaves
@ -79,7 +80,7 @@ Supermodel_wipe(){
#Uninstall
Supermodel_uninstall(){
flatpak uninstall "$Supermodel_emuPath" --user -y
uninstallEmuFP "${Supermodel_emuName}" "${Supermodel_emuPath}" "emulator" ""
rm -rf "$HOME/.supermodel"
}

View File

@ -94,7 +94,7 @@ Vita3K_wipe(){
#Uninstall
Vita3K_uninstall(){
echo "Begin Vita3K uninstall"
rm -rf "$Vita3K_emuPath"
uninstallGeneric $Vita3K_emuName $Vita3K_emuPath "" "emulator"
}
#Migrate

View File

@ -24,12 +24,13 @@ Xemu_cleanup(){
#Install
Xemu_install() {
installEmuFP "${Xemu_emuName}" "${Xemu_emuPath}"
installEmuFP "${Xemu_emuName}" "${Xemu_emuPath}" "emulator" ""
}
#ApplyInitialSettings
Xemu_init() {
configEmuFP "${Xemu_emuName}" "${Xemu_emuPath}" "true"
updateEmuFP "${Xemu_emuName}" "${Xemu_emuPath}" "emulator" ""
Xemu_migrate
Xemu_setupStorage
Xemu_setEmulationFolder
@ -112,7 +113,7 @@ Xemu_wipe() {
#Uninstall
Xemu_uninstall() {
flatpak uninstall "$Xemu_emuPath" --user -y
uninstallEmuFP "${Xemu_emuName}" "${Xemu_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -42,6 +42,8 @@ Xenia_install(){
fi
cp "$EMUDECKGIT/tools/launchers/xenia.sh" "${toolsPath}/launchers/xenia.sh"
cp "$EMUDECKGIT/tools/launchers/xenia.sh" "$romsPath/emulators/xenia.sh"
cp "$EMUDECKGIT/tools/launchers/xenia.sh" "$romsPath/xbox360/xenia.sh"
sed -i "s|/run/media/mmcblk0p1/Emulation/tools|${toolsPath}|g" "${toolsPath}/launchers/xenia.sh"
sed -i "s|/run/media/mmcblk0p1/Emulation/roms|${romsPath}|" "${toolsPath}/launchers/xenia.sh"
mkdir -p "$romsPath/xbox360/roms/xbla"
@ -50,6 +52,8 @@ Xenia_install(){
# changeLine '"${PROTONLAUNCH}"' "$launchLine" "${toolsPath}/launchers/xenia.sh"
# fi
chmod +x "${toolsPath}/launchers/xenia.sh"
chmod +x "$romsPath/emulators/xenia.sh"
chmod +x "$romsPath/xbox360/xenia.sh"
Xenia_getPatches
Xenia_cleanESDE
@ -156,6 +160,9 @@ Xenia_uninstall(){
setMSG "Uninstalling $Xenia_emuName. Saves and ROMs will be retained in the ROMs folder."
find ${romsPath}/xbox360 -mindepth 1 \( -name roms -o -name content \) -prune -o -exec rm -rf '{}' \; &>> /dev/null
rm -rf $HOME/.local/share/applications/xenia.desktop &> /dev/null
rm -rf "${toolsPath}/launchers/xenia.sh"
rm -rf "$romsPath/emulators/xenia.sh"
rm -rf "$romsPath/xbox360/xenia.sh"
}
#setABXYstyle

View File

@ -14,7 +14,7 @@ ares_cleanup(){
ares_install() {
setMSG "Installing $ares_emuName"
installEmuFP "${ares_emuName}" "${ares_emuPath}"
installEmuFP "${ares_emuName}" "${ares_emuPath}" "emulator" ""
}
#ApplyInitialSettings
@ -40,6 +40,7 @@ ares_update() {
setMSG "Installing $ares_emuName"
configEmuFP "${ares_emuName}" "${ares_emuPath}"
updateEmuFP "${ares_emuName}" "${ares_emuPath}" "emulator" ""
ares_setupStorage
ares_setEmulationFolder
ares_setupSaves
@ -285,7 +286,7 @@ ares_wipe(){
#Uninstall
ares_uninstall(){
flatpak uninstall "$ares_emuPath" --user -y
uninstallEmuFP "${ares_emuName}" "${ares_emuPath}" "emulator" ""
}
#setABXYstyle

View File

@ -0,0 +1,47 @@
#!/bin/bash
# Variables
Cider_emuName="Cider"
Cider_emuType="$emuDeckEmuTypeFlatpak"
Cider_emuPath="sh.cider.Cider"
# Install
Cider_install() {
setMSG "Installing $Cider_emuName."
installEmuFP "${Cider_emuName}" "${Cider_emuPath}" "genericapplication" ""
}
# ApplyInitialSettings
Cider_init() {
setMSG "Initializing $Cider_emuName settings."
configEmuFP "$Cider_emuName" "$Cider_emuPath" "true"
}
# Update flatpak & launcher script
Cider_update() {
setMSG "Updating $Cider_emuName settings."
updateEmuFP "${Cider_emuName}" "${Cider_emuPath}" "genericapplication" ""
}
# Uninstall
Cider_uninstall() {
setMSG "Uninstalling $Cider_emuName."
uninstallEmuFP "$Cider_emuName" "$Cider_emuPath" "genericapplication" ""
}
# Check if installed
Cider_IsInstalled() {
if [ "$(flatpak --columns=app list | grep "$Cider_emuPath")" == "$Cider_emuPath" ]; then
echo true
return 1
else
echo false
return 0
fi
}
# Import steam profile
Cider_addSteamInputProfile() {
echo "NYI"
#rsync -r "$EMUDECKGIT/configs/steam-input/emudeck_Cider_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/"
}

View File

@ -0,0 +1,48 @@
#!/bin/bash
# Variables
Heroic_emuName="Heroic-Games-Launcher"
Heroic_emuType="$emuDeckEmuTypeAppImage"
Heroic_emuPath="$HOME/Applications/Heroic-Games-Launcher.AppImage"
# Install
Heroic_install() {
setMSG "Installing $Heroic_emuName."
local showProgress=$1
installEmuAI "$Heroic_emuName" "$(getReleaseURLGH "Heroic-Games-Launcher/HeroicGamesLauncher" ".AppImage")" "" "" "genericapplication" "$showProgress"
}
# ApplyInitialSettings
Heroic_init() {
echo "NYI"
}
# Update appimage
Heroic_update() {
setMSG "Updating $Heroic_emuName settings."
rm -f "$Heroic_emuPath"
Heroic_install
}
# Uninstall
Heroic_uninstall() {
setMSG "Uninstalling $Heroic_emuName."
uninstallEmuAI "$Heroic_emuName" "" "" "genericapplication"
}
# Check if installed
Heroic_IsInstalled() {
if [ -f "$Heroic_emuPath" ]; then
echo true
return 1
else
echo false
return 0
fi
}
# Import steam profile
Heroic_addSteamInputProfile() {
echo "NYI"
}

View File

@ -0,0 +1,47 @@
#!/bin/bash
# Variables
Plexamp_emuName="Plexamp"
Plexamp_emuType="$emuDeckEmuTypeFlatpak"
Plexamp_emuPath="com.plexamp.Plexamp"
Plexamp_releaseURL=""
# Install
Plexamp_install() {
setMSG "Installing $Plexamp_emuName."
installEmuFP "${Plexamp_emuName}" "${Plexamp_emuPath}" "genericapplication" ""
}
# ApplyInitialSettings
Plexamp_init() {
setMSG "Initializing $Plexamp_emuName settings."
configEmuFP "$Plexamp_emuName" "$Plexamp_emuPath" "true"
}
# Update flatpak & launcher script
Plexamp_update() {
setMSG "Updating $Plexamp_emuName settings."
updateEmuFP "${Plexamp_emuName}" "${Plexamp_emuPath}" "genericapplication" ""
}
# Uninstall
Plexamp_uninstall() {
setMSG "Uninstalling $Plexamp_emuName."
uninstallEmuFP "$Plexamp_emuName" "$Plexamp_emuPath" "genericapplication" ""
}
# Check if installed
Plexamp_IsInstalled() {
if [ "$(flatpak --columns=app list | grep "$Plexamp_emuPath")" == "$Plexamp_emuPath" ]; then
echo true
return 1
else
echo false
return 0
fi
}
# Import steam profile
Plexamp_addSteamInputProfile() {
echo "NYI"
}

View File

@ -2,21 +2,14 @@
# Variables
Spotify_emuName="Spotify"
Spotify_emuType="FlatPak"
Spotify_emuType="$emuDeckEmuTypeFlatpak"
Spotify_emuPath="com.spotify.Client"
Spotify_releaseURL=""
# Install
Spotify_install() {
setMSG "Installing $Spotify_emuName."
local ID="$Spotify_emuPath"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user
flatpak install flathub "$ID" -y --user
flatpak override "$ID" --filesystem=host --user
flatpak override "$ID" --share=network --user
cp "$EMUDECKGIT/tools/remoteplayclients/Spotify.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Spotify.sh"
#Spotify_addSteamInputProfile
installEmuFP "${Spotify_emuName}" "${Spotify_emuPath}" "genericapplication" ""
}
# ApplyInitialSettings
@ -29,20 +22,13 @@ Spotify_init() {
# Update flatpak & launcher script
Spotify_update() {
setMSG "Updating $Spotify_emuName settings."
local ID="$Spotify_emuPath"
flatpak update $ID -y --user
flatpak override $ID --filesystem=host --user
flatpak override $ID --share=network --user
rm "$romsPath/remoteplay/Spotify.sh"
cp "$EMUDECKGIT/tools/remoteplayclients/Spotify.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Spotify.sh"
updateEmuFP "${Spotify_emuName}" "${Spotify_emuPath}" "genericapplication" ""
}
# Uninstall
Spotify_uninstall() {
setMSG "Uninstalling $Spotify_emuName."
uninstallEmuFP "$Spotify_emuPath"
rm "$romsPath/remoteplay/Spotify.sh"
uninstallEmuFP "$Spotify_emuName" "${Spotify_emuPath}" "genericapplication" ""
}
# Check if installed

View File

@ -0,0 +1,47 @@
#!/bin/bash
# Variables
Tidal_emuName="Tidal"
Tidal_emuType="$emuDeckEmuTypeFlatpak"
Tidal_emuPath="com.mastermindzh.tidal-hifi"
Tidal_releaseURL=""
# Install
Tidal_install() {
setMSG "Installing $Tidal_emuName."
installEmuFP "${Tidal_emuName}" "${Tidal_emuPath}" "genericapplication" ""
}
# ApplyInitialSettings
Tidal_init() {
setMSG "Initializing $Tidal_emuName settings."
configEmuFP "$Tidal_emuName" "$Tidal_emuPath" "true"
}
# Update flatpak & launcher script
Tidal_update() {
setMSG "Updating $Tidal_emuName settings."
updateEmuFP "${Tidal_emuName}" "${Tidal_emuPath}" "genericapplication" ""
}
# Uninstall
Tidal_uninstall() {
setMSG "Uninstalling $Tidal_emuName."
uninstallEmuFP "$Tidal_emuName" "$Tidal_emuPath" "genericapplication" ""
}
# Check if installed
Tidal_IsInstalled() {
if [ "$(flatpak --columns=app list | grep "$Tidal_emuPath")" == "$Tidal_emuPath" ]; then
echo true
return 1
else
echo false
return 0
fi
}
# Import steam profile
Tidal_addSteamInputProfile() {
echo "NYI"
}

View File

@ -9,14 +9,7 @@ Chiaki_releaseURL=""
# Install
Chiaki_install() {
setMSG "Installing $Chiaki_emuName."
local ID="$Chiaki_emuPath"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user
flatpak install flathub "$ID" -y --user
flatpak override "$ID" --filesystem=host --user
flatpak override "$ID" --share=network --user
cp "$EMUDECKGIT/tools/remoteplayclients/Chiaki Remote Play Client.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Chiaki Remote Play Client.sh"
#Chiaki_addSteamInputProfile
installEmuFP "${Chiaki_emuName}" "${Chiaki_emuPath}" "remoteplay" "Chiaki Remote Play Client"
}
# ApplyInitialSettings
@ -29,20 +22,13 @@ Chiaki_init() {
# Update flatpak & launcher script
Chiaki_update() {
setMSG "Updating $Chiaki_emuName settings."
local ID="$Chiaki_emuPath"
flatpak update $ID -y --user
flatpak override $ID --filesystem=host --user
flatpak override $ID --share=network --user
rm "$romsPath/remoteplay/Chiaki Remote Play Client.sh"
cp "$EMUDECKGIT/tools/remoteplayclients/Chiaki Remote Play Client.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Chiaki Remote Play Client.sh"
updateEmuFP "${Chiaki_emuName}" "${Chiaki_emuPath}" "remoteplay" "Chiaki Remote Play Client"
}
# Uninstall
Chiaki_uninstall() {
setMSG "Uninstalling $Chiaki_emuName."
uninstallEmuFP "$Chiaki_emuPath"
rm "$romsPath/remoteplay/Chiaki Remote Play Client.sh"
uninstallEmuFP "$Chiaki_emuName" "$Chiaki_emuPath" "remoteplay" "Chiaki Remote Play Client"
}
# Check if installed

View File

@ -0,0 +1,56 @@
#!/bin/bash
# Variables
Chiaki4deck_emuName="Chiaki4deck"
Chiaki4deck_emuType="$emuDeckEmuTypeAppImage"
Chiaki4deck_emuPath="$HOME/Applications/Chiaki4deck.AppImage"
# Install
Chiaki4deck_install() {
setMSG "Installing $Chiaki4deck_emuName."
local showProgress=$1
installEmuAI "$Chiaki4deck_emuName" "$(getReleaseURLGH "streetpea/chiaki4deck" ".AppImage")" "" "" "remoteplay" "$showProgress"
Chiaki4deck_copySettings
}
# ApplyInitialSettings
Chiaki4deck_init() {
echo "NYI"
}
# Update appimage
Chiaki4deck_update() {
setMSG "Updating $Chiaki4deck_emuName settings."
rm -f "$Chiaki4deck_emuPath"
Chiaki4deck_install
Chiaki4deck_copySettings
}
# Uninstall
Chiaki4deck_uninstall() {
setMSG "Uninstalling $Chiaki4deck_emuName."
uninstallEmuAI "$Chiaki4deck_emuName" "" "" "remoteplay"
}
# Check if installed
Chiaki4deck_IsInstalled() {
if [ -f "$Chiaki4deck_emuPath" ]; then
echo true
return 1
else
echo false
return 0
fi
}
Chiaki4deck_copySettings(){
# Copy settings from the Chiaki Flatpak if it exists and if there is not currently a settings file for the Chiaki4deck AppImage
if [ -f "$HOME/.var/app/re.chiaki.Chiaki/config/Chiaki/Chiaki.conf" ]; then
rsync -av --ignore-existing "$HOME/.var/app/re.chiaki.Chiaki/config/Chiaki/Chiaki.conf" "$HOME/.config/Chiaki/Chiaki.conf"
fi
}

View File

@ -11,10 +11,7 @@ Greenlight_install() {
echo "Begin Greenlight Install"
local showProgress="$1"
installEmuAI "Greenlight" "$(getReleaseURLGH "unknownskl/greenlight" ".AppImage")" "" "$showProgress"
cp "$EMUDECKGIT/tools/remoteplayclients/Greenlight.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Greenlight.sh"
installEmuAI "$Greenlight_emuName" "$(getReleaseURLGH "unknownskl/greenlight" ".AppImage")" "" "" "remoteplay" "$showProgress"
}
@ -38,8 +35,7 @@ Greenlight_update() {
# Uninstall
Greenlight_uninstall() {
setMSG "Uninstalling $Greenlight_emuName."
rm -f "$Greenlight_emuPath"
rm "$romsPath/remoteplay/Greenlight.sh"
uninstallEmuAI "$Greenlight_emuName" "" "" "remoteplay"
}
# Check if installed

View File

@ -9,14 +9,7 @@ Moonlight_releaseURL=""
# Install
Moonlight_install() {
setMSG "Installing $Moonlight_emuName."
local ID="$Moonlight_emuPath"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user
flatpak install flathub "$ID" -y --user
flatpak override "$ID" --filesystem=host --user
flatpak override "$ID" --share=network --user
cp "$EMUDECKGIT/tools/remoteplayclients/Moonlight Game Streaming.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Moonlight Game Streaming.sh"
#Moonlight_addSteamInputProfile
installEmuFP "${Moonlight_emuName}" "${Moonlight_emuPath}" "remoteplay" "Moonlight Game Streaming"
}
# ApplyInitialSettings
@ -29,20 +22,13 @@ Moonlight_init() {
# Update flatpak & launcher script
Moonlight_update() {
setMSG "Updating $Moonlight_emuName settings."
local ID="$Moonlight_emuPath"
flatpak update $ID -y --user
flatpak override $ID --filesystem=host --user
flatpak override $ID --share=network --user
rm "$romsPath/remoteplay/Moonlight Game Streaming.sh"
cp "$EMUDECKGIT/tools/remoteplayclients/Moonlight Game Streaming.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Moonlight Game Streaming.sh"
updateEmuFP "${Moonlight_emuName}" "${Moonlight_emuPath}" "remoteplay" "Moonlight Game Streaming"
}
# Uninstall
Moonlight_uninstall() {
setMSG "Uninstalling $Moonlight_emuName."
uninstallEmuFP "$Moonlight_emuPath"
rm "$romsPath/remoteplay/Moonlight Game Streaming.sh"
uninstallEmuFP "$Moonlight_emuName" "$Moonlight_emuPath" "remoteplay" "Moonlight Game Streaming"
}
# Check if installed

View File

@ -9,14 +9,7 @@ Parsec_releaseURL=""
# Install
Parsec_install() {
setMSG "Installing $Parsec_emuName."
local ID="$Parsec_emuPath"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user
flatpak install flathub "$ID" -y --user
flatpak override "$ID" --filesystem=host --user
flatpak override "$ID" --share=network --user
cp "$EMUDECKGIT/tools/remoteplayclients/Parsec.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Parsec.sh"
#Parsec_addSteamInputProfile
installEmuFP "${Parsec_emuName}" "${Parsec_emuPath}" "remoteplay" ""
}
# ApplyInitialSettings
@ -29,20 +22,13 @@ Parsec_init() {
# Update flatpak & launcher script
Parsec_update() {
setMSG "Updating $Parsec_emuName settings."
local ID="$Parsec_emuPath"
flatpak update $ID -y --user
flatpak override $ID --filesystem=host --user
flatpak override $ID --share=network --user
rm "$romsPath/remoteplay/Parsec.sh"
cp "$EMUDECKGIT/tools/remoteplayclients/Parsec.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Parsec.sh"
updateEmuFP "${Parsec_emuName}" "${Parsec_emuPath}" "remoteplay" ""
}
# Uninstall
Parsec_uninstall() {
setMSG "Uninstalling $Parsec_emuName."
uninstallEmuFP "$Parsec_emuPath"
rm "$romsPath/remoteplay/Parsec.sh"
uninstallEmuFP "$Parsec_emuName" "$Parsec_emuPath" "remoteplay" ""
}
# Check if installed

View File

@ -2,7 +2,7 @@
# Variables
ShadowPC_emuName="ShadowPC"
ShadowPC_emuType="AppImage"
ShadowPC_emuType="$emuDeckEmuTypeAppImage"
ShadowPC_emuPath="$HOME/Applications/ShadowPC.AppImage"
ShadowPC_releaseURL="https://update.Shadow.tech/launcher/prod/linux/ubuntu_18.04/ShadowPC.AppImage"
@ -12,11 +12,7 @@ ShadowPC_install() {
local showProgress=$1
#local installShadowPC=$(wget -q $ShadowPC_releaseURL -P $ShadowPC_emuPath)
installEmuAI "ShadowPC" $ShadowPC_releaseURL "" "" "$showProgress"
cp "$EMUDECKGIT/tools/remoteplayclients/ShadowPC.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/ShadowPC.sh"
installEmuAI "$ShadowPC_emuName" $ShadowPC_releaseURL "" "" "remoteplay" "$showProgress"
}
# ApplyInitialSettings
@ -28,7 +24,7 @@ ShadowPC_init() {
# Update appimage
ShadowPC_update() {
setMSG "Updating $ShadowPC_emuName settings."
setMSG "Updating $ShadowPC_emuName settings."
rm -f "$ShadowPC_emuPath"
ShadowPC_install
}
@ -36,8 +32,7 @@ ShadowPC_update() {
# Uninstall
ShadowPC_uninstall() {
setMSG "Uninstalling $ShadowPC_emuName."
rm -f "$ShadowPC_emuPath"
rm -f "$romsPath/remoteplay/ShadowPC.sh"
uninstallEmuAI "$ShadowPC_emuName" "" "" "remoteplay"
}
# Check if installed

View File

@ -2,21 +2,14 @@
# Variables
SteamLink_emuName="SteamLink"
SteamLink_emuType="FlatPak"
SteamLink_emuType="$emuDeckEmuTypeFlatpak"
SteamLink_emuPath="com.valvesoftware.SteamLink"
SteamLink_releaseURL=""
# Install
SteamLink_install() {
setMSG "Installing $SteamLink_emuName."
local ID="$SteamLink_emuPath"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user
flatpak install flathub "$ID" -y --user
flatpak override "$ID" --filesystem=host --user
flatpak override "$ID" --share=network --user
cp "$EMUDECKGIT/tools/remoteplayclients/SteamLink.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/SteamLink.sh"
#SteamLink_addSteamInputProfile
installEmuFP "${SteamLink_emuName}" "${SteamLink_emuPath}" "remoteplay" ""
}
# ApplyInitialSettings
@ -29,20 +22,13 @@ SteamLink_init() {
# Update flatpak & launcher script
SteamLink_update() {
setMSG "Updating $SteamLink_emuName settings."
local ID="$SteamLink_emuPath"
flatpak update $ID -y --user
flatpak override $ID --filesystem=host --user
flatpak override $ID --share=network --user
rm "$romsPath/remoteplay/SteamLink.sh"
cp "$EMUDECKGIT/tools/remoteplayclients/SteamLink.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/SteamLink.sh"
updateEmuFP "${SteamLink_emuName}" "${SteamLink_emuPath}" "remoteplay" ""
}
# Uninstall
SteamLink_uninstall() {
setMSG "Uninstalling $SteamLink_emuName."
uninstallEmuFP "$SteamLink_emuPath"
rm "$romsPath/remoteplay/SteamLink.sh"
uninstallEmuFP "$SteamLink_emuName" "$SteamLink_emuPath" "remoteplay" ""
}
# Check if installed

View File

@ -58,18 +58,27 @@ pegasus_init(){
rm -rf "$toolsPath/downloaded_media/3ds" &> /dev/null
fi
if [ -L "$toolsPath/downloaded_media/cloud" ]; then
rm -rf "$toolsPath/downloaded_media/cloud" &> /dev/null
fi
if [ -L "$toolsPath/downloaded_media/remoteplay" ]; then
rm -rf "$toolsPath/downloaded_media/remoteplay" &> /dev/null
fi
for systemPath in "$romsPath"/*; do
echo "$romsPath"
if [[ "$systemPath" == "$romsPath/model2" || "$systemPath" == "$romsPath/xbox360" || "$systemPath" == "$romsPath/wiiu" ]]; then
rm -rf "$systemPath/roms/media" &> /dev/null
rm -rf "$romsPath/xbox360/roms/xbla/media" &> /dev/null
rm -rf "$romsPath/xbox360/roms/xbla/metadata.txt" &> /dev/null
elif [[ "$systemPath" == "$romsPath/3ds" || "$systemPath" == "$romsPath/cloud" || "$systemPath" == "$romsPath/gamecube" || "$systemPath" == "$romsPath/generic-applications" || "$systemPath" == "$romsPath/remoteplay" ]]; then
continue
elif [[ "$systemPath" == "$romsPath/desktop" ]]; then
rm -rf "$romsPath/desktop/remoteplay/media" &> /dev/null
rm -rf "$romsPath/desktop/generic-applications/media" &> /dev/null
rm -rf "$romsPath/desktop/cloud/media" &> /dev/null
rm -rf "$systemPath/media" &> /dev/null
elif [[ "$systemPath" == "$romsPath/gamecube" || "$systemPath" == "$romsPath/3ds" ]]; then
continue
else
rm -rf "$systemPath/media" &> /dev/null
fi
@ -86,6 +95,8 @@ pegasus_init(){
rm -rf "$toolsPath/downloaded_media/$system/wheel" &> /dev/null
rm -rf "$toolsPath/downloaded_media/$system/screenshot" &> /dev/null
mkdir -p "$toolsPath/downloaded_media/$system/screenshots/"
elif [[ "$systemPath" == "$romsPath/3ds" || "$systemPath" == "$romsPath/cloud" || "$systemPath" == "$romsPath/gamecube" || "$systemPath" == "$romsPath/generic-applications" || "$systemPath" == "$romsPath/remoteplay" ]]; then
continue
elif [[ "$systemPath" == "$romsPath/desktop" ]]; then
system=$(echo "$systemPath" | sed 's/.*\/\([^\/]*\)\/\?$/\1/')
echo $system
@ -95,8 +106,6 @@ pegasus_init(){
rm -rf "$toolsPath/downloaded_media/$system/wheel" &> /dev/null
rm -rf "$toolsPath/downloaded_media/$system/screenshot" &> /dev/null
mkdir -p "$toolsPath/downloaded_media/$system/screenshots/"
elif [[ "$systemPath" == "$romsPath/gamecube" || "$systemPath" == "$romsPath/3ds" ]]; then
continue
else
system=$(echo "$systemPath" | sed 's/.*\/\([^\/]*\)\/\?$/\1/')
mkdir -p "$toolsPath/downloaded_media/$system/covers"
@ -116,20 +125,20 @@ pegasus_init(){
ln -s "$toolsPath/downloaded_media/$system/covers/" "$toolsPath/downloaded_media/$system/box2dfront" &> /dev/null
ln -s "$toolsPath/downloaded_media/$system/marquees/" "$toolsPath/downloaded_media/$system/wheel" &> /dev/null
ln -s "$toolsPath/downloaded_media/$system/screenshots/" "$toolsPath/downloaded_media/$system/screenshot" &> /dev/null
elif [[ "$systemPath" == "$romsPath/3ds" || "$systemPath" == "$romsPath/cloud" || "$systemPath" == "$romsPath/gamecube" || "$systemPath" == "$romsPath/generic-applications" || "$systemPath" == "$romsPath/remoteplay" ]]; then
continue
elif [[ "$systemPath" == "$romsPath/desktop" ]]; then
system=$(echo "$systemPath" | sed 's/.*\/\([^\/]*\)\/\?$/\1/')
mkdir -p "$romsPath/desktop/cloud"
mkdir -p "$romsPath/desktop/generic-applications"
mkdir -p "$romsPath/desktop/remoteplay"
ln -s "$toolsPath/downloaded_media/$system" "$systemPath/media" &> /dev/null
if [ -d "$romsPath/desktop/cloud" ]; then
ln -s "$toolsPath/downloaded_media/$system" "$systemPath/cloud/media" &> /dev/null
fi
if [ -d "$romsPath/desktop/remoteplay" ]; then
ln -s "$toolsPath/downloaded_media/$system" "$systemPath/remoteplay/media" &> /dev/null
fi
ln -s "$toolsPath/downloaded_media/$system" "$systemPath/cloud/media" &> /dev/null
ln -s "$toolsPath/downloaded_media/$system" "$systemPath/remoteplay/media" &> /dev/null
ln -s "$toolsPath/downloaded_media/$system" "$systemPath/generic-applications/media" &> /dev/null
ln -s "$toolsPath/downloaded_media/$system/covers/" "$toolsPath/downloaded_media/$system/box2dfront" &> /dev/null
ln -s "$toolsPath/downloaded_media/$system/marquees/" "$toolsPath/downloaded_media/$system/wheel" &> /dev/null
ln -s "$toolsPath/downloaded_media/$system/screenshots/" "$toolsPath/downloaded_media/$system/screenshot" &> /dev/null
elif [[ "$systemPath" == "$romsPath/gamecube" || "$systemPath" == "$romsPath/3ds" ]]; then
continue
else
system=$(echo "$systemPath" | sed 's/.*\/\([^\/]*\)\/\?$/\1/')
ln -s "$toolsPath/downloaded_media/$system" "$systemPath/media" &> /dev/null

View File

@ -40,7 +40,9 @@ source "$EMUDECKGIT"/functions/uninstallEmuFP.sh
source "$EMUDECKGIT"/functions/setMSG.sh
source "$EMUDECKGIT"/functions/emuDeckPrereqs.sh
source "$EMUDECKGIT"/functions/installEmuAI.sh
source "$EMUDECKGIT"/functions/uninstallEmuAI.sh
source "$EMUDECKGIT"/functions/installEmuBI.sh
source "$EMUDECKGIT"/functions/uninstallGeneric.sh
source "$EMUDECKGIT"/functions/installToolAI.sh
source "$EMUDECKGIT"/functions/migrateAndLinkConfig.sh
source "$EMUDECKGIT"/functions/nonDeck.sh
@ -100,15 +102,23 @@ source "$EMUDECKGIT"/functions/EmuScripts/emuDeckFlycast.sh
source "$EMUDECKGIT"/functions/EmuScripts/emuDeckSupermodel.sh
source "$EMUDECKGIT"/functions/EmuScripts/emuDeckModel2.sh
# Generic Application scripts
source "$EMUDECKGIT"/functions/GenericApplicationsScripts/genericApplicationCider.sh
source "$EMUDECKGIT"/functions/GenericApplicationsScripts/genericApplicationHeroic.sh
source "$EMUDECKGIT"/functions/GenericApplicationsScripts/genericApplicationPlexamp.sh
source "$EMUDECKGIT"/functions/GenericApplicationsScripts/genericApplicationSpotify.sh
source "$EMUDECKGIT"/functions/GenericApplicationsScripts/genericApplicationTidal.sh
#remoteplayclientscripts
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlayChiaki.sh
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlayChiaki4deck.sh
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlayGreenlight.sh
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlayMoonlight.sh
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlayParsec.sh
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlayShadow.sh
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlaySpotify.sh
source "$EMUDECKGIT"/functions/RemotePlayClientScripts/remotePlaySteamLink.sh
source "$EMUDECKGIT"/functions/cloudSyncHealth.sh
source "$EMUDECKGIT"/android/functions/all.sh

View File

@ -76,10 +76,10 @@ manageServicesMenu() {
if [ $? != 0 ]; then
csmMainMenu
fi
# Delete all old scripts that match file names from the github repo
for i in "${arrAll[@]}"; do
rm "$romsPath/cloud/$i"
rm "$romsPath/cloud/$i"
done
# Setup selected scripts
@ -91,7 +91,7 @@ manageServicesMenu() {
# Import steam profile
rsync -r "$EMUDECKGIT/configs/steam-input/emudeck_cloud_controller_config.vdf" "$HOME/.steam/steam/controller_base/templates/"
# Notify to update & run SRM
csmSRMNotification
@ -138,6 +138,22 @@ runRPSSettings()
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "Chiaki4deck" ]]; then
if [[ $(Chiaki4deck_IsInstalled) == "true" ]]; then
echo "# Updating Chiaki4deck"
Chiaki4deck_update &>/dev/null
else
echo "# Installing Chiaki4deck"
Chiaki4deck_install &>/dev/null
echo "ok"
fi
else
echo "# Uninstalling Chiaki4deck"
Chiaki4deck_uninstall &>/dev/null
fi
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "Greenlight" ]]; then
if [[ $(Greenlight_IsInstalled) == "true" ]]; then
echo "# Updating Greenlight"
@ -186,22 +202,6 @@ runRPSSettings()
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "Spotify" ]]; then
if [[ $(Spotify_IsInstalled) == "true" ]]; then
echo "# Updating Spotify"
Spotify_update &>/dev/null
else
echo "# Installing Spotify"
Spotify_install &>/dev/null
echo "ok"
fi
else
echo "# Uninstalling Spotify"
Spotify_uninstall &>/dev/null
fi
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "SteamLink" ]]; then
if [[ $(SteamLink_IsInstalled) == "true" ]]; then
echo "# Updating SteamLink"
@ -231,7 +231,97 @@ runRPSSettings()
echo "# Uninstalling ShadowPC"
ShadowPC_uninstall &>/dev/null
fi
echo "# Complete!"
echo "100" #exits the zenity with auto-close, sets the progress bar to 100%
}
runGASettings()
{
echo $progresspct
# Install/Update/uninstall selected
if [[ "${arrChosen[*]}" =~ "Cider" ]]; then
if [[ $(Cider_IsInstalled) == "true" ]]; then
echo "# Updating Cider"
Cider_update &>/dev/null
else
echo "# Installing Cider"
Cider_install &>/dev/null
echo "ok"
fi
else
echo "# Uninstalling Cider"
Cider_uninstall &>/dev/null
fi
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "Heroic Games Launcher" ]]; then
if [[ $(Heroic_IsInstalled) == "true" ]]; then
echo "# Updating Heroic"
Heroic_update &>/dev/null
else
echo "# Installing Heroic"
Heroic_install &>/dev/null
echo "ok"
fi
else
echo "# Uninstalling Heroic"
Heroic_uninstall &>/dev/null
fi
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "Plexamp" ]]; then
if [[ $(Plexamp_IsInstalled) == "true" ]]; then
echo "# Updating Plexamp"
Plexamp_update &>/dev/null
else
echo "# Installing Plexamp"
Plexamp_install &>/dev/null
echo "ok"
fi
else
echo "# Uninstalling Plexamp"
Plexamp_uninstall &>/dev/null
fi
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "Spotify" ]]; then
if [[ $(Spotify_IsInstalled) == "true" ]]; then
echo "# Updating Spotify"
Spotify_update &>/dev/null
else
echo "# Installing Spotify"
Spotify_install &>/dev/null
echo "ok"
fi
else
echo "# Uninstalling Spotify"
Spotify_uninstall &>/dev/null
fi
((progresspct += pct)) || true
echo "$progresspct"
if [[ "${arrChosen[*]}" =~ "Tidal" ]]; then
if [[ $(Tidal_IsInstalled) == "true" ]]; then
echo "# Updating Tidal"
Tidal_update &>/dev/null
else
echo "# Installing Tidal"
Tidal_install &>/dev/null
echo "ok"
fi
else
echo "# Uninstalling Tidal"
Tidal_uninstall &>/dev/null
fi
((progresspct += pct)) || true
echo "$progresspct"
echo "# Complete!"
echo "100" #exits the zenity with auto-close, sets the progress bar to 100%
@ -243,10 +333,10 @@ manageRPSMenu() {
declare -a arrAllRP=()
arrAllRP+=( $(Chiaki_IsInstalled) "Chiaki")
arrAllRP+=( $(Chiaki4deck_IsInstalled) "Chiaki4deck")
arrAllRP+=( $(Greenlight_IsInstalled) "Greenlight")
arrAllRP+=( $(Moonlight_IsInstalled) "Moonlight")
arrAllRP+=( $(Parsec_IsInstalled) "Parsec")
arrAllRP+=( $(Spotify_IsInstalled) "Spotify")
arrAllRP+=( $(SteamLink_IsInstalled) "SteamLink")
arrAllRP+=( $(ShadowPC_IsInstalled) "ShadowPC")
echo "list: ${arrAllRP[*]}"
@ -270,7 +360,7 @@ manageRPSMenu() {
echo "User selected: ${arrChosen[*]}"
echo "percentage for progress: $pct"
# Setup progress bar and perform install/update/uninstall of selected items
runRPSSettings | zenity --progress \
--title="Cloud Services Manager" \
@ -279,7 +369,7 @@ manageRPSMenu() {
--percentage=0 \
--width=600 \
--height=250 2>/dev/null
# Notify to update & run SRM
csmSRMNotification
@ -287,6 +377,54 @@ manageRPSMenu() {
manageRPSMenu
}
manageGAMenu() {
# Create array of all Generic Applications
cd "$EMUDECKGIT/functions/GenericApplicationsScripts" || return
declare -a arrAllGA=()
arrAllGA+=( $(Cider_IsInstalled) "Cider")
arrAllGA+=( $(Heroic_IsInstalled) "Heroic Games Launcher")
arrAllGA+=( $(Plexamp_IsInstalled) "Plexamp")
arrAllGA+=( $(Spotify_IsInstalled) "Spotify")
arrAllGA+=( $(Tidal_IsInstalled) "Tidal")
echo "list: ${arrAllGA[*]}"
# Dynamically build list of scripts
GA=$(zenity --list \
--title="Cloud Services Manager" \
--text="Select clients to install/update:" \
--ok-label="Start" --cancel-label="Return to Main Menu" \
--column="" --column="Disable to uninstall" \
--width=300 --height=350 --checklist "${arrAllGA[@]}")
if [ $? != 0 ]; then
csmMainMenu
fi
arrChosen=()
IFS='|' read -r -a arrChosen <<< "$GA"
progresspct=0
pct=$((100 / ((${#arrAllGA[@]} + 1) / 2)))
echo "User selected: ${arrChosen[*]}"
echo "percentage for progress: $pct"
# Setup progress bar and perform install/update/uninstall of selected items
runGASettings | zenity --progress \
--title="Cloud Services Manager" \
--text="Processing..." \
--no-cancel \
--percentage=0 \
--width=600 \
--height=250 2>/dev/null
# Notify to update & run SRM
csmSRMNotification
# Return to GA Manager
manageGAMenu
}
changeSettingsMenu() {
declare -a arrSupBrows=("com.google.Chrome" "com.microsoft.Edge" "org.mozilla.firefox" "com.brave.Browser" "org.chromium.Chromium")
declare -a arrBrowsOpts=()
@ -305,7 +443,7 @@ changeSettingsMenu() {
else
arrBrowsOpts+=(false "System Default: $defaultBrowser" false)
fi
# Add supported browsers to selection list
for brows in "${arrSupBrows[@]}"; do
if [[ "$(flatpak --columns=app list | grep "${brows}")" == *"${brows}"* ]]; then
@ -384,6 +522,7 @@ csmMainMenu() {
--column="" --column="Select an option:" --radiolist \
"" "Manage Cloud Services" \
"" "Manage Remote Play Clients" \
"" "Manage Generic Applications" \
"" "Add to ES-DE and Pegasus" \
"" "Change Settings" \
"" "Quit")
@ -395,6 +534,8 @@ csmMainMenu() {
manageServicesMenu
elif [ "$CHOICE" == "Manage Remote Play Clients" ]; then
manageRPSMenu
elif [ "$CHOICE" == "Manage Generic Applications" ]; then
manageGAMenu
elif [ "$CHOICE" == "Change Settings" ]; then
changeSettingsMenu
elif [ "$CHOICE" == "Add to ES-DE and Pegasus" ]; then
@ -454,7 +595,7 @@ addESDEPegasus(){
# Ask to install new services or change settings
esdepegasusmenuText=$(printf "<b>ES-DE and Pegasus</b>\n\n Would you like to add your selected cloud services and remote play clients to ES-DE and Pegasus?\n\n This will copy your cloud services and remote play clients to the Emulation/roms/desktop folder.\n\n When using ES-DE, your cloud services and remote play clients will show up under the Desktop system.\n\n When using Pegasus, your cloud services and remote play clients will show up under the Cloud Services and Remote Play Clients system respectively.\n\n This will have no impact on Steam ROM Manager or any shortcuts you may have added to Steam using Steam ROM Manager.\n\n ")
esdepegasusmenuText=$(printf "<b>ES-DE and Pegasus</b>\n\n Would you like to add your selected cloud services, generic applications, and remote play clients to ES-DE and Pegasus?\n\n This will copy your cloud services, generic applications, and remote play clients to the Emulation/roms/desktop folder.\n\n When using ES-DE, your cloud services, generic applications, and remote play clients will show up under the Desktop system.\n\n When using Pegasus, your cloud services and remote play clients will show up under the Cloud Services, Generic Applications, and Remote Play Clients system respectively.\n\n This will have no impact on Steam ROM Manager or any shortcuts you may have added to Steam using Steam ROM Manager.\n\n ")
ESDEPEGASUSCHOICE=$(zenity --list \
--title="Cloud Services Manager" --text="$esdepegasusmenuText" \
--width=350 --height=450 \
@ -470,43 +611,50 @@ addESDEPegasus(){
if [ "$ESDEPEGASUSCHOICE" == "Add to ES-DE and Pegasus" ]; then
mkdir -p "$romsPath/desktop/cloud"
mkdir -p "$romsPath/desktop/generic-applications"
mkdir -p "$romsPath/desktop/remoteplay"
rsync -av --include='*.sh' --exclude='*' "$romsPath/cloud/" "$romsPath/desktop/cloud"
rsync -av --include='*.sh' --exclude='*' "$romsPath/remoteplay/" "$romsPath/desktop/remoteplay"
rsync -av --include='*.sh' --exclude='*' "$romsPath/generic-applications/" "$romsPath/desktop/generic-applications"
# Pegasus
local pegasusDirectoriesFile="$HOME/.config/pegasus-frontend/game_dirs.txt"
cp "$HOME/.config/EmuDeck/backend/roms/desktop/cloud/metadata.txt" "$romsPath/desktop/cloud"
cp "$HOME/.config/EmuDeck/backend/roms/desktop/remoteplay/metadata.txt" "$romsPath/desktop/remoteplay"
cp "$HOME/.config/EmuDeck/backend/roms/desktop/cloud/metadata.txt" "$romsPath/desktop/cloud"
cp "$HOME/.config/EmuDeck/backend/roms/desktop/generic-applications/metadata.txt" "$romsPath/desktop/generic-applications"
if ! grep -Fxq "$romsPath/desktop/cloud" "$pegasusDirectoriesFile"; then
echo "$romsPath/desktop/cloud" >> "$pegasusDirectoriesFile"
fi
if ! grep -Fxq "$romsPath/desktop/generic-applications" "$pegasusDirectoriesFile"; then
echo "$romsPath/desktop/generic-applications" >> "$pegasusDirectoriesFile"
fi
if ! grep -Fxq "$romsPath/desktop/remoteplay" "$pegasusDirectoriesFile"; then
echo "$romsPath/desktop/remoteplay" >> "$pegasusDirectoriesFile"
fi
if [ -f "$romsPath/remoteplay/metadata.txt" ]; then
if [ -f "$romsPath/remoteplay/metadata.txt" ]; then
rm -f "$romsPath/remoteplay/metadata.txt"
fi
fi
if [ -f "$romsPath/cloud/metadata.txt" ]; then
if [ -f "$romsPath/cloud/metadata.txt" ]; then
rm -f "$romsPath/cloud/metadata.txt"
fi
fi
# Pegasus end
zenity --info --text="Cloud services and remote play clients added to ES-DE and Pegasus." \
--width=250
zenity --info --text="Cloud services, generic applications, and remote play clients added to ES-DE and Pegasus." \
--width=250
csmMainMenu
elif [ "$ESDEPEGASUSCHOICE" == "Remove from ES-DE and Pegasus" ]; then
find "$romsPath/desktop/cloud" -name "*.sh" -type f -delete
find "$romsPath/desktop/remoteplay" -name "*.sh" -type f -delete
zenity --info --text="Cloud services and remote play clients removed from ES-DE and Pegasus." \
--width=250
find "$romsPath/desktop/generic-applications" -name "*.sh" -type f -delete
zenity --info --text="Cloud services, generic applications, and remote play clients removed from ES-DE and Pegasus." \
--width=250
csmMainMenu
fi
@ -526,6 +674,7 @@ source "$EMUDECKGIT/functions/all.sh"
# Check for existing cloud.conf or install & setup
mkdir -p "$romsPath/cloud"
mkdir -p "$romsPath/generic-applications"
mkdir -p "$romsPath/remoteplay"
if [ ! -f "$romsPath/cloud/cloud.conf" ]; then
@ -559,7 +708,7 @@ if ! grep -q "browsercommand()" "$romsPath/cloud/cloud.conf"; then
)
setCloudSetting BROWSERAPP "$defaultBrowser"
flatpak --user override --filesystem=/run/udev:ro "$defaultBrowser"
fi
fi
CLOUDSETTINGSFILE="$romsPath/cloud/cloud.conf"
source "$CLOUDSETTINGSFILE"

View File

@ -762,12 +762,13 @@ flushEmulatorLaunchers(){
local name="$1"
shName=$(echo "$name" | awk '{print tolower($0)}')
find "${toolsPath}/launchers/" -maxdepth 1 -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
mkdir -p "${romsPath}/emulators"
find "${toolsPath}/launchers/" "${romsPath}/emulators" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
find "${EMUDECKGIT}/tools/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \
while read -r l
@ -777,6 +778,8 @@ flushEmulatorLaunchers(){
chmod +x "$l"
cp -v "$l" "${toolsPath}/launchers/"
chmod +x "${toolsPath}/launchers/"*
cp -v "$l" "${romsPath}/emulators"
chmod +x "${romsPath}/emulators/"*
done

View File

@ -4,30 +4,45 @@ installEmuAI(){
local url="$2"
local fileName="$3"
local format="$4"
local showProgress="$5"
local lastVerFile="$6"
local latestVer="$7"
local type="$5"
local showProgress="$6"
local lastVerFile="$7"
local latestVer="$8"
if [[ "$fileName" == "" ]]; then
if [[ -z "$fileName" ]]; then
fileName="$name"
fi
if [[ "$format" == "" ]]; then
if [[ -z "$format" ]]; then
format="AppImage"
fi
echo "$name"
echo "$url"
echo "$fileName"
echo "$showProgress"
echo "$lastVerFile"
echo "$latestVer"
#rm -f "$HOME/Applications/$fileName.AppImage" # mv in safeDownload will overwrite...
if [[ "$type" == "emulator" ]]; then
gitPath="${EMUDECKGIT}/tools/launchers/"
launcherPath="${toolsPath}/launchers"
elif [[ "$type" == "remoteplay" ]]; then
gitPath="${EMUDECKGIT}/tools/remoteplayclients/"
launcherPath="${romsPath}/remoteplay"
elif [[ "$type" == "genericapplication" ]]; then
gitPath="${EMUDECKGIT}/tools/generic-applications/"
launcherPath="${romsPath}/generic-applications"
fi
echo "1, Application Name: $name"
echo "2, Application URL: $url"
echo "3, Application Filename: $fileName"
echo "4, Application File Format: $format"
echo "5, Application Type: $type"
echo "6, Progress: $showProgress"
echo "7, Last Version File: $lastVerFile"
echo "8, Last Version: $latestVer"
#rm -f "$HOME/Applications/$fileName.$format" # mv in safeDownload will overwrite...
mkdir -p "$HOME/Applications"
#curl -L "$url" -o "$HOME/Applications/$fileName.AppImage.temp" && mv "$HOME/Applications/$fileName.AppImage.temp" "$HOME/Applications/$fileName.AppImage"
if safeDownload "$name" "$url" "$HOME/Applications/$fileName.$format" "$showProgress"; then
if safeDownload "$name" "$url" "$HOME/Applications/${fileName}.${format}" "$showProgress"; then
chmod +x "$HOME/Applications/$fileName.AppImage"
if [[ -n $lastVerFile ]] && [[ -n $latestVer ]]; then
echo "latest version $latestVer > $lastVerFile"
@ -37,26 +52,33 @@ installEmuAI(){
return 1
fi
shName=$(echo "$name" | awk '{print tolower($0)}')
find "${toolsPath}/launchers/" -maxdepth 1 -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \
shName=$(echo "$name" | awk '{print tolower($0)}')
mkdir -p "${romsPath}/emulators"
mkdir -p "$launcherPath"
find "${launcherPath}/" "${romsPath}/emulators" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
find "${EMUDECKGIT}/tools/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \
while read -r l
do
find "${gitPath}" -type f \( -iname "${shName}.sh" -o -iname "$shName-emu.sh" \) | \
while read -r l; do
echo "deploying $l"
launcherFileName=$(basename "$l")
chmod +x "$l"
cp -v "$l" "${toolsPath}/launchers/"
chmod +x "${toolsPath}/launchers/"*
cp -v "$l" "$launcherPath"
chmod +x "${launcherPath}"/*
createDesktopShortcut "$HOME/.local/share/applications/$name.desktop" \
"$name AppImage" \
"${toolsPath}/launchers/$launcherFileName" \
if [[ "$type" == "emulator" ]]; then
cp -v "$l" "${romsPath}/emulators"
chmod +x "${romsPath}/emulators/"*
fi
createDesktopShortcut "$HOME/.local/share/applications/${name}.desktop" \
"${name} AppImage" \
"${launcherPath}/${launcherFileName}" \
"false"
done
}

View File

@ -8,22 +8,23 @@ installEmuBI(){
local lastVerFile="$6"
local latestVer="$7"
if [[ "$fileName" == "" ]]; then
if [[ -z "$fileName" ]]; then
fileName="$name"
fi
echo "$name"
echo "$url"
echo "$fileName"
echo "$format"
echo "$showProgress"
echo "$lastVerFile"
echo "$latestVer"
echo "1, Application Name: $name"
echo "2, Application URL: $url"
echo "3, Application Filename: $fileName"
echo "4, Application File Format: $format"
echo "5, Progress: $showProgress"
echo "6, Last Version File: $lastVerFile"
echo "7, Last Version: $latestVer"
#rm -f "$HOME/Applications/$fileName.$format" # mv below will overwrite...
mkdir -p "$HOME/Applications"
#curl -L "$url" -o "$HOME/Applications/$fileName.$format.temp" && mv "$HOME/Applications/$fileName.$format.temp" "$HOME/Applications/$fileName.$format"
if safeDownload "$name" "$url" "$HOME/Applications/$fileName.$format" "$showProgress"; then
if safeDownload "$name" "$url" "$HOME/Applications/${fileName}.${format}" "$showProgress"; then
if [[ -n $lastVerFile ]] && [[ -n $latestVer ]]; then
echo "latest version $latestVer > $lastVerFile"
echo "$latestVer" > "$lastVerFile"
@ -33,7 +34,8 @@ installEmuBI(){
fi
shName=$(echo "$name" | awk '{print tolower($0)}')
find "${toolsPath}/launchers/" -maxdepth 1 -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | \
mkdir -p "${romsPath}/emulators"
find "${toolsPath}/launchers/" "${romsPath}/emulators" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
@ -48,6 +50,8 @@ installEmuBI(){
chmod +x "$l"
cp -v "$l" "${toolsPath}/launchers/"
chmod +x "${toolsPath}/launchers/"*
cp -v "$l" "${romsPath}/emulators"
chmod +x "${romsPath}/emulators/"*
createDesktopShortcut "$HOME/.local/share/applications/$name.desktop" \
"$name Binary" \

View File

@ -3,7 +3,29 @@ installEmuFP(){
local name="$1"
local ID="$2"
local type="$3"
local scriptname="$4"
if [[ "$type" == "emulator" ]]; then
gitPath="${EMUDECKGIT}/tools/launchers/"
launcherPath="${toolsPath}/launchers"
elif [[ "$type" == "remoteplay" ]]; then
gitPath="${EMUDECKGIT}/tools/remoteplayclients/"
launcherPath="${romsPath}/remoteplay"
elif [[ "$type" == "genericapplication" ]]; then
gitPath="${EMUDECKGIT}/tools/generic-applications/"
launcherPath="${romsPath}/generic-applications"
fi
if [[ -z "$scriptname" ]]; then
scriptname="$name"
fi
echo "1, Flatpak Name: $name"
echo "2, Flatpak ID: $ID"
echo "3, Flatpak Type: $type"
echo "4, Flatpak Script Name: $scriptname"
setMSG "Installing $name"
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo --user
@ -15,9 +37,23 @@ installEmuFP(){
flatpak uninstall "$ID" --system -y
fi
shName=$(echo "$name" | awk '{print tolower($0)}')
find "${toolsPath}/launchers/" -maxdepth 1 -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | while read -r f; do echo "deleting old: $f"; rm -f "$f"; done;
find "${EMUDECKGIT}/tools/launchers/" -type f -iname "$shName.sh" -o -type f -iname "$shName-emu.sh" | while read -r l; do echo "deploying new: $l"; chmod +x "$l"; cp -v "$l" "${toolsPath}/launchers/"; done;
shName=$(echo "$scriptname" | awk '{print tolower($0)}')
mkdir -p "${romsPath}/emulators"
mkdir -p "$launcherPath"
find "${launcherPath}/" "${romsPath}/emulators" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
find "$gitPath" -type f \( -iname "${shName}.sh" -o -iname "$shName-emu.sh" \) | while read -r l; do
echo "deploying new: $l"
chmod +x "$l"
cp -v "$l" "${launcherPath}"
if [[ "$type" == "emulator" ]]; then
cp -v "$l" "${romsPath}/emulators"
chmod +x "${romsPath}/emulators/"*
fi
done
}

View File

@ -7,15 +7,23 @@ installToolAI(){
local lastVerFile="$5"
local latestVer="$6"
if [[ "$fileName" == "" ]]; then
if [[ -z "$fileName" ]]; then
fileName="$name"
fi
echo "$name"
echo "$url"
echo "$fileName"
echo "$showProgress"
echo "$lastVerFile"
echo "$latestVer"
echo "1: $name"
echo "2: $url"
echo "3: $fileName"
echo "4: $showProgress"
echo "5: $lastVerFile"
echo "6: $latestVer"
echo "1, Application Name: $name"
echo "2, Application URL: $url"
echo "3, Application Filename: $fileName"
echo "4, Progress: $showProgress"
echo "5, Last Version File: $lastVerFile"
echo "6, Last Version: $latestVer"
#curl -L "$url" -o "$toolsPath/$fileName.AppImage.temp" && mv "$toolsPath/$fileName.AppImage.temp" "$toolsPath/$fileName.AppImage"

View File

@ -0,0 +1,42 @@
#!/bin/bash
uninstallEmuAI() {
name=$1
filename=$2
format=$3
type=$4
if [[ -z "$filename" ]]; then
filename="$name"
fi
if [[ -z "$format" ]]; then
format="AppImage"
fi
if [[ "$type" == "emulator" ]]; then
launcherPath="${toolsPath}/launchers"
elif [[ "$type" == "remoteplay" ]]; then
launcherPath="${romsPath}/remoteplay"
elif [[ "$type" == "genericapplication" ]]; then
launcherPath="${romsPath}/generic-applications"
fi
echo "1, Application Name: $name"
echo "2, Application Filename: $filename"
echo "3, Application File Format: $format"
echo "4, Application Type: $type"
echo "Uninstalling $name. Deleting "$HOME/Applications/$filename.$format". Deleting "$HOME/.local/share/applications/$name.desktop""
rm -rf "$HOME/Applications/$filename.$format"
rm -rf "$HOME/.local/share/applications/$name.desktop"
shName=$(echo "$name" | awk '{print tolower($0)}')
find "${launcherPath}/" "${romsPath}/emulators" "${romsPath}/desktop/remoteplay" "${romsPath}/desktop/generic-applications" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
}

View File

@ -1,7 +1,38 @@
#!/bin/bash
uninstallEmuFP() {
ID=$1
name=$1
ID=$2
type=$3
scriptname="$4"
if [[ "$type" == "emulator" ]]; then
launcherPath="${toolsPath}/launchers"
elif [[ "$type" == "remoteplay" ]]; then
launcherPath="${romsPath}/remoteplay"
elif [[ "$type" == "genericapplication" ]]; then
launcherPath="${romsPath}/generic-applications"
fi
if [[ -z "$scriptname" ]]; then
scriptname="$name"
fi
echo "1, Flatpak Name: $name"
echo "2, Flatpak ID: $ID"
echo "3, Flatpak Type: $type"
echo "4, Flatpak Script Name: $scriptname"
flatpak uninstall "$ID" -y --user
flatpak uninstall "$ID" -y --system
shName=$(echo "$scriptname" | awk '{print tolower($0)}')
find "${launcherPath}/" "${romsPath}/emulators" "${romsPath}/desktop/remoteplay" "${romsPath}/desktop/generic-applications" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
}

View File

@ -0,0 +1,36 @@
#!/bin/bash
uninstallGeneric() {
name=$1
executablepath=$2
desktopname=$3
type=$4
if [[ -z "$desktopname" ]]; then
desktopname="$name"
fi
if [[ "$type" == "emulator" ]]; then
launcherPath="${toolsPath}/launchers"
elif [[ "$type" == "remoteplay" ]]; then
launcherPath="${romsPath}/remoteplay"
elif [[ "$type" == "genericapplication" ]]; then
launcherPath="${romsPath}/generic-applications"
fi
echo "1, Application Name: $name"
echo "2, Application Executable Path: $executablepath"
echo "3, Desktop File Name: $desktopname"
echo "3, Application Type: $type"
rm -rf "$HOME/.local/share/applications/$desktopname.desktop"
rm -rf $executablepath
shName=$(echo "$name" | awk '{print tolower($0)}')
find "${launcherPath}/" "${romsPath}/emulators" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
}

View File

@ -3,7 +3,29 @@ updateEmuFP(){
name=$1
ID=$2
type="$3"
scriptname="$4"
if [[ "$type" == "emulator" ]]; then
gitPath="${EMUDECKGIT}/tools/launchers/"
launcherPath="${toolsPath}/launchers"
elif [[ "$type" == "remoteplay" ]]; then
gitPath="${EMUDECKGIT}/tools/remoteplayclients/"
launcherPath="${romsPath}/remoteplay"
elif [[ "$type" == "genericapplication" ]]; then
gitPath="${EMUDECKGIT}/tools/generic-applications/"
launcherPath="${romsPath}/generic-applications"
fi
if [[ -z "$scriptname" ]]; then
scriptname="$name"
fi
echo "1, Flatpak Name: $name"
echo "2, Flatpak ID: $ID"
echo "3, Flatpak Type: $type"
echo "4, Flatpak Script Name: $scriptname"
setMSG "Updating $name"
flatpak update $ID -y
@ -11,9 +33,23 @@ updateEmuFP(){
flatpak override $ID --share=network --user
shName=$(echo "$name" | awk '{print tolower($0)}')
find "${toolsPath}"/launchers/ -type f -iname $shName.sh | while read f; do echo "deleting $f"; rm -f "$f"; done;
cp -v "${EMUDECKGIT}"/tools/launchers/"${shName}".sh "${toolsPath}"/launchers/"${shName}".sh
chmod +x "${toolsPath}"/launchers/"${shName}".sh
mkdir -p "${romsPath}/emulators"
mkdir -p "$launcherPath"
find "${launcherPath}/" "${romsPath}/emulators" -maxdepth 1 -type f \( -iname "$shName.sh" -o -iname "$shName-emu.sh" \) | \
while read -r f
do
echo "deleting $f"
rm -f "$f"
done
find "$gitPath" -type f \( -iname "${shName}.sh" -o -iname "$shName-emu.sh" \) | while read -r l; do
echo "deploying new: $l"
chmod +x "$l"
cp -v "$l" "${launcherPath}"
if [[ "$type" == "emulator" ]]; then
cp -v "$l" "${romsPath}/emulators"
chmod +x "${romsPath}/emulators/"*
fi
done
}

261
icons/Chiaki4deck.svg Normal file
View File

@ -0,0 +1,261 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="256" height="256" version="1.1" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<image width="256" height="256" image-rendering="optimizeQuality" preserveAspectRatio="none" xlink:href="data:image/png;base64,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
"/>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

BIN
icons/Greenlight.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

View File

@ -0,0 +1,18 @@
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M72.3901 202.231C72.7994 204.136 73.84 205.848 75.3433 207.088L122.528 246.021C125.698 248.636 130.269 248.662 133.468 246.083L181.789 207.121C183.351 205.862 184.427 204.099 184.832 202.133L214.033 60.6054C214.857 56.6111 212.78 52.5836 209.049 50.9384L135.478 18.5049L131.464 16.7354C129.24 15.755 126.706 15.755 124.482 16.7354L120.468 18.5049L46.9504 50.915C43.1944 52.5708 41.1185 56.6374 41.9805 60.6505L72.3901 202.231Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M145.017 66.7371L127.505 36.4211L109.993 66.7371H145.017ZM133.342 184.892L145.017 66.7376H109.993L122.64 184.892L127.991 189.168L133.342 184.892Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M159.336 182.357L135.341 186.516L130.427 193.545L135.341 200.738L159.336 204.733L159.339 204.733L165.451 193.545L159.339 182.357L159.336 182.357Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M136.258 225.23L133.183 202.565L127.988 197.924L122.672 202.565L119.718 225.23L119.718 225.23L127.988 231.003L136.258 225.23L136.258 225.23Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M96.6346 182.357L120.633 186.516L125.547 193.545L120.633 200.738L96.6346 204.733L96.6326 204.73L90.5228 193.545L96.6326 182.36L96.6346 182.357Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M76.599 191.563C76.9774 193.325 77.9394 194.907 79.3292 196.054L122.95 232.046C125.88 234.464 130.106 234.487 133.063 232.103L177.735 196.084C179.179 194.92 180.174 193.29 180.548 191.473L207.543 60.635C208.305 56.9424 206.385 53.2191 202.935 51.6982L134.92 21.7141L131.211 20.0786C129.155 19.1723 126.812 19.1723 124.756 20.0786L121.047 21.7141L53.0808 51.6765C49.6086 53.2072 47.6895 56.9667 48.4863 60.6767L76.599 191.563Z" fill="url(#paint0_linear_2798_8229)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M143.738 66.303L127.548 38.2768L111.359 66.303H143.738ZM132.945 175.533L143.738 66.3032H111.359L123.051 175.533L127.998 179.486L132.945 175.533Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M156.981 173.19L134.797 177.036L130.254 183.533L134.797 190.183L156.981 193.876L156.983 193.877L162.633 183.533L156.983 173.19L156.981 173.19Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M135.641 212.825L132.799 191.872L127.996 187.581L123.081 191.872L120.351 212.825L120.351 212.825L127.996 218.161L135.641 212.825L135.641 212.825Z" fill="#070A0B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M99.019 173.19L121.203 177.036L125.746 183.533L121.203 190.183L99.019 193.876L99.0172 193.877L93.367 183.533L99.0172 173.19L99.019 173.19Z" fill="#070A0B"/>
<defs>
<linearGradient id="paint0_linear_2798_8229" x1="165.899" y1="22.4219" x2="164.147" y2="227.229" gradientUnits="userSpaceOnUse">
<stop stop-color="#4B93FF"/>
<stop offset="1" stop-color="#18DFEC"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
icons/ShadowPC.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

View File

@ -0,0 +1,4 @@
collection: Generic Applications
shortname: generic-applications
extensions: sh
launch: {file.path}

View File

@ -0,0 +1,4 @@
collection: Emulators
shortname: emulators
extensions: sh
launch: {file.path}

View File

@ -0,0 +1,22 @@
System name:
emulators
Full system name:
Emulators
Supported file extensions:
.AppImage .desktop .sh
Launch command:
%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%
Alternative launch commands:
%RUNINBACKGROUND% %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%
%EMULATOR_OS-SHELL% -c "%ROM%"
%RUNINBACKGROUND% %EMULATOR_OS-SHELL% -c "%ROM%"
Platform (for scraping):
pcwindows
Theme folder:
emulators

View File

@ -0,0 +1,17 @@
System name:
generic-applications
Full system name:
Generic Applications
Supported file extensions:
.sh
Launch command:
/bin/bash %ROM%
Platform (for scraping):
generic-applications
Theme folder:
generic-applications

View File

@ -89,7 +89,7 @@ function runBinDownloads {
messages+=("There was a problem updating BigPEmu (Proton)")
fi
fi
if [[ "$binsToDL" == *"cemu (win/proton)"* ]]; then
if [[ "$binsToDL" == *"Cemu (Proton)"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating Cemu (win/proton)"
@ -99,7 +99,7 @@ function runBinDownloads {
messages+=("There was a problem updating Cemu (win/proton")
fi
fi
if [[ "$binsToDL" == *"cemu (native)"* ]]; then
if [[ "$binsToDL" == *"Cemu (Native)"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating Cemu (Native)"
@ -109,17 +109,7 @@ function runBinDownloads {
messages+=("There was a problem updating Cemu (Native)")
fi
fi
if [[ "$binsToDL" == *"Citra"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating Citra"
if Citra_install "true" 2>&1; then
messages+=("Citra Updated Successfully")
else
messages+=("There was a problem updating Citra")
fi
fi
if [[ "$binsToDL" == *"es-de"* ]]; then
if [[ "$binsToDL" == *"ES-DE"* ]]; then
echo "0"
echo "# Updating ES-DE"
if ESDE_install "true" 2>&1; then
@ -128,7 +118,7 @@ function runBinDownloads {
messages+=("There was a problem updating ES-DE")
fi
fi
if [[ "$binsToDL" == *"mgba"* ]]; then
if [[ "$binsToDL" == *"mGBA"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating mGBA"
@ -138,17 +128,17 @@ function runBinDownloads {
messages+=("There was a problem updating mGBA")
fi
fi
if [[ "$binsToDL" == *"pcsx2-qt"* ]]; then
if [[ "$binsToDL" == *"PCSX2"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating PCSX2-QT"
echo "# Updating PCSX2"
if PCSX2QT_install "true" 2>&1; then
messages+=("PCSX2-QT Updated Successfully")
messages+=("PCSX2Updated Successfully")
else
messages+=("There was a problem updating PCSX2-QT")
messages+=("There was a problem updating PCSX2")
fi
fi
if [[ "$binsToDL" == *"rpcs3"* ]]; then
if [[ "$binsToDL" == *"RPCS3"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating RPCS3"
@ -158,7 +148,7 @@ function runBinDownloads {
messages+=("There was a problem updating RPCS3")
fi
fi
if [[ "$binsToDL" == *"ryujinx"* ]]; then
if [[ "$binsToDL" == *"Ryujinx"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating Ryujinx"
@ -168,7 +158,7 @@ function runBinDownloads {
messages+=("There was a problem updating Ryujinx")
fi
fi
if [[ "$binsToDL" == *"srm"* ]]; then
if [[ "$binsToDL" == *"Steam ROM Manager"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating SteamRomManager"
@ -178,7 +168,7 @@ function runBinDownloads {
messages+=("There was a problem updating Steam ROM Manager")
fi
fi
if [[ "$binsToDL" == *"vita3k"* ]]; then
if [[ "$binsToDL" == *"Vita3K"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating Vita3K"
@ -188,7 +178,7 @@ function runBinDownloads {
messages+=("There was a problem updating Vita3K")
fi
fi
if [[ "$binsToDL" == *"xenia"* ]]; then
if [[ "$binsToDL" == *"Xenia (Proton)"* ]]; then
((progresspct += pct)) || true
echo "$progresspct"
echo "# Updating Xenia-Canary"
@ -211,42 +201,63 @@ TIMESTAMP=$(date "+%Y%m%d_%H%M%S")
LOGFILE="${scriptPath}/binupdate-$TIMESTAMP.log"
exec > >(tee "${LOGFILE}") 2>&1
declare -a binTable
binTable=()
if [ "$(BigPEmu_IsInstalled ""$emuDeckEmuTypeWindows"")" == "true" ]; then
binTable+=(TRUE "Atari Jaguar" "BigPEmu (Proton)")
binTable+=(TRUE "BigPEmu (Proton)" "Atari Jaguar and Jaguar CD")
else
binTable+=(FALSE "BigPEmu (Proton)" "Atari Jaguar and Jaguar CD")
fi
if [ "$(CemuProton_IsInstalled ""$emuDeckEmuTypeWindows"")" == "true" ]; then
binTable+=(TRUE "Nintendo Wii U (Proton)" "cemu (win/proton)")
binTable+=(TRUE "Cemu (Proton)" "Nintendo Wii U")
else
binTable+=(FALSE "Cemu (Proton)" "Nintendo Wii U")
fi
if [ "$(Cemu_IsInstalled ""$emuDeckEmuTypeAppImage"")" == "true" ]; then
binTable+=(TRUE "Nintendo Wii U (Native)" "cemu (native)")
fi
if [ "$(Citra_IsInstalled ""$emuDeckEmuTypeAppImage"")" == "true" ]; then
binTable+=(TRUE "Nintendo 3DS" "Citra")
binTable+=(TRUE "Cemu (Native)" "Nintendo Wii U")
else
binTable+=(FALSE "Cemu (Native)" "Nintendo Wii U")
fi
if [ "$(ESDE_IsInstalled ""$emuDeckEmuTypeAppImage"")" == "true" ]; then
binTable+=(TRUE "ES-DE" "es-de")
binTable+=(TRUE "ES-DE" "Emulator Front-End")
else
binTable+=(FALSE "ES-DE" "Emulator Front-End")
fi
if [ "$(mGBA_IsInstalled ""$emuDeckEmuTypeAppImage"")" == "true" ]; then
binTable+=(TRUE "Nintendo GB, GB, and GBC" "mgba")
binTable+=(TRUE "mGBA" "Nintendo Game Boy Family")
else
binTable+=(FALSE "mGBA" "Nintendo Game Boy Family")
fi
if [ "$(PCSX2QT_IsInstalled ""$emuDeckEmuTypeAppImage"")" == "true" ]; then
binTable+=(TRUE "Sony PlayStation 2" "pcsx2-qt")
binTable+=(TRUE "PCSX2" "Sony PlayStation 2")
else
binTable+=(FALSE "PCSX2" "Sony PlayStation 2")
fi
if [ "$(RPCS3_IsInstalled ""$emuDeckEmuTypeAppImage"")" == "true" ]; then
binTable+=(TRUE "Sony PlayStation 3" "rpcs3")
binTable+=(TRUE "RPCS3" "Sony PlayStation 3")
else
binTable+=(FALSE "RPCS3" "Sony PlayStation 3")
fi
if [ "$(Ryujinx_IsInstalled ""$emuDeckEmuTypeBinary"")" == "true" ]; then
binTable+=(TRUE "Nintendo Switch" "ryujinx")
binTable+=(TRUE "Ryujinx" "Nintendo Switch")
else
binTable+=(FALSE "Ryujinx" "Nintendo Switch")
fi
if [ "$(SRM_IsInstalled ""$emuDeckEmuTypeAppImage"")" == "true" ]; then
binTable+=(TRUE "Steam ROM Manager" "srm")
binTable+=(TRUE "Steam ROM Manager" "Emulation Tool")
else
binTable+=(FALSE "Steam ROM Manager" "Emulation Tool")
fi
if [ "$(Vita3K_IsInstalled ""$emuDeckEmuTypeBinary"")" == "true" ]; then
binTable+=(TRUE "Sony PlayStation Vita" "vita3k")
binTable+=(TRUE "Vita3K" "Sony PlayStation Vita")
else
binTable+=(FALSE "Vita3K" "Sony PlayStation Vita")
fi
if [ "$(Xenia_IsInstalled ""$emuDeckEmuTypeWindows"")" == "true" ]; then
binTable+=(TRUE "Microsoft Xbox 360" "xenia")
binTable+=(TRUE "Xenia (Proton)" "Microsoft Xbox 360")
else
binTable+=(FALSE "Xenia (Proton)" "Microsoft Xbox 360")
fi
if [ "${#binTable[@]}" -gt 0 ]; then
@ -262,9 +273,9 @@ if [ "${#binTable[@]}" -gt 0 ]; then
--text="${text}" \
--checklist \
--column="Select" \
--column="Emulator" \
--column="System" \
--column="Name" \
--print-column=3 \
--print-column=2 \
"${binTable[@]}" 2>/dev/null
)
ans=$?

View File

@ -7,62 +7,95 @@ if [ "$?" == "1" ]; then
exit
fi
emuTable=()
if [ "$(ares_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "Multi-System Emulator" "ares")
fi
if [ "$(Dolphin_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "GC/Wii" "Dolphin")
fi
if [ "$(DuckStation_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "PSX" "DuckStation")
fi
if [ "$(melonDS_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "DS" "melonDS")
fi
if [ "$(PPSSPP_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "PSP" "PPSSPP")
fi
if [ "$(Primehack_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "Metroid Prime" "PrimeHack")
fi
if [ "$(RetroArch_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "Multiple" "RetroArch")
fi
if [ "$(RMG_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "N64" "RMG")
fi
if [ "$(ScummVM_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "Scumm/DOS" "ScummVM")
fi
if [ "$(Supermodel_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "Model3" "Supermodel")
fi
if [ "$(Xemu_IsInstalled ""$emuDeckEmuTypeFlatpak"")" == "true" ]; then
emuTable+=(TRUE "XBox" "Xemu")
declare -a emuTable
if [ "$(ares_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "ares" "Multi-System Emulator")
else
emuTable+=(FALSE "ares" "Multi-System Emulator")
fi
if [ "${#emuTable[@]}" -gt 0 ]; then
#Emulator selector
text="$(printf "Which Flatpak emulators would you like to update?")"
if [ "$(Dolphin_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "Dolphin" "Nintendo GameCube/Wii")
else
emuTable+=(FALSE "Dolphin" "Nintendo GameCube/Wii")
fi
if [ "$(DuckStation_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "DuckStation" "Sony PlayStation 1")
else
emuTable+=(FALSE "DuckStation" "Sony PlayStation 1")
fi
if [ "$(melonDS_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "melonDS" "Nintendo DS")
else
emuTable+=(FALSE "melonDS" "Nintendo DS")
fi
if [ "$(PPSSPP_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "PPSSPP" "Sony PlayStation Portable")
else
emuTable+=(FALSE "PPSSPP" "Sony PlayStation Portable")
fi
if [ "$(Primehack_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "PrimeHack" "Nintendo Metroid Prime Trilogy")
else
emuTable+=(FALSE "PrimeHack" "Nintendo Metroid Prime Trilogy")
fi
if [ "$(RetroArch_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "RetroArch" "Multi-System Emulator")
else
emuTable+=(FALSE "RetroArch" "Multi-System Emulator")
fi
if [ "$(RMG_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "Rosalie's Mupen GUI" "Nintendo 64")
else
emuTable+=(FALSE "Rosalie's Mupen GUI" "Nintendo 64")
fi
if [ "$(ScummVM_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "ScummVM" "Point and Click Adventures")
else
emuTable+=(FALSE "ScummVM" "Point and Click Adventures")
fi
if [ "$(Supermodel_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "Supermodel" "Sega Model 3")
else
emuTable+=(FALSE "Supermodel" "Sega Model 3")
fi
if [ "$(Xemu_IsInstalled "$emuDeckEmuTypeFlatpak")" == "true" ]; then
emuTable+=(TRUE "Xemu" "Microsoft Xbox")
else
emuTable+=(FALSE "Xemu" "Microsoft Xbox")
fi
if [ ${#emuTable[@]} -gt 0 ]; then
# Emulator selector
text="Which Flatpak emulators would you like to update?"
emusToInstall=$(zenity --list \
--title="EmuDeck" \
--height=500 \
--width=400 \
--ok-label="OK" \
--cancel-label="Exit" \
--text="${text}" \
--checklist \
--column="Select" \
--column="System" \
--column="Emulator" \
--print-column=3 \
"${emuTable[@]}" 2>/dev/null)
--title="EmuDeck" \
--height=600 \
--width=500 \
--ok-label="OK" \
--cancel-label="Exit" \
--text="${text}" \
--checklist \
--column="Select" \
--column="Emulator" \
--column="System" \
--print-column=2 \
"${emuTable[@]}" 2>/dev/null)
ans=$?
if [ $ans -eq 0 ]; then
if [ -n "$emusToInstall" ]; then
let pct=$(expr 100 / $(awk -F'|' '{print NF}' <<<"$emusToInstall"))
let pct=100/$(awk -F'|' '{print NF}' <<<"$emusToInstall")
echo "pct=$pct"
let progresspct=0
: {progressInstalledPipe}<> <(:)
@ -78,7 +111,7 @@ if [ "${#emuTable[@]}" -gt 0 ]; then
if [[ "$emusToInstall" == *"DuckStation"* ]]; then
doUpdateDuck=true
fi
if [[ "$emusToInstall" == *"MelonDS"* ]]; then
if [[ "$emusToInstall" == *"melonDS"* ]]; then
doUpdateMelonDS=true
fi
if [[ "$emusToInstall" == *"PPSSPP"* ]]; then
@ -90,7 +123,7 @@ if [ "${#emuTable[@]}" -gt 0 ]; then
if [[ "$emusToInstall" == *"RetroArch"* ]]; then
doUpdateRA=true
fi
if [[ "$emusToInstall" == *"RMG"* ]]; then
if [[ "$emusToInstall" == *"Rosalie's Mupen GUI"* ]]; then
doUpdateRMG=true
fi
if [[ "$emusToInstall" == *"ScummVM"* ]]; then
@ -107,47 +140,47 @@ if [ "${#emuTable[@]}" -gt 0 ]; then
progressInstalled=""
if [ "$doUpdateares" == "true" ]; then
echo "###Updating ares..."
(updateEmuFP "ares" "dev.ares.ares" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|ares" && echo "&&&$progressInstalled"
(updateEmuFP "ares" "dev.ares.ares" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|ares" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateDolphin" == "true" ]; then
echo "###Updating Dolphin..."
(updateEmuFP "dolphin-emu" "org.DolphinEmu.dolphin-emu" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|Dolphin" && echo "&&&$progressInstalled"
(updateEmuFP "dolphin-emu" "org.DolphinEmu.dolphin-emu" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|Dolphin" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateDuck" == "true" ]; then
echo "###Updating DuckStation..."
(updateEmuFP "DuckStation" "org.duckstation.DuckStation" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|DuckStation" && echo "&&&$progressInstalled"
(updateEmuFP "DuckStation" "org.duckstation.DuckStation" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|DuckStation" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateMelonDS" == "true" ]; then
echo "###Updating melonDS..."
(updateEmuFP "melonDS" "net.kuribo64.melonDS" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|melonDS" && echo "&&&$progressInstalled"
(updateEmuFP "melonDS" "net.kuribo64.melonDS" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|melonDS" && echo "&&&$progressInstalled"
fi
if [ "$doUpdatePPSSPP" == "true" ]; then
echo "###Updating PPSSPP..."
(updateEmuFP "PPSSPP" "org.ppsspp.PPSSPP" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|PPSSPP" && echo "&&&$progressInstalled"
(updateEmuFP "PPSSPP" "org.ppsspp.PPSSPP" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|PPSSPP" && echo "&&&$progressInstalled"
fi
if [ "$doUpdatePrimeHack" == "true" ]; then
echo "###Updating PrimeHack..."
(updateEmuFP "PrimeHack" "io.github.shiiion.primehack" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|PrimeHack" && echo "&&&$progressInstalled"
(updateEmuFP "PrimeHack" "io.github.shiiion.primehack" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|PrimeHack" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateRA" == "true" ]; then
echo "###Updating RetroArch..."
(updateEmuFP "RetroArch" "org.libretro.RetroArch" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|RetroArch" && echo "&&&$progressInstalled"
(updateEmuFP "RetroArch" "org.libretro.RetroArch" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|RetroArch" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateRMG" == "true" ]; then
echo "###Updating RMG..."
(updateEmuFP "RMG" "com.github.Rosalie241.RMG" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|RMG" && echo "&&&$progressInstalled"
echo "###Updating Rosalie's Mupen GUI..."
(updateEmuFP "RMG" "com.github.Rosalie241.RMG" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|RMG" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateScummVM" == "true" ]; then
echo "###Updating ScummVM..."
(updateEmuFP "ScummVM" "org.scummvm.ScummVM" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|ScummVM" && echo "&&&$progressInstalled"
(updateEmuFP "ScummVM" "org.scummvm.ScummVM" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|ScummVM" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateSupermodel" == "true" ]; then
echo "###Updating Supermodel..."
(updateEmuFP "Supermodel" "com.supermodel.Supermodel" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|ScummVM" && echo "&&&$progressInstalled"
(updateEmuFP "Supermodel" "com.supermodel.Supermodel" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|ScummVM" && echo "&&&$progressInstalled"
fi
if [ "$doUpdateXemu" == "true" ]; then
echo "###Updating Xemu..."
(updateEmuFP "Xemu-Emu" "app.xemu.xemu" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|Xemu" && echo "&&&$progressInstalled"
(updateEmuFP "Xemu-Emu" "app.xemu.xemu" "emulator" || true) && let progresspct+=$pct && echo "%%%$progresspct" && progressInstalled+="|Xemu" && echo "&&&$progressInstalled"
fi
if [ $progresspct != 100 ]; then
progresspct=100

View File

@ -0,0 +1,2 @@
#!/bin/bash
/usr/bin/flatpak run --branch=stable --arch=x86_64 --file-forwarding sh.cider.Cider @@u @@

View File

@ -0,0 +1,3 @@
#!/bin/bash
"$HOME/Applications/Heroic-Games-Launcher.AppImage"

View File

@ -0,0 +1,2 @@
#!/bin/bash
/usr/bin/flatpak run --branch=stable --arch=x86_64 --file-forwarding com.plexamp.Plexamp @@u @@

View File

@ -0,0 +1,2 @@
#!/bin/bash
/usr/bin/flatpak run --branch=stable --arch=x86_64 --file-forwarding com.mastermindzh.tidal-hifi @@u @@

View File

@ -0,0 +1,3 @@
#!/bin/bash
"$HOME/Applications/Chiaki4deck.AppImage"

View File

@ -1,4 +1,3 @@
#!/bin/bash
source $HOME/.config/EmuDeck/backend/functions/all.sh
"$HOME/Applications/Greenlight.AppImage"

View File

@ -1,4 +1,3 @@
#!/bin/bash
source $HOME/.config/EmuDeck/backend/functions/all.sh
"$HOME/Applications/ShadowPC.AppImage"

View File

@ -403,6 +403,113 @@ fi
fi
if find "$romsPath/remoteplay" -type f -name "*.sh" | grep -q .; then
RPUninstall=$(zenity --list \
--title="Remote Play Clients" \
--text="The EmuDeck uninstaller has detected you have installed Remote Play Clients using the Cloud Services Manager. \n\n Any checked items on this list will remain installed. \n\nAny unchecked items will be uninstalled. \n\nSelect which remote play clients you would like to keep installed." \
--ok-label="OK" --cancel-label="Exit" \
--column="" --column="Leave unchecked to uninstall." \
--width=500 --height=500 --checklist \
1 "Chiaki Remote Play Client" \
2 "Chiaki4deck" \
3 "Greenlight" \
4 "Moonlight Game Streaming" \
5 "Parsec" \
6 "ShadowPC" \
7 "Steam Link" )
if [[ "$RPUninstall" != *"Chiaki Remote Play Client"* ]]; then
flatpak uninstall re.chiaki.Chiaki -y
rm -f "$romsPath/remoteplay/Chiaki Remote Play Client.sh" &> /dev/null
rm -rf "$HOME/.var/app/re.chiaki.Chiaki" &> /dev/null
fi
if [[ "$RPUninstall" != *"Chiaki4deck"* ]]; then
rm -f "$HOME/Applications/Chiaki4deck.AppImage" &> /dev/null
rm -f "$romsPath/remoteplay/Greenlight.sh" &> /dev/null
rm -rf "$HOME/.local/share/applications/Chiaki4deck.desktop" &> /dev/null
fi
if [[ "$RPUninstall" != *"Greenlight"* ]]; then
rm -f "$HOME/Applications/Greenlight.AppImage" &> /dev/null
rm -f "$romsPath/remoteplay/Greenlight.sh" &> /dev/null
rm -rf "$HOME/.local/share/applications/Greenlight.desktop" &> /dev/null
fi
if [[ "$RPUninstall" != *"Moonlight Game Streaming"* ]]; then
flatpak uninstall com.moonlight_stream.Moonlight -y
rm -f "$romsPath/remoteplay/Moonlight Game Streaming.sh" &> /dev/null
rm -rf "$HOME/.var/app/com.moonlight_stream.Moonlight" &> /dev/null
fi
if [[ "$RPUninstall" != *"Parsec"* ]]; then
flatpak uninstall com.parsecgaming.parsec -y
rm -f "$romsPath/remoteplay/Parsec.sh" &> /dev/null
rm -rf "$HOME/.var/app/com.parsecgaming.parsec" &> /dev/null
fi
if [[ "$RPUninstall" != *"ShadowPC"* ]]; then
rm -f "$HOME/Applications/ShadowPC.AppImage" &> /dev/null
rm -f "$romsPath/remoteplay/ShadowPC.sh" &> /dev/null
rm -rf "$HOME/.local/share/applications/ShadowPC.desktop" &> /dev/null
fi
if [[ "$RPUninstall" != *"Steam Link"* ]]; then
flatpak uninstall com.valvesoftware.SteamLink -y
rm -f "$romsPath/remoteplay/SteamLink.sh" &> /dev/null
rm -rf "$HOME/.var/app/com.valvesoftware.SteamLink" &> /dev/null
fi
fi
if find "$romsPath/generic-applications" -type f -name "*.sh" | grep -q .; then
GAUninstall=$(zenity --list \
--title="Generic Applications" \
--text="The EmuDeck uninstaller has detected you have installed Generic Applications using the Cloud Services Manager. \n\n Any checked items on this list will remain installed. \n\nAny unchecked items will be uninstalled. \n\nSelect which remote play clients you would like to keep installed." \
--ok-label="OK" --cancel-label="Exit" \
--column="" --column="Leave unchecked to uninstall." \
--width=500 --height=500 --checklist \
1 "Cider" \
2 "Heroic Games Launcher" \
3 "Plexamp" \
4 "Spotify" \
5 "Tidal" )
if [[ "$GAUninstall" != *"Cider"* ]]; then
flatpak uninstall sh.cider.Cider -y
rm -f "$romsPath/generic-applications/Cider.sh" &> /dev/null
rm -rf "$HOME/.var/app/sh.cider.Cider" &> /dev/null
fi
if [[ "$GAUninstall" != *"Heroic Games Launcher"* ]]; then
rm -f "$HOME/Applications/Heroic-Games-Launcher.AppImage" &> /dev/null
rm -f "$romsPath/generic-applications/Heroic-Games-Launcher.sh" &> /dev/null
rm -rf "$HOME/.local/share/applications/Heroic-Games-Launcher.desktop" &> /dev/null
fi
if [[ "$GAUninstall" != *"Plexamp"* ]]; then
flatpak uninstall com.plexamp.Plexamp -y
rm -f "$romsPath/generic-applications/Plexamp.sh" &> /dev/null
rm -rf "$HOME/.var/app/com.plexamp.Plexamp" &> /dev/null
fi
if [[ "$GAUninstall" != *"Spotify"* ]]; then
flatpak uninstall com.spotify.Client -y
rm -f "$romsPath/generic-applications/Spotify.sh" &> /dev/null
rm -rf "$HOME/.var/app/com.spotify.Client" &> /dev/null
fi
if [[ "$GAUninstall" != *"Tidal"* ]]; then
flatpak uninstall com.mastermindzh.tidal-hifi -y
rm -f "$romsPath/generic-applications/Tidal.sh" &> /dev/null
rm -rf "$HOME/.var/app/com.mastermindzh.tidal-hifi" &> /dev/null
fi
fi
echo "55"
echo "# Removing Cloud Backup";