Merge branch 'dev' into issue/1208

This commit is contained in:
Dragoon Dorise 2024-05-07 16:48:49 +02:00 committed by GitHub
commit acb1e0da95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
35 changed files with 15548 additions and 7382 deletions

View file

@ -9,17 +9,8 @@
</rule>
</emulator>
<emulator name="RETROARCH">
<rule type="systempath">
<entry>org.libretro.RetroArch</entry>
<entry>retroarch</entry>
</rule>
<rule type="staticpath">
<entry>~/.local/share/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>/var/lib/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>~/Applications/RetroArch-Linux*.AppImage</entry>
<entry>~/.local/share/applications/RetroArch-Linux*.AppImage</entry>
<entry>~/.local/bin/RetroArch-Linux*.AppImage</entry>
<entry>~/bin/RetroArch-Linux*.AppImage</entry>
<entry>/run/media/mmcblk0p1/Emulation/tools/launchers/retroarch.sh</entry>
</rule>
</emulator>
<core name="RETROARCH">

View file

@ -1,61 +1,61 @@
<?xml version="1.0"?>
<systemList>
<system>
<name>atarijaguar</name>
<fullname>Atari Jaguar</fullname>
<path>%ROMPATH%/atarijaguar</path>
<extension>.abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP</extension>
<command label="BigPEmu (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/bigpemu.sh %ROM%</command>
<command label="Virtual Jaguar">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/virtualjaguar_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atarijaguar jaguar -cart %ROM%</command>
<platform>atarijaguar</platform>
<theme>atarijaguar</theme>
<name>atarijaguar</name>
<fullname>Atari Jaguar</fullname>
<path>%ROMPATH%/atarijaguar</path>
<extension>.abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP</extension>
<command label="BigPEmu (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/bigpemu.sh %ROM%</command>
<command label="Virtual Jaguar">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/virtualjaguar_libretro.so %ROM%</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/atarijaguar jaguar -cart %ROM%</command>
<platform>atarijaguar</platform>
<theme>atarijaguar</theme>
</system>
<system>
<name>atarijaguarcd</name>
<fullname>Atari Jaguar CD</fullname>
<path>%ROMPATH%/atarijaguarcd</path>
<extension>.abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP</extension>
<command label="BigPEmu (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/bigpemu.sh %ROM%</command>
<platform>atarijaguarcd</platform>
<theme>atarijaguarcd</theme>
<name>atarijaguarcd</name>
<fullname>Atari Jaguar CD</fullname>
<path>%ROMPATH%/atarijaguarcd</path>
<extension>.abs .ABS .bin .BIN .cdi .CDI .cof .COF .cue .CUE .j64 .J64 .jag .JAG .prg .PRG .rom .ROM .7z .7Z .zip .ZIP</extension>
<command label="BigPEmu (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/bigpemu.sh %ROM%</command>
<platform>atarijaguarcd</platform>
<theme>atarijaguarcd</theme>
</system>
<system>
<name>model2</name>
<fullname>Sega Model 2</fullname>
<path>%ROMPATH%/model2/roms</path>
<extension>.zip .ZIP</extension>
<command label="Model 2 Emulator (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/model-2-emulator.sh %BASENAME%</command>
<platform>arcade</platform>
<theme>model2</theme>
<name>model2</name>
<fullname>Sega Model 2</fullname>
<path>%ROMPATH%/model2/roms</path>
<extension>.zip .ZIP</extension>
<command label="Model 2 Emulator (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/model-2-emulator.sh %BASENAME%</command>
<platform>arcade</platform>
<theme>model2</theme>
</system>
<system>
<name>switch</name>
<fullname>Nintendo Switch</fullname>
<path>%ROMPATH%/switch</path>
<extension>.nca .NCA .nro .NRO .nso .NSO .nsp .NSP .xci .XCI</extension>
<command label="Ryujinx (Standalone)">%EMULATOR_RYUJINX% %ROM%</command>
<command label="Yuzu (Standalone)">%INJECT%=%BASENAME%.esprefix %EMULATOR_YUZU% -f -g %ROM%</command>
<platform>switch</platform>
<theme>switch</theme>
<name>switch</name>
<fullname>Nintendo Switch</fullname>
<path>%ROMPATH%/switch</path>
<extension>.nca .NCA .nro .NRO .nso .NSO .nsp .NSP .xci .XCI</extension>
<command label="Ryujinx (Standalone)">%EMULATOR_RYUJINX% %ROM%</command>
<command label="Yuzu (Standalone)">%INJECT%=%BASENAME%.esprefix %EMULATOR_YUZU% -f -g %ROM%</command>
<platform>switch</platform>
<theme>switch</theme>
</system>
<system>
<name>wiiu</name>
<fullname>Nintendo Wii U</fullname>
<path>%ROMPATH%/wiiu/roms</path>
<extension>.rpx .RPX .wud .WUD .wux .WUX .elf .ELF .iso .ISO .wad .WAD .wua .WUA</extension>
<command label="Cemu (Native)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/cemu.sh -f -g %ROM%</command>
<command label="Cemu (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/cemu.sh -w -f -g z:%ROM%</command>
<platform>wiiu</platform>
<theme>wiiu</theme>
<name>wiiu</name>
<fullname>Nintendo Wii U</fullname>
<path>%ROMPATH%/wiiu/roms</path>
<extension>.rpx .RPX .wud .WUD .wux .WUX .elf .ELF .iso .ISO .wad .WAD .wua .WUA</extension>
<command label="Cemu (Native)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/cemu.sh -f -g %ROM%</command>
<command label="Cemu (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/cemu.sh -w -f -g z:%ROM%</command>
<platform>wiiu</platform>
<theme>wiiu</theme>
</system>
<system>
<name>xbox360</name>
<fullname>Microsoft Xbox 360</fullname>
<path>%ROMPATH%/xbox360/roms</path>
<extension>.iso .ISO . .xex .XEX .zar .ZAR</extension>
<command label="Xenia (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/xenia.sh z:%ROM% %INJECT%=%BASENAME%.esprefix</command>
<platform>xbox360</platform>
<theme>xbox360</theme>
<name>xbox360</name>
<fullname>Microsoft Xbox 360</fullname>
<path>%ROMPATH%/xbox360/roms</path>
<extension>.iso .ISO . .xex .XEX .zar .ZAR</extension>
<command label="Xenia (Proton)">/bin/bash /run/media/mmcblk0p1/Emulation/tools/launchers/xenia.sh z:%ROM% %INJECT%=%BASENAME%.esprefix</command>
<platform>xbox360</platform>
<theme>xbox360</theme>
</system>
</systemList>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -37,12 +37,12 @@
"profileType": "template"
},
{
"title": "EmuDeck - Dual Shock 4",
"title": "EmuDeck - DualShock 4",
"mappingId": "emudeck_controller_ps4.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - Dual Shock 4 Frontend",
"title": "EmuDeck - DualShock 4 Frontend",
"mappingId": "emudeck_frontend_controller_ps4.vdf",
"profileType": "template"
}
@ -84,16 +84,33 @@
"profileType": "template"
},
{
"title": "EmuDeck - Dual Sense",
"title": "EmuDeck - DualSense",
"mappingId": "emudeck_controller_ps5.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - Dual Sense Frontend",
"title": "EmuDeck - DualSense Frontend",
"mappingId": "emudeck_frontend_controller_ps5.vdf",
"profileType": "template"
}
],
"ps5_edge": [
{
"title": "Gamepad With Joystick Trackpad",
"mappingId": "emudeck_frontend_controller_ps5_dualsense_edge.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - DualSense Edge",
"mappingId": "emudeck_controller_ps5_dualsense_edge.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - DualSense Edge Frontend",
"mappingId": "emudeck_frontend_controller_ps5_dualsense_edge.vdf",
"profileType": "template"
}
],
"xbox360": [
{
"title": "Gamepad",
@ -148,6 +165,23 @@
"profileType": "template"
}
],
"xboxelite": [
{
"title": "Gamepad With Joystick Trackpad",
"mappingId": "emudeck_frontend_controller_xboxelite.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - Xbox Elite",
"mappingId": "emudeck_controller_xboxelite.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - Xbox Elite Frontend",
"mappingId": "emudeck_frontend_controller_xboxelite.vdf",
"profileType": "template"
}
],
"switch_joycon_left": [
{
"title": "Gamepad",
@ -184,12 +218,12 @@
"profileType": "template"
},
{
"title": "EmuDeck - Switch Pro",
"title": "EmuDeck - Switch Pro Controller",
"mappingId": "emudeck_controller_switch_pro.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - Switch Pro Frontend",
"title": "EmuDeck - Switch Pro Controller Frontend",
"mappingId": "emudeck_frontend_controller_switch_pro.vdf",
"profileType": "template"
}
@ -217,7 +251,7 @@
},
{
"title": "Gamepad With Joystick Trackpad",
"mappingId": "emudeck_frontend_controller_steamdeck.vdf",
"mappingId": "emudeck_steam_deck_light_gun_controls.vdf",
"profileType": "template"
},
{
@ -275,6 +309,23 @@
"mappingId": "emudeck_controller_steamdeck_proton.vdf",
"profileType": "template"
}
],
"steamcontroller_gordon": [
{
"title": "Gamepad with Mouse and Gyro",
"mappingId": "gamepad_mouse_gyro.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - Steam Controller Frontend",
"mappingId": "emudeck_frontend_controller_steamcontroller.vdf",
"profileType": "template"
},
{
"title": "EmuDeck - Steam Controller",
"mappingId": "emudeck_controller_steamcontroller.vdf",
"profileType": "template"
}
]
}
}

