Merge pull request #312 from icenine451/cooker-0.7.0b-icenine451
Cooker 0.7.0b icenine451
4
.github/workflows/cooker-selfhosted.yml
vendored
|
@ -51,7 +51,7 @@ jobs:
|
|||
org.freedesktop.Sdk.Extension.llvm13 \
|
||||
org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \
|
||||
runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08
|
||||
/bin/bash ${GITHUB_WORKSPACE}/automation_tools/update_sha.sh # Run SHA placehold replacement script for dynamic archives
|
||||
/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks
|
||||
|
||||
- name: Build flatpak
|
||||
run: |
|
||||
|
@ -101,4 +101,4 @@ jobs:
|
|||
with:
|
||||
name: retrodeck-flatpak
|
||||
path: RetroDECK.flatpak
|
||||
continue-on-error: true
|
||||
continue-on-error: true
|
||||
|
|
4
.github/workflows/main-selfhosted.yml
vendored
|
@ -43,7 +43,7 @@ jobs:
|
|||
org.freedesktop.Sdk.Extension.llvm13 \
|
||||
org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \
|
||||
runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08
|
||||
sh ${GITHUB_WORKSPACE}/automation_tools/update_sha.sh # Run SHA placehold replacement script for dynamic archives
|
||||
/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks
|
||||
|
||||
- name: Build flatpak
|
||||
run: |
|
||||
|
@ -96,4 +96,4 @@ jobs:
|
|||
with:
|
||||
name: retrodeck-flatpak
|
||||
path: RetroDECK.flatpak
|
||||
continue-on-error: true
|
||||
continue-on-error: true
|
||||
|
|
5
automation_tools/automation_task_list.cfg
Normal file
|
@ -0,0 +1,5 @@
|
|||
# The proper format for this file is
|
||||
# ACTION^PLACEHOLDERTEXT^URL^REPO(Optional)
|
||||
hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip
|
||||
hash^VITASHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
|
||||
hash^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage^DUCKSTATIONSHAPLACEHOLDER
|
58
automation_tools/pre_build_automation.sh
Normal file
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
|
||||
# For the file paths to work correctly, call this script with this command from the cloned repo folder root:
|
||||
# sh automation_tools/pre_build_automation.sh
|
||||
# Different actions need different information in the task list file
|
||||
# hash: Finds the SHA256 hash of a file online and updates the placeholder in the manifest.
|
||||
# Needs the URL of the file, in this line format: hash^PLACEHOLDERTEXT^url
|
||||
# latestcommit: Finds the most recent commit of a git repo and updated the placeholder in the manifest.
|
||||
# Needs the URL of the repo and the branch to find the latest commit from, in this line format: latestcommit^PLACEHOLDERTEXT^url^branch
|
||||
# latestappimage: Finds the download URL and SHA256 hash of the latest AppImage release from a git repo
|
||||
# Needs the API URL of the repo, in this line format: latestappimage^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest
|
||||
# As this command updates two different placeholders (one for the URL, one for the file hash) in the manifest,
|
||||
# the URL that would be used in the above example is "PLACEHOLDERTEXT" and the hash placeholder text would be "HASHPLACEHOLDERTEXT"
|
||||
# The "HASH" prefix of the placeholder text is hardcoded in the script
|
||||
|
||||
rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml
|
||||
automation_task_list=${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg
|
||||
|
||||
echo "Manifest location: $rd_manifest"
|
||||
echo "Automation task list location: $automation_task_list"
|
||||
echo
|
||||
echo "Task list contents:"
|
||||
cat "$automation_task_list"
|
||||
echo
|
||||
|
||||
while IFS="^" read -r action placeholder url branch
|
||||
do
|
||||
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
|
||||
if [[ "$action" == "hash" ]]; then
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "URL to hash: $url"
|
||||
echo
|
||||
hash=$(curl -sL "$url" | sha256sum | cut -d ' ' -f1)
|
||||
echo "Hash found: $hash"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$hash"'^' $rd_manifest
|
||||
elif [[ "$action" == "latestcommit" ]]; then
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "Repo to get latest commit from: $url branch: $branch"
|
||||
echo
|
||||
commit=$(git ls-remote "$url" "$branch" | cut -f1)
|
||||
echo "Commit found: $commit"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$commit"'^' $rd_manifest
|
||||
elif [[ "$action" == "latestappimage" ]]; then
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "Repo to look for AppImage releases: $url"
|
||||
echo
|
||||
appimageurl=$(curl -s "$url" | grep browser_download_url | grep "\.AppImage\"" | cut -d : -f 2,3 | tr -d \" | sed -n 1p | tr -d ' ')
|
||||
echo "AppImage URL found: $appimageurl"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$appimageurl"'^' $rd_manifest
|
||||
appimagehash=$(curl -sL "$appimageurl" | sha256sum | cut -d ' ' -f1)
|
||||
echo "AppImage hash found: $appimagehash"
|
||||
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$appimagehash"'^' $rd_manifest
|
||||
fi
|
||||
fi
|
||||
done < "$automation_task_list"
|
|
@ -1,5 +0,0 @@
|
|||
# The proper format for this file is
|
||||
# URL^PLACEHOLDERTEXT
|
||||
https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip^DOOMSHAPLACEHOLDER
|
||||
https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip^VITASHAPLACEHOLDER
|
||||
https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage^DUCKSTATIONSHAPLACEHOLDER
|
|
@ -1,29 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# For the file paths to work correctly, call this script with this command from the cloned repo folder root:
|
||||
# sh automation_tools/update_sha.sh
|
||||
|
||||
rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml
|
||||
sha_update_list=${GITHUB_WORKSPACE}/automation_tools/sha_update_list.cfg
|
||||
|
||||
echo "Manifest location: $rd_manifest"
|
||||
echo "Hash update list location: $sha_update_list"
|
||||
echo
|
||||
echo "Update list contents:"
|
||||
cat "$sha_update_list"
|
||||
echo
|
||||
|
||||
while IFS="^" read -r url placeholder
|
||||
do
|
||||
if [[ ! "$url" == "#"* ]] && [[ ! -z "$url" ]]; then
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "URL to hash: $url"
|
||||
echo
|
||||
hash=$(curl -sL "$url" | sha256sum | cut -d ' ' -f1)
|
||||
echo "Hash found: $hash"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$hash"'^' $rd_manifest
|
||||
fi
|
||||
done < "$sha_update_list"
|
||||
|
||||
echo "Done updating manifest hashes."
|
|
@ -83,19 +83,6 @@ title.keys^switch/keys/^Unknown^Nintendo Switch^A file for Switch emulation in Y
|
|||
pico8^pico-8/^Unknown^PICO-8^The PICO-8 executable (Required)
|
||||
pico8.dat^pico-8/^Unknown^PICO-8^A PICO-8 system file (Required)
|
||||
pico8_dyn^pico-8/^Unknown^PICO-8^A PICO-8 system file (Required)
|
||||
psxonpsp660.bin^^c53ca5908936d412331790f4426c6c33^PSX^PS1 BIOS (At least 1 required)
|
||||
scph5500.bin^^8dd7d5296a650fac7319bce665a6a53c^PSX^PS1 JP BIOS (At least 1 required)
|
||||
scph5501.bin^^490f666e1afb15b7362b406ed1cea246^PSX^PS1 US BIOS (At least 1 required)
|
||||
scph5502.bin^^32736f17079d0b2b7024407c39bd3050^PSX^PS1 EU BIOS (At least 1 required)
|
||||
scph7001.bin^^1e68c231d0896b7eadcad1d7d8e76129^PSX^PS1 BIOS (At least 1 required)
|
||||
scph7002.bin^^b9d9a0286c33dc6b7237bb13cd46fdee^PSX^PS1 BIOS (At least 1 required)
|
||||
scph7003.bin^^490f666e1afb15b7362b406ed1cea246^PSX^PS1 BIOS (At least 1 required)
|
||||
scph7502.bin^^b9d9a0286c33dc6b7237bb13cd46fdee^PSX^PS1 BIOS (At least 1 required)
|
||||
scph9002(7502).bin^^b9d9a0286c33dc6b7237bb13cd46fdee^PSX^PS1 BIOS (At least 1 required)
|
||||
ps1_rom.bin^^81bbe60ba7a3d1cea1d48c14cbcc647b^PSX^PS1 BIOS (At least 1 required)
|
||||
ps2-0200a-20040614.bin^^d333558cc14561c1fdc334c75d5f37b7^PS2^PS2 US BIOS (At least 1 required)
|
||||
ps2-0200e-20040614.bin^^dc752f160044f2ed5fc1f4964db2a095^PS2^PS2 EU BIOS (At least 1 required)
|
||||
ps2-0200j-20040614.bin^^0eee5d1c779aa50e94edd168b4ebf42e^PS2^PS2 JP BIOS (At least 1 required)
|
||||
bios_CD_E.bin^^e66fa1dc5820d254611fdcdba0662372^Sega CD^MegaCD EU BIOS (At least 1 required)
|
||||
bios_CD_U.bin^^2efd74e3232ff260e371b99f84024f7f^Sega CD^SegaCD US BIOS (At least 1 required)
|
||||
bios_CD_J.bin^^278a9397d192149e84e820ac621a8edd^Sega CD^MegaCD JP BIOS (At least 1 required)
|
||||
|
@ -119,6 +106,19 @@ cgrom.dat^keropi/^cb0a5cfcf7247a7eab74bb2716260269^Sharp X68000^Font file (Requi
|
|||
iplrom30.dat^keropi/^Unknown^Sharp X68000^X68000 BIOS 2
|
||||
iplromco.dat^keropi/^Unknown^Sharp X68000^X68000 BIOS 3
|
||||
iplromxv.dat^keropi/^Unknown^Sharp X68000^X68000 BIOS 4
|
||||
psxonpsp660.bin^^c53ca5908936d412331790f4426c6c33^Sony PSX^PS1 BIOS (At least 1 required)
|
||||
scph5500.bin^^8dd7d5296a650fac7319bce665a6a53c^Sony PSX^PS1 JP BIOS (At least 1 required)
|
||||
scph5501.bin^^490f666e1afb15b7362b406ed1cea246^Sony PSX^PS1 US BIOS (At least 1 required)
|
||||
scph5502.bin^^32736f17079d0b2b7024407c39bd3050^Sony PSX^PS1 EU BIOS (At least 1 required)
|
||||
scph7001.bin^^1e68c231d0896b7eadcad1d7d8e76129^Sony PSX^PS1 BIOS (At least 1 required)
|
||||
scph7002.bin^^b9d9a0286c33dc6b7237bb13cd46fdee^Sony PSX^PS1 BIOS (At least 1 required)
|
||||
scph7003.bin^^490f666e1afb15b7362b406ed1cea246^Sony PSX^PS1 BIOS (At least 1 required)
|
||||
scph7502.bin^^b9d9a0286c33dc6b7237bb13cd46fdee^Sony PSX^PS1 BIOS (At least 1 required)
|
||||
scph9002(7502).bin^^b9d9a0286c33dc6b7237bb13cd46fdee^Sony PSX^PS1 BIOS (At least 1 required)
|
||||
ps1_rom.bin^^81bbe60ba7a3d1cea1d48c14cbcc647b^Sony PSX^PS1 BIOS (At least 1 required)
|
||||
ps2-0200a-20040614.bin^^d333558cc14561c1fdc334c75d5f37b7^Sony PS2^PS2 US BIOS (At least 1 required)
|
||||
ps2-0200e-20040614.bin^^dc752f160044f2ed5fc1f4964db2a095^Sony PS2^PS2 EU BIOS (At least 1 required)
|
||||
ps2-0200j-20040614.bin^^0eee5d1c779aa50e94edd168b4ebf42e^Sony PS2^PS2 JP BIOS (At least 1 required)
|
||||
128p-0.rom^fuse/^Unknown^ZX Spectrum^Pentagon 128K/512K/1024 ROM (Required)
|
||||
128p-1.rom^fuse/^Unknown^ZX Spectrum^Pentagon 128K/512K/1024 ROM (Required)
|
||||
trdos.rom^fuse/^Unknown^ZX Spectrum^Pentagon 128K/512K/1024 ROM (Required)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
Cemu
|
||||
citra-emu
|
||||
dolphin-emu
|
||||
duckstation
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[paths]
|
||||
version=
|
||||
|
||||
[paths]
|
||||
rdhome=/home/deck/retrodeck
|
||||
roms_folder=/home/deck/retrodeck/roms
|
||||
saves_folder=/home/deck/retrodeck/saves
|
||||
|
@ -11,6 +12,7 @@ logs_folder=/home/deck/retrodeck/.logs
|
|||
screenshots_folder=/home/deck/retrodeck/screenshots
|
||||
mods_folder=/home/deck/retrodeck/mods
|
||||
texture_packs_folder=/home/deck/retrodeck/texture_packs
|
||||
borders_folder=/home/deck/retrodeck/borders
|
||||
sdcard=/run/media/mmcblk0p1
|
||||
|
||||
[options]
|
||||
|
@ -24,3 +26,15 @@ multi_user_mode=false
|
|||
ask_default_user=true
|
||||
default_user=
|
||||
developer_options=false
|
||||
|
||||
[borders]
|
||||
snes=false
|
||||
genesis=false
|
||||
gb=false
|
||||
gba=false
|
||||
|
||||
[widescreen]
|
||||
snes=false
|
||||
genesis=false
|
||||
gb=false
|
||||
gba=false
|
||||
|
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 435 KiB After Width: | Height: | Size: 435 KiB |
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 374 KiB |
Before Width: | Height: | Size: 365 KiB After Width: | Height: | Size: 365 KiB |
Before Width: | Height: | Size: 493 KiB After Width: | Height: | Size: 493 KiB |
Before Width: | Height: | Size: 619 KiB After Width: | Height: | Size: 619 KiB |
Before Width: | Height: | Size: 2 MiB After Width: | Height: | Size: 2 MiB |
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.2 MiB |
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 374 KiB |
Before Width: | Height: | Size: 407 KiB After Width: | Height: | Size: 407 KiB |
Before Width: | Height: | Size: 650 KiB After Width: | Height: | Size: 650 KiB |
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 170 KiB |
Before Width: | Height: | Size: 483 KiB After Width: | Height: | Size: 483 KiB |
Before Width: | Height: | Size: 720 KiB After Width: | Height: | Size: 720 KiB |
Before Width: | Height: | Size: 161 KiB After Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 612 KiB After Width: | Height: | Size: 612 KiB |
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 398 KiB |
|
@ -2995,7 +2995,7 @@ notification_show_screenshot_duration = "0"
|
|||
notification_show_screenshot_flash = "0"
|
||||
notification_show_set_initial_disk = "true"
|
||||
notification_show_when_menu_is_alive = "false"
|
||||
overlay_directory = "/app/retrodeck/overlays/borders"
|
||||
overlay_directory = "/var/config/retroarch/borders"
|
||||
ozone_collapse_sidebar = "false"
|
||||
ozone_menu_color_theme = "1"
|
||||
ozone_scroll_content_metadata = "false"
|
||||
|
@ -3249,4 +3249,4 @@ xmb_shadows_enable = "true"
|
|||
xmb_switch_icons = "true"
|
||||
xmb_theme = "0"
|
||||
xmb_vertical_thumbnails = "false"
|
||||
youtube_stream_key = ""
|
||||
youtube_stream_key = ""
|
||||
|
|
BIN
es-configs/rd_prepacks/doom/doom.zip
Normal file
16
es-configs/rd_prepacks/doom/gamelist.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0"?>
|
||||
<gameList>
|
||||
<game>
|
||||
<path>./doom1.wad</path>
|
||||
<name>DOOM</name>
|
||||
<desc>In Doom, a nameless space marine is posted to a Martian base where secret teleportation experiments are being conducted. One of these experiments goes horribly wrong and "something fragging evil" starts pouring out of the gateways, killing or possessing all the base personnel!
|
||||
|
||||
Responding to a frantic distress call from the overrun scientists, the Martian marine unit is quickly sent to Phobos to investigate, where you, the space marine, are left to guard the hangar with only a pistol while the rest of the group proceed inside to discover their worst nightmare. As you advance further, terrifying screams echo through the vast halls, followed by a disturbing silence ... it seems, all your buddies are dead and you're all on your own now - fight back, exterminate every evil creature and get your ticket back home to earth!</desc>
|
||||
<rating>0.9</rating>
|
||||
<releasedate>19930101T000000</releasedate>
|
||||
<developer>id Software</developer>
|
||||
<publisher>GT Interactive</publisher>
|
||||
<genre>Shooter / 1st person</genre>
|
||||
<players>1-4</players>
|
||||
</game>
|
||||
</gameList>
|
1211
functions.sh
18
global.sh
|
@ -27,15 +27,19 @@ default_sd="/run/media/mmcblk0p1"
|
|||
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
|
||||
rd_repo="https://github.com/XargonWan/RetroDECK" # The URL of the main RetroDECK GitHub repo
|
||||
es_themes_list="https://gitlab.com/es-de/themes/themes-list/-/raw/master/themes.json" # The URL of the ES-DE 2.0 themes list
|
||||
remote_network_target="https://one.one.one.one" # The URL of a common internet target for testing network access
|
||||
rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2023_0228_05fe32f5dc8c78acbcd84d36ee7fdc5b/PS3UPDAT.PUP"
|
||||
|
||||
# Config files for emulators with single config files
|
||||
|
||||
cemuconf="/var/config/Cemu/settings.xml"
|
||||
citraconf="/var/config/citra-emu/qt-config.ini"
|
||||
duckstationconf="/var/data/duckstation/settings.ini"
|
||||
melondsconf="/var/config/melonDS/melonDS.ini"
|
||||
yuzuconf="/var/config/yuzu/qt-config.ini"
|
||||
xemuconf="/var/config/xemu/xemu.toml"
|
||||
ppssppconf="/var/config/ppsspp/PSP/SYSTEM/ppsspp.ini"
|
||||
ryujinxconf="/var/config/Ryujinx/Config.json"
|
||||
xemuconf="/var/config/xemu/xemu.toml"
|
||||
yuzuconf="/var/config/yuzu/qt-config.ini"
|
||||
|
||||
# ES-DE config files
|
||||
|
||||
|
@ -115,13 +119,13 @@ then
|
|||
echo "RetroDECK config file initialized. Contents:"
|
||||
echo
|
||||
cat $rd_conf
|
||||
source $rd_conf # Load new variables into memory
|
||||
conf_read # Load new variables into memory
|
||||
|
||||
# If the config file is existing i just read the variables (source it)
|
||||
# If the config file is existing i just read the variables
|
||||
else
|
||||
echo "Found RetroDECK config file in $rd_conf"
|
||||
echo "Loading it"
|
||||
source "$rd_conf"
|
||||
conf_read
|
||||
|
||||
# Verify rdhome is where it is supposed to be.
|
||||
if [[ ! -d $rdhome ]]; then
|
||||
|
@ -129,7 +133,7 @@ else
|
|||
configurator_generic_dialog "The RetroDECK data folder was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the \"retrodeck\" folder."
|
||||
new_home_path=$(directory_browse "RetroDECK folder location")
|
||||
sed -i 's#'$prev_home_path'#'$new_home_path'#g' $rd_conf
|
||||
source "$rd_conf"
|
||||
emulators_post_move
|
||||
conf_read
|
||||
prepare_emulator "all" "postmove"
|
||||
fi
|
||||
fi
|
||||
|
|
11
net.retrodeck.retrodeck.Configurator.desktop
Normal file
|
@ -0,0 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Name=RetroDECK Configurator
|
||||
GenericName=RetroDECK Configuration Utility
|
||||
Type=Application
|
||||
Comment=A handy tool to change common RetroDECK settings
|
||||
Icon=net.retrodeck.retrodeck
|
||||
Exec=flatpak run net.retrodeck.retrodeck --configurator
|
||||
Terminal=false
|
||||
StartupNotify=false
|
||||
Keywords=multi;engine;emulator;standalone;steam;deck
|
||||
Categories=Game;Emulator;
|
|
@ -1202,6 +1202,7 @@ modules:
|
|||
- cp es-configs/es_systems.xml /app/share/emulationstation/resources/systems/unix/
|
||||
# These must be put in home folder, managed by retrodeck.sh
|
||||
- cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
|
||||
- cp -rt ${FLATPAK_DEST}/retrodeck/rd_prepacks/ es-configs/rd_prepacks/*
|
||||
|
||||
# Logo, res, move graphics directory away from default location so splash can be changed after build
|
||||
- mv -f -t ${FLATPAK_DEST}/retrodeck /app/share/emulationstation/resources/graphics
|
||||
|
@ -1226,8 +1227,9 @@ modules:
|
|||
- cp functions.sh /app/libexec/functions.sh
|
||||
- cp post_update.sh /app/libexec/post_update.sh
|
||||
|
||||
# Desktop entry
|
||||
# Desktop entries
|
||||
- cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
|
||||
- cp net.retrodeck.retrodeck.Configurator.desktop /app/share/applications/net.retrodeck.retrodeck.Configurator.desktop
|
||||
|
||||
# TODO: group the configs per-emu and optimize the following cps, like already done with Dolphin. Please not that some files may be renamed, check retrodeck.sh to know how (and fix it after the edit)
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ post_update() {
|
|||
# - Fix PICO-8 folder structure. ROM and save folders are now sane and binary files will go into ~/retrodeck/bios/pico-8/
|
||||
|
||||
rm -rf /var/config/primehack # Purge old Primehack config files. Saves are safe as they are linked into /var/data/primehack.
|
||||
primehack_init
|
||||
prepare_emulator "reset" "primehack"
|
||||
|
||||
dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards"
|
||||
dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates"
|
||||
|
@ -88,9 +88,13 @@ post_update() {
|
|||
|
||||
sed -i '/version=.*/G' $rd_conf
|
||||
sed -i '3i [paths]' $rd_conf
|
||||
sed -i '/^power_user=.*/i [options]' $rd_conf
|
||||
sed -i '/^power_user_warning=.*/i [options]' $rd_conf
|
||||
|
||||
cp /app/retrodeck/extras/doom1.wad "$roms_folder/doom/doom1.wad" # No -f in case the user already has it
|
||||
mkdir -p "/var/config/emulationstation/.emulationstation/gamelists/doom"
|
||||
cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "/var/config/emulationstation/.emulationstation/gamelists/doom/gamelist.xml"
|
||||
mkdir -p "$media_folder/doom"
|
||||
unzip -q "/app/retrodeck/rd_prepacks/doom/doom.zip" -d "$media_folder/doom/"
|
||||
fi
|
||||
|
||||
# The following commands are run every time.
|
||||
|
@ -104,4 +108,4 @@ post_update() {
|
|||
--title "RetroDECK Finishing Upgrade" \
|
||||
--text="RetroDECK is finishing the upgrade process, please wait."
|
||||
create_lock
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
diff -au1r emulationstation-de/CMake/Packages/FindFFmpeg.cmake emulationstation-de/CMake/Packages/FindFFmpeg.cmake
|
||||
--- emulationstation-de/CMake/Packages/FindFFmpeg.cmake 2023-04-12 09:08:12.384935336 -0400
|
||||
+++ emulationstation-de/CMake/Packages/FindFFmpeg.cmake 2023-04-19 08:33:48.816378155 -0400
|
||||
@@ -29,2 +29,3 @@
|
||||
/usr/freeware/include
|
||||
+ /app/lib/ffmpeg
|
||||
NO_DEFAULT_PATH
|
||||
diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de/es-app/src/guis/GuiMenu.cpp
|
||||
--- emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-04-12 09:08:12.394935336 -0400
|
||||
+++ emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-04-12 16:25:04.618753274 -0400
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 717b78093797270877ec416e58082f1c71d435d8
|
||||
Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
|
|
@ -58,7 +58,7 @@ https://retrodeck.net
|
|||
if [[ "$emulator" =~ ^(retroarch|cemu|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-emulators)$ ]]; then
|
||||
read -p "You are about to reset $emulator to default settings. Enter 'y' to continue, 'n' to stop: " response
|
||||
if [[ $response == [yY] ]]; then
|
||||
cli_emulator_reset $emulator
|
||||
prepare_emulator "reset" "$emulator" "cli"
|
||||
read -p "The process has been completed, press Enter key to start RetroDECK."
|
||||
shift # Continue launch after previous command is finished
|
||||
else
|
||||
|
@ -106,6 +106,8 @@ then
|
|||
echo "Config file's version is $version but the actual version is $hard_version"
|
||||
|
||||
if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build
|
||||
set_setting_value $rd_conf "update_repo" "RetroDECK-cooker" retrodeck "options"
|
||||
set_setting_value $rd_conf "update_check" "true" retrodeck "options"
|
||||
cooker_base_version=$(echo $hard_version | cut -d'-' -f2 | sed 's/\([0-9]\.[0-9][a-z]\).*/\1/')
|
||||
choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Fresh Install" \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
|
@ -128,6 +130,10 @@ then
|
|||
post_update
|
||||
fi
|
||||
else # If newly-installed version is a normal build.
|
||||
grep -qF "cooker" <<< $version; then # If previously installed version was a cooker build
|
||||
set_setting_value $rd_conf "update_repo" "RetroDECK" retrodeck "options"
|
||||
set_setting_value $rd_conf "update_check" "false" retrodeck "options"
|
||||
fi
|
||||
post_update # Executing post update script
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -36,6 +36,9 @@ source /app/libexec/functions.sh
|
|||
# - Compress Games
|
||||
# - Manual single-game selection
|
||||
# - Multi-file compression (CHD)
|
||||
# - Download ES themes
|
||||
# - Download PS3 firmware
|
||||
# - Backup RetroDECK userdata
|
||||
# - Reset
|
||||
# - Reset Specific Emulator
|
||||
# - Reset RetroArch
|
||||
|
@ -86,13 +89,13 @@ configurator_reset_dialog() {
|
|||
|
||||
case $emulator_to_reset in
|
||||
|
||||
"RetroArch" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "RetroArch" "Are you sure you want to reset the RetroArch emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
"RetroArch" | "XEMU" ) # Emulators that require network access
|
||||
if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
if [[ $(check_network_connectivity) == "true" ]]; then
|
||||
ra_init
|
||||
prepare_emulator "reset" "$emulator_to_reset" "configurator"
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "You do not appear to be connected to a network with internet access.\n\nThe RetroArch reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available."
|
||||
configurator_generic_dialog "You do not appear to be connected to a network with internet access.\n\nThe $emulator_to_reset reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
else
|
||||
|
@ -101,114 +104,9 @@ configurator_reset_dialog() {
|
|||
fi
|
||||
;;
|
||||
|
||||
"Cemu" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "Cemu" "Are you sure you want to reset the Cemu emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
cemu_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"Citra" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "Citra" "Are you sure you want to reset the Citra emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
citra_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"Dolphin" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "Dolphin" "Are you sure you want to reset the Dolphin emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
dolphin_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"Duckstation" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "Duckstation" "Are you sure you want to reset the Duckstation emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
duckstation_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"MelonDS" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "MelonDS" "Are you sure you want to reset the MelonDS emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
melonds_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"PCSX2" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "PCSX2" "Are you sure you want to reset the PCSX2 emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
pcsx2_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"PPSSPP" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "PPSSPP" "Are you sure you want to reset the PPSSPP emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
ppssppsdl_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"Primehack" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "Primehack" "Are you sure you want to reset the Primehack emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
primehack_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"RPCS3" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "RPCS3" "Are you sure you want to reset the RPCS3 emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
rpcs3_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"XEMU" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "XEMU" "Are you sure you want to reset the XEMU emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
if [[ $(check_network_connectivity) == "true" ]]; then
|
||||
xemu_init
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "You do not appear to be connected to a network with internet access.\n\nThe Xemu reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
configurator_reset_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"Yuzu" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "Yuzu" "Are you sure you want to reset the Yuzu emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
yuzu_init
|
||||
"Cemu" | "Citra" | "Dolphin" | "Duckstation" | "MelonDS" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" | "Yuzu" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
prepare_emulator "reset" "$emulator_to_reset" "configurator"
|
||||
configurator_process_complete_dialog "resetting $emulator_to_reset"
|
||||
else
|
||||
configurator_generic_dialog "Reset process cancelled."
|
||||
|
@ -226,8 +124,7 @@ configurator_reset_dialog() {
|
|||
"Reset All Emulators" )
|
||||
if [[ $(configurator_reset_confirmation_dialog "all emulators" "Are you sure you want to reset all emulators to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
|
||||
if [[ $(check_network_connectivity) == "true" ]]; then
|
||||
ra_init
|
||||
standalones_init
|
||||
prepare_emulator "reset" "all"
|
||||
configurator_process_complete_dialog "resetting all emulators"
|
||||
else
|
||||
configurator_generic_dialog "You do not appear to be connected to a network with internet access.\n\nThe all-emulator reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available."
|
||||
|
@ -299,7 +196,7 @@ configurator_power_user_warning_dialog() {
|
|||
configurator_welcome_dialog
|
||||
elif [[ $choice == "Never show this again" ]]; then
|
||||
set_setting_value $rd_conf "power_user_warning" "false" retrodeck "options" # Store desktop mode warning variable for future checks
|
||||
source $rd_conf
|
||||
conf_read
|
||||
configurator_power_user_changes_dialog
|
||||
fi
|
||||
fi
|
||||
|
@ -834,6 +731,19 @@ configurator_online_theme_downloader() {
|
|||
fi
|
||||
}
|
||||
|
||||
configurator_rpcs3_firmware_updater() {
|
||||
configurator_generic_dialog "This tool will download firmware required by RPCS3 to emulate PS3 games.\n\nThe process will take several minutes, and the emulator will launch to finish the installation.\nPlease close RPCS3 manually once the installation is complete."
|
||||
(
|
||||
update_rpcs3_firmware
|
||||
) |
|
||||
zenity --progress --pulsate \
|
||||
--icon-name=net.retrodeck.retrodeck \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title="Downloading PS3 Firmware" \
|
||||
--no-cancel \
|
||||
--auto-close
|
||||
}
|
||||
|
||||
configurator_tools_and_troubleshooting_dialog() {
|
||||
choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
|
||||
|
@ -843,13 +753,15 @@ configurator_tools_and_troubleshooting_dialog() {
|
|||
"Basic BIOS file check" "Show a list of systems that BIOS files are found for" \
|
||||
"Advanced BIOS file check" "Show advanced information about common BIOS files" \
|
||||
"Compress Games" "Compress games to CHD format for systems that support it" \
|
||||
"Download/Update Themes" "Download new themes for RetroDECK or update existing ones" )
|
||||
"Download/Update Themes" "Download new themes for RetroDECK or update existing ones" \
|
||||
"Download PS3 Firmware" "Download PS3 firmware for use with the RPCS3 emulator" \
|
||||
"Backup RetroDECK Userdata" "Compress important RetroDECK user data folders" )
|
||||
|
||||
case $choice in
|
||||
|
||||
"Move RetroDECK" )
|
||||
configurator_generic_dialog "This option will move the RetroDECK data folder (ROMs, saves, BIOS etc.) to a new location.\n\nPlease choose where to move the RetroDECK data folder."
|
||||
configurator_move_dialog
|
||||
configurator_move_retrodeck_dialog
|
||||
;;
|
||||
|
||||
"Multi-file game structure check" )
|
||||
|
@ -869,7 +781,38 @@ configurator_tools_and_troubleshooting_dialog() {
|
|||
;;
|
||||
|
||||
"Download/Update Themes" )
|
||||
configurator_online_theme_downloader
|
||||
if [[ $(check_network_connectivity) == "true" ]]; then
|
||||
configurator_online_theme_downloader
|
||||
else
|
||||
configurator_generic_dialog "You do not appear to currently have Internet access, which is required by this tool. Please try again when network access has been restored."
|
||||
configurator_tools_and_troubleshooting_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"Download PS3 Firmware" )
|
||||
if [[ $(check_network_connectivity) == "true" ]]; then
|
||||
configurator_rpcs3_firmware_updater
|
||||
else
|
||||
configurator_generic_dialog "You do not appear to currently have Internet access, which is required by this tool. Please try again when network access has been restored."
|
||||
configurator_tools_and_troubleshooting_dialog
|
||||
fi
|
||||
;;
|
||||
|
||||
"Backup RetroDECK Userdata" )
|
||||
configurator_generic_dialog "This tool will compress important RetroDECK userdata (basically everything except the ROMs folder) into a zip file.\n\nThis process can take several minutes, and the resulting zip file can be found in the ~/retrodeck/backups folder."
|
||||
(
|
||||
backup_retrodeck_userdata
|
||||
) |
|
||||
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title "RetroDECK Configurator Utility - Backup in Progress" \
|
||||
--text="Backing up RetroDECK userdata, please wait..."
|
||||
if [[ -f $backups_folder/$(date +"%0m%0d")_retrodeck_userdata.zip ]]; then
|
||||
configurator_generic_dialog "The backup process is now complete."
|
||||
else
|
||||
configurator_generic_dialog "The backup process could not be completed,\nplease check the logs folder for more information."
|
||||
fi
|
||||
configurator_tools_and_troubleshooting_dialog
|
||||
;;
|
||||
|
||||
"" ) # No selection made or Back button clicked
|
||||
|
@ -879,7 +822,7 @@ configurator_tools_and_troubleshooting_dialog() {
|
|||
esac
|
||||
}
|
||||
|
||||
configurator_move_dialog() {
|
||||
configurator_move_retrodeck_dialog() {
|
||||
if [[ -d $rdhome ]]; then
|
||||
destination=$(configurator_destination_choice_dialog "RetroDECK Data" "Please choose a destination for the RetroDECK data folder.")
|
||||
case $destination in
|
||||
|
@ -891,11 +834,11 @@ configurator_move_dialog() {
|
|||
"Internal Storage" )
|
||||
if [[ ! -L "$HOME/retrodeck" && -d "$HOME/retrodeck" ]]; then
|
||||
configurator_generic_dialog "The RetroDECK data folder is already at that location, please pick a new one."
|
||||
configurator_move_dialog
|
||||
configurator_move_retrodeck_dialog
|
||||
else
|
||||
configurator_generic_dialog "Moving RetroDECK data folder to $destination"
|
||||
unlink $HOME/retrodeck # Remove symlink for $rdhome
|
||||
move $rdhome "$HOME"
|
||||
#move $rdhome "$HOME"
|
||||
if [[ ! -d $rdhome && -d $HOME/retrodeck ]]; then # If the move succeeded
|
||||
rdhome="$HOME/retrodeck"
|
||||
roms_folder="$rdhome/roms"
|
||||
|
@ -904,7 +847,7 @@ configurator_move_dialog() {
|
|||
bios_folder="$rdhome/bios"
|
||||
media_folder="$rdhome/downloaded_media"
|
||||
themes_folder="$rdhome/themes"
|
||||
emulators_post_move
|
||||
prepare_emulator "all" "postmove"
|
||||
conf_write
|
||||
|
||||
configurator_process_complete_dialog "moving the RetroDECK data directory to internal storage"
|
||||
|
@ -917,7 +860,7 @@ configurator_move_dialog() {
|
|||
"SD Card" )
|
||||
if [[ -L "$HOME/retrodeck" && -d "$sdcard/retrodeck" && "$rdhome" == "$sdcard/retrodeck" ]]; then
|
||||
configurator_generic_dialog "The RetroDECK data folder is already configured to that location, please pick a new one."
|
||||
configurator_move_dialog
|
||||
configurator_move_retrodeck_dialog
|
||||
else
|
||||
if [[ ! -w $sdcard ]]; then
|
||||
configurator_generic_dialog "The SD card was found but is not writable\nThis can happen with cards formatted on PC or for other reasons.\nPlease format the SD card through the Steam Deck's Game Mode and try the moving process again."
|
||||
|
@ -953,7 +896,7 @@ configurator_move_dialog() {
|
|||
bios_folder="$rdhome/bios"
|
||||
media_folder="$rdhome/downloaded_media"
|
||||
themes_folder="$rdhome/themes"
|
||||
emulators_post_move
|
||||
prepare_emulator "all" "postmove"
|
||||
conf_write
|
||||
configurator_process_complete_dialog "moving the RetroDECK data directory to SD card"
|
||||
else
|
||||
|
@ -1004,7 +947,7 @@ configurator_move_dialog() {
|
|||
bios_folder="$rdhome/bios"
|
||||
media_folder="$rdhome/downloaded_media"
|
||||
themes_folder="$rdhome/themes"
|
||||
emulators_post_move
|
||||
prepare_emulator "all" "postmove"
|
||||
conf_write
|
||||
configurator_process_complete_dialog "moving the RetroDECK data directory to SD card"
|
||||
else
|
||||
|
@ -1029,7 +972,7 @@ configurator_move_dialog() {
|
|||
emulator_post_move
|
||||
conf_write
|
||||
configurator_generic_dialog "RetroDECK data folder now configured at $rdhome. Please start the moving process again."
|
||||
configurator_move_dialog
|
||||
configurator_move_retrodeck_dialog
|
||||
fi
|
||||
}
|
||||
|
||||
|
|