diff --git a/.gitmodules b/.gitmodules
index 9d6f4fb6..03419e80 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,6 @@
-[submodule "shared-modules"]
- path = shared-modules
- url = https://github.com/flathub/shared-modules.git
[submodule "rd-submodules/retroarch"]
path = rd-submodules/retroarch
- url = https://github.com/flathub/org.libretro.RetroArch.git
+ url = https://github.com/flathub/org.libretro.RetroArch
+[submodule "rd-submodules/shared-modules"]
+ path = rd-submodules/shared-modules
+ url = https://github.com/flathub/shared-modules.git
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index 3acbbfe4..63acdcc9 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -1037,16 +1037,14 @@
pcfx
- pico8
- PICO-8 Fantasy Console
- Lexaloffle
- 2015
- console
- %ROMPATH%/pico8
- .p8 .P8 .png .PNG
- %EMULATOR_PICO-8% -desktop ~/retrodeck/screenshots -windowed 0 -root_path %ROMPATH%/pico8 -run %ROM%
- pico8
- pico8
+ pico8
+ PICO-8 Fantasy Console
+ %ROMPATH%/pico8
+ .p8 .P8 .png .PNG
+ %EMULATOR_PICO-8% -desktop_path ~/retrodeck/screenshots -root_path %GAMEDIR% -run %ROM%
+ %EMULATOR_PICO-8% -desktop_path ~/retrodeck/screenshots -root_path %GAMEDIR% -splore
+ pico8
+ pico8
pokemini
diff --git a/flathub-pull.sh b/flathub-pull.sh
deleted file mode 100755
index 6374cc0c..00000000
--- a/flathub-pull.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-mkdir backup
-mv net.retrodeck.retrodeck.yml backup
-mv net.retrodeck.retrodeck.appdata.xml backup
-wget https://raw.githubusercontent.com/flathub/net.retrodeck.retrodeck/master/net.retrodeck.retrodeck.yml
-wget https://raw.githubusercontent.com/flathub/net.retrodeck.retrodeck/master/net.retrodeck.retrodeck.appdata.xml
-git add net.retrodeck.retrodeck.yml
-git add net.retrodeck.retrodeck.appdata.xml
-git commit -m "Pulled from flathub"
\ No newline at end of file
diff --git a/flathub-push.sh b/flathub-push.sh
deleted file mode 100755
index f417c6b6..00000000
--- a/flathub-push.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash
-
-# EDITABLES:
-#rd_branch="main"
-rd_branch="cooker"
-#gits_folder=~/gits
-gits_folder="/home/public-folder/gits" # without last /
-
-# NON-EDITABLES
-branch="$rd_branch-"$(date +%d%m%y.%H%M)
-
-cd $gits_folder
-rm -rf flathub
-git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub
-cd $gits_folder/RetroDECK
-git checkout $rd_branch
-git submodule init
-git submodule update
-# NOTE: the only linked submodules are: rd-submodules/retroarch
-# these must be included in the exclusion list as they must be redownloaded
-#sync -rav --progress --exclude={'res/screenshots/','shared-modules/','rd-submodules/retroarch','.git/','docs','retrodeck-flatpak/','retrodeck-flatpak-cooker/','.flatpak-builder/'} ~/RetroDECK/ ~/flathub/
-
-cd $gits_folder/flathub
-git checkout -b $branch
-git rm -rf *
-git clean -fxd # restroing git index
-
-# Copying only a few files as the others are cloned by git in retrodeck.sh
-cd $gits_folder/RetroDECK
-cp -rf \
-'rd-submodules' \
-'flathub.json' \
-'LICENSE' \
-'net.retrodeck.retrodeck.appdata.xml' \
-'net.retrodeck.retrodeck.desktop' \
-'net.retrodeck.retrodeck.yml' \
-'README.md' \
-$gits_folder/flathub/
-cd $gits_folder/flathub
-
-# #rebuilding submodules
-# git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
-# while read path_key path
-# do
-# url_key=$(echo $path_key | sed 's/\.path/.url/');
-# branch_key=$(echo $path_key | sed 's/\.path/.branch/');
-# # If the url_key doesn't yet exist then backup up the existing
-# # directory if necessary and add the submodule
-# if [ ! $(git config --get "$url_key") ]; then
-# if [ -d "$path" ] && [ ! $(git config --get "$url_key") ]; then
-# mv "$path" "$path""_backup_""$(date +'%Y%m%d%H%M%S')";
-# fi;
-# url=$(git config -f .gitmodules --get "$url_key");
-# # If a branch is specified then use that one, otherwise
-# # default to master
-# branch=$(git config -f .gitmodules --get "$branch_key");
-# if [ ! "$branch" ]; then branch="master"; fi;
-# git submodule add -f -b "$branch" "$url" "$path";
-# fi;
-# done;
-
-# # In case the submodule exists in .git/config but the url is out of date
-# git submodule sync
-
-# # Now actually pull all the modules. I used to use this...
-# git submodule foreach --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)';
-
-rm -rf .git/modules/*
-# Adding the real submodules, please update this every time a submodule is added
-git rm -rf shared-modules
-git submodule add https://github.com/flathub/shared-modules.git shared-modules
-
-git rm -rf rd-submodules/retroarch
-git submodule add https://github.com/flathub/org.libretro.RetroArch.git rd-submodules/retroarch
-
-# unbinds all submodules
-git submodule deinit -f .
-# checkout again
-git submodule update --init --recursive
-git add *
-git commit -m "Updated flathub/net.retrodeck.retrodeck from RetroDECK/$rd_branch"
-git push origin $branch
\ No newline at end of file
diff --git a/force-update-submodules.sh b/force-update-submodules.sh
new file mode 100644
index 00000000..57d3df5f
--- /dev/null
+++ b/force-update-submodules.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+git submodule deinit --all
+rm rd-submodules/retroarch
+git rm -rf --cached rd-submodules/retroarch
+rm -rf .git/modules/rd-submodules/retroarch
+rm -rf shared-modules
+git rm -rf --cached shared-modules
+rm -rf .git/modules/shared-modules
+
+git submodule init
+git submodule add https://github.com/flathub/shared-modules.git
+git submodule add https://github.com/flathub/org.libretro.RetroArch rd-submodules/retroarch
+
+git submodule update --remote --merge --recursive
\ No newline at end of file
diff --git a/functions.sh b/functions.sh
index 6cd4df46..147308bf 100644
--- a/functions.sh
+++ b/functions.sh
@@ -1319,10 +1319,8 @@ finit() {
mkdir -pv $saves_folder
mkdir -pv $states_folder
mkdir -pv $rdhome/screenshots
- mkdir -pv $rdhome/bios/pico8
- mkdir -pv $logs_folder
- mkdir -pv $mods_folder
- mkdir -pv $texture_packs_folder
+ mkdir -pv $rdhome/.logs
+
# XMLSTARLET HERE
cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
@@ -1331,7 +1329,9 @@ finit() {
dir_prep "$themes_folder" "/var/config/emulationstation/.emulationstation/themes"
# PICO-8
- dir_prep "$roms_folder/pico8" "$rdhome/bios/pico8/bbs/carts" #this is the folder where pico-8 is saving the carts
+ dir_prep "$bios_folder/pico-8" "~/.lexaloffle/pico-8" # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed
+ dir_prep "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
+ dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder
(
ra_init
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 8fca452a..7fda3cbb 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -69,25 +69,25 @@
-
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.6.2b
- - Implemented proper Primehack preconfiguration / purge stale configs
- - Added Xbox and Nintendo-layout controller profiles to Primehack
- - Stop resetting all configs after update (see post_update.sh)
- - Add CHD compression to CLI and Configurator
- - Add common BIOS file check tool to Configurator
- - Reworked CLI arguments
- - Updated shipped Duckstation config
- - Removed deprecated/disabled tool files
- - Made emulator resets more robust by purging config folders to clear legacy files
- - Add troubleshooting tool for checking structure of multi-file games in Configurator
- - Updated patching engine to accommodate "batch patches"
- - Implemented expanding retrodeck.cfg on update
- - Reworked Configurator menu flow
- - Set power_user variable so Configurator warning is only shown once
- - Implemented a basic framework for easter egg splash screens
+ - Persistent configurations when updating RetroDECK, this means your custom configurations should be saved across future versions. (We also laid groundwork for dynamic persistent configurations, more on that in a future update. This is the reason why it has taken quite long to fix this).
+ - Added Primehack controller profiles for both Xbox and Nintendo button layouts
+ - Added a warning when running RetroDECK in desktop mode, as not all controls will work properly.
+ - Added CLI for CHD compression (chdman) of single games
+ - Reworked CLI commands and added safety y/n confirmations for the reset arguments.
+ - New structure for more easy access to various tools
+ - The power user prompt only needs to be answered once
+ - Added tool to do CHD compression (chdman) of single games (multi-game batch compression coming in a future update)
+ - Added tool to check for common BIOS files
+ - Added tool to check for common multi-file game structure issues
+ - Fixed Primehack initial configuration as it was broken (will automatically reset the emulator just this once)
+ - Fixed Duckstation initial configuration as it was broken (will require user-performed reset just this once)
+ - Fixed a bug that made the Dolphin RetroArch core not working properly (the standalone version of Dolphin always worked and is the default)
+ - Various backend fixes
+ - Updated all Emulators, RetroArch and libreretro cores. (PLEASE NOTE! ES-DE was not updated to version 2.0, this will be done in the next version of RetroDECK as we need more time to work on the new theme format).
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index ec47ff41..0dbeeb51 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -58,7 +58,7 @@ cleanup-commands:
modules:
- - shared-modules/libusb/libusb.json
+ - rd-submodules/shared-modules/libusb/libusb.json
# 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
@@ -311,7 +311,7 @@ modules:
sources:
- type: git
url: https://github.com/libretro/RetroArch.git
- commit: ad89b0c655fc1d25adfcdf40268e95c5d0391111
+ commit: 938ab716bd290b0f469068500966a834b5782929
- type: file
path: rd-submodules/retroarch/retroarch.cfg
post-install:
@@ -328,20 +328,20 @@ modules:
modules:
- rd-submodules/retroarch/modules/libpng/libpng-1.6.35.json
- rd-submodules/retroarch/modules/nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json
- - shared-modules/SDL/SDL-1.2.15.json
- - shared-modules/SDL/SDL_image-1.2.12.json
- - shared-modules/SDL/SDL_mixer-1.2.12.json
- - shared-modules/SDL/SDL_net-1.2.8.json
- - shared-modules/SDL/SDL_ttf-2.0.11.json
- #- shared-modules/libusb/libusb.json moved outside
+ - rd-submodules/shared-modules/SDL/SDL-1.2.15.json
+ - rd-submodules/shared-modules/SDL/SDL_image-1.2.12.json
+ - rd-submodules/shared-modules/SDL/SDL_mixer-1.2.12.json
+ - rd-submodules/shared-modules/SDL/SDL_net-1.2.8.json
+ - rd-submodules/shared-modules/SDL/SDL_ttf-2.0.11.json
+ #- rd-submodules/shared-modules/libusb/libusb.json moved outside
# certificate glu issue
- #- shared-modules/gudev/gudev.json
+ #- rd-submodules/shared-modules/gudev/gudev.json
- rd-submodules/retroarch/modules/libbz2/libbz2-1.0.8.json
- rd-submodules/retroarch/modules/xrandr/xrandr-1.5.1.json
- rd-submodules/retroarch/modules/libaio/libaio-0.3.112.json
# certificate issue, check libglu module for more info
- #- shared-modules/glu/glu-9.json
- - shared-modules/libdecor/libdecor-0.1.1.json
+ #- rd-submodules/shared-modules/glu/glu-9.json
+ - rd-submodules/shared-modules/libdecor/libdecor-0.1.1.json
- name: retroarch-filers-video
subdir: gfx/video_filters
make-install-args:
@@ -349,7 +349,7 @@ modules:
sources:
- type: git
url: https://github.com/libretro/RetroArch.git
- commit: ad89b0c655fc1d25adfcdf40268e95c5d0391111
+ commit: 938ab716bd290b0f469068500966a834b5782929
- name: retroarch-filers-audio
subdir: libretro-common/audio/dsp_filters
make-install-args:
@@ -357,7 +357,7 @@ modules:
sources:
- type: git
url: https://github.com/libretro/RetroArch.git
- commit: ad89b0c655fc1d25adfcdf40268e95c5d0391111
+ commit: 938ab716bd290b0f469068500966a834b5782929
- name: retroarch-assets
make-install-args:
- PREFIX=${FLATPAK_DEST}
@@ -371,21 +371,21 @@ modules:
sources:
- type: git
url: https://github.com/libretro/libretro-database.git
- commit: 183babc61f6a7aa6077e663bb2a8bb91d11d6874
+ commit: 6a8d65d2bc1b7ffa7accb882e80c0a77b931bcc6
- name: libretro-core-info
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/libretro-core-info.git
- commit: 3d9b20d3711c8c2827246e3b48a503973192f080
+ commit: eb7e3ff064c3fdaae46b89c9da9f49e15a8e9c2b
- name: retroarch-joypad-autoconfig
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/retroarch-joypad-autoconfig.git
- commit: dc625d5623a0e5c6999f372c99548676f9851691
+ commit: 8ec6304a14bd37cf927ebe7555a274ac4fefeb69
- name: common-shaders
make-install-args:
- PREFIX=${FLATPAK_DEST}
@@ -399,14 +399,14 @@ modules:
sources:
- type: git
url: https://github.com/libretro/slang-shaders.git
- commit: feb1fcaee0fe5294b9885fdcc87cb16f0bac06be
+ commit: 8b35477a934739b1db193f22e7057754e7a87381
- name: glsl-shaders
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/glsl-shaders.git
- commit: 66cd3917c3cde8c96b5492bca00c95e3e17b44b9
+ commit: 799aa9e4d567db0874111d2aed9c9b9058a19641
- name: common-overlays
make-install-args:
- PREFIX=${FLATPAK_DEST}
@@ -425,8 +425,8 @@ modules:
- mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/
sources:
- type: archive
- url: https://buildbot.libretro.com/stable/1.14.0/linux/x86_64/RetroArch_cores.7z
- sha256: 59369f1ef18cdc302c38bcb270d71989cef665d71f3156a1f07486122713d030
+ url: https://buildbot.libretro.com/stable/1.15.0/linux/x86_64/RetroArch_cores.7z
+ sha256: 1fdec5c2cbabea4f194ede4a1fb0dd1d17e14e64bf7ef705e3ad763592411073
# PPSSPP - START
# https://github.com/flathub/org.ppsspp.PPSSPP
@@ -495,14 +495,16 @@ modules:
- ln -s "${FLATPAK_DEST}/yuzu/usr/bin/yuzu" "${FLATPAK_DEST}/bin/yuzu"
sources:
- type: file
- url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1343/yuzu-mainline-20230217-b795f3bc1.AppImage
- sha256: 47eb1ec3e4d7368d0eef832a7b9c378fd6a0fbaebfd7af7768d6edaf8b35f8a5
+ url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1369/yuzu-mainline-20230312-54c359d1e.AppImage
+ sha256: 219874f72ea09856c8f1349d7bf744ecbd2823a469bd29f036b386924f5c5a97
# Yuzu - END
# CITRA - START
# https://github.com/flathub/org.citra_emu.citra
+ - rd-submodules/shared-modules/SDL2/SDL2-with-libdecor.json
+
- name: citra
buildsystem: cmake-ninja
builddir: true
@@ -527,8 +529,8 @@ modules:
sources:
- type: archive
url: >-
- https://github.com/citra-emu/citra-nightly/releases/download/nightly-1844/citra-unified-source-20230217-cda3584.tar.xz
- sha256: 9e0c5fcf503f5d0dbe95cc6de68c4b3c9148c07e2df892b85cc99ada8963c14e
+ https://github.com/citra-emu/citra-nightly/releases/download/nightly-1854/citra-unified-source-20230312-2cbf6fb.tar.xz
+ sha256: 018cb7dce3aa29a548a6e4cbad65d97babd98d2cdd1a4848a7c95c117f92fdf5
x-checker-data:
type: json
url: https://api.github.com/repos/citra-emu/citra-nightly/releases/latest
@@ -557,8 +559,8 @@ modules:
- ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt"
sources:
- type: file
- url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.4108/pcsx2-v1.7.4108-linux-AppImage-64bit-Qt.AppImage
- sha256: 31dab12f7f7d0c4a7122011c0f86f5acfe9a9018cece66b4333d230154c8b910
+ url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.4225/pcsx2-v1.7.4225-linux-AppImage-64bit-Qt.AppImage
+ sha256: e8ed326851941b212193c2bd193ca87efdcc70c18971f45749273a32893fec68
# PCSX2 - END
@@ -780,8 +782,8 @@ modules:
# https://github.com/flathub/net.rpcs3.RPCS3
# glu issue, check libglu module for more info
- #- shared-modules/glu/glu-9.json
- - shared-modules/glew/glew.json
+ #- rd-submodules/shared-modules/glu/glu-9.json
+ - rd-submodules/shared-modules/glew/glew.json
- name: rpcs3
buildsystem: cmake-ninja
@@ -822,7 +824,7 @@ modules:
sources:
- type: git
url: https://github.com/RPCS3/rpcs3.git
- commit: 6b556a5206fa68e4801fca124bfc3874440e4e17
+ commit: cf5346c263111760752cabb94767c07c501207c4
- type: git
url: https://github.com/intel/ittapi.git
commit: 2de8a23f6130036dcd4d1b78d05df3187951d298
@@ -854,8 +856,8 @@ modules:
- install -D primehack-wrapper /app/bin/primehack-wrapper
sources:
- type: git
- url: https://github.com/TheDrifter363/primehack.git
- commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c
+ url: https://github.com/shiiion/dolphin.git
+ commit: efb99ebfd20b1bc16ea3e51fec409c91e354d8c2
# detects whether dolphin is running in a flatpak sandbox
# and makes it use xdg directories if it is.
# prevents dolphin from attempting to write conf files
diff --git a/post_update.sh b/post_update.sh
index 0d9948f6..038ae2c3 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -18,12 +18,18 @@ post_update() {
# In version 0.6.2b, the following changes were made that required config file updates/reset:
# - Primehack preconfiguration completely redone. "Stop emulation" hotkey set to Start+Select, Xbox and Nintendo keymap profiles were created, Xbox set as default.
# - Duckstation save and state locations were dir_prep'd to the rdhome/save and /state folders, which was not previously done. Much safer now!
-
+ # - 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
dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards"
dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates"
+
+ mv "$bios_folder/pico8" "$bios_folder/pico8_olddata" # Move legacy (and incorrect / non-functional ) PICO-8 location for future cleanup / less confusion
+ dir_prep "$bios_folder/pico-8" "~/.lexaloffle/pico-8" # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed
+ dir_prep "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
+ dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder
fi
if [[ $prev_version -le "070" ]]; then
# In version 0.7.0b, the following changes were made that required config file updates/reset or other changes to the filesystem:
diff --git a/rd-submodules/SDL2-no-libdecor.json b/rd-submodules/SDL2-no-libdecor.json
new file mode 100644
index 00000000..f101d4b0
--- /dev/null
+++ b/rd-submodules/SDL2-no-libdecor.json
@@ -0,0 +1,22 @@
+{
+ "name": "SDL2",
+ "buildsystem": "autotools",
+ "config-opts": ["--disable-static"],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.26.3.tar.gz",
+ "sha256": "af0ff86e4a268bc12c915a0ea19ea1a16419ab1426d92bad5f4e26eb31583967"
+ }
+ ],
+ "cleanup": [ "/bin/sdl2-config",
+ "/include",
+ "/lib/libSDL2.la",
+ "/lib/libSDL2main.a",
+ "/lib/libSDL2main.la",
+ "/lib/libSDL2_test.a",
+ "/lib/libSDL2_test.la",
+ "/lib/cmake",
+ "/share/aclocal",
+ "/lib/pkgconfig"]
+}
diff --git a/shared-modules b/rd-submodules/shared-modules
similarity index 100%
rename from shared-modules
rename to rd-submodules/shared-modules