File diff suppressed because it is too large Load diff

View file

@ -86,3 +86,26 @@ installEmuZip(){
}
gcd() {
while [ $2 -ne 0 ]; do
set -- $2 $(( $1 % $2 ))
done
echo $1
}
function getScreenAR(){
dimensions=$(system_profiler SPDisplaysDataType | awk '/Resolution/{print $2, $4}')
width=$(echo $dimensions | cut -d ' ' -f 1)
height=$(echo $dimensions | cut -d ' ' -f 2)
g=$(gcd $width $height)
aspect_ratio_width=$((width / g))
aspect_ratio_height=$((height / g))
return $aspect_ratio_width$aspect_ratio_height
}

View file

@ -11,7 +11,7 @@ RetroArch_cores="$HOME/Library/Application Support/RetroArch/cores"
RetroArch_path="$HOME/Library/Application Support/RetroArch"
RetroArch_coresURL="https://buildbot.libretro.com/nightly/apple/osx/${appleChip}/latest/"
RetroArch_coresExtension="dylib.zip"
ESDE_toolPath="$HOME/Application/EmulationStation Desktop Edition.app"
ESDE_toolPath="$HOME/Applications/ES-DE.dmg"
ESDE_addSteamInputFile="$EMUDECKGIT/darwin/configs/steam-input/emulationstation-de_controller_config.vdf"
steam_input_templateFolder="$HOME/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/controller_base/templates/"
SRM_userData_directory="darwin/configs/steam-rom-manager/userData"

View file

@ -131,23 +131,48 @@ if [ "$size" -gt 4096 ]; then
fi
if [ -d "$emulationPath/bios" ]; then
text="$(printf "Do you want to export all your roms?")"
text="$(printf "Do you want to export all your bios?")"
zenity --question \
--title="EmuDeck Export tool" \
--width=450 \
--cancel-label="No" \
--ok-label="Export my roms" \
--ok-label="Export my bios" \
--text="${text}" 2>/dev/null
ans=$?
if [ $ans -eq 0 ]; then
checkSpace "$emulationPath/roms/" "$destination"
checkSpace "$emulationPath/bios/" "$destination"
mkdir -p "$destination/EmuDeck/roms"
mkdir -p "$destination/EmuDeck/bios"
for entry in "$emulationPath/roms/"*
for entry in "$emulationPath/bios/"*
do
rsync -ravL --ignore-existing --progress "$entry" "$destination/EmuDeck/roms/" | awk -f $HOME/.config/EmuDeck/backend/rsync.awk | zenity --progress --text="Exporting $entry to $destination/EmuDeck/roms/" --title="Exporting $entry..." --width=400 --percentage=0 --auto-close
rsync -ravL --ignore-existing --progress "$entry" "$destination/EmuDeck/bios/" | awk -f $HOME/.config/EmuDeck/backend/rsync.awk | zenity --progress --text="Exporting $entry to $destination/EmuDeck/bios/" --title="Exporting $entry..." --width=400 --percentage=0 --auto-close
done
else
echo "no bios"
fi
fi
if [ -d "$ESDEscrapData" ]; then
text="$(printf "Do you want to export all your EmulationStation media?")"
zenity --question \
--title="EmuDeck Export tool" \
--width=450 \
--cancel-label="No" \
--ok-label="Export my ESDE Media" \
--text="${text}" 2>/dev/null
ans=$?
if [ $ans -eq 0 ]; then
checkSpace "$ESDEscrapData" "$destination"
mkdir -p "$destination/EmuDeck/tools/downloaded_media"
for entry in "$ESDEscrapData/"*
do
rsync -ravL --ignore-existing --progress "$entry" "$destination/EmuDeck/roms/" | awk -f $HOME/.config/EmuDeck/backend/rsync.awk | zenity --progress --text="Exporting $entry to $destination/EmuDeck/tools/downloaded_media/" --title="Exporting $entry..." --width=400 --percentage=0 --auto-close
done
else

View file

