diff --git a/.github/workflows/cooker.yml b/.github/workflows/cooker.yml
index 974e0651..b15b8d70 100644
--- a/.github/workflows/cooker.yml
+++ b/.github/workflows/cooker.yml
@@ -37,7 +37,6 @@ jobs:
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13
- # Runs a set of commands using the runners shell
- name: Building flatpak
run: |
sudo flatpak-builder --user --install --force-clean --repo=local retrodeck-flatpak com.xargon.retrodeck.yml
@@ -47,10 +46,15 @@ jobs:
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')"
+ - name: Extract branch name
+ shell: bash
+ run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
+ id: extract_branch
+
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${{ steps.date.outputs.date }}"
+ tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..765bfe6e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+# OS generated files #
+######################
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+ehthumbs.db
+Thumbs.db
+
+# RetroDECK specific files #
+############################
+.flatpak-builder/
+retrodeck-flatpak-cooker/
+retrodeck-flatpak/
diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml
index fd98787a..9f693154 100644
--- a/com.xargon.retrodeck.yml
+++ b/com.xargon.retrodeck.yml
@@ -676,104 +676,7 @@ modules:
# Dolphin - END
- # RPCS3 - START
- # https://github.com/flathub/net.rpcs3.RPCS3
- # Disabled because of this error:
- # https://github.com/flathub/net.rpcs3.RPCS3/issues/854
-
- # - name: rpcs3-llvm
- # buildsystem: cmake-ninja
- # builddir: true
- # build-options:
- # cflags: &optflags -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
- # -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
- # -fcf-protection -fno-omit-frame-pointer
- # cflags-override: true
- # cxxflags: -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
- # -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
- # -fcf-protection -fno-omit-frame-pointer -msse -msse2 -mcx16
- # cxxflags-override: true
- # env:
- # AR: llvm-ar
- # CC: clang
- # CXX: clang++
- # RANLIB: llvm-ranlib
- # ldflags: -fuse-ld=lld
- # prepend-ld-library-path: /usr/lib/sdk/llvm13/lib
- # prepend-path: /usr/lib/sdk/llvm13/bin
- # config-opts:
- # - -DCMAKE_BUILD_TYPE=Release
- # - -DBUILD_SHARED_LIBS=OFF
- # - -DLLVM_CCACHE_BUILD=ON
- # - -DLLVM_TARGETS_TO_BUILD='X86'
- # - -DLLVM_BUILD_RUNTIME=OFF
- # - -DLLVM_BUILD_TOOLS=OFF
- # - -DLLVM_INCLUDE_DOCS=OFF
- # - -DLLVM_INCLUDE_EXAMPLES=OFF
- # - -DLLVM_INCLUDE_TESTS=OFF
- # - -DLLVM_INCLUDE_TOOLS=OFF
- # - -DLLVM_INCLUDE_UTILS=OFF
- # - -DLLVM_USE_INTEL_JITEVENTS=ON
- # - -DLLVM_USE_PERF=ON
- # - -DLLVM_ENABLE_Z3_SOLVER=OFF
- # - -DCMAKE_CXX_STANDARD=17
- # - -DITTAPI_SOURCE_DIR=/run/build/rpcs3-llvm/ittapi
- # - -Wno-dev
- # cleanup:
- # - '*'
- # sources:
- # - type: git
- # url: https://github.com/RPCS3/llvm-mirror.git
- # commit: 509d31ad89676522f7121b3bb8688f7d29b7ee60
- # - type: git
- # url: https://github.com/intel/ittapi.git
- # dest: ittapi/ittapi
- # disable-shallow-clone: true
-
- # - name: rpcs3
- # buildsystem: cmake-ninja
- # builddir: true
- # build-options:
- # append-ld-library-path: /usr/lib/sdk/llvm13/lib
- # append-path: /usr/lib/sdk/llvm13/bin
- # cflags: *optflags
- # cflags-override: true
- # cxxflags: *optflags
- # cxxflags-override: true
- # env:
- # AR: llvm-ar
- # CC: clang
- # CXX: clang++
- # RANLIB: llvm-ranlib
- # ldflags: -fuse-ld=lld
- # config-opts:
- # - -DCMAKE_BUILD_TYPE=RelWithDebInfo
- # - -DBUILD_LLVM_SUBMODULE=OFF
- # - -DUSE_NATIVE_INSTRUCTIONS=OFF
- # - -DUSE_PRECOMPILED_HEADERS=OFF
- # - -DUSE_SYSTEM_CURL=ON
- # - -DUSE_SYSTEM_FFMPEG=ON
- # - -DUSE_SYSTEM_LIBPNG=ON
- # - -DUSE_SYSTEM_ZLIB=ON
- # - -Wno-dev
- # post-install:
- # - |
- # set -eux;
- # sed -i 's|RPCS3|net.rpcs3.RPCS3|' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml;
- # COMM_TAG="$(awk -F'[\{,]' '/version{.*}/{printf "%d.%d.%d", $2, $3, $4}' ../rpcs3/rpcs3_version.cpp)";
- # COMM_COUNT="$(git rev-list --count HEAD)";
- # COMM_HASH="$(git rev-parse --short=8 HEAD)";
- # sed -i 's|||' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml;
- # sources:
- # - type: git
- # url: https://github.com/RPCS3/rpcs3.git
- # commit: d6b026314409980734605e9275950f835f04e8df
-
- # RPCS3 - END
-
# XEMU - START
- # https://github.com/flathub/app.xemu.xemu
- # Disabled because of this: https://github.com/XargonWan/RetroDECK/runs/6033071862?check_suite_focus=true
- name: libglu
buildsystem: meson
@@ -830,130 +733,6 @@ modules:
# XEMU - END
- # Ryujinx - START
-
- # - name: Ryujinx
- # buildsystem: simple
- # build-options:
- # append-path: /usr/lib/sdk/dotnet6/bin
- # append-ld-library-path: /usr/lib/sdk/dotnet6/lib
- # arch:
- # x86_64:
- # env:
- # RUNTIME: linux-x64
- # env:
- # PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/lib/sdk/dotnet6/lib/pkgconfig
- # DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
- # DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
- # RYUJINX_VERSION: 1.1.102
- # RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
- # RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx
- # RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master
- # build-commands:
- # - |
- # export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
- # sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" Ryujinx.Common/ReleaseInformations.cs
- # sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" Ryujinx.Common/ReleaseInformations.cs
- # sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" Ryujinx.Common/ReleaseInformations.cs
- # sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" Ryujinx.Common/ReleaseInformations.cs
- # sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" Ryujinx.Common/ReleaseInformations.cs
- # mkdir -p /app/bin
- # dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants=DISABLE_UPDATER --self-contained --source nuget-sources
- # if [ $? -ne 0 ]; then
- # exit 1;
- # fi;
- # cp -r --remove-destination /run/build/Ryujinx/Ryujinx/bin/Release/net6.0/$RUNTIME/publish/* /app/bin/
- # mkdir -p /app/lib/ffmpeg
- # ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
- # install -Dm644 $FLATPAK_ID.appdata.xml /app/share/metainfo/$FLATPAK_ID.appdata.xml
- # install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
- # install -Dm644 distribution/linux/ryujinx-logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg
- # install -Dm644 distribution/linux/ryujinx-mime.xml /app/share/mime/packages/$FLATPAK_ID.mime.xml
- # install -Dm644 distribution/linux/ryujinx.desktop /app/share/applications/$FLATPAK_ID.desktop
- # desktop-file-edit --set-key="Exec" --set-value="ryujinx-wrapper %f" /app/share/applications/$FLATPAK_ID.desktop
- # sources:
- # - nuget_sources.json
- # - type: git
- # url: https://github.com/Ryujinx/Ryujinx.git
- # commit: 247d26b4b50df8a068b9bfbb412a29f0c9f6a97b
- # - type: file
- # path: ryujinx-wrapper
- # - type: file
- # path: org.ryujinx.Ryujinx.appdata.xml
-
- # Ryujinx - END
-
- # CITRA - START
- # https://github.com/flathub/org.citra_emu.citra
-
- # - name: citra
- # buildsystem: cmake-ninja
- # builddir: true
- # config-opts:
- # - '-DCMAKE_BUILD_TYPE=Release'
- # - '-DENABLE_QT_TRANSLATION=ON'
- # - '-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON'
- # - '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON'
- # - '-DENABLE_FFMPEG_VIDEO_DUMPER=ON'
- # - '-DENABLE_FDK=ON'
- # build-options:
- # env:
- # CI: '1'
- # GITHUB_ACTIONS: '1'
- # GITHUB_REPOSITORY: citra-emu/citra-nightly
- # GIT_TAG_NAME: nightly-1759
- # cleanup:
- # - /share/man
- # - /share/pixmaps
- # post-install:
- # - >-
- # install -Dm644 ../org.citra_emu.citra.metainfo.xml
- # /app/share/appdata/org.citra_emu.citra.metainfo.xml
- # - desktop-file-install --dir=/app/share/applications ../dist/citra.desktop
- # - echo 'StartupWMClass=citra-qt' >> /app/share/applications/citra.desktop
- # - >-
- # install -Dm644 ../dist/citra.svg
- # /app/share/icons/hicolor/scalable/apps/citra.svg
- # - >-
- # install -Dm644 ../dist/icon.png
- # /app/share/icons/hicolor/512x512/apps/citra.png
- # - >-
- # mv /app/share/mime/packages/citra.xml
- # /app/share/mime/packages/org.citra_emu.citra.xml
- # - >-
- # sed 's/citra/org.citra_emu.citra/g' -i
- # /app/share/mime/packages/org.citra_emu.citra.xml
- # sources:
- # - type: git
- # url: 'https://github.com/citra-emu/citra-nightly.git'
- # tag: nightly-1759
- # commit: 3df43f9505505fbe2abb543c795f791615541cd4
- # disable-shallow-clone: true
- # x-checker-data:
- # type: git
- # tag-pattern: ^(nightly-\d+)$
- # is-main-source: true
- # - type: file
- # path: rd-submodules/citra/org.citra_emu.citra.metainfo.xml
- # - type: file
- # path: rd-submodules/citra/compatibility_list.json
- # dest-filename: compatibility_list.json
- # - type: shell
- # commands:
- # - >-
- # cp -v compatibility_list.json
- # dist/compatibility_list/compatibility_list.json
-
- # CITRA - END
-
-
- # vita3k
- # arduboy
- # pocket station
- # cemu - win only: wine
- # Anbox?
-
-
# External manifests end
@@ -985,13 +764,17 @@ modules:
- cp retrodeck.sh /app/bin/retrodeck.sh
- chmod +x /app/bin/retrodeck.sh
- # Yuzu
- - mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs
- - cp qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs
# Desktop entry
- cp com.xargon.retrodeck.desktop /app/share/applications/com.xargon.retrodeck.desktop
+ # Configuring emulators:
+ - mkdir -p ${FLATPAK_DEST}/retrodeck/emu-configs
+ # Dolphin
+ - cp Dolphin.ini ${FLATPAK_DEST}/retrodeck/emu-configs
+ # Yuzu
+ - cp qt-config.ini ${FLATPAK_DEST}/retrodeck/emu-configs
+
#cleanup: ['*']
sources:
- type: file
diff --git a/emu-configs/Dolphin.ini b/emu-configs/Dolphin.ini
new file mode 100644
index 00000000..f7213f93
--- /dev/null
+++ b/emu-configs/Dolphin.ini
@@ -0,0 +1,28 @@
+[Analytics]
+ID = 09426e1e3e44d72728fb46a9e4a54663
+PermissionAsked = True
+[Core]
+GFXBackend = Vulkan
+SelectedLanguage = 0
+SerialPort1 = 255
+SkipIPL = True
+SlotA = 8
+SlotB = 255
+[Display]
+Fullscreen = True
+[GBA]
+BIOS = ~/retrodeck/bios/gba_bios.bin
+Rom1 =
+Rom2 =
+Rom3 =
+Rom4 =
+SavesInRomPath = False
+SavesPath = ~/retrodeck/saves/dolphin-emu/GBA/Saves/
+Threads = True
+[General]
+ISOPath0 = /run/user/1000/doc/9cd3cde7/wii
+ISOPath1 = /run/user/1000/doc/14708e0c/gc
+ISOPaths = 2
+WiiSDCardPath = ~/retrodeck/saves/dolphin-emu/Wii/sd.raw
+[NetPlay]
+TraversalChoice = direct
diff --git a/retrodeck.sh b/retrodeck.sh
index 3a603d87..f34a2057 100755
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -74,6 +74,8 @@ then
mkdir -p /var/config/retroarch/cores/
cp /app/share/libretro/cores/* /var/config/retroarch/cores/
+ # Initializing standalone emulators configs
+
# Yuzu
mkdir -p ~/retrodeck/bios/switch/
mkdir -p /var/config/yuzu/keys
@@ -82,6 +84,11 @@ then
ln -s /var/data/yuzu/registered ~/retrodeck/bios/switch/registered
cp /var/config/retroarch/emu-configs/qt-config.ini /var/config/yuzu/qt-config.ini
+ # Dolphin
+ mkdir -p /var/config/dolphin-emu/
+ cp /var/config/retroarch/emu-configs/Dolphin.ini /var/config/dolphin-emu/Dolphin.ini
+
+ # 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."