mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-22 22:15:39 +00:00
Merged cooker-versioning
This commit is contained in:
commit
259b3a25d0
16
.github/workflows/cooker.yml
vendored
16
.github/workflows/cooker.yml
vendored
|
@ -108,19 +108,19 @@ jobs:
|
||||||
sudo flatpak-builder --user --force-clean --repo=$GITHUB_WORKSPACE/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
|
sudo flatpak-builder --user --force-clean --repo=$GITHUB_WORKSPACE/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
|
||||||
sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck
|
sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck
|
||||||
|
|
||||||
- name: Get date for artifacts
|
# - name: Get date for artifacts
|
||||||
id: date
|
# id: date
|
||||||
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')"
|
# run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')"
|
||||||
|
|
||||||
- name: Extract branch name
|
# - name: Extract branch name
|
||||||
shell: bash
|
# shell: bash
|
||||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
# run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
||||||
id: extract_branch
|
# id: extract_branch
|
||||||
|
|
||||||
- name: Publish the flatpak in a new cooker release
|
- name: Publish the flatpak in a new cooker release
|
||||||
uses: ncipollo/release-action@v1
|
uses: ncipollo/release-action@v1
|
||||||
with:
|
with:
|
||||||
tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}"
|
tag: "$(flatpak run net.retrodeck.retrodeck -v)"
|
||||||
body: |
|
body: |
|
||||||
# Release Notes (Cooker)
|
# Release Notes (Cooker)
|
||||||
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
|
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
|
||||||
|
|
|
@ -28,11 +28,11 @@ finish-args:
|
||||||
- --talk-name=org.freedesktop.login1
|
- --talk-name=org.freedesktop.login1
|
||||||
- --filesystem=xdg-run/app/com.discordapp.Discord:create
|
- --filesystem=xdg-run/app/com.discordapp.Discord:create
|
||||||
# Yuzu
|
# Yuzu
|
||||||
- --filesystem=home:ro
|
# - --filesystem=home:ro # This may break Yuzu, let's see
|
||||||
# - --filesystem=/run/media:ro
|
# - --filesystem=/run/media:ro
|
||||||
# Dolphin
|
# Dolphin
|
||||||
- --allow=bluetooth
|
- --allow=bluetooth
|
||||||
#- --env=QT_QPA_PLATFORM=xcb not sure if this will break something
|
#- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something
|
||||||
# rpcs3
|
# rpcs3
|
||||||
- --socket=fallback-x11
|
- --socket=fallback-x11
|
||||||
|
|
||||||
|
@ -60,6 +60,23 @@ cleanup-commands:
|
||||||
|
|
||||||
modules:
|
modules:
|
||||||
|
|
||||||
|
# This module is used to define the RetroDECK version
|
||||||
|
# If the version is set as cooker it will automatically generate the version tag based on the date
|
||||||
|
# else it will just put what is written, "v" is not needed
|
||||||
|
# The version number is stored in /var/conf/retrodeck/version
|
||||||
|
#
|
||||||
|
# UPDATE STEPS FOR MAIN:
|
||||||
|
# [ ] Update the VERSION variable
|
||||||
|
# [ ] Update the appdata.xml with the version number and notes
|
||||||
|
#
|
||||||
|
- name: version-initialization
|
||||||
|
buildsystem: simple
|
||||||
|
build-commands:
|
||||||
|
- mkdir -p ${FLATPAK_DEST}/retrodeck/
|
||||||
|
- VERSION="cooker"
|
||||||
|
- if [ $VERSION == "cooker" ]; then VERSION=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')-$(date +'%Y%m%d_%H%M'); fi
|
||||||
|
- $VERSION >> ${FLATPAK_DEST}/retrodeck/version
|
||||||
|
|
||||||
- name: xmlstarlet
|
- name: xmlstarlet
|
||||||
config-opts:
|
config-opts:
|
||||||
- --disable-static-libs
|
- --disable-static-libs
|
||||||
|
@ -77,13 +94,6 @@ modules:
|
||||||
- ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:
|
- ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:
|
||||||
cleanup: ["*"]
|
cleanup: ["*"]
|
||||||
|
|
||||||
- name: kdialog
|
|
||||||
buildsystem: cmake-ninja
|
|
||||||
sources:
|
|
||||||
- type: git
|
|
||||||
url: https://github.com/KDE/kdialog.git
|
|
||||||
tag: v22.03.80
|
|
||||||
|
|
||||||
# ES-DE
|
# ES-DE
|
||||||
|
|
||||||
- name: ffmpeg
|
- name: ffmpeg
|
||||||
|
@ -137,8 +147,8 @@ modules:
|
||||||
branch: d89cedd25f1bbb9a38c1f66bca18b74d5332cad1
|
branch: d89cedd25f1bbb9a38c1f66bca18b74d5332cad1
|
||||||
- type: shell
|
- type: shell
|
||||||
commands:
|
commands:
|
||||||
- sed -i 's/QUIT EMULATIONSTATION/QUIT RETRODECK/g' es-app/src/guis/GuiMenu.cpp
|
- sed -i "s/QUIT EMULATIONSTATION/QUIT RETRODECK/g" es-app/src/guis/GuiMenu.cpp
|
||||||
- sed -i 's/"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)/"RetroDECK v0.4.0b, ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)/g' es-app/src/guis/GuiMenu.cpp
|
- sed -i "s/"EMULATIONSTATION-DE V" + Utils::String::toUpper(PROGRAM_VERSION_STRING)/"RetroDECK v$(cat ${FLATPAK_DEST}/retrodeck/version), ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)/g" es-app/src/guis/GuiMenu.cpp
|
||||||
|
|
||||||
# ES-DE - END
|
# ES-DE - END
|
||||||
|
|
||||||
|
@ -962,8 +972,7 @@ modules:
|
||||||
- cp es_find_rules.xml /app/share/emulationstation/resources/systems/unix/
|
- cp es_find_rules.xml /app/share/emulationstation/resources/systems/unix/
|
||||||
- rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml
|
- rm -rf /app/share/emulationstation/resources/systems/unix/es_systems.xml
|
||||||
- cp es_systems.xml /app/share/emulationstation/resources/systems/unix/
|
- cp es_systems.xml /app/share/emulationstation/resources/systems/unix/
|
||||||
# These must be put in home folder, managed by retrodeck.sh - Same as above
|
# These must be put in home folder, managed by retrodeck.sh
|
||||||
- mkdir -p ${FLATPAK_DEST}/retrodeck/
|
|
||||||
- cp es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
|
- cp es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
|
||||||
|
|
||||||
# Logo, res
|
# Logo, res
|
||||||
|
@ -1010,8 +1019,6 @@ modules:
|
||||||
- mkdir -p ${FLATPAK_DEST}/share/appdata
|
- mkdir -p ${FLATPAK_DEST}/share/appdata
|
||||||
- cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata
|
- cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata
|
||||||
|
|
||||||
|
|
||||||
#cleanup: ['*']
|
|
||||||
sources:
|
sources:
|
||||||
- type: dir
|
- type: dir
|
||||||
path: es_configs
|
path: es_configs
|
||||||
|
|
367
retrodeck.sh
Executable file → Normal file
367
retrodeck.sh
Executable file → Normal file
|
@ -1,144 +1,291 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Steam Deck SD path: /run/media/mmcblk0p1
|
lockfile="$HOME/retrodeck/.lock" # where the lockfile is located
|
||||||
|
version="$(cat /app/retrodeck/version)" # version info taken from the version file
|
||||||
|
rdhome="$HOME/retrodeck" # the retrodeck home, aka ~/retrodecck
|
||||||
|
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
|
||||||
|
sdcard="/run/media/mmcblk0p1" # Steam Deck SD default path
|
||||||
|
|
||||||
# Create log
|
# Functions area
|
||||||
exec 3>&1 4>&2
|
|
||||||
trap 'exec 2>&4 1>&3' 0 1 2 3
|
dir_prep() {
|
||||||
echo "$(date) : RetroDECK started" >&3
|
# This script is creating a symlink preserving old folder contents and moving them in the new one
|
||||||
exec 1>~/retrodeck/.retrodeck.log 2>&1
|
|
||||||
|
# Call me with:
|
||||||
|
# dir prep "real dir" "symlink location"
|
||||||
|
real="$1"
|
||||||
|
symlink="$2"
|
||||||
|
|
||||||
|
echo -e "\nDIR PREP: Moving $symlink in $real" #DEBUG
|
||||||
|
|
||||||
|
# if the dest dir exists we want to backup it
|
||||||
|
if [ -d "$symlink" ];
|
||||||
|
then
|
||||||
|
echo "$symlink found" #DEBUG
|
||||||
|
mv -fv "$symlink" "$symlink.old"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# if the real dir doesn't exist we create it
|
||||||
|
if [ ! -d "$real" ];
|
||||||
|
then
|
||||||
|
echo "$real not found, creating it" #DEBUG
|
||||||
|
mkdir -pv "$real"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# creating the symlink
|
||||||
|
echo "linking $real in $symlink" #DEBUG
|
||||||
|
mkdir -pv "$symlink" # creating the full path...
|
||||||
|
previous_dir=$PWD
|
||||||
|
cd "$symlink"
|
||||||
|
cd ..
|
||||||
|
echo "We are in $PWD" #DEBUG
|
||||||
|
ls -ln #DEBUG
|
||||||
|
rmdir -v "$symlink"
|
||||||
|
ln -sv "$real" .
|
||||||
|
echo "We are in $PWD" #DEBUG
|
||||||
|
ls -ln #DEBUG
|
||||||
|
cd $previous_dir
|
||||||
|
|
||||||
|
# moving everything from the old folder to the new one, delete the old one
|
||||||
|
if [ -d "$symlink.old" ];
|
||||||
|
then
|
||||||
|
echo "Moving the data from $symlink.old to $real" #DEBUG
|
||||||
|
mv -fv "$symlink.old/*" "$real"
|
||||||
|
echo "Removing $symlink.old" #DEBUG
|
||||||
|
rm -rf "$symlink.old"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBUG
|
||||||
|
previous_dir=$PWD
|
||||||
|
cd $real
|
||||||
|
cd ..
|
||||||
|
echo "We are in $PWD" #DEBUG
|
||||||
|
ls -ln
|
||||||
|
cd $previous_dir
|
||||||
|
#DEBUG
|
||||||
|
|
||||||
|
echo $symlink is now $real
|
||||||
|
}
|
||||||
|
|
||||||
is_mounted() {
|
is_mounted() {
|
||||||
|
# This script checks if the provided path in $1 is mounted
|
||||||
mount | awk -v DIR="$1" '{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}'
|
mount | awk -v DIR="$1" '{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}'
|
||||||
}
|
}
|
||||||
|
|
||||||
# if we got the .lock file it means that it's not a first run
|
tools_init() {
|
||||||
if [ ! -f ~/retrodeck/.lock ]
|
rm -rfv /var/config/retrodeck/tools/
|
||||||
then
|
mkdir -pv /var/config/retrodeck/tools/
|
||||||
kdialog --title "RetroDECK" --yes-label "Yes" --no-label "Quit" --yesno "Welcome to the first configuration of RetroDECK.\n\nBefore starting, are you in Desktop Mode?\nIf not the program will quit as the first setup MUST be done in Desktop Mode."
|
cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools/
|
||||||
if [ $? == 1 ] #quit
|
mkdir -pv /var/config/emulationstation/.emulationstation/custom_systems/tools/
|
||||||
then
|
cp /app/retrodeck/tools-gamelist.xml /var/config/retrodeck/tools/gamelist.xml
|
||||||
exit 0
|
}
|
||||||
fi
|
|
||||||
kdialog --title "RetroDECK" --yes-label "Internal" --no-label "SD Card" --yesno "Where do you want your roms folder to be located?"
|
standalones_init() {
|
||||||
|
# This script is configuring the standalone emulators with the default files present in emuconfigs folder
|
||||||
|
|
||||||
|
echo "Initializing standalone emulators"
|
||||||
|
|
||||||
|
# Yuzu
|
||||||
|
# removing dead symlinks as they were present in a past version
|
||||||
|
if [ -d $rdhome/bios/switch ]; then
|
||||||
|
find $rdhome/bios/switch -xtype l -exec rm {} \;
|
||||||
|
fi
|
||||||
|
# initializing the keys folder
|
||||||
|
dir_prep "$rdhome/bios/switch/keys" "/var/data/yuzu/keys"
|
||||||
|
# initializing the firmware folder
|
||||||
|
dir_prep "$rdhome/bios/switch/registered" "/var/data/yuzu/nand/system/Contents/registered/"
|
||||||
|
# configuring Yuzu
|
||||||
|
mkdir -pv /var/config/yuzu/
|
||||||
|
cp -fv $emuconfigs/yuzu-qt-config.ini /var/config/yuzu/qt-config.ini
|
||||||
|
|
||||||
|
# Dolphin
|
||||||
|
mkdir -pv /var/config/dolphin-emu/
|
||||||
|
cp -fv $emuconfigs/Dolphin.ini /var/config/dolphin-emu/
|
||||||
|
|
||||||
|
# pcsx2
|
||||||
|
mkdir -pv /var/config/PCSX2/inis/
|
||||||
|
cp -fv $emuconfigs/PCSX2_ui.ini /var/config/PCSX2/inis/
|
||||||
|
|
||||||
|
# MelonDS
|
||||||
|
mkdir -pv /var/config/melonDS/
|
||||||
|
dir_prep "$rdhome/bios" "/var/config/melonDS/bios"
|
||||||
|
cp -fv $emuconfigs/melonDS.ini /var/config/melonDS/
|
||||||
|
|
||||||
|
# CITRA
|
||||||
|
mkdir -pv /var/config/citra-emu/
|
||||||
|
cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini
|
||||||
|
|
||||||
|
# RPCS3
|
||||||
|
mkdir -pv /var/config/rpcs3/
|
||||||
|
cp -fv $emuconfigs/config.yml /var/config/rpcs3/
|
||||||
|
|
||||||
|
# PICO-8
|
||||||
|
mkdir -pv $roms_folder/pico-8
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ra_init() {
|
||||||
|
dir_prep "$rdhome/bios" "/var/config/retroarch/system"
|
||||||
|
mkdir -pv /var/config/retroarch/cores/
|
||||||
|
cp /app/share/libretro/cores/* /var/config/retroarch/cores/
|
||||||
|
cp -f $emuconfigs/retroarch.cfg /var/config/retroarch/
|
||||||
|
#rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created
|
||||||
|
}
|
||||||
|
|
||||||
|
create_lock() {
|
||||||
|
# creating RetroDECK's lock file and writing the version number in it
|
||||||
|
echo "$version" > "$lockfile"
|
||||||
|
}
|
||||||
|
|
||||||
|
post_update() {
|
||||||
|
# post update script
|
||||||
|
echo "Executing post-update script"
|
||||||
|
|
||||||
|
# Doing the dir prep as we don know from which version we came
|
||||||
|
dir_prep "$rdhome/.downloaded_media" "/var/config/emulationstation/.emulationstation/downloaded_media"
|
||||||
|
dir_prep "$rdhome/.themes" "/var/config/emulationstation/.emulationstation/themes"
|
||||||
|
ra_init
|
||||||
|
standalones_init
|
||||||
|
tools_init
|
||||||
|
|
||||||
|
create_lock
|
||||||
|
}
|
||||||
|
|
||||||
|
start_retrodeck() {
|
||||||
|
# normal startup
|
||||||
|
echo "Starting RetroDECK v$version"
|
||||||
|
emulationstation --home /var/config/emulationstation
|
||||||
|
}
|
||||||
|
|
||||||
|
finit() {
|
||||||
|
# Force/First init, depending on the situation
|
||||||
|
|
||||||
|
echo "Executing finit"
|
||||||
|
|
||||||
|
# Internal or SD Card?
|
||||||
|
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --ok-label "Internal" --cancel-label "SD Card" --text="Welcome to the first configuration of RetroDECK.\nThe setup will be quick but please READ CAREFULLY each message in order to avoid misconfigurations.\n\nWhere do you want your roms folder to be located?"
|
||||||
if [ $? == 0 ] #yes - Internal
|
if [ $? == 0 ] #yes - Internal
|
||||||
then
|
then
|
||||||
roms_folder=~/retrodeck/roms
|
roms_folder="$rdhome/roms"
|
||||||
else #no - SD Card
|
else #no - SD Card
|
||||||
if is_mounted "/run/media/mmcblk0p1"
|
if [ is_mounted "$sdcard" ];
|
||||||
then
|
then
|
||||||
roms_folder=/run/media/mmcblk0p1/retrodeck/roms
|
roms_folder="$sdcard/retrodeck/roms"
|
||||||
else
|
else
|
||||||
kdialog --title "RetroDECK" --error "SD Card is not readable, please check if it inserted or mounted correctly and run RetroDECK again."
|
zenity --error --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="SD Card is not readable.\nPlease check if it's inserted or mounted correctly and run RetroDECK again."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $roms_folder
|
mkdir -pv $roms_folder
|
||||||
|
|
||||||
# initializing ES-DE
|
# TODO: after the next update of ES-DE this will not be needed
|
||||||
|
zenity --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="EmulationStation will now initialize the system.\nPlease DON'T EDIT THE ROMS LOCATION, just select:\n\nCREATE DIRECTORIES\nYES\nOK\nQUIT\n\nRetroDECK will manage the rest."
|
||||||
|
|
||||||
mkdir -p /var/config/retrodeck/tools
|
# Recreating the folder
|
||||||
|
/var/config/retrodeck/tools/
|
||||||
|
mkdir -pv /var/config/emulationstation/
|
||||||
|
# Initializing ES-DE
|
||||||
|
# TODO: after the next update of ES-DE this will not be needed
|
||||||
|
start_retrodeck
|
||||||
|
|
||||||
# Cleaning
|
zenity --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="RetroDECK will now install the needed files.\nPlease wait up to one minute,\nanother message will notify when the process will be finished.\n\nPress OK to continue."
|
||||||
rm -rf /var/config/emulationstation/
|
|
||||||
rm /var/config/retrodeck/tools/*
|
|
||||||
rm -f /var/config/yuzu/qt-config.ini
|
|
||||||
|
|
||||||
kdialog --title "RetroDECK" --msgbox "EmulationStation will now initialize the system, please don't edit the roms location, just select:\n\nCREATE DIRECTORIES, YES, QUIT\n\nRetroDECK will manage the rest."
|
# Initializing ROMs folder - Original in retrodeck home (or SD Card)
|
||||||
|
dir_prep $roms_folder "/var/config/emulationstation/ROMs"
|
||||||
|
|
||||||
mkdir -p /var/config/emulationstation/
|
mkdir -pv $rdhome/saves
|
||||||
|
mkdir -pv $rdhome/states
|
||||||
emulationstation --home /var/config/emulationstation
|
mkdir -pv $rdhome/screenshots
|
||||||
|
mkdir -pv $rdhome/bios/pico-8
|
||||||
kdialog --title "RetroDECK" --msgbox "RetroDECK will now install the needed files, please wait one minute, another message will notify when the process will be finished.\n\nPress OK to continue."
|
|
||||||
|
|
||||||
# Initializing ROMs folder - Original in ~/retrodeck (or SD Card)
|
|
||||||
mv -f /var/config/emulationstation/ROMs /var/config/emulationstation/ROMs.bak
|
|
||||||
ln -s $roms_folder /var/config/emulationstation/ROMs
|
|
||||||
mv -f /var/config/emulationstation/ROMs.bak/* $roms_folder/
|
|
||||||
rm -rf /var/config/emulationstation/ROMs.bak
|
|
||||||
|
|
||||||
# XMLSTARLET HERE
|
# XMLSTARLET HERE
|
||||||
cp /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
|
cp -f /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
|
||||||
|
|
||||||
mkdir -p ~/retrodeck/saves
|
# ES-DE preparing themes and scraped folders
|
||||||
mkdir -p ~/retrodeck/states
|
dir_prep "$rdhome/.downloaded_media" "/var/config/emulationstation/.emulationstation/downloaded_media"
|
||||||
mkdir -p ~/retrodeck/screenshots
|
dir_prep "$rdhome/.themes" "/var/config/emulationstation/.emulationstation/themes"
|
||||||
mkdir -p ~/retrodeck/bios/pico-8
|
|
||||||
|
|
||||||
# TODO: write a function for these stuff below
|
ra_init
|
||||||
|
standalones_init
|
||||||
|
tools_init
|
||||||
|
create_lock
|
||||||
|
|
||||||
# ES-DE
|
zenity --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="Initialization completed.\nplease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n$rdhome/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIt's suggested to add RetroDECK to your Steam Library for a quick access."
|
||||||
cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools/
|
# TODO: Replace the stuff above with BoilR code when ready
|
||||||
mkdir -p /var/config/emulationstation/.emulationstation/custom_systems/tools/
|
}
|
||||||
cp /app/retrodeck/tools-gamelist.xml /var/config/retrodeck/tools/gamelist.xml
|
|
||||||
# ES-DE scraped folder - Original in ~/retrodeck
|
|
||||||
mv -f /var/config/emulationstation/.emulationstation/downloaded_media /var/config/emulationstation/.emulationstation/downloaded_media.old
|
|
||||||
mkdir ~/retrodeck/.downloaded_media
|
|
||||||
ln -s ~/retrodeck/.downloaded_media /var/config/emulationstation/.emulationstation/downloaded_media
|
|
||||||
mv -f /var/config/emulationstation/.emulationstation/downloaded_media.old/* ~/retrodeck/.downloaded_media
|
|
||||||
rm -rf /var/config/emulationstation/.emulationstation/downloaded_media.old
|
|
||||||
# ES-DE themes folder - Original in ~/retrodeck
|
|
||||||
mv -f /var/config/emulationstation/.emulationstation/themes /var/config/emulationstation/.emulationstation/themes.old
|
|
||||||
mkdir ~/retrodeck/.themes
|
|
||||||
ln -s ~/retrodeck/.themes /var/config/emulationstation/.emulationstation/themes
|
|
||||||
mv -f /var/config/emulationstation/.emulationstation/themes.old/* ~/retrodeck/.themes
|
|
||||||
rm -rf /var/config/emulationstation/.emulationstation/themes.old
|
|
||||||
|
|
||||||
# Initializing emulators configs
|
# Arguments section
|
||||||
emuconfigs=/app/retrodeck/emu-configs/
|
|
||||||
|
|
||||||
# RetroArch
|
for i in "$@"; do
|
||||||
mkdir -p /var/config/retroarch/cores/
|
case $i in
|
||||||
rm -rf /var/config/retroarch/system
|
-h*|--help*)
|
||||||
ln -s ~/retrodeck/bios /var/config/retroarch/system
|
echo "RetroDECK v""$(cat /var/config/retrodeck/version)"
|
||||||
cp /app/share/libretro/cores/* /var/config/retroarch/cores/
|
echo "
|
||||||
cp $emuconfigs/retroarch.cfg /var/config/retroarch/
|
Usage:
|
||||||
rm -f ~/retrodeck/bios/bios # in some situations a double bios link is created
|
flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS]
|
||||||
|
|
||||||
# Yuzu
|
Arguments:
|
||||||
find ~/retrodeck/bios/switch -xtype l -exec rm {} \; # removing dead symlinks
|
-h, --help Print this help
|
||||||
# initializing the keys folder
|
-v, --version Print RetroDECK version
|
||||||
mkdir -p ~/retrodeck/bios/switch/keys
|
--reset Starts the initial RetroDECK installer (backup your data first!)
|
||||||
rm -rf /var/data/yuzu/keys
|
--reset-ra Resets RetroArch's config to the default values
|
||||||
ln -s ~/retrodeck/bios/switch/keys /var/data/yuzu/keys
|
--reset-sa Reset standalone emulator configs to the default values
|
||||||
# initializing the firmware folder
|
--reset-tools Recreate the tools section
|
||||||
mkdir -p ~/retrodeck/bios/switch/registered
|
|
||||||
rm -rf /var/data/yuzu/nand/system/Contents/registered/
|
|
||||||
ln -s ~/retrodeck/bios/switch/registered /var/data/yuzu/nand/system/Contents/registered/
|
|
||||||
# configuring Yuzu
|
|
||||||
cp $emuconfigs/yuzu-qt-config.ini /var/config/yuzu/qt-config.ini
|
|
||||||
|
|
||||||
# Dolphin
|
For flatpak run specific options please run: flatpak run -h
|
||||||
mkdir -p /var/config/dolphin-emu/
|
|
||||||
cp $emuconfigs/Dolphin.ini /var/config/dolphin-emu/
|
|
||||||
|
|
||||||
# pcsx2
|
https://retrodeck.net
|
||||||
mkdir -p /var/config/PCSX2/inis/
|
"
|
||||||
cp $emuconfigs/PCSX2_ui.ini /var/config/PCSX2/inis/
|
exit
|
||||||
|
;;
|
||||||
|
--version*|-v*)
|
||||||
|
cat /var/config/retrodeck/version
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
--reset*)
|
||||||
|
rm -f "$lockfile"
|
||||||
|
shift # past argument with no value
|
||||||
|
;;
|
||||||
|
--reset-ra*)
|
||||||
|
ra_init
|
||||||
|
shift # past argument with no value
|
||||||
|
;;
|
||||||
|
--reset-sa*)
|
||||||
|
standalones_init
|
||||||
|
shift # past argument with no value
|
||||||
|
;;
|
||||||
|
--reset-tools*)
|
||||||
|
tools_init
|
||||||
|
shift # past argument with no value
|
||||||
|
;;
|
||||||
|
-*|--*)
|
||||||
|
echo "Unknown option $i"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
# MelonDS
|
# UPDATE TRIGGERED
|
||||||
mkdir -p /var/config/melonDS/
|
# if lockfile exists but the version doesn't match
|
||||||
ln -s ~/retrodeck/bios /var/config/melonDS/bios
|
if [ -f "$lockfile" ] && [ "$(cat "$lockfile")" != "$version" ];
|
||||||
cp $emuconfigs/melonDS.ini /var/config/melonDS/
|
then
|
||||||
|
echo "Lockfile version is "$(cat "$lockfile")" but the actual version is $version"
|
||||||
# CITRA
|
post_update
|
||||||
mkdir -p /var/config/citra-emu/
|
start_retrodeck
|
||||||
cp $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini
|
exit 0
|
||||||
|
|
||||||
# RPCS3
|
|
||||||
mkdir -p /var/config/rpcs3/
|
|
||||||
cp $emuconfigs/config.yml /var/config/rpcs3/
|
|
||||||
|
|
||||||
# PICO-8
|
|
||||||
mkdir -p $roms_folder/pico-8
|
|
||||||
|
|
||||||
|
|
||||||
# Locking RetroDECK
|
|
||||||
touch ~/retrodeck/.lock
|
|
||||||
|
|
||||||
kdialog --title "RetroDECK" --msgbox "Initialization completed.\nplease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n~/retrodeck/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIt's suggested to add RetroDECK to your Steam Library for a quick access."
|
|
||||||
else
|
|
||||||
emulationstation --home /var/config/emulationstation
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# LOCKFILE REMOVED
|
||||||
|
# if the lock file doesn't exist at all means that it's a fresh install or a triggered reset
|
||||||
|
if [ ! -f "$lockfile" ];
|
||||||
|
then
|
||||||
|
echo "Lockfile not found"
|
||||||
|
finit
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Normal Startup
|
||||||
|
start_retrodeck
|
Loading…
Reference in a new issue