@ -50,7 +50,8 @@ Retroarch_install(){
#ApplyInitialSettings
RetroArch_init(){
#netPlay
setSetting netplayCMD "' '"
setMSG "RetroArch - HD Texture Packs"

View file

@ -159,9 +159,14 @@ Ryujinx_setupSaves(){
rm -rf "${emulationPath}/saves/ryujinx/saveMeta"
fi
linkToSaveFolder Ryujinx saves "$HOME/.config/Ryujinx/bis/user/save"
linkToSaveFolder Ryujinx saveMeta "$HOME/.config/Ryujinx/bis/user/saveMeta"
linkToSaveFolder Ryujinx system_saves "$HOME/.config/Ryujinx/bis/system/save"
if [ -d "${emulationPath}/saves/Ryujinx/saves" ]; then
rm -rf "${emulationPath}/saves/Ryujinx/"
fi
linkToSaveFolder ryujinx saves "$HOME/.config/Ryujinx/bis/user/save"
linkToSaveFolder ryujinx saveMeta "$HOME/.config/Ryujinx/bis/user/saveMeta"
linkToSaveFolder ryujinx system_saves "$HOME/.config/Ryujinx/bis/system/save"
linkToSaveFolder ryujinx system "$HOME/.config/Ryujinx/system"
}

View file

@ -1,14 +1,14 @@
#!/bin/bash
#variables
Suyu_emuName="suyu"
Suyu_emuType="$emuDeckEmuTypeAppImage"
Suyu_emuPath="$HOME/Applications/suyu.AppImage"
suyu_emuName="suyu"
suyu_emuType="$emuDeckEmuTypeAppImage"
suyu_emuPath="$HOME/Applications/suyu.AppImage"
Suyu_configFile="$HOME/.config/suyu/qt-config.ini"
suyu_configFile="$HOME/.config/suyu/qt-config.ini"
declare -A Suyu_languages
Suyu_languages=(
declare -A suyu_languages
suyu_languages=(
["ja"]=0
["en"]=1
["fr"]=2
@ -23,8 +23,8 @@ Suyu_languages=(
["tw"]=11) # TODO: not all langs but we need to switch to full lang codes to support those
# https://github.com/suyu-emu/suyu/blob/master/src/suyu/configuration/configure_system.ui#L272-L309
declare -A Suyu_regions
Suyu_regions=(
declare -A suyu_regions
suyu_regions=(
["ja"]=0 # Japan
["en"]=1 # USA
["fr"]=2 # Europe
@ -43,14 +43,12 @@ Suyu_regions=(
#Install
Suyu_install() {
echo "Begin Suyu Install"
suyu_install() {
echo "Begin suyu Install"
local showProgress=$1
local lastVerFile="$HOME/emudeck/suyu.ver"
local latestVer=$(curl -fSs "https://api.github.com/repos/suyu-emu/suyu-mainline/releases" | jq -r '[ .[].tag_name ][0]')
local success="false"
if installEmuAI "$Suyu_emuName" "$(getReleaseURLGH "suyu-emu/suyu-mainline" "AppImage")" "" "$showProgress" "$lastVerFile" "$latestVer"; then # suyu.AppImage - needs to be lowercase suyu for EsDE to find it
if installEmuAI "$suyu_emuName" "https://gitlab.com/suyu-emu/suyu-releases/-/raw/master/v0.0.2-master/suyu-mainline--.AppImage" "suyu" "$showProgress"; then
success="true"
fi
@ -60,8 +58,8 @@ Suyu_install() {
}
#ApplyInitialSettings
Suyu_init() {
echo "Begin Suyu Init"
suyu_init() {
echo "Begin suyu Init"
cp "$EMUDECKGIT/tools/launchers/suyu.sh" "$toolsPath/launchers/suyu.sh"
chmod +x "$toolsPath/launchers/suyu.sh"
@ -69,23 +67,23 @@ Suyu_init() {
mkdir -p "$HOME/.local/share/suyu"
rsync -avhp "$EMUDECKGIT/configs/org.suyu_emu.suyu/config/suyu/." "$HOME/.config/suyu"
rsync -avhp "$EMUDECKGIT/configs/org.suyu_emu.suyu/data/suyu/." "$HOME/.local/share/suyu"
Suyu_migrate
configEmuAI "$Suyu_emuName" "config" "$HOME/.config/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/config/suyu" "true"
configEmuAI "$Suyu_emuName" "data" "$HOME/.local/share/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/data/suyu" "true"
suyu_migrate
configEmuAI "$suyu_emuName" "config" "$HOME/.config/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/config/suyu" "true"
configEmuAI "$suyu_emuName" "data" "$HOME/.local/share/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/data/suyu" "true"
Suyu_setEmulationFolder
Suyu_setupStorage
Suyu_setupSaves
Suyu_finalize
suyu_setEmulationFolder
suyu_setupStorage
suyu_setupSaves
suyu_finalize
#SRM_createParsers
Suyu_flushEmulatorLauncher
suyu_flushEmulatorLauncher
createDesktopShortcut "$HOME/.local/share/applications/suyu.desktop" \
"suyu (AppImage)" \
"${toolsPath}/launchers/suyu.sh" \
"False"
if [ -e "$ESDE_toolPath" ]; then
Suyu_addESConfig
suyu_addESConfig
else
echo "ES-DE not found. Skipped adding custom system."
fi
@ -94,24 +92,24 @@ Suyu_init() {
}
#update
Suyu_update() {
echo "Begin Suyu update"
suyu_update() {
echo "Begin suyu update"
Suyu_migrate
suyu_migrate
configEmuAI "$Suyu_emuName" "config" "$HOME/.config/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/config/suyu"
configEmuAI "$Suyu_emuName" "data" "$HOME/.local/share/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/data/suyu"
configEmuAI "$suyu_emuName" "config" "$HOME/.config/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/config/suyu"
configEmuAI "$suyu_emuName" "data" "$HOME/.local/share/suyu" "$EMUDECKGIT/configs/org.suyu_emu.suyu/data/suyu"
Suyu_setEmulationFolder
Suyu_setupStorage
Suyu_setupSaves
Suyu_finalize
Suyu_flushEmulatorLauncher
suyu_setEmulationFolder
suyu_setupStorage
suyu_setupSaves
suyu_finalize
suyu_flushEmulatorLauncher
}
#ConfigurePaths
Suyu_setEmulationFolder() {
echo "Begin Suyu Path Config"
suyu_setEmulationFolder() {
echo "Begin suyu Path Config"
screenshotDirOpt='Screenshots\\screenshot_path='
gameDirOpt='Paths\\gamedirs\\4\\path='
@ -128,18 +126,18 @@ Suyu_setEmulationFolder() {
newSdmcDirOpt='sdmc_directory='"${storagePath}/suyu/sdmc"
newTasDirOpt='tas_directory='"${storagePath}/suyu/tas"
sed -i "/${screenshotDirOpt}/c\\${newScreenshotDirOpt}" "$Suyu_configFile"
sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$Suyu_configFile"
sed -i "/${dumpDirOpt}/c\\${newDumpDirOpt}" "$Suyu_configFile"
sed -i "/${loadDir}/c\\${newLoadDir}" "$Suyu_configFile"
sed -i "/${nandDirOpt}/c\\${newNandDirOpt}" "$Suyu_configFile"
sed -i "/${sdmcDirOpt}/c\\${newSdmcDirOpt}" "$Suyu_configFile"
sed -i "/${tasDirOpt}/c\\${newTasDirOpt}" "$Suyu_configFile"
sed -i "/${screenshotDirOpt}/c\\${newScreenshotDirOpt}" "$suyu_configFile"
sed -i "/${gameDirOpt}/c\\${newGameDirOpt}" "$suyu_configFile"
sed -i "/${dumpDirOpt}/c\\${newDumpDirOpt}" "$suyu_configFile"
sed -i "/${loadDir}/c\\${newLoadDir}" "$suyu_configFile"
sed -i "/${nandDirOpt}/c\\${newNandDirOpt}" "$suyu_configFile"
sed -i "/${sdmcDirOpt}/c\\${newSdmcDirOpt}" "$suyu_configFile"
sed -i "/${tasDirOpt}/c\\${newTasDirOpt}" "$suyu_configFile"
#Setup Bios symlinks
unlink "${biosPath}/suyu/keys" 2>/dev/null
unlink "${biosPath}/suyu/firmware" 2>/dev/null
mkdir -p ${biosPath}/suyu
mkdir -p "$HOME/.local/share/suyu/keys/"
mkdir -p "${storagePath}/suyu/nand/system/Contents/registered/"
@ -151,8 +149,8 @@ Suyu_setEmulationFolder() {
}
#SetLanguage
Suyu_setLanguage(){
setMSG "Setting Suyu Language"
suyu_setLanguage(){
setMSG "Setting suyu Language"
languageOpt="language_index="
languageDefaultOpt="language_index\\\\default="
@ -161,29 +159,29 @@ Suyu_setLanguage(){
regionDefaultOpt="region_index\\\\default="
newRegionDefaultOpt="region_index\\\\default=false"
#TODO: call this somewhere, and input the $language from somewhere (args?)
if [[ -f "${Suyu_configFile}" ]]; then
if [ ${Suyu_languages[$language]+_} ]; then
newLanguageOpt='language_index='"${Suyu_languages[$language]}"
newRegionOpt='region_index='"${Suyu_regions[$language]}"
changeLine "$languageOpt" "$newLanguageOpt" "$Suyu_configFile"
changeLine "$languageDefaultOpt" "$newLanguageDefaultOpt" "$Suyu_configFile"
changeLine "$regionOpt" "$newRegionOpt" "$Suyu_configFile"
changeLine "$regionDefaultOpt" "$newRegionDefaultOpt" "$Suyu_configFile"
if [[ -f "${suyu_configFile}" ]]; then
if [ ${suyu_languages[$language]+_} ]; then
newLanguageOpt='language_index='"${suyu_languages[$language]}"
newRegionOpt='region_index='"${suyu_regions[$language]}"
changeLine "$languageOpt" "$newLanguageOpt" "$suyu_configFile"
changeLine "$languageDefaultOpt" "$newLanguageDefaultOpt" "$suyu_configFile"
changeLine "$regionOpt" "$newRegionOpt" "$suyu_configFile"
changeLine "$regionDefaultOpt" "$newRegionDefaultOpt" "$suyu_configFile"
fi
fi
}
#SetupSaves
Suyu_setupSaves() {
echo "Begin Suyu save link"
suyu_setupSaves() {
echo "Begin suyu save link"
unlink "${savesPath}/suyu/saves" 2>/dev/null # Fix for previous bad symlink2>/dev/null
linkToSaveFolder suyu saves "${storagePath}/suyu/nand/user/save/"
linkToSaveFolder suyu profiles "${storagePath}/suyu/nand/system/save/8000000000000010/su/avators/"
}
#SetupStorage
Suyu_setupStorage() {
echo "Begin Suyu storage config"
suyu_setupStorage() {
echo "Begin suyu storage config"
mkdir -p "${storagePath}/suyu/dump"
mkdir -p "${storagePath}/suyu/load"
mkdir -p "${storagePath}/suyu/sdmc"
@ -195,24 +193,24 @@ Suyu_setupStorage() {
}
#WipeSettings
Suyu_wipe() {
echo "Begin Suyu delete config directories"
suyu_wipe() {
echo "Begin suyu delete config directories"
rm -rf "$HOME/.config/suyu"
rm -rf "$HOME/.local/share/suyu"
}
#Uninstall
Suyu_uninstall() {
echo "Begin Suyu uninstall"
rm -rf "$Suyu_emuPath"
SuyuEA_uninstall
suyu_uninstall() {
echo "Begin suyu uninstall"
rm -rf "$suyu_emuPath"
suyuEA_uninstall
}
#Migrate
Suyu_migrate() {
echo "Begin Suyu Migration"
migrationFlag="$HOME/.config/EmuDeck/.${Suyu_emuName}MigrationCompleted"
suyu_migrate() {
echo "Begin suyu Migration"
migrationFlag="$HOME/.config/EmuDeck/.${suyu_emuName}MigrationCompleted"
#check if we have a nomigrateflag for $emu
if [ ! -f "$migrationFlag" ]; then
#suyu flatpak to appimage
@ -228,7 +226,7 @@ Suyu_migrate() {
#move data from hidden folders out to these folders in case the user already put stuff here.
origPath="$HOME/.local/share/"
Suyu_setupStorage
suyu_setupStorage
rsync -av "${origPath}suyu/dump" "${storagePath}/suyu/" && rm -rf "${origPath}suyu/dump"
rsync -av "${origPath}suyu/load" "${storagePath}/suyu/" && rm -rf "${origPath}suyu/load"
@ -239,37 +237,37 @@ Suyu_migrate() {
}
#setABXYstyle
Suyu_setABXYstyle() {
suyu_setABXYstyle() {
echo "NYI"
}
#WideScreenOn
Suyu_wideScreenOn() {
suyu_wideScreenOn() {
echo "NYI"
}
#WideScreenOff
Suyu_wideScreenOff() {
suyu_wideScreenOff() {
echo "NYI"
}
#BezelOn
Suyu_bezelOn() {
suyu_bezelOn() {
echo "NYI"
}
#BezelOff
Suyu_bezelOff() {
suyu_bezelOff() {
echo "NYI"
}
#finalExec - Extra stuff
Suyu_finalize() {
echo "Begin Suyu finalize"
suyu_finalize() {
echo "Begin suyu finalize"
}
Suyu_IsInstalled() {
if [ -e "$Suyu_emuPath" ]; then
suyu_IsInstalled() {
if [ -e "$suyu_emuPath" ]; then
echo "true"
else
echo "false"
@ -277,16 +275,16 @@ Suyu_IsInstalled() {
}
Suyu_resetConfig() {
Suyu_init &>/dev/null && echo "true" || echo "false"
suyu_resetConfig() {
suyu_init &>/dev/null && echo "true" || echo "false"
}
### Suyu EA
### suyu EA
SuyuEA_install() {
suyuEA_install() {
local jwtHost="https://api.suyu-emu.org/jwt/installer/"
local suyuEaHost="https://api.suyu-emu.org/downloads/earlyaccess/"
local suyuEaMetadata=$(curl -fSs ${suyuEaHost})
@ -304,8 +302,8 @@ SuyuEA_install() {
#echo "download ea appimage"
if safeDownload "suyu-ea" "$fileToDownload" "${SuyuEA_emuPath}" "$showProgress" "Authorization: Bearer ${BEARERTOKEN}"; then
chmod +x "$SuyuEA_emuPath"
if safeDownload "suyu-ea" "$fileToDownload" "${suyuEA_emuPath}" "$showProgress" "Authorization: Bearer ${BEARERTOKEN}"; then
chmod +x "$suyuEA_emuPath"
cp -v "${EMUDECKGIT}/tools/launchers/suyu.sh" "${toolsPath}/launchers/" &>/dev/null
chmod +x "${toolsPath}/launchers/suyu.sh"
@ -318,17 +316,17 @@ SuyuEA_install() {
}
SuyuEA_addToken(){
suyuEA_addToken(){
local tokenValue=$1
local user=""
local auth=""
read -r user auth <<<"$(echo "$tokenValue"==== | fold -w 4 | sed '$ d' | tr -d '\n' | base64 --decode| awk -F":" '{print $1" "$2}')" && SuyuEA_install "$tokenValue" || echo "invalid"
read -r user auth <<<"$(echo "$tokenValue"==== | fold -w 4 | sed '$ d' | tr -d '\n' | base64 --decode| awk -F":" '{print $1" "$2}')" && suyuEA_install "$tokenValue" || echo "invalid"
}
SuyuEA_IsInstalled() {
if [ -e "$SuyuEA_emuPath" ]; then
suyuEA_IsInstalled() {
if [ -e "$suyuEA_emuPath" ]; then
echo "true"
else
echo "false"
@ -336,12 +334,12 @@ SuyuEA_IsInstalled() {
}
SuyuEA_uninstall() {
echo "Begin Suyu EA uninstall"
rm -rf "$SuyuEA_emuPath"
suyuEA_uninstall() {
echo "Begin suyu EA uninstall"
rm -rf "$suyuEA_emuPath"
}
Suyu_setResolution(){
suyu_setResolution(){
case $suyuResolution in
"720P") multiplier=2; docked="false";;
@ -351,18 +349,18 @@ Suyu_setResolution(){
*) echo "Error"; return 1;;
esac
RetroArch_setConfigOverride "resolution_setup" $multiplier "$Suyu_configFile"
RetroArch_setConfigOverride "use_docked_mode" $docked "$Suyu_configFile"
RetroArch_setConfigOverride "resolution_setup" $multiplier "$suyu_configFile"
RetroArch_setConfigOverride "use_docked_mode" $docked "$suyu_configFile"
}
Suyu_flushEmulatorLauncher(){
suyu_flushEmulatorLauncher(){
flushEmulatorLaunchers "suyu"
}
Suyu_addESConfig(){
suyu_addESConfig(){
if [[ $(grep -rnw "$es_systemsFile" -e 'switch') == "" ]]; then
xmlstarlet ed -S --inplace --subnode '/systemList' --type elem --name 'system' \
--var newSystem '$prev' \
@ -373,7 +371,7 @@ Suyu_addESConfig(){
--subnode '$newSystem' --type elem --name 'commandB' -v "%EMULATOR_RYUJINX% %ROM%" \
--insert '$newSystem/commandB' --type attr --name 'label' --value "Ryujinx (Standalone)" \
--subnode '$newSystem' --type elem --name 'commandV' -v "%INJECT%=%BASENAME%.esprefix %EMULATOR_YUZU% -f -g %ROM%" \
--insert '$newSystem/commandV' --type attr --name 'label' --value "Suyu (Standalone)" \
--insert '$newSystem/commandV' --type attr --name 'label' --value "suyu (Standalone)" \
--subnode '$newSystem' --type elem --name 'platform' -v 'switch' \
--subnode '$newSystem' --type elem --name 'theme' -v 'switch' \
-r 'systemList/system/commandB' -v 'command' \

View file

@ -15,6 +15,10 @@ Greenlight_install() {
else
return 0
fi
cp "$EMUDECKGIT/tools/remoteplayclients/Greenlight.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/Greenlight.sh"
}
# ApplyInitialSettings

View file

@ -17,6 +17,9 @@ ShadowPC_install() {
else
return 0
fi
cp "$EMUDECKGIT/tools/remoteplayclients/ShadowPC.sh" "$romsPath/remoteplay"
chmod +x "$romsPath/remoteplay/ShadowPC.sh"
}
# ApplyInitialSettings

View file

@ -272,7 +272,7 @@ cloud_sync_upload(){
if [ "$emuName" = "all" ]; then
cloud_sync_save_hash $savesPath
("$cloud_sync_bin" copy --fast-list --update --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/.pending_upload --exclude=/.last_upload "$savesPath" "$cloud_sync_provider":Emudeck/saves/ && (
("$cloud_sync_bin" copy --fast-list --update --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/system/prod.keys --exclude=/system/title.keys --exclude=/.pending_upload --exclude=/.last_upload "$savesPath" "$cloud_sync_provider":Emudeck/saves/ && (
local baseFolder="$savesPath/"
for folder in $baseFolder*/
do
@ -284,7 +284,7 @@ cloud_sync_upload(){
))
else
cloud_sync_save_hash "$savesPath/$emuName"
("$cloud_sync_bin" copy --fast-list --update --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/.pending_upload --exclude=/.last_upload "$savesPath/$emuName" "$cloud_sync_provider":Emudeck/saves/$emuName/ && echo $timestamp > "$savesPath"/$emuName/.last_upload && rm -rf $savesPath/$emuName/.fail_upload)
("$cloud_sync_bin" copy --fast-list --update --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/system/prod.keys --exclude=/system/title.keys --exclude=/.pending_upload --exclude=/.last_upload "$savesPath/$emuName" "$cloud_sync_provider":Emudeck/saves/$emuName/ && echo $timestamp > "$savesPath"/$emuName/.last_upload && rm -rf $savesPath/$emuName/.fail_upload)
fi
cloud_sync_unlock
fi
@ -294,7 +294,7 @@ cloud_sync_upload(){
cloud_sync_download(){
local branch=$(cd "$HOME"/.config/EmuDeck/backend && git rev-parse --abbrev-ref HEAD)
if [ "$branch" == "early" ] || [ "$branch" == "dev" ] ; then
if [[ "$branch" == *"early"* ]] || [ "$branch" == "dev" ] ; then
echo "CloudSync Downloading"
else
return 0
@ -318,7 +318,7 @@ cloud_sync_download(){
if [ -f "$savesPath/.hash" ] && [ "$hash" != "$hashCloud" ]; then
"$cloud_sync_bin" copy --fast-list --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/.pending_upload --exclude=/.last_upload "$cloud_sync_provider":Emudeck/saves/ "$savesPath" && (
"$cloud_sync_bin" copy --fast-list --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/system/prod.keys --exclude=/system/title.keys --exclude=/.pending_upload --exclude=/.last_upload "$cloud_sync_provider":Emudeck/saves/ "$savesPath" && (
local baseFolder="$savesPath/"
for folder in $baseFolder*/
do
@ -336,7 +336,7 @@ cloud_sync_download(){
else
#We check the hashes
cloud_sync_save_hash "$emuName"
cloud_sync_save_hash "$savesPath/$emuName"
local filePath="$savesPath/$emuName/.hash"
local hash=$(cat "$savesPath/$emuName/.hash")
@ -345,7 +345,7 @@ cloud_sync_download(){
hashCloud=$(cat "$savesPath/$emuName/.hash")
if [ -f "$savesPath/$emuName/.hash" ] && [ "$hash" != "$hashCloud" ];then
"$cloud_sync_bin" copy --fast-list --update --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/.pending_upload --exclude=/.last_upload "$cloud_sync_provider":Emudeck/saves/$emuName/ "$savesPath"/$emuName/ && echo $timestamp > "$savesPath"/$emuName/.last_download && rm -rf $savesPath/$emuName/.fail_download
"$cloud_sync_bin" copy --fast-list --update --checkers=50 -P -L --exclude=/.fail_upload --exclude=/.fail_download --exclude=/system/prod.keys --exclude=/system/title.keys --exclude=/.pending_upload --exclude=/.last_upload "$cloud_sync_provider":Emudeck/saves/$emuName/ "$savesPath"/$emuName/ && echo $timestamp > "$savesPath"/$emuName/.last_download && rm -rf $savesPath/$emuName/.fail_download
else
echo "up to date"
fi

View file

@ -0,0 +1,27 @@
#!/bin/bash
# netplay -true false
# netplayIP
# netplayHost - true false
# netplayType - local inet
# netplayCMD - local inet
#Searchs for a device with the netplay port open
netplaySetIP(){
localIP=$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1)
segment=$(echo $localIP | awk -F '.' '{print $1"."$2"."$3}')
subnet="$segment".
port=55435
for i in {2..255}; do
{
ip="$subnet$i"
echo $ip
if timeout 0.05 bash -c "echo > /dev/tcp/$ip/$port"; then
setSetting netplayCMD "'-C $ip'"
break
fi
}
done
}

View file

@ -66,7 +66,6 @@ SRM_init(){
mkdir -p "$HOME/.config/steam-rom-manager/userData/"
rsync -avhp --mkpath "$EMUDECKGIT/configs/steam-rom-manager/userData/userConfigurations.json" "$HOME/.config/steam-rom-manager/userData/" --backup --suffix=.bak
rsync -avhp --mkpath "$EMUDECKGIT/configs/steam-rom-manager/userData/userSettings.json" "$HOME/.config/steam-rom-manager/userData/" --backup --suffix=.bak
rsync -avhp --mkpath "$EMUDECKGIT/configs/steam-rom-manager/userData/controllerTemplates.json" "$HOME/.config/steam-rom-manager/userData/" --backup --suffix=.bak
#cp "$EMUDECKGIT/configs/steam-rom-manager/userData/userConfigurations.json" "$HOME/.config/steam-rom-manager/userData/userConfigurations.json"
#cp "$EMUDECKGIT/configs/steam-rom-manager/userData/userSettings.json" "$HOME/.config/steam-rom-manager/userData/userSettings.json"
sleep 3
@ -91,16 +90,7 @@ SRM_init(){
curl -L "$SRM_customVariablesURL" -o "$HOME/.config/steam-rom-manager/userData/customVariables.json"
if [ -d "${HOME}/.local/share/Steam" ]; then
STEAMPATH="${HOME}/.local/share/Steam"
elif [ -d "${HOME}/.steam/steam" ]; then
STEAMPATH="${HOME}/.steam/steam"
else
echo "Steam install not found"
fi
sed -i "s|/home/deck/.steam/steam|${STEAMPATH}|g" "$HOME/.config/steam-rom-manager/userData/controllerTemplates.json"
SRM_addControllerTemplate
SRM_flushToolLauncher
SRM_addSteamInputProfiles
addSteamInputCustomIcons
@ -447,9 +437,25 @@ SRM_rolledbackcreateParsers(){
}
SRM_addControllerTemplate(){
mkdir -p "$HOME/.config/steam-rom-manager/userData/"
rsync -avhp --mkpath "$EMUDECKGIT/configs/steam-rom-manager/userData/controllerTemplates.json" "$HOME/.config/steam-rom-manager/userData/" --backup --suffix=.bak
if [ -d "${HOME}/.local/share/Steam" ]; then
STEAMPATH="${HOME}/.local/share/Steam"
elif [ -d "${HOME}/.steam/steam" ]; then
STEAMPATH="${HOME}/.steam/steam"
else
echo "Steam install not found"
fi
sed -i "s|/home/deck/.steam/steam|${STEAMPATH}|g" "$HOME/.config/steam-rom-manager/userData/controllerTemplates.json"
}
SRM_addSteamInputProfiles(){
setMSG 'Steam Rom Manager - Adding Steam input profiles'
cp "$EMUDECKGIT/$SRM_userData_directory/controllerTemplates.json" "$SRM_userData_configDir/controllerTemplates.json"
rm -rf "$HOME/.steam/steam/controller_base/templates/ares_controller_config.vdf"
rm -rf "$HOME/.steam/steam/controller_base/templates/cemu_controller_config.vdf"
rm -rf "$HOME/.steam/steam/controller_base/templates/citra_controller_config.vdf"
@ -477,7 +483,6 @@ SRM_addSteamInputProfiles(){
# ln -s "$HOME/.config/EmuDeck/backend/configs/steam-input/emudeck_controller_steamdeck.vdf" "$HOME/.steam/steam/controller_base/templates/rmg_controller_config.vdf"
}
SRM_setEnv(){
setMSG 'Steam Rom Manager - Set enviroment'
@ -503,12 +508,10 @@ SRM_resetConfig(){
SRM_init
#Reseting launchers
#SRM_resetLaunchers
SRM_flushToolLauncher
echo "true"
}
SRM_IsInstalled(){
if [ -f "$SRM_toolPath" ]; then
echo "true"
else

View file

@ -61,9 +61,11 @@ source "$EMUDECKGIT"/functions/ToolScripts/emuDeckInstallHomebrewGames.sh
source "$EMUDECKGIT"/functions/ToolScripts/emuDeckMigration.sh
source "$EMUDECKGIT"/functions/ToolScripts/emuDeckCopyGames.sh
source "$EMUDECKGIT"/functions/ToolScripts/emuDecky.sh
source "$EMUDECKGIT"/functions/ToolScripts/emuDeckNetPlay.sh
#emuscripts
source "$EMUDECKGIT"/functions/EmuScripts/emuDeckSuyu.sh
source "$EMUDECKGIT"/functions/EmuScripts/emuDeckYuzu.sh
source "$EMUDECKGIT"/functions/EmuScripts/emuDeckCemu.sh
source "$EMUDECKGIT"/functions/EmuScripts/emuDeckCemuProton.sh

View file

@ -71,7 +71,7 @@ cloudSyncHealth(){
#Test emulators
miArray=("Cemu" "citra" "dolphin" "duckstation" "MAME" "melonds" "mgba" "pcsx2" "ppsspp" "primehack" "retroarch" "rpcs3" "scummvm" "Vita3K" "yuzu" "ryujinx" )
miArray=("Cemu" "citra" "dolphin" "duckstation" "MAME" "melonds" "mgba" "pcsx2" "ppsspp" "primehack" "retroarch" "rpcs3" "scummvm" "Vita3K" "yuzu" "ryujinx" "BigPEmu" )
# echo -e "<span class=\"yellow\">Testing uploading</span>"
for elemento in "${miArray[@]}"; do

View file

@ -1,23 +1,24 @@
#!/bin/bash
createDesktopIcons(){
local sandbox=""
local desktop=$(xdg-user-dir DESKTOP)
if command -v apt-get >/dev/null; then
sandbox=" --no-sandbox"
fi
#We delete the old icons
rm -rf ~/Desktop/EmuDeckUninstall.desktop 2>/dev/null
rm -rf ~/Desktop/EmuDeckCHD.desktop 2>/dev/null
rm -rf ~/Desktop/EmuDeck.desktop 2>/dev/null
rm -rf ~/Desktop/EmuDeckSD.desktop 2>/dev/null
rm -rf ~/Desktop/EmuDeckBinUpdate.desktop 2>/dev/null
rm -rf ~/Desktop/EmuDeckApp.desktop 2>/dev/null
rm -rf ~/Desktop/EmuDeckAppImage.desktop 2>/dev/null
rm -rf ~/Desktop/EmuDeckAppImage.desktop 2>/dev/null
rm -rf "$desktop/EmuDeckUninstall.desktop" 2>/dev/null
rm -rf "$desktop/EmuDeckCHD.desktop" 2>/dev/null
rm -rf "$desktop/EmuDeck.desktop" 2>/dev/null
rm -rf "$desktop/EmuDeckSD.desktop" 2>/dev/null
rm -rf "$desktop/EmuDeckBinUpdate.desktop" 2>/dev/null
rm -rf "$desktop/EmuDeckApp.desktop" 2>/dev/null
rm -rf "$desktop/EmuDeckAppImage.desktop" 2>/dev/null
rm -rf "$desktop/EmuDeckAppImage.desktop" "2>/dev/null
#New EmuDeck icon, same place so people won't get confused
createDesktopShortcut "$HOME/Desktop/EmuDeck.desktop" \
createDesktopShortcut "$desktop/EmuDeck.desktop" \
"EmuDeck" \
"$HOME/Applications/EmuDeck.AppImage$sandbox" \
"false"

View file

@ -717,7 +717,7 @@ flushEmulatorLaunchers(){
chmod +x "${toolsPath}/launchers/"*
done
}
addSteamInputCustomIcons() {
@ -749,9 +749,11 @@ check_internet_connection(){
}
zipLogs() {
local desktop=$(xdg-user-dir DESKTOP)
logsFolder="$HOME/emudeck/logs"
settingsFile="$HOME/emudeck/settings.sh"
zipOutput="$HOME/Desktop/emudeck_logs.zip"
zipOutput="$desktop/emudeck_logs.zip"
# Comprime los archivos en un archivo zip
zip -rj "$zipOutput" "$logsFolder" "$settingsFile"
@ -941,7 +943,23 @@ addProtonLaunch(){
function emulatorInit(){
local emuName=$1
#isLatestVersionGH "$emuName"
cloud_sync_downloadEmu "$emuName" && cloud_sync_startService
#NetPlay
if [ "$emuName" = 'retroarch' ]; then
if [ "$netPlay" == "true" ]; then
#Looks for devices listening
setSetting netplayCMD "-H"
sleep 2
netplaySetIP
else
setSetting netplayCMD "' '"
cloud_sync_downloadEmu "$emuName" && cloud_sync_startService
fi
source $HOME/.config/EmuDeck/backend/functions/all.sh
fi
if [ "$emuName" != 'retroarch' ]; then
cloud_sync_downloadEmu "$emuName" && cloud_sync_startService
fi
}
function jsonToBashVars(){
@ -954,6 +972,7 @@ function jsonToBashVars(){
setSetting doInstallPCSX2QT "$(jq .installEmus.pcsx2.status $json)"
setSetting doInstallRPCS3 "$(jq .installEmus.rpcs3.status $json)"
setSetting doInstallYuzu "$(jq .installEmus.yuzu.status $json)"
setSetting doInstallSuyu "$(jq .installEmus.suyu.status $json)"
setSetting doInstallCitra "$(jq .installEmus.citra.status $json)"
setSetting doInstallDuck "$(jq .installEmus.duckstation.status $json)"
setSetting doInstallCemu "$(jq .installEmus.cemu.status $json)"
@ -983,6 +1002,7 @@ function jsonToBashVars(){
setSetting doSetupPCSX2QT "$(jq .overwriteConfigEmus.pcsx2.status $json)"
setSetting doSetupRPCS3 "$(jq .overwriteConfigEmus.rpcs3.status $json)"
setSetting doSetupYuzu "$(jq .overwriteConfigEmus.yuzu.status $json)"
setSetting doSetupSuyu "$(jq .overwriteConfigEmus.suyu.status $json)"
setSetting doSetupCitra "$(jq .overwriteConfigEmus.citra.status $json)"
setSetting doSetupDuck "$(jq .overwriteConfigEmus.duckstation.status $json)"
setSetting doSetupCemu "$(jq .overwriteConfigEmus.cemu.status $json)"
@ -1027,7 +1047,7 @@ function jsonToBashVars(){
#CloudSync
setSetting cloud_sync_provider "$(jq .cloudSync $json)"
setSetting cloudSyncStatus "$(jq .cloudSyncStatus $json)"
setSetting cloud_sync_status "$(jq .cloudSyncStatus $json)"
#Resolutions
setSetting dolphinResolution "$(jq .resolutions.dolphin $json)"
@ -1079,6 +1099,16 @@ function jsonToBashVars(){
setSetting androidStorage "$(jq .android.storage $json)"
setSetting androidStoragePath "$(jq .android.storagePath $json)"
#We store the patreon token on install so we can create it for the first time
storePatreonToken "$(jq .patreonToken $json)"
}
function storePatreonToken(){
local token=$1
echo "$token" > "$savesPath/.token"
if [ -f $cloud_sync_bin ]; then
"$cloud_sync_bin" --progress copyto -L --fast-list --checkers=50 --transfers=50 --low-level-retries 1 --retries 1 "$savesPath/.token" "$cloud_sync_provider":Emudeck/saves/.token
fi
}
@ -1099,4 +1129,3 @@ function controllerLayout_BAYX(){
melonDS_setBAYXstyle
RMG_setBAYXstyle
}

BIN
icons/suyu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View file

@ -151,6 +151,32 @@ if [ "$size" -gt 4096 ]; then
fi
if [ -d "$origin/EmuDeck/tools/downloaded_media" ]; then
text="$(printf "<b>ESDE Media folder found in your drive!</b>\nLet's import that one too")"
zenity --question \
--title="EmuDeck Import tool" \
--width=450 \
--cancel-label="No" \
--ok-label="Import my ESDE media" \
--text="${text}" 2>/dev/null
ans=$?
if [ $ans -eq 0 ]; then
checkSpace "$origin/EmuDeck/tools/downloaded_media/" "$toolsPath"
for entry in "$origin/EmuDeck/tools/downloaded_media/"*
do
rsync -ravL --ignore-existing --progress "$entry" "$emulationPath/bios/" | awk -f $HOME/.config/EmuDeck/backend/rsync.awk | zenity --progress --text="Importing $entry to $emulationPath/tools/downloaded_media/" --title="Importing $entry..." --width=400 --percentage=0 --auto-close
done
else
echo "User selected no import: ESDE media"
fi
fi
if [ -d "$origin/EmuDeck/roms" ]; then
text="$(printf "<b>Roms folder found in your drive!</b>\nLet's import that one too")"
zenity --question \

112
install-unstable.sh Normal file
View file

@ -0,0 +1,112 @@
#!/bin/bash
linuxID=$(lsb_release -si)
if [ $linuxID != "ChimeraOS" ]; then
echo "installing EmuDeck"
elif [ $linuxID != "SteamOS" ]; then
zenityAvailable=$(command -v zenity &> /dev/null && echo true)
if [[ $zenityAvailable = true ]];then
read -r PASSWD <<< "$(zenity --password --title="Password Entry" --text="Enter you user sudo password to install required depencies" 2>/dev/null)"
echo "$PASSWD" | sudo -v -S
ans=$?
if [[ $ans == 1 ]]; then
#incorrect password
read -r PASSWD <<< "$(zenity --password --title="Password Entry" --text="Password was incorrect. Try again. (Did you remember to set a password for linux before running this?)" 2>/dev/null)"
echo "$PASSWD" | sudo -v -S
ans=$?
if [[ $ans == 1 ]]; then
text="$(printf "<b>Password not accepted.</b>\n Expert mode tools which require a password will not work. Disabling them.")"
zenity --error \
--title="EmuDeck" \
--width=400 \
--text="${text}" 2>/dev/null
setSetting doInstallPowertools false
setSetting doInstallGyro false
fi
fi
fi
SCRIPT_DIR=$( cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
function log_err {
echo "$@" >&2
}
function script_failure {
log_err "An error occurred:$([ -z "$1" ] && " on line $1" || "(unknown)")."
log_err "Installation failed!"
exit
}
#trap 'script_failure $LINENO' ERR
echo "Installing EmuDeck dependencies..."
if command -v apt-get >/dev/null; then
echo "Installing packages with apt..."
DEBIAN_DEPS="jq zenity flatpak unzip bash libfuse2 git rsync whiptail"
sudo killall apt apt-get
sudo apt-get -y update
sudo apt-get -y install $DEBIAN_DEPS
elif command -v pacman >/dev/null; then
echo "Installing packages with pacman..."
ARCH_DEPS="steam jq zenity flatpak unzip bash fuse2 git rsync whiptail"
sudo pacman --noconfirm -Syu
sudo pacman --noconfirm -S $ARCH_DEPS
elif command -v dnf >/dev/null; then
echo "Installing packages with dnf..."
FEDORA_DEPS="jq zenity flatpak unzip bash fuse git rsync newt"
sudo dnf -y upgrade
sudo dnf -y install $FEDORA_DEPS
elif command -v zypper >/dev/null; then
echo "Installing packages with zypper..."
SUSE_DEPS="steam jq zenity flatpak unzip bash libfuse2 git rsync whiptail"
sudo zypper --non-interactive up
sudo zypper --non-interactive install $SUSE_DEPS
elif command -v xbps-install >/dev/null; then
echo "Installing packages with xbps..."
VOID_DEPS="steam jq zenity flatpak unzip bash fuse git rsync whiptail"
sudo xbps-install -Syu
sudo xbps-install -Sy $VOID_DEPS
else
log_err "Your Linux distro $linuxID is not supported by this script. We invite to open a PR or help us with adding your OS to this script. https://github.com/dragoonDorise/EmuDeck/issues"
exit 1
fi
# this could be replaced to immediately start the EmuDeck setup script
echo "All prerequisite packages have been installed. EmuDeck will be installed now!"
fi
set -eo pipefail
report_error() {
FAILURE="$(caller): ${BASH_COMMAND}"
echo "Something went wrong!"
echo "Error at ${FAILURE}"
}
trap report_error ERR
EMUDECK_GITHUB_URL="https://api.github.com/repos/EmuDeck/emudeck-electron-early-unstable/releases/latest"
EMUDECK_URL="$(curl -s ${EMUDECK_GITHUB_URL} | grep -E 'browser_download_url.*AppImage' | cut -d '"' -f 4)"
mkdir -p ~/Applications
curl -L "${EMUDECK_URL}" -o ~/Applications/EmuDeck.AppImage 2>&1 | stdbuf -oL tr '\r' '\n' | sed -u 's/^ *\([0-9][0-9]*\).*\( [0-9].*$\)/\1\n#Download Speed\:\2/' | zenity --progress --title "Downloading EmuDeck" --width 600 --auto-close --no-cancel 2>/dev/null
chmod +x ~/Applications/EmuDeck.AppImage
nohup ~/Applications/EmuDeck.AppImage
exit

View file

@ -212,6 +212,10 @@ if [ $doInstallYuzu == "true" ]; then
echo "Yuzu_install"
Yuzu_install
fi
if [ $doInstallSuyu == "true" ]; then
echo "suyu_install"
suyu_install
fi
if [ $doInstallRyujinx == "true" ]; then
echo "Ryujinx_install"
Ryujinx_install
@ -335,6 +339,10 @@ if [ "$doSetupYuzu" == "true" ]; then
echo "Yuzu_init"
Yuzu_init
fi
if [ "$doSetupSuyu" == "true" ]; then
echo "suzu_init"
suzu_init
fi
if [ "$doSetupRyujinx" == "true" ]; then
echo "Ryujinx_init"
Ryujinx_init
@ -406,12 +414,6 @@ if [ "$doSetupXenia" == "true" ]; then
fi
#Fixes repeated Symlink for older installations
# Yuzu_finalize move into update / init to clean up install script
#
##
##End of installation

View file

@ -1,5 +1,5 @@
#!/bin/bash
source $HOME/.config/EmuDeck/backend/functions/all.sh
emulatorInit "retroarch"
/usr/bin/flatpak run org.libretro.RetroArch "${@}"
/usr/bin/flatpak run org.libretro.RetroArch $netplayCMD "${@}"
rm -rf "$savesPath/.gaming"

27
tools/launchers/suyu.sh Executable file
View file

@ -0,0 +1,27 @@
#!/bin/bash
source $HOME/.config/EmuDeck/backend/functions/all.sh
emulatorInit "suyu"
emuName="suyu" #parameterize me
emufolder="$HOME/Applications" # has to be applications for ES-DE to find it
#find full path to emu executable
exe=$(find $emufolder -iname "${emuName}*.AppImage" | sort -n | cut -d' ' -f 2- | tail -n 1 2>/dev/null)
echo $exe
#if appimage doesn't exist fall back to flatpak.
if [[ $exe == '' ]]; then
#flatpak
flatpakApp=$(flatpak list --app --columns=application | grep 'citra')
exe="/usr/bin/flatpak run "$flatpakApp
else
#make sure that file is executable
chmod +x $exe
fi
#run the executable with the params.
#Fix first '
param="${@}"
param=$(echo $param | sed -e 's/^/"/' -e 's/$/"/')
eval "${exe} ${param}"
rm -rf "$savesPath/.gaming"

View file

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

View file

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

View file

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

View file

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

View file

@ -450,6 +450,11 @@ fi
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_frontend_controller_switch_pro.vdf &> /dev/null
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_frontend_controller_xbox360.vdf &> /dev/null
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_frontend_controller_xboxone.vdf &> /dev/null
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_frontend_controller_xboxelite.vdf &> /dev/null
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_controller_xboxelite.vdf &> /dev/null
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_frontend_controller_steamcontroller.vdf &> /dev/null
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_controller_steamcontroller.vdf &> /dev/null
rm -rf $HOME/.steam/steam/controller_base/templates/emudeck_steam_deck_light_gun_controls.vdf &> /dev/null
find "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons" -name 'EmuDeck*' -exec rm {} \;

View file

@ -9,13 +9,13 @@
"pcsx2": { "id": "pcsx2", "code": "PCSX2QT", "version": 1 },
"rpcs3": { "id": "rpcs3", "code": "RPCS3", "version": 0 },
"yuzu": { "id": "yuzu", "code": "Yuzu", "version": 1 },
"ryujinx": { "id": "ryujinx", "code": "Ryujinx", "version": 3 },
"ryujinx": { "id": "ryujinx", "code": "Ryujinx", "version": 4 },
"xemu": { "id": "xemu", "code": "Xemu", "version": 0 },
"cemu": { "id": "cemu", "code": "Cemu", "version": 0 },
"srm": { "id": "srm", "code": "SRM", "version": 7 },
"rmg": { "id": "rmg", "code": "RMG", "version": 0 },
"esde": { "id": "esde", "code": "ESDE", "version": 2 },
"pegasus": { "id": "pegasus", "code": "Pegasus", "version": 3 },
"esde": { "id": "esde", "code": "ESDE", "version": 3 },
"pegasus": { "id": "pegasus", "code": "Pegasus", "version": 2 },
"mame": { "id": "mame", "code": "MAME", "version": 0 },
"vita3k": { "id": "vita3k", "code": "Vita3k", "version": 0 },
"scummvm": { "id": "scummvm", "code": "ScummVM", "version": 0 },