diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index cf831cf8..3b9b06f8 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -8,8 +8,8 @@ on:
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- - 'emu-configs/**'
- - 'es-configs/**'
+ - 'config/**'
+ - 'config/es-de/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
@@ -29,7 +29,7 @@ on:
jobs:
Building_RetroDECK:
- runs-on: self-hosted
+ runs-on: retrodeck
steps:
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
@@ -38,7 +38,7 @@ jobs:
continue-on-error: true
- name: Clone RetroDECK repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
submodules: 'true'
@@ -64,16 +64,21 @@ jobs:
# if the branch is coming from a PR the tag should be manually built
- name: "Generate version tag"
run: |
+ source automation_tools/version_extractor.sh
+ MANIFEST_VERSION="$(fetch_manifest_version)"
+ echo "MANIFEST_VERSION=$MANIFEST_VERSION" >> $GITHUB_ENV
if [[ "$BRANCH_NAME" == 'refs/'* ]]; then
pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}')
- source_branch=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
+ source_branch=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
source_branch=${source_branch//\//-}
echo "[DEBUG] source branch is: $source_branch"
echo "TAG=PR-$pr_number-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
else
- echo "TAG=${{env.BRANCH_NAME}}-${{ env.buildid }}" >> $GITHUB_ENV
+ TAG="$MANIFEST_VERSION-${{ env.buildid }}"
+ echo "TAG=$TAG" >> $GITHUB_ENV
fi
- echo "Version TAG: ${{ env.TAG }}"
+ echo "MANIFEST_VERSION: $MANIFEST_VERSION"
+ echo "Version TAG: $TAG"
# backing up manifest in case download fails and hashes must be recalculated
- name: Manifest backup
@@ -110,14 +115,6 @@ jobs:
- name: Build flatpak
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
- - name: Create Artifact for flathub
- run: |
- tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
- hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
- echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
- mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
- continue-on-error: true
-
- name: Create Bundle
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
@@ -142,7 +139,7 @@ jobs:
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
- On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}).
+ On branch [${{env.BRANCH_NAME}}](https://github.com/RetroDECK/RetroDECK/tree/${{env.BRANCH_NAME}}).
## Commits since last release
${{ steps.commits.outputs.commits }}
@@ -156,17 +153,36 @@ jobs:
allowUpdates: true
makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
- repo: RetroDECK-cooker
+ repo: Cooker
continue-on-error: true
+ - name: Rewrite Tag
+ run: |
+ git submodule deinit -f --all
+ git fetch --tags
+ if git rev-parse --verify "${{ env.TAG }}" >/dev/null 2>&1; then # if the tag exists
+ git tag -d "${{ env.TAG }}" # remove it from local repo
+ git push --delete origin "${{ env.TAG }}" # and from remote
+ fi
+ git tag "${{ env.TAG }}" # Create the tag locally
+ git push origin "${{ env.TAG }}" # Push the new tag in the remote repo
+
# In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
- name: Upload RetroDECK-cooker.flatpak
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: retrodeck-flatpak
path: RetroDECK-cooker.flatpak
continue-on-error: true
+ - name: Create Artifact for flathub
+ run: |
+ tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
+ hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
+ echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
+ mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
+ continue-on-error: true
+
# - name: Upload RetroDECK-cooker.flatpak to Gitea Release
# run: |
# # Set variables for Gitea host, organization, repository, access token, and release details
diff --git a/.github/workflows/emulator-updates.yaml b/.github/workflows/emulator-updates.yaml
new file mode 100644
index 00000000..ef845cde
--- /dev/null
+++ b/.github/workflows/emulator-updates.yaml
@@ -0,0 +1,56 @@
+name: Check Emulator Updates
+
+on:
+ # schedule:
+ # - cron: '0 18 * * *'
+ # push:
+ # branches:
+ # - main
+ workflow_dispatch:
+
+jobs:
+ check-updates:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.x'
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install flatpak-builder-tools
+
+ - name: Check for emulator updates
+ run: |
+ flatpak-builder --check-updates ./net.retrodeck.retrodeck.yml --modules "modulo1,modulo2" # Sostituisci modulo1,modulo2 con i tuoi moduli specifici
+
+ - name: Configure Git
+ run: |
+ git config --global user.name "github-actions[bot]"
+ git config --global user.email "github-actions[bot]@users.noreply.github.com"
+
+ - name: Create or update branch
+ run: |
+ git fetch origin
+ if git rev-parse --verify origin/feat/auto-emulator-updates; then
+ git branch -D feat/auto-emulator-updates
+ fi
+ git checkout -b feat/auto-emulator-updates
+ git add .
+ git commit -m "Update emulators"
+ git push --set-upstream origin feat/auto-emulator-updates --force
+
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v5
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ source: feat/auto-emulator-updates
+ destination: cooker-0.8.2b
+ title: 'Automated Emulator Updates'
+ body: 'This PR contains automated updates for specified emulators.'
diff --git a/.github/workflows/flathub_push_main.yml b/.github/workflows/flathub_push_main.yml
index 7e085521..36b19286 100644
--- a/.github/workflows/flathub_push_main.yml
+++ b/.github/workflows/flathub_push_main.yml
@@ -26,7 +26,7 @@ jobs:
fi
git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub
cd $gits_folder
- git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK
+ git clone --recursive https://github.com/RetroDECK/RetroDECK RetroDECK
cd $gits_folder/RetroDECK
relname="main-"$(git rev-parse --short HEAD)
@@ -83,7 +83,7 @@ jobs:
# curl -sL \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \
- # https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \
+ # https://api.github.com/repos/RetroDECK/Cooker/releases \
# | jq .[0].tag_name \
# | tr -d \" \
# )
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index f71c4446..9e3159f3 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -7,8 +7,8 @@ on:
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- - 'emu-configs/**'
- - 'es-configs/**'
+ - 'config/**'
+ - 'config/es-de/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
@@ -24,7 +24,7 @@ on:
jobs:
Building_RetroDECK:
- runs-on: self-hosted
+ runs-on: retrodeck
steps:
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
@@ -93,7 +93,7 @@ jobs:
- name: Getting version info
id: version
run: |
- appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
+ appdata="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
echo "REL_VER=$REL_VER" >> $GITHUB_ENV
@@ -115,6 +115,17 @@ jobs:
repo: RetroDECK
continue-on-error: true
+ - name: Rewrite Tag
+ run: |
+ git submodule deinit -f --all
+ git fetch --tags
+ if git rev-parse --verify "${{ env.REL_VER }}" >/dev/null 2>&1; then # if the tag exists
+ git tag -d "${{ env.REL_VER }}" # remove it from local repo
+ git push --delete origin "${{ env.REL_VER }}" # and from remote
+ fi
+ git tag "${{ env.REL_VER }}" # Create the tag locally
+ git push origin "${{ env.REL_VER }}" # Push the new tag in the remote repo
+
# In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
- name: Upload RetroDECK.flatpak
uses: actions/upload-artifact@v3
@@ -166,6 +177,7 @@ jobs:
-H "Content-Type: multipart/form-data" \
-F "attachment=@RetroDECK-Artifact.tar.gz" \
"http://$UPLOAD_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz"
+ continue-on-error: true # this will be in place until we reate an artifacts website that bypasses cloudflare limit
- name: Upload RetroDECK.flatpak.sha to Gitea Release
run: |
@@ -176,3 +188,4 @@ jobs:
"https://$UPLOAD_HOST/RetroDECK/RetroDECK/releases/${{ env.REL_VER }}/assets?name=RetroDECK.flatpak.sha"
env:
GITEA_TOKEN: ${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}
+ continue-on-error: true # this will be in place until we reate an artifacts website that bypasses cloudflare limit
diff --git a/.gitignore b/.gitignore
index 05fda91c..393e53ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,7 +18,7 @@ backup
tmp
.godot
rd-submodules/es-de/patches-tmp*
-.local/
+retrodeck-repo
buildid
*.bak
incconfigs/
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 6bcd59f5..00000000
--- a/.gitmodules
+++ /dev/null
@@ -1,9 +0,0 @@
-[submodule "rd-submodules/shared-modules"]
- path = rd-submodules/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
-[submodule "rd-submodules/ryujinx"]
- path = rd-submodules/ryujinx
- url = https://github.com/flathub/org.ryujinx.Ryujinx
diff --git a/README.md b/README.md
index d260662c..061e0988 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,13 @@
-
+
# RetroDECK on your device!
-
-
+
+
Instead of having several different emulators, engines and frontends on your Linux/SteamOS system you only need one: RetroDECK.
@@ -15,7 +15,7 @@ Instead of having several different emulators, engines and frontends on your Lin
![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck)
![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck)
![Discord](https://img.shields.io/discord/951662718102962256?label=discord)
-![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK)
+![GitHub](https://img.shields.io/github/license/RetroDECK/RetroDECK)
[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest)
**The RetroDECK Wiki & FAQ**
@@ -77,7 +77,7 @@ For our long term vision you can check out the following wiki page:
Use the supports channels on [Discord](https://discord.gg/WDc5C9YWMx) `🤝-community-support` and `🆘-support`.
### The RetroDECK community:
[Website](https://retrodeck.net)
-[Wiki](https://github.com/XargonWan/RetroDECK/wiki)
+[Wiki](https://github.com/RetroDECK/RetroDECK/wiki)
[Discord](https://discord.gg/WDc5C9YWMx)
[Lemmy](https://lemmy.zip/c/retrodeck)
[Subreddit](https://www.reddit.com/r/retrodeck)
@@ -96,21 +96,22 @@ Read up here on how to help out, there is something for everyone:
## Our repositories:
| Name | Description |
|-------------------------------------------------------------|-----------------------------------------------------------|
-| [RetroDECK](https://github.com/XargonWan/RetroDECK) | This one, our main repo where the core of the project is |
-| [RetroDECK-cooker](https://github.com/XargonWan/RetroDECK-cooker) | Where we publish our test build, no code is hosted here |
-| [RetroDECK-Wiki](https://github.com/XargonWan/RetroDECK-Wiki) | Where our wiki source code is |
-| [RetroDECK-website](https://github.com/XargonWan/RetroDECK-website) | Where our website source code is |
+| [RetroDECK](https://github.com/RetroDECK/RetroDECK) | This one, our main repo where the core of the project is |
+| [Cooker](https://github.com/RetroDECK/Cooker) | Where we publish our test build, no code is hosted here |
+| [RetroDECK/Wiki](https://github.com/RetroDECK/Wiki) | Where our wiki source code is |
+| [RetroDECK-website](https://github.com/RetroDECK/RetroDECK-website) | Where our website source code is |
| [RetroDECK on Flathub](https://github.com/flathub/net.retrodeck.retrodeck) | Our little space in Flathub's organization |
-| [RetroDECK-MAME](https://github.com/XargonWan/RetroDECK-MAME) | MAME is big to build, so it's pre-built here and then imported in the build |
-| [RetroDECK-ES-DE](https://github.com/XargonWan/RetroDECK-ES-DE) | This is where we store our patched fork of ES-DE |
+| [RetroDECK/MAME](https://github.com/RetroDECK/MAME) | MAME is big to build, so it's pre-built here and then imported in the build |
+| [RetroDECK/ES-DE](https://github.com/RetroDECK/ES-DE) | This is where we store our patched fork of ES-DE |
+And many more, for the full list please check our [repositories page on GitHub](https://github.com/orgs/RetroDECK/repositories).
# The RetroDECK Wiki
-Please check out the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information.
+Please check out the [Wiki](https://github.com/RetroDECK/RetroDECK/wiki) for even more information.
## The FAQ
-The RetroDECK [FAQ](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and answers.
+The RetroDECK [FAQ](https://github.com/RetroDECK/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and answers.
# How to get support?
Use the supports channels on [Discord](https://discord.gg/WDc5C9YWMx).
diff --git a/automation_tools/appdata_management.sh b/automation_tools/appdata_management.sh
index 9eb2ba4e..835e2018 100755
--- a/automation_tools/appdata_management.sh
+++ b/automation_tools/appdata_management.sh
@@ -30,7 +30,7 @@ log i "Today is $today_date"
release_snippet="\
- https://github.com/XargonWan/RetroDECK/releases/tag/$appdata_version
+ https://github.com/RetroDECK/RetroDECK/releases/tag/$appdata_version
RELEASE_NOTES_PLACEHOLDER
@@ -41,7 +41,7 @@ xml_content=$(cat "$appdata_file")
# Replace RELEASE_NOTES_PLACEHOLDER with the actual release notes
# TODO
-git clone https://github.com/XargonWan/RetroDECK.wiki.git /tmp/wiki
+git clone https://github.com/RetroDECK/RetroDECK.wiki.git /tmp/wiki
# Path to the markdown file
wiki="/tmp/wiki/Version-history:-Patch-Notes.md"
diff --git a/automation_tools/automation_task_list.cfg b/automation_tools/automation_task_list.cfg
index 1b955846..25f97f06 100644
--- a/automation_tools/automation_task_list.cfg
+++ b/automation_tools/automation_task_list.cfg
@@ -1,15 +1,24 @@
# 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^DUCKSTATIONSHAPLACEHOLDER^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage
+# Please leave some newlines in the end of this file or it will break
+
+latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
+outside_file^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
+branch^THISBRANCH
+
+hash^RASHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch.7z
hash^SAMEDUCKSHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip
hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip
hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip
hash^XEMUHDDHASHPLACEHOLDER^https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip
hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
hash^RANIGHTLYCORESPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z
-hash^RETRODECKMAMEPLACEHOLDER^"https://github.com/XargonWan/RetroDECK-MAME/releases/download/$(curl -s https://api.github.com/repos/XargonWan/RetroDECK-MAME/releases/latest | grep -oP '"tag_name": "\K(.*?)(?=")')/RetroDECK-MAME-Artifact.tar.gz"
-url^RETRODECKMAMEURLPLACEHOLDER^"https://github.com/XargonWan/RetroDECK-MAME/releases/download/$(curl -s https://api.github.com/repos/XargonWan/RetroDECK-MAME/releases/latest | grep -oP '"tag_name": "\K(.*?)(?=")')/RetroDECK-MAME-Artifact.tar.gz"
-latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
-outside_file^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
-branch^THISBRANCH
+
+hash^RETRODECKPPSSPPLATEST^https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-PPSSPP-Artifact.tar.gz
+hash^RETRODECKDOLPHINLATEST^https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-dolphin-Artifact.tar.gz
+hash^RETRODECKPRIMEHACKLATEST^https://github.com/RetroDECK/io.github.shiiion.primehack/releases/latest/download/RetroDECK-primehack-Artifact.tar.gz
+hash^RETRODECKMELONDSLATEST^https://github.com/RetroDECK/net.kuribo64.melonDS/releases/latest/download/RetroDECK-melonds-Artifact.tar.gz
+hash^RETRODECKSOLARUSLATEST^https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
+hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
+hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
\ No newline at end of file
diff --git a/automation_tools/codename_wordlist.txt b/automation_tools/codename_wordlist.txt
index 6faa556b..75ea17af 100644
--- a/automation_tools/codename_wordlist.txt
+++ b/automation_tools/codename_wordlist.txt
@@ -1,3319 +1,418 @@
-aback
-abase
-abate
-abaya
-abbey
-abbot
-abets
-abhor
-abide
-abode
-abort
-about
-above
-abuse
-abuts
-abyss
-ached
-aches
-acids
-acing
-ackee
-acorn
-acres
-acrid
-acted
-actin
-actor
-acute
-adage
-adapt
-added
-adder
-addle
-adept
-adieu
-adios
-adits
-adman
-admin
-admit
-adobe
-adobo
-adopt
-adore
-adorn
-adult
-adzes
-aegis
-aeons
-aerie
-affix
-afire
-afoot
-afore
-after
-again
-agape
-agate
-agave
-agent
-aggro
-agile
-aging
-aglow
-agony
-agora
-agree
-ahead
-ahold
-aided
-aider
-aides
-ailed
-aimed
-aimer
-aioli
-aired
-aisle
-alarm
-album
-alder
-aleph
-alert
-algae
-algal
-alias
-alibi
+advance
+aesthetic
alien
-align
-alike
-alive
-alkyd
-alkyl
-allay
-alley
-allot
-allow
-alloy
-allyl
-aloes
-aloft
-aloha
-alone
-along
-aloof
-aloud
-alpha
-altar
-alter
-altos
-alums
-amass
-amaze
-amber
-ambit
-amble
-ambos
-amend
-amide
-amine
-amino
-amiss
-amity
-amnio
-among
-amour
-amped
-ample
-amply
-amuse
-ancho
-angel
-anger
-angle
-angry
-angst
-anima
-anime
-anion
-anise
-ankle
-annas
-annex
-annoy
-annul
-anode
-anole
-antic
-antis
-antsy
-anvil
-aorta
-apace
-apart
-aphid
-apnea
-apple
-apply
-apron
-apses
-apter
-aptly
-aquas
-arbor
-ardor
-areal
-areas
-areca
-arena
-argon
-argot
-argue
-argus
-arias
-arils
-arise
-armed
+amateratsu
+amazing
+amiga
+ann
+apposai
+arcade
armor
-aroma
-arose
-array
-arrow
-arses
-arson
-artsy
-asana
-ascot
-ashen
-ashes
-aside
-asked
-asker
-askew
-aspen
-aspic
-assay
-asses
-asset
-aster
-astir
-asura
-atlas
-atman
-atoll
-atoms
-atone
-atopy
-attic
-audio
-audit
-auger
-aught
-augur
-aunts
-aunty
-aural
-auras
-autos
-auxin
-avail
-avers
-avert
-avian
-avoid
-avows
-await
-awake
-award
-aware
-awash
-awful
-awoke
-axels
-axial
-axils
-axing
-axiom
-axion
-axles
-axons
-azide
-azole
-azure
-babel
-babes
-babka
-backs
-bacon
-baddy
-badge
-badly
-bagel
-baggy
-bails
-bairn
-baits
-baize
-baked
-baker
-bakes
-baldy
-baled
-baler
-bales
-balks
-balky
-balls
-balms
-balmy
-balsa
-banal
-bands
-bandy
-banes
-bangs
-banjo
-banks
-barbs
-bards
-bared
-barer
-bares
-barge
-barks
-barmy
-barns
-baron
-barre
-basal
-based
-baser
-bases
-basic
-basil
-basin
-basis
-basks
-basso
-bassy
-baste
-batch
-bated
-bathe
-baths
-batik
-baton
-batts
-batty
-bawdy
-bawls
-bayed
-bayou
-beach
-beads
-beady
-beaks
-beams
-beamy
-beans
-beard
-bears
-beast
-beats
-beaus
-beaut
-beaux
-bebop
-becks
-beech
-beefs
-beefy
-beeps
-beers
-beery
-beets
-befit
-began
-beget
-begin
-begun
-beige
-being
-belay
-belch
-belie
-belle
-bells
-belly
-below
-belts
-bench
-bends
-bendy
-bento
-bents
-beret
-bergs
-berms
-berry
-berth
-beryl
-beset
-bests
-betas
-betel
-betta
-bevel
-bezel
-bhaji
-bible
-bicep
-biddy
-bided
-bides
-bidet
-bight
-bigot
-bijou
-biked
-biker
-bikes
-biles
-bilge
-bills
-billy
-bimbo
-bindi
-binds
-binge
-bingo
-biome
-biota
-bipod
-birch
-birds
-birth
-bison
-bitch
-biter
-bites
-bitsy
-bitty
-black
-blade
-blame
-bland
-blank
-blare
-blase
-blast
-blaze
-bleak
-bleat
-blebs
-bleed
-bleep
-blend
-bless
-blimp
-blind
-bling
-blini
-blink
-blips
-bliss
-blitz
-bloat
-blobs
+atari
+ataru
+attendant
+autobot
+axe
+babality
+back
+ball
+baozi
+barbarian
+bat
+better
+blizzaga
+blizzara
block
-blocs
-blogs
-bloke
-blond
-blood
-bloom
-bloop
-blots
-blown
-blows
-blued
-blues
-bluey
-bluff
-blunt
-blurb
-blurs
-blurt
-blush
-board
-boars
-boast
-boats
-bobby
-bocce
-boche
-boded
-bodes
-boffo
-bogey
-boggy
-bogie
-bogus
-boils
-bolas
-boles
-bolls
-bolts
-bolus
-bombe
-bombs
-bonds
-boned
-boner
-bones
-boney
-bongo
-bongs
-bonks
-bonny
-bonus
-boobs
-booby
-booed
-books
-booms
-boomy
-boons
-boors
-boost
-booth
-boots
-booty
-booze
-boozy
-boppy
-borax
-bored
-borer
-bores
-boric
-borne
-boron
-bosom
-boson
-bossy
-bosun
-botch
-bough
-boule
-bound
-bouts
-bowed
-bowel
-bower
-bowls
-boxed
-boxer
-boxes
-boyar
-boyos
-bozos
-brace
-bract
-brads
-brags
-braid
-brain
-brake
-brand
-brans
-brash
-brass
-brats
-brave
-bravo
-brawl
-brawn
-brays
-braze
-bread
-break
-bream
-breed
-brews
-briar
-bribe
-brick
-bride
-brief
-brier
-brigs
-brims
-brine
-bring
-brink
-briny
-brisk
-brits
-broad
-broch
-broil
-broke
-brome
-bronc
-brood
-brook
-broom
-broth
+blue
+bomb
+bomber
+bot
+bow
+bowser
+boy
+broken
brown
-brows
-bruin
-bruit
-brunt
brush
-brute
-bubba
-bucks
-buddy
-budge
-buffs
-buggy
-bugle
-build
-built
-bulbs
-bulge
-bulks
-bulky
-bulla
-bulls
-bully
-bumps
-bumpy
-bunch
-bunds
-bundt
-bunks
-bunny
-bunts
-buoys
-burbs
-burgs
-burka
-burly
-burns
-burnt
-burps
-burqa
-burro
-burrs
-bursa
-burst
-bused
-buses
-bushy
-busts
-busty
-butch
-butte
-butts
-buxom
-buyer
-buzzy
-bylaw
-byres
-bytes
-byway
-cabal
-cabby
-caber
-cabin
-cable
-cacao
-cache
-cacti
-caddy
-cadet
-cadre
-cafes
-caged
-cages
-cagey
-cairn
-caked
-cakes
-cakey
-calfs
-calif
-calla
-calls
-calms
-calve
-calyx
-camel
-cameo
-campo
-camps
-campy
-canal
-candy
-caned
-canes
-canid
-canna
-canny
-canoe
-canon
-canto
-caped
-caper
-capes
-capon
-capos
-caput
-carat
-carbo
-carbs
-cards
-cared
-carer
-cares
-cargo
-carob
-carol
-carom
-carps
-carry
-carte
-carts
-carve
-cased
-cases
-casks
-caste
-casts
-catch
-cater
-catty
-caulk
-cause
-caved
-caver
-caves
-cavil
-cease
-cecal
-cecum
-cedar
-ceded
-cedes
-ceili
-celeb
-cello
-cells
-celts
-cents
-chads
-chafe
-chaff
-chain
-chair
-chalk
-champ
-chana
-chant
-chaos
-chaps
-chard
-charm
-chars
-chart
-chase
-chasm
-chats
-cheap
+bulma
+bumblebee
+busters
+cadillac
+cage
+call
+capsule
+captain
+capumon
+card
+cart
+cartdrige
+cassette
+cast
+cdrom
+cha
+chan
cheat
-check
-cheek
-cheep
-cheer
-chefs
-chemo
-chert
-chess
-chest
-chews
-chewy
-chica
-chick
-chico
-chide
-chief
-child
-chile
-chili
-chill
-chime
-chimp
-china
-chine
-ching
-chino
-chins
-chips
-chirp
-chits
-chive
-chock
-choir
-choke
-chomp
-chops
-chord
-chore
-chose
-chows
-chubs
-chuck
-chuff
-chugs
-chump
-chums
-chunk
-churn
-chute
-cider
-cigar
-cinch
-circa
-cisco
-cited
-cites
-civet
-civic
-civil
-civvy
-clack
-clade
-claim
-clamp
-clams
-clang
-clank
-clans
-claps
-clash
-clasp
-class
-clave
-claws
-clays
-clean
-clear
-cleat
-clefs
-cleft
-clerk
-click
-cliff
-climb
-clime
-cline
-cling
-clink
-clips
-cloak
-clock
-clods
-clogs
-clomp
-clone
-close
-cloth
-clots
-cloud
-clout
-clove
-clown
-clubs
-cluck
-clued
-clues
-clump
-clung
-clunk
-coach
-coals
-coast
-coati
-coats
-cobia
-cobra
-cocci
-cocks
-cocky
-cocoa
-codas
-codec
-coded
-coder
-codes
-codex
-codon
-coeds
-cohos
-coifs
-coils
-coins
-cokes
-colas
-colds
-coles
-colic
-colin
-colon
+chichi
+chie
+city
+cleric
+code
+coin
+cola
+cold
color
-colts
-comas
-combo
-combs
-comer
-comes
-comet
-comfy
-comic
-comma
-commo
-compo
-comps
-comte
-conch
-condo
-coned
-cones
-conga
-congo
-conic
-conks
-cooed
-cooks
-cools
-coops
-coopt
-coped
-copes
-copra
-copse
-coral
-cords
-cored
-corer
-cores
-corgi
-corks
-corky
-corms
-corns
-cornu
-corny
-corps
-costs
-cotta
-couch
-cough
-could
-count
-coupe
-coups
-court
-coven
-cover
-coves
-covet
-covey
-cowed
-cower
-cowls
-coyly
-crabs
-crack
-craft
-crags
-cramp
-crams
-crane
-crank
-crape
-craps
-crash
-crass
-crate
-crave
-crawl
-craws
-craze
+commodore
+configurator
+console
+controller
crazy
-creak
-cream
-credo
-creed
-creek
-creel
-creep
-creme
-crepe
-crept
-cress
-crest
-crews
-cribs
-crick
-cried
-crier
-cries
-crime
-crimp
-crisp
-crits
-croak
-crock
-crocs
-croft
-crone
-crony
-crook
-croon
-crops
-cross
-croup
-crowd
-crown
-crows
-crude
-cruel
-cruet
-crumb
-cruse
-crush
-crust
-crypt
-cubby
-cubed
-cubes
-cubic
-cubit
-cuddy
-cuffs
-culls
-culpa
-cults
-cumin
-cupid
-cuppa
-curbs
-curds
-cured
-cures
-curia
-curio
-curls
-curly
-curry
-curse
-curve
-curvy
-cushy
-cusps
-cuter
-cutie
-cutis
-cutup
-cycad
-cycle
-cyclo
-cynic
-cysts
-czars
-dacha
-daddy
-dados
-daffy
-daily
-dairy
+critical
+crt
+curaga
+curara
+cure
daisy
-dales
-dames
-damns
-damps
dance
-dandy
-dared
-dares
-darks
-darns
-darts
-dashi
-dated
-dater
-dates
-datum
-daubs
-daunt
-davit
-dawns
-dazed
-deals
-dealt
-deans
-dears
-deary
-death
-debit
-debts
-debug
-debut
-decaf
-decal
-decay
-decks
-decor
-decoy
-decry
-deeds
-deems
-deeps
-deers
-defer
-deify
-deign
-deism
-deist
-deity
-dekes
-delay
-delft
-delis
-dells
-delta
-delve
-demon
-demos
-demur
-denim
-dense
-dents
-depot
-depth
-derby
-desks
-deter
-detox
-deuce
-devil
-dewar
-dhikr
-dhows
-dials
-diary
-diced
-dices
-dicey
-dicky
-dicta
-diets
-digit
-diked
-dikes
-dills
-dilly
-dimer
-dimes
-dimly
-dinar
-dined
-diner
-dines
-dingo
-dings
-dingy
-dinks
-dinky
-dinos
-diode
-dippy
-direr
-dirge
-dirty
-disco
-discs
-dishy
-disks
-ditch
-ditsy
-ditto
-ditty
-ditzy
-divan
-divas
-dived
-diver
-dives
-divot
-divvy
-dizzy
-docks
-dodge
-dodgy
-dodos
-doers
-doffs
-doges
-doggy
-dogma
-doing
-doled
-doles
-dolls
-dolly
-dolor
-dolts
-domed
-domes
-donee
-dongs
-donna
-donor
-donut
-dooms
-doomy
-doors
-doozy
-doped
-dopes
-dopey
-dorks
-dorky
-dorms
-dosas
-dosed
-doses
-doted
-dotes
-dotty
-doubt
-dough
-doula
-douse
-doves
-dowdy
-dowel
-dower
-downs
-downy
-dowry
-dowse
-doyen
-dozed
-dozen
-dozer
-dozes
-drabs
-draft
-drags
-drain
-drake
-drama
-drams
-drank
-drape
-drawl
-drawn
-draws
-drays
-dread
+data
+decepticon
+deck
+delorean
+desktop
+dice
+digi
+digital
+dinosaur
+disc
+doctor
+dos
+dot
+dragon
dream
-dreck
-dregs
-dress
-dribs
-dried
-drier
-dries
-drift
-drill
-drily
-drink
-drips
drive
-droid
-droll
-drone
-drool
-droop
-drops
-dross
-drove
-drown
-drugs
-druid
-drums
-drunk
-drupe
-dryad
-dryer
-dryly
-duals
-ducal
-ducat
-duchy
-ducks
-ducky
-ducts
-dudes
-duels
-duets
-duffs
-dukes
-dulls
-dully
-dulse
-dumbo
-dummy
-dumps
-dumpy
-dunce
-dunes
-dunks
-duomo
-duped
-dupes
-dural
-durum
-dusks
-dusky
-dusts
-dusty
-dutch
-duvet
-dwarf
-dweeb
-dwell
-dwelt
-dyads
-dyers
-dying
-dykes
-eager
-eagle
-eared
-earls
-early
-earns
-earth
-eased
-easel
-easer
-eases
-eaten
-eater
-eaves
-ebbed
-ebony
-ebook
-echos
-eclat
-edema
-edged
-edger
-edges
-edict
-edify
-edits
-eejit
-eerie
-egged
-egret
-eider
-eidos
-eight
-eject
-ejido
-eland
-elbow
-elder
-elect
-elegy
-elide
-elite
-elope
-elude
-elute
-elven
-elves
-email
-embed
-ember
-emcee
-emery
-emirs
-emits
-emote
-empty
-enact
-ended
-endow
-enema
-enemy
-enjoy
-ennui
-enoki
-enrol
-ensue
-enter
-entry
-envoy
-eosin
-epics
-epoch
-epoxy
-equal
-equip
-erase
-erect
-ergot
-erode
-erred
-error
-erupt
-essay
-ether
-ethic
-ethos
-ethyl
-etude
-euros
-evade
-evens
-event
-every
-evict
-evils
-evoke
-ewers
-exact
-exalt
-exams
-excel
-execs
-exert
-exile
-exist
-exits
-expat
-expel
-expos
-extol
-extra
-exude
-exult
-exurb
-eying
-eyrie
-fable
-faced
-facer
-faces
-facet
-facia
-facts
-faded
-fader
-fades
-faery
-fails
-faint
-fairs
+drome
+dungeon
+eggman
+emerald
+emulation
+engine
+evangelion
+exe
fairy
-faith
-faked
-faker
-fakes
-fakie
-fakir
-falls
-famed
-fancy
-fangs
-fanny
-farce
-fared
-fares
-farms
-farts
-fasts
-fatal
-fated
-fates
-fatso
-fatty
-fatwa
-fault
-fauna
-fauns
-favas
-faves
-favor
-fawns
-faxed
-faxes
-fazed
-fazes
-fears
-feast
-feats
-fecal
-feces
-feeds
-feels
-feign
-feint
-fella
-fells
-felon
-felts
-femme
-femur
-fence
-fends
-feral
-feria
-ferns
-ferny
-ferry
-fests
-fetal
-fetch
-feted
-fetes
-fetid
-fetus
-feuds
-fever
-fewer
-fiats
-fiber
-fibre
-fiche
-ficus
-fiefs
-field
-fiend
-fiery
-fifes
-fifth
-fifty
+fall
+family
+fantasy
+fatality
fight
-filch
-filed
-filer
-files
-filet
-fills
-filly
-films
-filmy
-filth
final
-finca
-finch
-finds
-fined
-finer
-fines
-finis
-finks
-fiord
-fired
-fires
-firms
-first
-fishy
-fists
-fitly
-fiver
-fives
-fixed
-fixer
-fixes
-fizzy
-fjord
-flack
-flags
-flail
-flair
-flake
-flaky
-flame
-flank
-flans
-flaps
-flare
+fira
+firaga
+fire
flash
-flask
-flats
-flaws
-flays
-fleas
-fleck
-flees
-fleet
-flesh
-flick
-flier
-flies
-fling
-float
-flood
-floor
-flour
-flown
-flows
-fluid
-flyer
-focal
-focus
-folks
-fonts
-foods
-force
-forms
-forth
-forty
-forum
-found
-frame
-fraud
-fresh
-fried
-fries
-front
-frost
-fruit
-fuels
-fully
-funds
-funny
-gains
-games
-gamma
-gases
-gates
-gauge
-gears
-genes
-genre
+floppy
+floral
+friendship
+futaba
+future
+gainax
+galleon
+game
+ganon
+gantz
+gear
+genesis
+genie
+genma
+germano
ghost
-giant
-gifts
-girls
-given
-gives
-gland
-glass
-globe
-glory
-gloss
-glove
-glued
-goals
-goats
-going
-goods
-grace
-grade
-grain
-grams
-grand
-grant
-grape
-graph
-grasp
-grass
-grave
-great
-greek
-green
-greet
-grief
-grill
-grind
-grips
-gross
-group
-grove
-grown
-grows
-guard
-guess
-guest
-guide
-guild
-guilt
-habit
-hairs
-halls
-hands
-handy
-hangs
-happy
-harsh
-hated
-hates
-haven
-hawks
-heads
-heard
-heart
-heavy
-hedge
-heels
-hello
-helps
-hence
-herbs
-highs
-hills
-hints
-hired
-hobby
-holds
-holes
-holly
-homes
-honey
-honor
-hooks
-hoped
-hopes
-horns
-horse
-hosts
-hotel
-hours
+ghosts
+goblins
+god
+gohan
+goku
+golden
+gon
+gun
+gundam
+gurren
+guy
+hadoken
+hame
+handheld
+haru
+horror
+hot
house
-hover
-human
-humor
-hurts
-icons
-ideal
-ideas
-idiot
-image
-imply
-inbox
-incur
-index
-indie
-inner
-input
-intro
-issue
-items
-inert
-infer
-infix
-infos
-infra
-ingan
-ingle
-ingot
-inion
-inked
-inker
-inkle
-inlay
-inlet
-inned
-inner
-innie
-innit
-inorb
-input
-inrun
-insee
-inset
-inspo
-intel
-inter
-intis
-intra
-intro
-inula
-inure
-inurn
-invar
-inver
-inwit
-iodic
-iodin
-ionic
-ioras
-iotas
-ippon
-irade
-iring
-irked
-iroko
-irons
-irony
-isbas
-ishes
-isled
-isles
-islet
-isnae
-idler
-idles
-idlis
-idola
-idols
-idyll
-idyls
-iftar
-igapo
-igged
-igloo
-iglus
-ignis
-ihram
-ikans
-ikats
-ikons
-ileac
-ileal
-ileum
-ileus
-iliac
-iliad
-ilial
-ilium
-iller
-illth
-image
-imago
-imams
-imari
-imaum
-imbar
-imbos
-imbue
-imide
-imido
-imids
-imine
-imino
-imlis
-immew
-immit
-immix
-imped
-impel
-impis
-imply
-impot
-impro
-imshi
-imshy
-inane
-inapt
-inarm
-inbox
-inbye
-incas
-incel
-incog
-incur
-incus
-incut
-index
-india
-indie
-indol
-indri
-indue
-inept
-issei
-issue
-istle
-itchy
-items
-ivied
-ivies
-ivory
-ixias
-ixnay
-ixora
-ixtle
-izard
-izars
-izzat
-jeans
-jelly
-jewel
-joins
-joint
-jokes
-judge
-juice
-juicy
-jumps
-jabot
-jacal
-jacks
-jacky
-jaded
-jades
-jager
-jaggy
-jails
-jakes
-jalap
-jalee
-jalor
-jalur
-jambe
-jambs
-jammy
-janes
-janky
-japan
-japed
-japer
-japes
-jarls
-jasey
-jaspe
-jatis
-jatos
-jaunt
-jaups
-jawan
-jawed
-jazzy
-jeans
-jebel
-jedis
-jeers
-jefes
-jehad
-jello
-jells
-jelly
-jemmy
-jenny
-keeps
-kicks
-kills
-kinda
-kinds
-kings
-knees
-knife
-knock
-knots
-known
-knows
-keeps
-kills
-kench
-kilos
-knelt
-koala
-knead
-kayak
-kevel
-knack
-knoll
-kooky
-kicks
-kaput
-khaki
-knees
-knock
-krill
-kudos
-kempt
-kiosk
-knell
-knife
-krait
-kites
-keeve
-kiddy
-kneel
-knobs
-knurl
-kaama
-kabab
-kabar
-kabob
-kacha
-kacks
-kadai
-kades
-kadis
-kails
-kaims
-kaing
-kains
-kajal
-kakas
-kakis
-kalam
-kalas
-kales
-kalif
-kalis
-kalpa
-kalua
-kanae
-kanal
-kanas
-kanat
-kandy
-kaneh
-kanes
-karns
-karoo
-karos
-karri
-karst
-karsy
-karts
-karzy
-kasha
-katal
-katas
-katis
-katti
-kerry
-kesar
-kests
-ketas
-ketch
-ketol
-kevil
-kexes
-keyed
-keyer
-kibbe
-kibbi
-kibei
-kibes
-kibla
-kicky
-kiddo
-kidel
-kidge
-kiefs
-kiers
-kieve
-kiley
-kilig
-kilps
-kilts
-kilty
-kinda
-kinds
-kindy
-kines
-kings
-kingy
-label
-labor
-lacks
-lakes
-lamps
-lands
-lanes
-large
-laser
-lasts
-later
-laugh
-layer
-leads
-leaks
-learn
-lease
-least
-leave
-legal
-lemon
+hunter
+igor
+ikki
+inaba
+install
+inu
+island
+izanagi
+izanami
+jackrabbit
+jaguar
+jazz
+jill
+johnny
+joker
+jolly
+joystick
+jump
+junes
+jurassic
+jusenkyo
+kabuto
+kame
+kami
+kang
+kanji
+kart
+kasumi
+katana
+keeper
+keihan
+kernel
+kick
+kitsune
+kitty
+klonoa
+knuckles
+kombat
+konami
+koopa
+kotone
+kuma
+kun
+kuno
+kunoichi
+kuwagata
+kyoto
+lagan
+landlubber
level
-lever
-light
-liked
-likes
-limbs
-limit
-lined
-linen
-liner
-lines
-links
-lions
-lists
-lived
-liver
-lives
-loads
-loans
-lobby
-local
-locks
-lodge
-logic
-logos
-looks
-loops
-loose
-lords
-loses
-loved
-lover
-loves
-lower
-loyal
-lucky
-lunar
-lunch
-lungs
-lying
-lacey
-lacis
-lacka
-lacks
-laddu
-laddy
-laded
-ladee
-laden
-lader
-ladle
-ladoo
-lairs
-lairy
-laith
-laity
-laked
-laker
-lakes
-lance
-lanch
-lande
-lands
-laned
-lanes
-lanky
-lants
-lapas
-lapel
-lapin
-lapis
-lapje
-lappa
-lappy
-lapse
-larch
-lards
-lardy
-laree
-larva
-lased
-laser
-lases
-lassi
-lasso
-lassy
-lasts
-latah
-latch
-later
-leany
-leaps
-leapt
-learn
-lears
-leary
-lease
-leash
-least
-leats
-leave
-leavy
-leaze
-leben
-leccy
-leche
-ledes
-leeps
-leers
-leery
-leese
-leets
-leeze
-lefte
-lefts
-lefty
-legal
-leger
-leges
-legge
-leggo
-macro
-magic
-major
+link
+linux
+lisa
+little
+lose
+luigi
+lum
+machine
+macintosh
+mage
+majin
+make
maker
-makes
-males
-maple
-march
-marks
-marry
-masks
-match
-mates
-maths
-matte
-maybe
-mayor
-meals
-means
-meant
-meats
+makoto
+mall
+man
+mandrake
+maneki
+manju
+margaret
+marie
+mario
+master
+matrix
+mayonaka
medal
-media
-meets
-melee
-menus
-mercy
-merge
-merit
-merry
-messy
+mega
+megatron
+men
+metabee
metal
-meter
-metro
-micro
-midst
-might
-miles
-minds
-mines
-minor
-minus
-mixed
-mixer
-mixes
-model
-modem
-modes
-moist
-money
-month
-moral
-motor
-mount
-mouse
-mouth
-moved
-moves
-movie
-music
-myths
-nails
-naked
-named
-names
-nasal
-nasty
-naval
-needs
-nerve
-never
-newer
-newly
-nexus
-nicer
-niche
+midnight
+mini
+mochi
+mode
+monk
+monkey
+monster
+moroboshi
+mosconi
+must
+mutten
+nabiki
+navi
+neko
+nen
+neon
night
ninja
-ninth
-noble
-nodes
-noise
-noisy
-norms
-north
-notch
-noted
-notes
-novel
-nurse
-nylon
-oasis
-occur
+noclip
+nova
+novice
+obaba
+obake
ocean
-offer
-often
-older
-olive
+okage
+okonomi
omega
-onion
-onset
-opens
-opera
-opted
-optic
-orbit
-order
-organ
-other
-ought
-ounce
-outer
-owned
-owner
-oxide
-ocker
-ocote
-ocrea
-octad
-octal
-octan
-octas
-octet
-octic
-octli
-octyl
-oculi
-odahs
-odals
-odder
-oddly
-odeon
-odeum
-odist
-odium
-odoom
-odors
-odour
-odsos
-odums
-odyle
-odyls
-oecus
-ofays
-offal
-offed
-offer
-oflag
-often
-ofuro
-ogams
-ogees
-oggin
-ogham
-ogive
-ogled
-ogler
-ogles
-ogmic
-ogres
-ohelo
-ohias
-ohing
-ohmic
-oicks
-oidia
-oiled
-oiler
-oints
-oiran
-ojime
-okapi
-okays
-okehs
-okies
-oking
-packs
-pages
-pains
-paint
-pairs
-panel
-panic
-pants
-paper
-parks
-parts
+one
+onizuka
+onsen
+optimus
+oracle
+osaka
+overlord
+paladin
+palm
+panda
+panther
+parry
party
pasta
-paste
-patch
-paths
-patio
-pause
-peace
peach
-peaks
-pearl
-pedal
-peers
-penis
-penny
-perks
-pests
-petty
-phase
-phone
-photo
-piano
-picks
-piece
-piles
-pills
-pilot
-pinch
-pipes
-pitch
-pixel
+pentium
+pepsi
+persona
+phantasy
+piccolo
+pika
+pirate
pizza
-place
-plain
-plane
-plans
-plant
-plate
-plays
+planet
+play
plaza
-plots
-plugs
-poems
-point
+plus
+pocket
poker
-polar
-poles
-polls
-pools
-porch
-pores
-ports
-posed
-poses
-posts
-pouch
-pound
+pony
+portable
power
+predacon
+predator
press
-price
-pride
prime
-print
-prior
-prize
-probe
-promo
-prone
-proof
-props
-proud
-prove
-proxy
-psalm
-pulls
-pulse
-pumps
+princess
punch
-pupil
-puppy
-purse
-queen
-query
-quest
-queue
-quick
-quiet
-quilt
-quite
-quote
-qadis
-qaids
-qajaq
-qanat
-qapik
-qibla
-qilas
-qipao
-qophs
-qorma
-quabs
-quack
-quads
-quaff
-quags
-quail
-quair
-quais
-quake
-quaky
-quale
-qualm
-qualy
-quank
-quant
-quare
-quark
-quarl
-quart
-quash
-queek
-queem
-queen
-queer
-quell
-queme
-quena
-quern
-query
-queso
-quest
-quete
-queue
-queyn
-queys
-queyu
-quibs
-quich
-races
-racks
-radar
-radio
-rails
-rainy
-raise
-rally
-ranch
-range
-ranks
-rapid
-rated
-rates
-ratio
-razor
-reach
-react
-reads
-ready
-realm
-rebel
-refer
-reign
-relax
-relay
-renal
-renew
-reply
-reset
-resin
+puyo
+pyros
+rainbow
+rancher
+ranger
+rangers
+raptor
+redmond
+rekku
+retort
retro
-rider
-rides
-ridge
-rifle
-right
-rigid
-rings
-rinse
-risen
-rises
-risks
-risky
-rival
-river
-roads
+rex
+rick
+ring
robot
-rocks
+robotnik
rocky
-rogue
-roles
-rolls
-roman
-rooms
-roots
-ropes
-roses
-rough
+rokusho
+roll
+room
round
-route
-royal
-rugby
-ruins
-ruled
-ruler
-rules
-rural
-rakee
-raker
-rakes
-rakhi
-rakia
-rakis
-rakki
-raksi
-rakus
-rales
-ralli
-rally
-ralph
-ramal
-ramee
-ramen
-rames
-ramet
-ramie
-ramin
-ramis
-rammy
-ramon
-ramps
-ramus
-ranas
-rance
-ranch
-rando
-rands
-randy
-ranee
-ranes
-ranga
-range
-rangi
-rangy
-ranid
-ranis
-ranke
-ranks
-sadly
-safer
-salad
-sales
-salon
-sandy
-satin
-sauce
-saved
-saves
-scale
-scalp
-scans
-scare
-scarf
-scary
-scene
-scent
-scoop
-scope
-score
-scout
-scrap
-screw
-seals
-seams
-seats
-seeds
-seeks
-seems
-sells
-sends
-sense
-serum
-serve
+ruby
+rupie
+ryoga
+ryuji
+saint
+sakura
+sakurambo
+sama
+samurai
+samus
+san
+saotome
+saturn
+saul
+saver
+scanlines
+scorpion
+screen
+scumm
+scurvy
+select
setup
-seven
-sewer
-shade
-shaft
-shake
-shall
-shame
-shape
-share
-shark
-sharp
-sheep
-sheer
-sheet
-shelf
-shell
-shift
-shine
-shiny
-ships
-shirt
-shock
-shoes
-shook
-shoot
-shops
-shore
-short
-shots
-shown
-shows
-sides
-siege
-sight
-sigma
-signs
-silly
-since
-sites
-sixth
-sized
-sizes
-skies
+sh
+shadow
+shampoo
+shinji
+ship
+shogun
+shonen
+shoppe
+shoryuken
+shoujo
+show
+sixtyfour
skill
-skins
-skirt
-skull
-slate
-slave
-sleek
-sleep
-slept
-slice
-slide
-slope
-slots
-small
-smart
-smell
-smile
-smoke
-snack
-snake
-sneak
-socks
-soils
-solar
-solid
-solve
-songs
+slug
+soda
sonic
-sorry
-sorts
-souls
+sorcerer
sound
-south
-space
-spare
-spark
-speak
-specs
-speed
-spell
-spend
-spent
-sperm
-spice
-spicy
-spike
-spine
-spite
-split
-spoke
-spoon
-sport
-spots
-spray
-spurs
+spectacular
+spider
+spy
squad
-stack
-staff
-stage
-stain
-stake
-stamp
-stand
-stark
-stars
+star
start
-state
-stats
-stays
-steak
-steal
+station
steam
-steel
-steep
-steer
-stems
-steps
-stick
-stiff
-still
-stock
-stole
-stone
-stood
-stool
-stops
-store
-storm
-story
-stove
-strap
-straw
-strip
-stuck
-study
-stuff
-style
-sucks
-sugar
-suite
-suits
-sunny
-super
-surge
+sub
+suit
sushi
-swear
-sweat
-sweet
-swept
-swift
-swing
-swiss
+swan
sword
-syrup
-table
-taken
-takes
-tales
-talks
-tanks
-tapes
-tasks
-taste
-tasty
-taxes
-teach
-teams
-tears
-teens
-teeth
-tells
-tempo
-tends
-tenth
-tents
-terms
-tests
-texts
-thank
-theft
-their
-theme
-there
-these
-thick
-thief
-thigh
-thing
-think
-third
-those
-three
-threw
-throw
-thumb
+system
+tails
+tale
+tan
+tanuki
+tardis
+tarot
+taxi
+team
+temple
+tendo
+terminator
+tetris
+thundaga
+thundara
+thunder
tiger
-tight
-tiles
-timer
-times
-tired
-tires
-title
-toast
-today
-token
-tones
-tools
-tooth
-topic
-torch
-total
-touch
-tough
-tours
-towel
-tower
-towns
-toxic
-trace
-track
-tract
-trade
-trail
-train
-trait
-trans
-traps
-trash
-treat
-trees
-trend
-trial
-tribe
-trick
-tried
-tries
-trips
-trout
-truck
-truly
-trump
-trunk
-trust
-truth
-tubes
-tumor
-tuned
-tunes
-turbo
-turns
-tutor
-tweet
-twice
-twins
-twist
-types
-tyres
-ultra
-uncle
-under
-union
-unite
-units
-unity
-until
-upper
-upset
-urban
-urged
-urine
-usage
-users
-using
-usual
-unsaw
-unsay
-unsee
-unset
-unsew
-unsub
-untag
-untax
-untie
-until
-unwed
-unwet
-unwit
-unwon
-unzip
-upbow
-upbye
-updos
-updry
-upend
-upjet
-uplay
-upled
-uplit
-upped
-upper
-upran
-uprun
-upsee
-upset
-upsey
-upter
-uptie
-uraei
-urali
-uraos
-urare
-urari
-urase
-urate
-urban
-urbex
-urbia
-urdee
-ureal
-ureas
-uredo
-ureic
-ureid
-urena
-urged
-urger
-urges
-urial
-urine
-vague
-valid
-value
+time
+toad
+tokyo
+tombi
+transformer
+tux
+tv
+txt
+ufo
+ultimate
+unlock
valve
vapor
-vault
-vegan
-veins
-vents
-venue
-verse
+vegeta
+velvet
+vhs
video
-views
-villa
-vinyl
-viral
-virus
-visas
-visit
-vital
-vivid
-vocal
-vodka
-voice
-volts
-voted
-voter
-votes
-verbs
-verde
-verge
-verra
-verre
-verry
-versa
-verse
-verso
-verst
-verte
-verts
-vertu
-verve
-vespa
-vesta
-vests
-vetch
-veuve
-veves
-vexed
-vexer
-vexes
-vexil
-vezir
-vials
-viand
-vibed
-vibes
-vibex
-vibey
-vicar
-vices
-vichy
-vicus
-wages
-wagon
-waist
-walks
-walls
-wants
-warns
-waste
-watch
-water
-watts
-waves
-wears
-weeds
-weeks
-weigh
-weird
-wells
-welsh
-whale
-wheat
-wheel
-where
-which
-while
-white
-whole
-whose
-wider
-widow
-width
-winds
-wines
-wings
-wiped
-wired
-wires
-witch
-wives
+vim
+wario
+warrior
+wave
+weapon
+who
+wildcard
+wizard
woman
-women
-woods
-words
-works
-world
-worms
-worry
-worse
-worst
-worth
-would
-wound
-wrath
-wrist
-write
-wrong
-wrote
-waacs
-wacke
-wacko
-wacks
-wacky
-wadds
-waddy
-waded
-wader
-wades
-wadis
-wafer
-waffs
-wafts
-waged
-wager
-wages
-wagga
-wagon
-wahoo
-waide
-waifs
-wails
-wains
-wairs
-waist
-waits
-waive
-wakas
-waked
-waken
-waker
-wakes
-wakfs
-waldo
-walds
-waled
-waler
-wales
-walis
-walks
-walla
-walls
-wally
-walty
-waltz
-wamed
-wames
-wamus
-wands
-wanes
-waney
-wangs
-wanks
-wanky
-wanle
-wanly
-wanna
-wants
-wanty
-wanze
-waqfs
-warbs
-xebec
-xenia
-xenic
-xenon
-xeric
-xerox
-xerus
-xoana
-xrays
-xylan
-xylem
-xylic
-xylol
-xylyl
-xysti
-xysts
-yacht
-yards
-years
-yeast
-yield
-young
-yours
-youth
-yummy
-yacca
-yacht
-yacka
-yacks
-yadda
-yadim
-yaffs
-yager
-yagis
-yagna
-yahoo
-yajes
-yajna
-yakka
-yakow
-yales
-yamen
-yampa
-yampy
-yamun
-yandy
-yangs
-yanks
-yapok
-yapon
-yapps
-yappy
-yarak
-yarco
-yards
-yarer
-yarfa
-yarks
-yarns
-yarra
-yarrs
-yarta
-yarto
-yasss
-yates
-yatra
-yauds
-yauld
-yaups
-yawed
-yawey
-yawls
-yawns
-zones
-zebra
-zests
-zesty
-zetas
-zorse
-zouks
-zowee
-zowie
-zacks
-zaddy
-zafus
-zaida
-zaide
-zaidy
-zaire
-zakah
-zakat
-zamac
-zamak
-zaman
-zambo
-zamia
-zamis
-zanja
-zante
-zanza
-zanze
-zappy
-zarda
-zarfs
-zaris
-zatar
-zatis
-zawns
-zaxes
-zayde
-zerks
-zeros
-zests
-zesty
-zetas
-zexes
-zezes
-zhlob
-zhlub
-zhomo
-zhush
-zhuzh
-zibet
-ziffs
-zigan
-zikrs
-zilas
-zilch
-zilla
-zills
-zimbi
-zimbs
-zinco
-zincs
-zincy
-zineb
-zines
-zings
-zingy
-zinke
-zinky
-zinos
-zippo
-zippy
-ziram
-zitis
-zitti
-zitty
-zizel
-zizit
-zlote
-zloty
-zoaea
-zobos
-zobus
-zocco
-zoeae
-zoeal
+won
+wonder
+wrap
+yaki
+yamcha
+yen
+yoshi
+yu
+yukiko
+zelda
+zero
+zombie
diff --git a/automation_tools/flatpak_build_bundle.sh b/automation_tools/flatpak_build_bundle.sh
index 8e79186f..b242820b 100755
--- a/automation_tools/flatpak_build_bundle.sh
+++ b/automation_tools/flatpak_build_bundle.sh
@@ -3,9 +3,9 @@
# This is building the bundle RetroDECK.flatpak after the download and build steps are done
if [ "${GITHUB_REF##*/}" = "main" ]; then
- flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck
+ flatpak build-bundle "${GITHUB_WORKSPACE}/retrodeck-repo" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck
sha256sum RetroDECK.flatpak > RetroDECK.flatpak.sha
else
- flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck
+ flatpak build-bundle "${GITHUB_WORKSPACE}/retrodeck-repo" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck
sha256sum RetroDECK-cooker.flatpak > RetroDECK-cooker.flatpak.sha
fi
\ No newline at end of file
diff --git a/automation_tools/flatpak_build_download_only.sh b/automation_tools/flatpak_build_download_only.sh
index 8c779fbb..e8fca807 100755
--- a/automation_tools/flatpak_build_download_only.sh
+++ b/automation_tools/flatpak_build_download_only.sh
@@ -12,12 +12,12 @@ else
FOLDER=retrodeck-flatpak-cooker
fi
-mkdir -vp "${GITHUB_WORKSPACE}"/{.local,retrodeck-flatpak-cooker}
+mkdir -vp "${GITHUB_WORKSPACE}"/{retrodeck-repo,retrodeck-flatpak-cooker}
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
- --repo="${GITHUB_WORKSPACE}/.local" \
+ --repo="${GITHUB_WORKSPACE}/retrodeck-repo" \
--download-only \
"${GITHUB_WORKSPACE}/${FOLDER}" \
net.retrodeck.retrodeck.yml
diff --git a/automation_tools/flatpak_build_only.sh b/automation_tools/flatpak_build_only.sh
index c7f84d82..33276379 100755
--- a/automation_tools/flatpak_build_only.sh
+++ b/automation_tools/flatpak_build_only.sh
@@ -12,13 +12,13 @@ else
FOLDER=retrodeck-flatpak-cooker
fi
-mkdir -vp ${GITHUB_WORKSPACE}/.local
+mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-repo
mkdir -vp ${GITHUB_WORKSPACE}/"$FOLDER"
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
- --repo=${GITHUB_WORKSPACE}/.local \
+ --repo=${GITHUB_WORKSPACE}/retrodeck-repo \
--disable-download \
"${GITHUB_WORKSPACE}/$FOLDER" \
net.retrodeck.retrodeck.yml
\ No newline at end of file
diff --git a/automation_tools/main_version_checker.sh b/automation_tools/main_version_checker.sh
index 87011bfd..d230b205 100755
--- a/automation_tools/main_version_checker.sh
+++ b/automation_tools/main_version_checker.sh
@@ -42,8 +42,8 @@ appdata_version=$(fetch_appdata_version)
echo -e "Appdata:\t\t$appdata_version"
# Additional checks
-if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" ]]; then
- echo "Manifest version cannot be 'main' or 'THISBRANCH'. Please fix it."
+if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" || "$manifest_version" == *"cooker"* ]]; then
+ echo "Manifest version cannot be 'main', 'THISBRANCH', or contain 'cooker'. Please fix it."
exit 1
fi
diff --git a/automation_tools/pre_build_automation.sh b/automation_tools/pre_build_automation.sh
index 476ae315..3dabcc85 100755
--- a/automation_tools/pre_build_automation.sh
+++ b/automation_tools/pre_build_automation.sh
@@ -1,46 +1,57 @@
#!/bin/bash
+# Set script to exit immediately on any error
+set -e
+
# 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
# branch: This changes the placeholder text to the currently-detected GIT branch if an automated build was started from a PR environment.
-# hash: Finds the SHA256 hash of a file online and updates the placeholder in the manifest.
+# 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.
+# latestcommit: Finds the most recent commit of a git repo and updates 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
# latestghtag: Finds the most recent tag on a GitHub repo, for repos that don't have normal releases, but also shouldn't use the latest commit
# Needs the URL of the repo, in this line format: latestghtag^PLACEHOLDERTEXT^url
# latestghrelease: Finds the download URL and SHA256 hash of the latest release from a git repo.
-# Needs the API URL of the repo, in this line format: latestappimage^PLACEHOLDERTEXT^https://api.github.com/repos///releases/latest^
-# As this command updates two different placeholders (one for the URL, one for the file hash) in the manifest,
+# Needs the API URL of the repo, in this line format: latestghrelease^PLACEHOLDERTEXT^https://api.github.com/repos///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
+# The "HASH" prefix of the hash placeholder text is hardcoded in the script.
# The will be the file extension or other identifying suffix at the end of the file name that can be used to select from multiple releases.
# Example: If there are these file options for a given release:
# yuzu-mainline-20240205-149629642.AppImage
# yuzu-linux-20240205-149629642-source.tar.xz
-# yuzu-linux-20240205-149629642-debug.tar.xz
+# yuzu-linux-20240205-149629642-debug.tar.xz
# Entering "AppImage" (without quotes) for the will identify yuzu-mainline-20240205-149629642.AppImage
# Entering "source-.tar.xz" (without quotes) for the will identify yuzu-linux-20240205-149629642-source.tar.xz
# Entering "debug-tar.xz" (without quotes) for the will identify yuzu-linux-20240205-149629642-debug.tar.xz
-# As a file extension like ".tar.zx" can apply to multiple file options, the entire part that is appended to each release name should be included.
+# As a file extension like ".tar.xz" can apply to multiple file options, the entire part that is appended to each release name should be included.
# The will also only consider entries where the given suffix is at the end of the file name. So "AppImage" will identify "file.AppImage" but not "file.AppImage.zsync"
+# latestghreleasesha: Finds the SHA256 hash of a specific asset in the latest release from a git repo.
+# Needs the API URL of the repo, in this line format: latestghreleasesha^PLACEHOLDERTEXT^https://api.github.com/repos///releases/latest^
+# This command updates the placeholder in the manifest with the SHA256 hash of the specified asset.
# outside_file: Prints the contents of a file from the build environment (such as the buildid file) and replaces the placeholder text with those contents.
# outside_env_var: Gets the value of an environmental variable from the build environment (the output of "echo $var" from the terminal) and replaces the placeholder text with that value.
-# custom_command: Runs a single command explicitly as written in the $URL field of the task list, including variable and command expansion. This should work the same as if you were runnig the command directly from the terminal.
+# custom_command: Runs a single command explicitly as written in the $URL field of the task list, including variable and command expansion. This should work the same as if you were running the command directly from the terminal.
# This command does not need a PLACEHOLDERTEXT field in the task list, so needs to be in this syntax: custom_command^^$COMMAND
-# url: This is used to calculate a dynamic URL and the value to the $caluculated_url environmental variable, for use in other subsequent commands.
+# url: This is used to calculate a dynamic URL and the value to the $calculated_url environmental variable, for use in other subsequent commands.
-rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml
-automation_task_list=${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg
-current_branch=$(git rev-parse --abbrev-ref HEAD)
+# Define paths
+rd_manifest="${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml"
+automation_task_list="${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg"
-# During the PR automated tests instead of the branch name is returned "HEAD", fixing it
-if [ $current_branch == "HEAD" ]; then
- echo "Looks like we are on a PR environment, retrieving the branch name from which the PR is raised."
- current_branch=$(echo $GITHUB_REF | sed 's@refs/heads/@@')
- echo "The branch name from which the PR is raised is \"$current_branch\"."
-fi
+# Retrieve current git branch
+get_current_branch() {
+ local branch=$(git rev-parse --abbrev-ref HEAD)
+ if [ "$branch" == "HEAD" ]; then
+ echo "$GITHUB_REF" | sed 's@refs/heads/@@'
+ else
+ echo "$branch"
+ fi
+}
+
+current_branch=$(get_current_branch)
echo "Manifest location: $rd_manifest"
echo "Automation task list location: $automation_task_list"
@@ -49,103 +60,130 @@ echo "Task list contents:"
cat "$automation_task_list"
echo
-# Update all collected information
-while IFS="^" read -r action placeholder url branch
-do
- if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
+# Functions to handle different actions
+handle_branch() {
+ local placeholder="$1"
+ echo "Replacing placeholder $placeholder with branch $current_branch"
+ /bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' "$rd_manifest"
+}
+
+handle_hash() {
+ local placeholder="$1"
+ local url="$2"
+ local calculated_url=$(eval echo "$url")
+ local hash=$(curl -sL "$calculated_url" | sha256sum | cut -d ' ' -f1)
+ echo "Replacing placeholder $placeholder with hash $hash"
+ /bin/sed -i 's^'"$placeholder"'^'"$hash"'^g' "$rd_manifest"
+}
+
+handle_latestcommit() {
+ local placeholder="$1"
+ local url="$2"
+ local branch="$3"
+ local commit=$(git ls-remote "$url" "$branch" | cut -f1)
+ echo "Replacing placeholder $placeholder with latest commit $commit"
+ /bin/sed -i 's^'"$placeholder"'^'"$commit"'^g' "$rd_manifest"
+}
+
+handle_latestghtag() {
+ local placeholder="$1"
+ local url="$2"
+ local tag=$(git ls-remote --tags "$url" | tail -n 1 | cut -f2 | sed 's|refs/tags/||')
+ echo "Replacing placeholder $placeholder with latest tag $tag"
+ /bin/sed -i 's^'"$placeholder"'^'"$tag"'^g' "$rd_manifest"
+}
+
+handle_latestghrelease() {
+ local placeholder="$1"
+ local url="$2"
+ local suffix="$3"
+ echo "Fetching release data from: $url"
+ local release_data=$(curl -s "$url")
+ echo "Release data fetched."
+ local ghreleaseurl=$(echo "$release_data" | jq -r ".assets[] | select(.name | endswith(\"$suffix\")).browser_download_url")
+
+ if [[ -z "$ghreleaseurl" ]]; then
+ echo "Error: No asset found with suffix $suffix"
+ exit 1
+ fi
+
+ local ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
+
+ echo "Replacing placeholder $placeholder with URL $ghreleaseurl and hash $ghreleasehash"
+ /bin/sed -i 's^'"$placeholder"'^'"$ghreleaseurl"'^g' "$rd_manifest"
+ /bin/sed -i 's^'"HASHFOR$placeholder"'^'"$ghreleasehash"'^g' "$rd_manifest"
+}
+
+handle_latestghreleasesha() {
+ local placeholder="$1"
+ local url="$2"
+ local suffix="$3"
+ echo "Fetching release data from: $url"
+ local release_data=$(curl -s "$url")
+ echo "Release data fetched."
+ local ghreleaseurl=$(echo "$release_data" | jq -r ".assets[] | select(.name | endswith(\"$suffix\")).browser_download_url")
+
+ if [[ -z "$ghreleaseurl" ]]; then
+ echo "Error: No asset found with suffix $suffix"
+ exit 1
+ fi
+
+ local ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
+
+ echo "Replacing placeholder $placeholder with hash $ghreleasehash"
+ /bin/sed -i 's^'"$placeholder"'^'"$ghreleasehash"'^g' "$rd_manifest"
+}
+
+handle_outside_file() {
+ local placeholder="$1"
+ local file_path="$2"
+ if [[ "$file_path" == \$* ]]; then
+ eval file_path="$file_path"
+ fi
+ local content=$(cat "$file_path")
+ echo "Replacing placeholder $placeholder with content of file $file_path"
+ /bin/sed -i 's^'"$placeholder"'^'"$content"'^g' "$rd_manifest"
+}
+
+handle_outside_env_var() {
+ local placeholder="$1"
+ local var_name="$2"
+ if [[ "$var_name" == \$* ]]; then
+ eval var_name="$var_name"
+ fi
+ local value=$(echo "$var_name")
+ echo "Replacing placeholder $placeholder with environment variable $value"
+ /bin/sed -i 's^'"$placeholder"'^'"$value"'^g' "$rd_manifest"
+}
+
+handle_custom_command() {
+ local command="$1"
+ echo "Executing custom command: $command"
+ eval "$command"
+}
+
+handle_url() {
+ local placeholder="$1"
+ local url="$2"
+ local calculated_url=$(eval echo "$url")
+ echo "Replacing placeholder $placeholder with calculated URL $calculated_url"
+ /bin/sed -i 's^'"$placeholder"'^'"$calculated_url"'^g' "$rd_manifest"
+}
+
+# Process the task list
+while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]]; do
+ if [[ ! "$action" == "#"* ]] && [[ -n "$action" ]]; then
case "$action" in
-
- "branch" )
- echo
- echo "Placeholder text: $placeholder"
- echo "Current branch:" "$current_branch"
- echo
- /bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' $rd_manifest
- ;;
-
- "hash" )
- echo
- echo "Placeholder text: $placeholder"
- calculated_url=$(eval echo "$url") # in case the url has to be calculated from an expression
- echo "URL to hash: $calculated_url"
- echo
- hash=$(curl -sL "$calculated_url" | sha256sum | cut -d ' ' -f1)
- echo "Hash found: $hash"
- /bin/sed -i 's^'"$placeholder"'^'"$hash"'^' $rd_manifest
- ;;
-
- "latestcommit" )
- 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
- ;;
-
- "latestghtag" )
- echo
- echo "Placeholder text: $placeholder"
- echo "Repo to get the latest tag from: $url"
- echo
- tag=$(git ls-remote "$url" | tail -n 1 | cut -f2 | sed 's|refs/tags/||')
- echo "Tag found: $tag"
- /bin/sed -i 's^'"$placeholder"'^'"$tag"'^' $rd_manifest
- ;;
-
- "latestghrelease" )
- echo
- echo "Placeholder text: $placeholder"
- echo "Repo to look for latest releases: $url"
- echo
- ghreleaseurl=$(curl -s "$url" | grep browser_download_url | grep "$branch\""$ | cut -d : -f 2,3 | tr -d \" | sed -n 1p | tr -d ' ')
- echo "GitHub release URL found: $ghreleaseurl"
- /bin/sed -i 's^'"$placeholder"'^'"$ghreleaseurl"'^' $rd_manifest
- ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
- echo "GitHub release hash found: $ghreleasehash"
- /bin/sed -i 's^'"HASHFOR$placeholder"'^'"$ghreleasehash"'^' $rd_manifest
- ;;
-
- "outside_file" )
- if [[ "$url" = \$* ]]; then # If value is a reference to a variable name
- eval url="$url"
- fi
- echo
- echo "Placeholder text: $placeholder"
- echo "Information being injected: $(cat $url)"
- echo
- /bin/sed -i 's^'"$placeholder"'^'"$(cat $url)"'^' $rd_manifest
- ;;
-
- "outside_env_var" )
- if [[ "$url" = \$* ]]; then # If value is a reference to a variable name
- eval url="$url"
- fi
- echo
- echo "Placeholder text: $placeholder"
- echo "Information being injected: $(echo $url)"
- echo
- /bin/sed -i 's^'"$placeholder"'^'"$(echo $url)"'^' $rd_manifest
- ;;
-
- "custom_command" )
- echo
- echo "Command to run: $url"
- echo
- eval "$url"
- ;;
-
- "url" )
- # this is used to calculate a dynamic url
- echo
- echo "Placeholder text: $placeholder"
- calculated_url=$(eval echo "$url")
- echo "Information being injected: $calculated_url"
- echo
- /bin/sed -i 's^'"$placeholder"'^'"$calculated_url"'^' $rd_manifest
- ;;
-
+ "branch" ) handle_branch "$placeholder" ;;
+ "hash" ) handle_hash "$placeholder" "$url" ;;
+ "latestcommit" ) handle_latestcommit "$placeholder" "$url" "$branch" ;;
+ "latestghtag" ) handle_latestghtag "$placeholder" "$url" ;;
+ "latestghrelease" ) handle_latestghrelease "$placeholder" "$url" "$branch" ;;
+ "latestghreleasesha" ) handle_latestghreleasesha "$placeholder" "$url" "$branch" ;;
+ "outside_file" ) handle_outside_file "$placeholder" "$url" ;;
+ "outside_env_var" ) handle_outside_env_var "$placeholder" "$url" ;;
+ "custom_command" ) handle_custom_command "$url" ;;
+ "url" ) handle_url "$placeholder" "$url" ;;
esac
fi
done < "$automation_task_list"
diff --git a/automation_tools/version_extractor.sh b/automation_tools/version_extractor.sh
index b9f679ff..94cab1fb 100755
--- a/automation_tools/version_extractor.sh
+++ b/automation_tools/version_extractor.sh
@@ -12,7 +12,7 @@ manifest_content=$(cat "$manifest")
fetch_repo_version(){
# Getting latest RetroDECK release info
- LATEST_RELEASE=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/releases/latest")
+ LATEST_RELEASE=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/releases/latest")
# Extracting tag name from the latest release
repo_version=$(echo "$LATEST_RELEASE" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# Printing results
@@ -32,3 +32,5 @@ fetch_manifest_version(){
manifest_version=$(echo "$manifest_version" | awk '{$1=$1;print}')
echo "$manifest_version"
}
+
+echo "Version extractor functions loaded"
\ No newline at end of file
diff --git a/emu-configs/PCSX2/GS.ini b/config/PCSX2/GS.ini
similarity index 100%
rename from emu-configs/PCSX2/GS.ini
rename to config/PCSX2/GS.ini
diff --git a/emu-configs/PCSX2/PCSX2.ini b/config/PCSX2/PCSX2.ini
similarity index 100%
rename from emu-configs/PCSX2/PCSX2.ini
rename to config/PCSX2/PCSX2.ini
diff --git a/emu-configs/PCSX2/PCSX2_ui.ini b/config/PCSX2/PCSX2_ui.ini
similarity index 100%
rename from emu-configs/PCSX2/PCSX2_ui.ini
rename to config/PCSX2/PCSX2_ui.ini
diff --git a/emu-configs/PCSX2/PCSX2_vm.ini b/config/PCSX2/PCSX2_vm.ini
similarity index 100%
rename from emu-configs/PCSX2/PCSX2_vm.ini
rename to config/PCSX2/PCSX2_vm.ini
diff --git a/emu-configs/cemu/controllerProfiles/SteamInput-P1-Gyro.xml b/config/cemu/controllerProfiles/SteamInput-P1-Gyro.xml
similarity index 98%
rename from emu-configs/cemu/controllerProfiles/SteamInput-P1-Gyro.xml
rename to config/cemu/controllerProfiles/SteamInput-P1-Gyro.xml
index ed34dc53..209f6a5c 100644
--- a/emu-configs/cemu/controllerProfiles/SteamInput-P1-Gyro.xml
+++ b/config/cemu/controllerProfiles/SteamInput-P1-Gyro.xml
@@ -25,7 +25,7 @@
SDLController
- 0_03000000de280000ff11000001000000
+ 0_030079f6de280000ff11000001000000
Steam Virtual Gamepad
0
@@ -41,73 +41,25 @@
1
-
- 12
- 12
-
-
- 13
- 13
-
-
- 14
- 14
-
-
- 15
- 7
-
-
- 16
- 8
-
-
- 17
- 45
-
-
- 18
- 39
-
-
- 19
- 44
-
-
- 20
- 38
-
-
- 21
- 47
-
-
- 22
- 41
-
-
- 23
- 46
-
25
8
1
- 0
-
-
- 2
1
+
+ 2
+ 0
+
3
- 2
+ 3
4
- 3
+ 2
5
@@ -141,6 +93,54 @@
24
40
+
+ 23
+ 46
+
+
+ 22
+ 41
+
+
+ 21
+ 47
+
+
+ 20
+ 38
+
+
+ 19
+ 44
+
+
+ 18
+ 39
+
+
+ 17
+ 45
+
+
+ 16
+ 8
+
+
+ 15
+ 7
+
+
+ 14
+ 14
+
+
+ 13
+ 13
+
+
+ 12
+ 12
+
diff --git a/emu-configs/cemu/controllerProfiles/SteamInput-P1.xml b/config/cemu/controllerProfiles/SteamInput-P1.xml
similarity index 97%
rename from emu-configs/cemu/controllerProfiles/SteamInput-P1.xml
rename to config/cemu/controllerProfiles/SteamInput-P1.xml
index b2f05d47..98f98ede 100644
--- a/emu-configs/cemu/controllerProfiles/SteamInput-P1.xml
+++ b/config/cemu/controllerProfiles/SteamInput-P1.xml
@@ -4,7 +4,7 @@
SteamInput-P1
SDLController
- 0_03000000de280000ff11000001000000
+ 0_030079f6de280000ff11000001000000
Steam Virtual Gamepad
0
@@ -21,72 +21,64 @@
- 1
- 0
-
-
- 14
- 14
-
-
- 2
- 1
-
-
- 15
- 7
-
-
- 16
+ 25
8
- 17
- 45
-
-
- 18
- 39
-
-
- 19
- 44
-
-
- 20
- 38
-
-
- 21
- 47
-
-
- 22
- 41
+ 24
+ 40
23
46
- 25
+ 22
+ 41
+
+
+ 21
+ 47
+
+
+ 20
+ 38
+
+
+ 19
+ 44
+
+
+ 18
+ 39
+
+
+ 17
+ 45
+
+
+ 16
8
- 12
- 12
+ 15
+ 7
+
+
+ 14
+ 14
13
13
- 11
- 11
+ 12
+ 12
- 24
- 40
+ 11
+ 11
10
@@ -114,11 +106,19 @@
4
- 3
+ 2
3
- 2
+ 3
+
+
+ 2
+ 0
+
+
+ 1
+ 1
diff --git a/emu-configs/cemu/controllerProfiles/SteamInput-P2.xml b/config/cemu/controllerProfiles/SteamInput-P2.xml
similarity index 100%
rename from emu-configs/cemu/controllerProfiles/SteamInput-P2.xml
rename to config/cemu/controllerProfiles/SteamInput-P2.xml
diff --git a/emu-configs/cemu/controllerProfiles/SteamInput-P3.xml b/config/cemu/controllerProfiles/SteamInput-P3.xml
similarity index 100%
rename from emu-configs/cemu/controllerProfiles/SteamInput-P3.xml
rename to config/cemu/controllerProfiles/SteamInput-P3.xml
diff --git a/emu-configs/cemu/controllerProfiles/SteamInput-P4.xml b/config/cemu/controllerProfiles/SteamInput-P4.xml
similarity index 100%
rename from emu-configs/cemu/controllerProfiles/SteamInput-P4.xml
rename to config/cemu/controllerProfiles/SteamInput-P4.xml
diff --git a/emu-configs/cemu/controllerProfiles/controller0.xml b/config/cemu/controllerProfiles/controller0.xml
similarity index 97%
rename from emu-configs/cemu/controllerProfiles/controller0.xml
rename to config/cemu/controllerProfiles/controller0.xml
index 9517fa0f..4d0f6364 100644
--- a/emu-configs/cemu/controllerProfiles/controller0.xml
+++ b/config/cemu/controllerProfiles/controller0.xml
@@ -4,7 +4,7 @@
SteamInput-P1
SDLController
- 0_03000000de280000ff11000001000000
+ 0_030079f6de280000ff11000001000000
Steam Virtual Gamepad
0
@@ -20,10 +20,62 @@
1
+
+ 1
+ 1
+
+
+ 2
+ 0
+
+
+ 3
+ 3
+
+
+ 4
+ 2
+
+
+ 5
+ 9
+
+
+ 6
+ 10
+
+
+ 7
+ 42
+
+
+ 8
+ 43
+
+
+ 9
+ 6
+
+
+ 10
+ 4
+
+
+ 11
+ 11
+
+
+ 12
+ 12
+
25
8
+
+ 24
+ 40
+
23
46
@@ -60,66 +112,14 @@
15
7
-
- 2
- 1
-
14
14
-
- 3
- 2
-
-
- 4
- 3
-
-
- 5
- 9
-
-
- 6
- 10
-
-
- 7
- 42
-
-
- 8
- 43
-
-
- 9
- 6
-
-
- 10
- 4
-
-
- 24
- 40
-
-
- 11
- 11
-
13
13
-
- 12
- 12
-
-
- 1
- 0
-
diff --git a/emu-configs/cemu/controllerProfiles/controller1.xml b/config/cemu/controllerProfiles/controller1.xml
similarity index 98%
rename from emu-configs/cemu/controllerProfiles/controller1.xml
rename to config/cemu/controllerProfiles/controller1.xml
index 8cd44de7..7d94de0b 100644
--- a/emu-configs/cemu/controllerProfiles/controller1.xml
+++ b/config/cemu/controllerProfiles/controller1.xml
@@ -1,7 +1,6 @@
Wii U Pro Controller
- SteamInput-P2
SDLController
1_03000000de280000ff11000001000000
@@ -19,65 +18,65 @@
1
+
+ 12
+ 11
+
13
12
-
- 14
- 13
-
-
- 15
- 14
-
-
- 16
- 7
-
-
- 17
- 8
-
-
- 18
- 45
-
-
- 19
- 39
-
-
- 20
- 44
-
-
- 21
- 38
-
-
- 22
- 47
-
23
41
- 1
- 0
+ 22
+ 47
+
+
+ 21
+ 38
+
+
+ 20
+ 44
+
+
+ 19
+ 39
+
+
+ 18
+ 45
+
+
+ 17
+ 8
+
+
+ 16
+ 7
+
+
+ 15
+ 14
+
+
+ 24
+ 46
2
- 1
+ 0
3
- 2
+ 3
4
- 3
+ 2
5
@@ -103,17 +102,17 @@
10
4
-
- 12
- 11
-
25
40
- 24
- 46
+ 14
+ 13
+
+
+ 1
+ 1
diff --git a/emu-configs/cemu/controllerProfiles/controller2.xml b/config/cemu/controllerProfiles/controller2.xml
similarity index 100%
rename from emu-configs/cemu/controllerProfiles/controller2.xml
rename to config/cemu/controllerProfiles/controller2.xml
index ed9033cf..3a45edb9 100644
--- a/emu-configs/cemu/controllerProfiles/controller2.xml
+++ b/config/cemu/controllerProfiles/controller2.xml
@@ -20,25 +20,29 @@
- 24
- 46
+ 13
+ 12
- 25
- 40
-
-
- 12
- 11
+ 23
+ 41
10
4
+
+ 22
+ 47
+
9
6
+
+ 21
+ 38
+
8
43
@@ -60,21 +64,21 @@
3
- 3
- 2
+ 25
+ 40
- 13
- 12
-
-
- 14
- 13
+ 12
+ 11
1
0
+
+ 14
+ 13
+
15
14
@@ -87,6 +91,10 @@
16
7
+
+ 3
+ 2
+
17
8
@@ -104,16 +112,8 @@
44
- 21
- 38
-
-
- 22
- 47
-
-
- 23
- 41
+ 24
+ 46
diff --git a/emu-configs/cemu/controllerProfiles/controller3.xml b/config/cemu/controllerProfiles/controller3.xml
similarity index 100%
rename from emu-configs/cemu/controllerProfiles/controller3.xml
rename to config/cemu/controllerProfiles/controller3.xml
index c2c639ad..b3cc689f 100644
--- a/emu-configs/cemu/controllerProfiles/controller3.xml
+++ b/config/cemu/controllerProfiles/controller3.xml
@@ -20,25 +20,29 @@
- 24
- 46
+ 13
+ 12
- 25
- 40
-
-
- 12
- 11
+ 23
+ 41
10
4
+
+ 22
+ 47
+
9
6
+
+ 21
+ 38
+
8
43
@@ -60,21 +64,21 @@
3
- 3
- 2
+ 25
+ 40
- 13
- 12
-
-
- 14
- 13
+ 12
+ 11
1
0
+
+ 14
+ 13
+
15
14
@@ -87,6 +91,10 @@
16
7
+
+ 3
+ 2
+
17
8
@@ -104,16 +112,8 @@
44
- 21
- 38
-
-
- 22
- 47
-
-
- 23
- 41
+ 24
+ 46
diff --git a/emu-configs/cemu/settings.xml b/config/cemu/settings.xml
similarity index 100%
rename from emu-configs/cemu/settings.xml
rename to config/cemu/settings.xml
diff --git a/emu-configs/citra/qt-config.ini b/config/citra/qt-config.ini
similarity index 100%
rename from emu-configs/citra/qt-config.ini
rename to config/citra/qt-config.ini
diff --git a/emu-configs/dolphin/DSUClient.ini b/config/dolphin/DSUClient.ini
similarity index 100%
rename from emu-configs/dolphin/DSUClient.ini
rename to config/dolphin/DSUClient.ini
diff --git a/emu-configs/dolphin/Dolphin.ini b/config/dolphin/Dolphin.ini
similarity index 83%
rename from emu-configs/dolphin/Dolphin.ini
rename to config/dolphin/Dolphin.ini
index fb00bed7..092c4b60 100644
--- a/emu-configs/dolphin/Dolphin.ini
+++ b/config/dolphin/Dolphin.ini
@@ -42,12 +42,17 @@ Threads = True
[General]
ISOPath0 = RETRODECKHOMEDIR/roms/wii
ISOPath1 = RETRODECKHOMEDIR/roms/gc
-ISOPaths = 3
+ISOPaths = 2
WiiSDCardPath = RETRODECKHOMEDIR/saves/wii/dolphin/sd.raw
WirelessMac = 00:17:ab:83:9b:d4
HotkeysRequireFocus = True
RecursiveISOPaths = True
-ISOPath2 = RETRODECKHOMEDIR/roms/wii
+DumpPath = /var/data/dolphin-emu/Dump/
+LoadPath = /var/data/dolphin-emu/Load/
+NANDRootPath = /var/data/dolphin-emu/Wii/
+ResourcePackPath = /var/data/dolphin-emu/ResourcePacks/
+WFSPath =
+WiiSDCardSyncFolder = /var/data/dolphin-emu/Load/WiiSDSync/
[NetPlay]
TraversalChoice = direct
[BluetoothPassthrough]
diff --git a/emu-configs/dolphin/FreeLookController.ini b/config/dolphin/FreeLookController.ini
similarity index 100%
rename from emu-configs/dolphin/FreeLookController.ini
rename to config/dolphin/FreeLookController.ini
diff --git a/emu-configs/dolphin/GBA.ini b/config/dolphin/GBA.ini
similarity index 100%
rename from emu-configs/dolphin/GBA.ini
rename to config/dolphin/GBA.ini
diff --git a/emu-configs/dolphin/GCKeyNew.ini b/config/dolphin/GCKeyNew.ini
similarity index 100%
rename from emu-configs/dolphin/GCKeyNew.ini
rename to config/dolphin/GCKeyNew.ini
diff --git a/emu-configs/dolphin/GCPadNew.ini b/config/dolphin/GCPadNew.ini
similarity index 100%
rename from emu-configs/dolphin/GCPadNew.ini
rename to config/dolphin/GCPadNew.ini
diff --git a/emu-configs/dolphin/GFX.ini b/config/dolphin/GFX.ini
similarity index 100%
rename from emu-configs/dolphin/GFX.ini
rename to config/dolphin/GFX.ini
diff --git a/emu-configs/dolphin/Hotkeys.ini b/config/dolphin/Hotkeys.ini
similarity index 100%
rename from emu-configs/dolphin/Hotkeys.ini
rename to config/dolphin/Hotkeys.ini
diff --git a/emu-configs/defaults/primehack/Logger.ini b/config/dolphin/Logger.ini
similarity index 100%
rename from emu-configs/defaults/primehack/Logger.ini
rename to config/dolphin/Logger.ini
diff --git a/emu-configs/dolphin/Qt.ini b/config/dolphin/Qt.ini
similarity index 100%
rename from emu-configs/dolphin/Qt.ini
rename to config/dolphin/Qt.ini
diff --git a/emu-configs/dolphin/WiimoteNew.ini b/config/dolphin/WiimoteNew.ini
similarity index 100%
rename from emu-configs/dolphin/WiimoteNew.ini
rename to config/dolphin/WiimoteNew.ini
diff --git a/emu-configs/duckstation/settings.ini b/config/duckstation/settings.ini
similarity index 99%
rename from emu-configs/duckstation/settings.ini
rename to config/duckstation/settings.ini
index 0936a2e7..65ca7e7b 100644
--- a/emu-configs/duckstation/settings.ini
+++ b/config/duckstation/settings.ini
@@ -7,7 +7,7 @@ SyncToHostRefreshRate = false
IncreaseTimerResolution = true
InhibitScreensaver = true
StartPaused = false
-StartFullscreen = false
+StartFullscreen = true
PauseOnFocusLoss = true
PauseOnMenu = true
SaveStateOnExit = false
diff --git a/emu-configs/ecwolf/ecwolf.sh.todo b/config/ecwolf/ecwolf.sh.todo
similarity index 100%
rename from emu-configs/ecwolf/ecwolf.sh.todo
rename to config/ecwolf/ecwolf.sh.todo
diff --git a/es-configs/es_settings.xml b/config/es-de/es_settings.xml
similarity index 100%
rename from es-configs/es_settings.xml
rename to config/es-de/es_settings.xml
diff --git a/es-configs/rd_prepacks/doom/doom.zip b/config/es-de/rd_prepacks/doom/doom.zip
similarity index 100%
rename from es-configs/rd_prepacks/doom/doom.zip
rename to config/es-de/rd_prepacks/doom/doom.zip
diff --git a/es-configs/rd_prepacks/doom/gamelist.xml b/config/es-de/rd_prepacks/doom/gamelist.xml
similarity index 100%
rename from es-configs/rd_prepacks/doom/gamelist.xml
rename to config/es-de/rd_prepacks/doom/gamelist.xml
diff --git a/emu-configs/gzdoom/gzdoom.ini b/config/gzdoom/gzdoom.ini
similarity index 100%
rename from emu-configs/gzdoom/gzdoom.ini
rename to config/gzdoom/gzdoom.ini
diff --git a/emu-configs/gzdoom/gzdoom.sh b/config/gzdoom/gzdoom.sh
similarity index 97%
rename from emu-configs/gzdoom/gzdoom.sh
rename to config/gzdoom/gzdoom.sh
index 620b809f..692d7cab 100644
--- a/emu-configs/gzdoom/gzdoom.sh
+++ b/config/gzdoom/gzdoom.sh
@@ -68,7 +68,7 @@ else
# Check if the .doom file exists
if [[ ! -e "$doom_file" ]]; then
log e "doom file not found in \"$doom_file\""
- zenity --error --no-wrap \
+ rd_zenity --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="File \"$doom_file\" not found. Quitting."
@@ -85,7 +85,7 @@ else
# If the file is not found, exit with an error
if [[ -z "$found_file" ]]; then
log "[ERROR] File not found in \"$line\""
- zenity --error --no-wrap \
+ rd_zenity --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="File \"$doom_file\" not found. Quitting."
diff --git a/emu-configs/mame/cheat0264.zip b/config/mame/cheat0264.zip
similarity index 100%
rename from emu-configs/mame/cheat0264.zip
rename to config/mame/cheat0264.zip
diff --git a/emu-configs/mame/default.cfg b/config/mame/default.cfg
similarity index 100%
rename from emu-configs/mame/default.cfg
rename to config/mame/default.cfg
diff --git a/emu-configs/mame/mame.ini b/config/mame/mame.ini
similarity index 100%
rename from emu-configs/mame/mame.ini
rename to config/mame/mame.ini
diff --git a/emu-configs/mame/ui.ini b/config/mame/ui.ini
similarity index 100%
rename from emu-configs/mame/ui.ini
rename to config/mame/ui.ini
diff --git a/emu-configs/melonds/melonDS.ini b/config/melonds/melonDS.ini
similarity index 100%
rename from emu-configs/melonds/melonDS.ini
rename to config/melonds/melonDS.ini
diff --git a/emu-configs/patches/updates/064b_update.patch b/config/patches/updates/064b_update.patch
similarity index 100%
rename from emu-configs/patches/updates/064b_update.patch
rename to config/patches/updates/064b_update.patch
diff --git a/emu-configs/pico-8/config.txt b/config/pico-8/config.txt
similarity index 100%
rename from emu-configs/pico-8/config.txt
rename to config/pico-8/config.txt
diff --git a/emu-configs/pico-8/pico8-wrapper.sh b/config/pico-8/pico8-wrapper.sh
similarity index 100%
rename from emu-configs/pico-8/pico8-wrapper.sh
rename to config/pico-8/pico8-wrapper.sh
diff --git a/emu-configs/pico-8/sdl_controllers.txt b/config/pico-8/sdl_controllers.txt
similarity index 100%
rename from emu-configs/pico-8/sdl_controllers.txt
rename to config/pico-8/sdl_controllers.txt
diff --git a/emu-configs/ppssppsdl/controls.ini b/config/ppssppsdl/controls.ini
similarity index 100%
rename from emu-configs/ppssppsdl/controls.ini
rename to config/ppssppsdl/controls.ini
diff --git a/emu-configs/ppssppsdl/ppsspp.ini b/config/ppssppsdl/ppsspp.ini
similarity index 100%
rename from emu-configs/ppssppsdl/ppsspp.ini
rename to config/ppssppsdl/ppsspp.ini
diff --git a/emu-configs/primehack/config/Dolphin.ini b/config/primehack/config/Dolphin.ini
similarity index 100%
rename from emu-configs/primehack/config/Dolphin.ini
rename to config/primehack/config/Dolphin.ini
diff --git a/emu-configs/defaults/primehack/FreeLookController.ini b/config/primehack/config/FreeLookController.ini
similarity index 100%
rename from emu-configs/defaults/primehack/FreeLookController.ini
rename to config/primehack/config/FreeLookController.ini
diff --git a/emu-configs/defaults/primehack/GBA.ini b/config/primehack/config/GBA.ini
similarity index 100%
rename from emu-configs/defaults/primehack/GBA.ini
rename to config/primehack/config/GBA.ini
diff --git a/emu-configs/defaults/primehack/GCKeyNew.ini b/config/primehack/config/GCKeyNew.ini
similarity index 100%
rename from emu-configs/defaults/primehack/GCKeyNew.ini
rename to config/primehack/config/GCKeyNew.ini
diff --git a/emu-configs/primehack/config/GCPadNew.ini b/config/primehack/config/GCPadNew.ini
similarity index 100%
rename from emu-configs/primehack/config/GCPadNew.ini
rename to config/primehack/config/GCPadNew.ini
diff --git a/emu-configs/primehack/config/GFX.ini b/config/primehack/config/GFX.ini
similarity index 100%
rename from emu-configs/primehack/config/GFX.ini
rename to config/primehack/config/GFX.ini
diff --git a/emu-configs/primehack/config/Hotkeys.ini b/config/primehack/config/Hotkeys.ini
similarity index 100%
rename from emu-configs/primehack/config/Hotkeys.ini
rename to config/primehack/config/Hotkeys.ini
diff --git a/emu-configs/dolphin/Logger.ini b/config/primehack/config/Logger.ini
similarity index 100%
rename from emu-configs/dolphin/Logger.ini
rename to config/primehack/config/Logger.ini
diff --git a/emu-configs/primehack/config/Profiles/GCPad/PrimeHack SD-GC Nintendo Layout.ini b/config/primehack/config/Profiles/GCPad/PrimeHack SD-GC Nintendo Layout.ini
similarity index 100%
rename from emu-configs/primehack/config/Profiles/GCPad/PrimeHack SD-GC Nintendo Layout.ini
rename to config/primehack/config/Profiles/GCPad/PrimeHack SD-GC Nintendo Layout.ini
diff --git a/emu-configs/primehack/config/Profiles/GCPad/PrimeHack SD-GC Xbox Layout.ini b/config/primehack/config/Profiles/GCPad/PrimeHack SD-GC Xbox Layout.ini
similarity index 100%
rename from emu-configs/primehack/config/Profiles/GCPad/PrimeHack SD-GC Xbox Layout.ini
rename to config/primehack/config/Profiles/GCPad/PrimeHack SD-GC Xbox Layout.ini
diff --git a/emu-configs/primehack/config/Profiles/Hotkeys/RetroDECK Defaults.ini b/config/primehack/config/Profiles/Hotkeys/RetroDECK Defaults.ini
similarity index 100%
rename from emu-configs/primehack/config/Profiles/Hotkeys/RetroDECK Defaults.ini
rename to config/primehack/config/Profiles/Hotkeys/RetroDECK Defaults.ini
diff --git a/emu-configs/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Nintendo Layout.ini b/config/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Nintendo Layout.ini
similarity index 100%
rename from emu-configs/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Nintendo Layout.ini
rename to config/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Nintendo Layout.ini
diff --git a/emu-configs/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Xbox Layout.ini b/config/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Xbox Layout.ini
similarity index 100%
rename from emu-configs/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Xbox Layout.ini
rename to config/primehack/config/Profiles/Wiimote/PrimeHack SD-Wii Xbox Layout.ini
diff --git a/emu-configs/primehack/config/Qt.ini b/config/primehack/config/Qt.ini
similarity index 100%
rename from emu-configs/primehack/config/Qt.ini
rename to config/primehack/config/Qt.ini
diff --git a/emu-configs/primehack/config/WiimoteNew.ini b/config/primehack/config/WiimoteNew.ini
similarity index 100%
rename from emu-configs/primehack/config/WiimoteNew.ini
rename to config/primehack/config/WiimoteNew.ini
diff --git a/emu-configs/primehack/data/GameSettings/R3ME01.ini b/config/primehack/data/GameSettings/R3ME01.ini
similarity index 100%
rename from emu-configs/primehack/data/GameSettings/R3ME01.ini
rename to config/primehack/data/GameSettings/R3ME01.ini
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_10ca6dca25531ce9_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_10ca6dca25531ce9_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_10ca6dca25531ce9_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_10ca6dca25531ce9_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_173f3a24d9dd4a66_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_173f3a24d9dd4a66_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_173f3a24d9dd4a66_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_173f3a24d9dd4a66_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_2a304e0fc49a883c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_2a304e0fc49a883c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_2a304e0fc49a883c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_2a304e0fc49a883c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_43be3d9c0c2e2dbd_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_43be3d9c0c2e2dbd_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_43be3d9c0c2e2dbd_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_43be3d9c0c2e2dbd_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_47002754133e4ff5_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_47002754133e4ff5_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_47002754133e4ff5_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_47002754133e4ff5_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_4eb90bb511d2b10e_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_4eb90bb511d2b10e_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_4eb90bb511d2b10e_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_4eb90bb511d2b10e_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_54e294522955b32e_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_54e294522955b32e_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_54e294522955b32e_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_54e294522955b32e_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_5945fd1a085a2aeb_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_5945fd1a085a2aeb_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_5945fd1a085a2aeb_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_5945fd1a085a2aeb_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_70a90df632629730_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_70a90df632629730_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_70a90df632629730_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_70a90df632629730_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_7e31a38b70ecbddd_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_7e31a38b70ecbddd_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_7e31a38b70ecbddd_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_7e31a38b70ecbddd_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_86475f276fb14e06_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_86475f276fb14e06_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_86475f276fb14e06_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_86475f276fb14e06_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_889e80824c922249_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_889e80824c922249_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_889e80824c922249_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_889e80824c922249_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_96342171475066ab_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_96342171475066ab_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_96342171475066ab_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_96342171475066ab_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_9af2d52683113ecc_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_9af2d52683113ecc_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_9af2d52683113ecc_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_9af2d52683113ecc_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_a28e2885c4fe7e1c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_a28e2885c4fe7e1c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_a28e2885c4fe7e1c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_a28e2885c4fe7e1c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_b0c321687c7a410b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_b0c321687c7a410b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_b0c321687c7a410b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_b0c321687c7a410b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_c3af34349deab463_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_c3af34349deab463_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_c3af34349deab463_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_c3af34349deab463_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_cb44bdce7a961a9d_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_cb44bdce7a961a9d_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_cb44bdce7a961a9d_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_cb44bdce7a961a9d_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_ce9f9d8116478553_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_ce9f9d8116478553_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_ce9f9d8116478553_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_ce9f9d8116478553_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_d3576576ea854c06_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_d3576576ea854c06_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_d3576576ea854c06_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_d3576576ea854c06_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f0599000a4f68a36_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f0599000a4f68a36_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f0599000a4f68a36_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f0599000a4f68a36_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f26190a488d42e7c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f26190a488d42e7c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f26190a488d42e7c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_32x32_f26190a488d42e7c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_40x32_4c3b4cc767632866_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_40x32_4c3b4cc767632866_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_40x32_4c3b4cc767632866_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_40x32_4c3b4cc767632866_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_1606dfde024ac097_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_1606dfde024ac097_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_1606dfde024ac097_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_1606dfde024ac097_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_16a58a4eea792bbe_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_16a58a4eea792bbe_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_16a58a4eea792bbe_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_16a58a4eea792bbe_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_175a89d65955dc3b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_175a89d65955dc3b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_175a89d65955dc3b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_175a89d65955dc3b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_42ca5ae71fc5a4dd_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_42ca5ae71fc5a4dd_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_42ca5ae71fc5a4dd_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_42ca5ae71fc5a4dd_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_ffeb4d8af2d792d8_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_ffeb4d8af2d792d8_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_ffeb4d8af2d792d8_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_64x32_ffeb4d8af2d792d8_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_23cf53ad89c9fd1b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_23cf53ad89c9fd1b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_23cf53ad89c9fd1b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_23cf53ad89c9fd1b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_59808344c616ced7_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_59808344c616ced7_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_59808344c616ced7_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_59808344c616ced7_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_6ac1c1da82026c89_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_6ac1c1da82026c89_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_6ac1c1da82026c89_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_6ac1c1da82026c89_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_70ff98b99f564308_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_70ff98b99f564308_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_70ff98b99f564308_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_70ff98b99f564308_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_75914a5d05565cd7_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_75914a5d05565cd7_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_75914a5d05565cd7_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_75914a5d05565cd7_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_7fbc4a84faef18ee_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_7fbc4a84faef18ee_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_7fbc4a84faef18ee_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_7fbc4a84faef18ee_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_86d6d4197093f397_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_86d6d4197093f397_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_86d6d4197093f397_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_86d6d4197093f397_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_93dd5118ba11a908_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_93dd5118ba11a908_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_93dd5118ba11a908_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_93dd5118ba11a908_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_a05f9156a9b8da71_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_a05f9156a9b8da71_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_a05f9156a9b8da71_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/Common/tex1_76x32_a05f9156a9b8da71_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_2a304e0fc49a883c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_2a304e0fc49a883c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_2a304e0fc49a883c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_2a304e0fc49a883c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_54e294522955b32e_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_54e294522955b32e_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_54e294522955b32e_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_54e294522955b32e_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_5945fd1a085a2aeb_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_5945fd1a085a2aeb_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_5945fd1a085a2aeb_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_5945fd1a085a2aeb_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_701e7c156583abfc_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_701e7c156583abfc_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_701e7c156583abfc_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_701e7c156583abfc_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_7e31a38b70ecbddd_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_7e31a38b70ecbddd_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_7e31a38b70ecbddd_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_7e31a38b70ecbddd_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_86475f276fb14e06_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_86475f276fb14e06_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_86475f276fb14e06_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_86475f276fb14e06_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a28e2885c4fe7e1c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a28e2885c4fe7e1c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a28e2885c4fe7e1c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a28e2885c4fe7e1c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a7ef87b56d6b4bdf_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a7ef87b56d6b4bdf_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a7ef87b56d6b4bdf_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_a7ef87b56d6b4bdf_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_b4f4fb242799c981_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_b4f4fb242799c981_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_b4f4fb242799c981_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_b4f4fb242799c981_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_bb3467a83b7dad05_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_bb3467a83b7dad05_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_bb3467a83b7dad05_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_bb3467a83b7dad05_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_cb44bdce7a961a9d_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_cb44bdce7a961a9d_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_cb44bdce7a961a9d_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_cb44bdce7a961a9d_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_e74dc87e7b4eef8d_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_e74dc87e7b4eef8d_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_e74dc87e7b4eef8d_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_e74dc87e7b4eef8d_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f0599000a4f68a36_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f0599000a4f68a36_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f0599000a4f68a36_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f0599000a4f68a36_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f26190a488d42e7c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f26190a488d42e7c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f26190a488d42e7c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_32x32_f26190a488d42e7c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_1606dfde024ac097_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_1606dfde024ac097_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_1606dfde024ac097_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_1606dfde024ac097_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_16a58a4eea792bbe_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_16a58a4eea792bbe_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_16a58a4eea792bbe_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_16a58a4eea792bbe_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_175a89d65955dc3b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_175a89d65955dc3b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_175a89d65955dc3b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_175a89d65955dc3b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_27dedcf777de34c0_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_27dedcf777de34c0_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_27dedcf777de34c0_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_27dedcf777de34c0_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_3ee19d4f14128a9b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_3ee19d4f14128a9b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_3ee19d4f14128a9b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_3ee19d4f14128a9b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_41703e382ee91ba1_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_41703e382ee91ba1_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_41703e382ee91ba1_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_41703e382ee91ba1_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_42ca5ae71fc5a4dd_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_42ca5ae71fc5a4dd_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_42ca5ae71fc5a4dd_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_42ca5ae71fc5a4dd_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_47dc2607b727f563_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_47dc2607b727f563_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_47dc2607b727f563_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_47dc2607b727f563_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_4f0ad2e2995bddb5_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_4f0ad2e2995bddb5_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_4f0ad2e2995bddb5_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_4f0ad2e2995bddb5_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_569c97647cd0e0c9_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_569c97647cd0e0c9_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_569c97647cd0e0c9_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_569c97647cd0e0c9_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_63eacd0666203c96_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_63eacd0666203c96_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_63eacd0666203c96_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_63eacd0666203c96_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_92a58bc7eb71f53d_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_92a58bc7eb71f53d_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_92a58bc7eb71f53d_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_92a58bc7eb71f53d_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_9fb461fb5a0c4962_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_9fb461fb5a0c4962_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_9fb461fb5a0c4962_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_9fb461fb5a0c4962_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_af76096726fc1854_14.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_af76096726fc1854_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_af76096726fc1854_14.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_af76096726fc1854_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b0a79df2f424260e_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b0a79df2f424260e_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b0a79df2f424260e_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b0a79df2f424260e_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b6ee0b617b179b2c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b6ee0b617b179b2c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b6ee0b617b179b2c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_b6ee0b617b179b2c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_bf152ef2b7f5c2fd_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_bf152ef2b7f5c2fd_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_bf152ef2b7f5c2fd_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_bf152ef2b7f5c2fd_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f09993aa62c3a11b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f09993aa62c3a11b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f09993aa62c3a11b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f09993aa62c3a11b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f3f27c5e92f56472_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f3f27c5e92f56472_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f3f27c5e92f56472_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_f3f27c5e92f56472_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_ffeb4d8af2d792d8_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_ffeb4d8af2d792d8_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_ffeb4d8af2d792d8_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_64x32_ffeb4d8af2d792d8_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_23cf53ad89c9fd1b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_23cf53ad89c9fd1b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_23cf53ad89c9fd1b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_23cf53ad89c9fd1b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_59808344c616ced7_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_59808344c616ced7_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_59808344c616ced7_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_59808344c616ced7_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_6ac1c1da82026c89_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_6ac1c1da82026c89_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_6ac1c1da82026c89_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_6ac1c1da82026c89_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_70ff98b99f564308_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_70ff98b99f564308_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_70ff98b99f564308_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_70ff98b99f564308_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_75914a5d05565cd7_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_75914a5d05565cd7_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_75914a5d05565cd7_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_75914a5d05565cd7_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_7fbc4a84faef18ee_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_7fbc4a84faef18ee_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_7fbc4a84faef18ee_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_7fbc4a84faef18ee_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_86d6d4197093f397_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_86d6d4197093f397_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_86d6d4197093f397_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_86d6d4197093f397_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_93dd5118ba11a908_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_93dd5118ba11a908_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_93dd5118ba11a908_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_93dd5118ba11a908_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_a05f9156a9b8da71_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_a05f9156a9b8da71_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_a05f9156a9b8da71_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP1/tex1_76x32_a05f9156a9b8da71_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_2a304e0fc49a883c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_2a304e0fc49a883c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_2a304e0fc49a883c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_2a304e0fc49a883c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_4eb90bb511d2b10e_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_4eb90bb511d2b10e_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_4eb90bb511d2b10e_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_4eb90bb511d2b10e_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_54e294522955b32e_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_54e294522955b32e_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_54e294522955b32e_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_54e294522955b32e_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5945fd1a085a2aeb_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5945fd1a085a2aeb_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5945fd1a085a2aeb_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5945fd1a085a2aeb_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5fa30f82f962b236_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5fa30f82f962b236_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5fa30f82f962b236_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_5fa30f82f962b236_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_615ec0bfb80acb1d_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_615ec0bfb80acb1d_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_615ec0bfb80acb1d_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_615ec0bfb80acb1d_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_701e7c156583abfc_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_701e7c156583abfc_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_701e7c156583abfc_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_701e7c156583abfc_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_7e31a38b70ecbddd_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_7e31a38b70ecbddd_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_7e31a38b70ecbddd_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_7e31a38b70ecbddd_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_86475f276fb14e06_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_86475f276fb14e06_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_86475f276fb14e06_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_86475f276fb14e06_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_a28e2885c4fe7e1c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_a28e2885c4fe7e1c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_a28e2885c4fe7e1c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_a28e2885c4fe7e1c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_bb3467a83b7dad05_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_bb3467a83b7dad05_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_bb3467a83b7dad05_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_bb3467a83b7dad05_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_cb44bdce7a961a9d_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_cb44bdce7a961a9d_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_cb44bdce7a961a9d_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_cb44bdce7a961a9d_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dbcb14f0171b30d3_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dbcb14f0171b30d3_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dbcb14f0171b30d3_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dbcb14f0171b30d3_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dfe44df2c8105710_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dfe44df2c8105710_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dfe44df2c8105710_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_dfe44df2c8105710_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f0599000a4f68a36_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f0599000a4f68a36_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f0599000a4f68a36_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f0599000a4f68a36_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f26190a488d42e7c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f26190a488d42e7c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f26190a488d42e7c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f26190a488d42e7c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f2e2eeb12e0e82c0_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f2e2eeb12e0e82c0_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f2e2eeb12e0e82c0_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_32x32_f2e2eeb12e0e82c0_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0064d1faaf79a1de_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0064d1faaf79a1de_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0064d1faaf79a1de_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0064d1faaf79a1de_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0749accc3ceb7f65_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0749accc3ceb7f65_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0749accc3ceb7f65_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0749accc3ceb7f65_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0d85d548a5776b9c_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0d85d548a5776b9c_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0d85d548a5776b9c_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_0d85d548a5776b9c_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1606dfde024ac097_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1606dfde024ac097_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1606dfde024ac097_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1606dfde024ac097_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_16a58a4eea792bbe_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_16a58a4eea792bbe_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_16a58a4eea792bbe_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_16a58a4eea792bbe_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_175a89d65955dc3b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_175a89d65955dc3b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_175a89d65955dc3b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_175a89d65955dc3b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1bf2957bffda8c54_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1bf2957bffda8c54_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1bf2957bffda8c54_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_1bf2957bffda8c54_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_360b0a27d8d03e02_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_360b0a27d8d03e02_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_360b0a27d8d03e02_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_360b0a27d8d03e02_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_42ca5ae71fc5a4dd_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_42ca5ae71fc5a4dd_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_42ca5ae71fc5a4dd_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_42ca5ae71fc5a4dd_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_4bb466582c2d7aff_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_4bb466582c2d7aff_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_4bb466582c2d7aff_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_4bb466582c2d7aff_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cf2ab7d53aae895_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cf2ab7d53aae895_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cf2ab7d53aae895_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cf2ab7d53aae895_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cfc7cc23de5c69b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cfc7cc23de5c69b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cfc7cc23de5c69b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_6cfc7cc23de5c69b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_7a518177afff0bc2_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_7a518177afff0bc2_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_7a518177afff0bc2_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_7a518177afff0bc2_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_835ed629d0fed238_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_835ed629d0fed238_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_835ed629d0fed238_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_835ed629d0fed238_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_af76096726fc1854_14.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_af76096726fc1854_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_af76096726fc1854_14.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_af76096726fc1854_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_bfdffec3c8943aea_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_bfdffec3c8943aea_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_bfdffec3c8943aea_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_bfdffec3c8943aea_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_c5fa21384e2e25f7_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_c5fa21384e2e25f7_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_c5fa21384e2e25f7_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_c5fa21384e2e25f7_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ec8bc72a0c6b2b7d_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ec8bc72a0c6b2b7d_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ec8bc72a0c6b2b7d_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ec8bc72a0c6b2b7d_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f5cdd86ad2b9b9c3_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f5cdd86ad2b9b9c3_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f5cdd86ad2b9b9c3_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f5cdd86ad2b9b9c3_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f86841b072527b52_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f86841b072527b52_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f86841b072527b52_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_f86841b072527b52_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ffeb4d8af2d792d8_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ffeb4d8af2d792d8_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ffeb4d8af2d792d8_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x32_ffeb4d8af2d792d8_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x64_db014c47357a98a2_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x64_db014c47357a98a2_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x64_db014c47357a98a2_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_64x64_db014c47357a98a2_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_23cf53ad89c9fd1b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_23cf53ad89c9fd1b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_23cf53ad89c9fd1b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_23cf53ad89c9fd1b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_59808344c616ced7_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_59808344c616ced7_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_59808344c616ced7_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_59808344c616ced7_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_6ac1c1da82026c89_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_6ac1c1da82026c89_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_6ac1c1da82026c89_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_6ac1c1da82026c89_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_70ff98b99f564308_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_70ff98b99f564308_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_70ff98b99f564308_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_70ff98b99f564308_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_75914a5d05565cd7_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_75914a5d05565cd7_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_75914a5d05565cd7_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_75914a5d05565cd7_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_7fbc4a84faef18ee_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_7fbc4a84faef18ee_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_7fbc4a84faef18ee_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_7fbc4a84faef18ee_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_86d6d4197093f397_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_86d6d4197093f397_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_86d6d4197093f397_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_86d6d4197093f397_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_93dd5118ba11a908_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_93dd5118ba11a908_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_93dd5118ba11a908_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_93dd5118ba11a908_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_a05f9156a9b8da71_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_a05f9156a9b8da71_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_a05f9156a9b8da71_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP2/tex1_76x32_a05f9156a9b8da71_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_05ace719b52918bb_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_05ace719b52918bb_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_05ace719b52918bb_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_05ace719b52918bb_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_40ea01bf6f2aceae_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_40ea01bf6f2aceae_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_40ea01bf6f2aceae_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_128x115_40ea01bf6f2aceae_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_10ca6dca25531ce9_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_10ca6dca25531ce9_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_10ca6dca25531ce9_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_10ca6dca25531ce9_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_2d9b5d2d0a406a63_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_2d9b5d2d0a406a63_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_2d9b5d2d0a406a63_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_2d9b5d2d0a406a63_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_380a4ed102753a91_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_380a4ed102753a91_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_380a4ed102753a91_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_380a4ed102753a91_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_43be3d9c0c2e2dbd_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_43be3d9c0c2e2dbd_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_43be3d9c0c2e2dbd_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_43be3d9c0c2e2dbd_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_4eb90bb511d2b10e_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_4eb90bb511d2b10e_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_4eb90bb511d2b10e_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_4eb90bb511d2b10e_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_52bc65cd8d4b0905_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_52bc65cd8d4b0905_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_52bc65cd8d4b0905_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_52bc65cd8d4b0905_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_70a90df632629730_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_70a90df632629730_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_70a90df632629730_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_70a90df632629730_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_877ac67dc3c23f97_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_877ac67dc3c23f97_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_877ac67dc3c23f97_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_877ac67dc3c23f97_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_8a3e8ec9d97c84f7_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_8a3e8ec9d97c84f7_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_8a3e8ec9d97c84f7_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_8a3e8ec9d97c84f7_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_96342171475066ab_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_96342171475066ab_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_96342171475066ab_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_96342171475066ab_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_975e1a31b02a2a68_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_975e1a31b02a2a68_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_975e1a31b02a2a68_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_975e1a31b02a2a68_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_9af2d52683113ecc_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_9af2d52683113ecc_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_9af2d52683113ecc_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_9af2d52683113ecc_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b0c321687c7a410b_5.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b0c321687c7a410b_5.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b0c321687c7a410b_5.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b0c321687c7a410b_5.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b7bcef92f3f7378d_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b7bcef92f3f7378d_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b7bcef92f3f7378d_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_b7bcef92f3f7378d_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_d3576576ea854c06_4.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_d3576576ea854c06_4.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_d3576576ea854c06_4.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_d3576576ea854c06_4.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_e81f99c205eb24d0_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_e81f99c205eb24d0_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_e81f99c205eb24d0_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_e81f99c205eb24d0_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_f00e0e837140250a_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_f00e0e837140250a_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_f00e0e837140250a_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_32x32_f00e0e837140250a_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_4c3b4cc767632866_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_4c3b4cc767632866_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_4c3b4cc767632866_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_4c3b4cc767632866_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_970859e57fe24761_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_970859e57fe24761_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_970859e57fe24761_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_970859e57fe24761_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_a60e7e0eac9a75e7_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_a60e7e0eac9a75e7_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_a60e7e0eac9a75e7_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_a60e7e0eac9a75e7_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_bf0e66339a12f23a_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_bf0e66339a12f23a_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_bf0e66339a12f23a_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_bf0e66339a12f23a_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_e65a03d74465035d_6.dds b/config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_e65a03d74465035d_6.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_e65a03d74465035d_6.dds
rename to config/primehack/data/R3M/0EXTRA - Steam Deck Button Prompts/MP3/tex1_40x32_e65a03d74465035d_6.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_19d4c177bfa5255a_14.dds b/config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_19d4c177bfa5255a_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_19d4c177bfa5255a_14.dds
rename to config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_19d4c177bfa5255a_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_344dcedb01a9a7ff_14.dds b/config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_344dcedb01a9a7ff_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_344dcedb01a9a7ff_14.dds
rename to config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_344dcedb01a9a7ff_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_5767fae3e9c2ec7b_14.dds b/config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_5767fae3e9c2ec7b_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_5767fae3e9c2ec7b_14.dds
rename to config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_5767fae3e9c2ec7b_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_ad15d2f8f67a24d8_14.dds b/config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_ad15d2f8f67a24d8_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_ad15d2f8f67a24d8_14.dds
rename to config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_ad15d2f8f67a24d8_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_d7651895d8b4b6e0_14.dds b/config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_d7651895d8b4b6e0_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_d7651895d8b4b6e0_14.dds
rename to config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_d7651895d8b4b6e0_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_daf65c9d00a79c85_14.dds b/config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_daf65c9d00a79c85_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_daf65c9d00a79c85_14.dds
rename to config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_daf65c9d00a79c85_14.dds
diff --git a/emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_f4681588babc937c_14.dds b/config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_f4681588babc937c_14.dds
similarity index 100%
rename from emu-configs/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_f4681588babc937c_14.dds
rename to config/primehack/data/R3M/0EXTRA - Wiimote Warning Replacement/tex1_832x456_f4681588babc937c_14.dds
diff --git a/emu-configs/retroarch/ScummVM.zip b/config/retroarch/ScummVM.zip
similarity index 100%
rename from emu-configs/retroarch/ScummVM.zip
rename to config/retroarch/ScummVM.zip
diff --git a/emu-configs/retroarch/borders/NyNy77/AAE-nyny77.cfg b/config/retroarch/borders/NyNy77/AAE-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AAE-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AAE-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AAE-nyny77.png b/config/retroarch/borders/NyNy77/AAE-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AAE-nyny77.png
rename to config/retroarch/borders/NyNy77/AAE-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ALFTVGame-nyny77.cfg b/config/retroarch/borders/NyNy77/ALFTVGame-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ALFTVGame-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ALFTVGame-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ALFTVGame-nyny77.png b/config/retroarch/borders/NyNy77/ALFTVGame-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ALFTVGame-nyny77.png
rename to config/retroarch/borders/NyNy77/ALFTVGame-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/APFImagination-nyny77.cfg b/config/retroarch/borders/NyNy77/APFImagination-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/APFImagination-nyny77.cfg
rename to config/retroarch/borders/NyNy77/APFImagination-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/APFImagination-nyny77.png b/config/retroarch/borders/NyNy77/APFImagination-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/APFImagination-nyny77.png
rename to config/retroarch/borders/NyNy77/APFImagination-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornAchimedes-nyny77.cfg b/config/retroarch/borders/NyNy77/AcornAchimedes-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornAchimedes-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AcornAchimedes-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornAchimedes-nyny77.png b/config/retroarch/borders/NyNy77/AcornAchimedes-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornAchimedes-nyny77.png
rename to config/retroarch/borders/NyNy77/AcornAchimedes-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornAtom-nyny77.cfg b/config/retroarch/borders/NyNy77/AcornAtom-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornAtom-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AcornAtom-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornAtom-nyny77.png b/config/retroarch/borders/NyNy77/AcornAtom-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornAtom-nyny77.png
rename to config/retroarch/borders/NyNy77/AcornAtom-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.cfg b/config/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.png b/config/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.png
rename to config/retroarch/borders/NyNy77/AcornBBCMicro-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornElectron-nyny77.cfg b/config/retroarch/borders/NyNy77/AcornElectron-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornElectron-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AcornElectron-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AcornElectron-nyny77.png b/config/retroarch/borders/NyNy77/AcornElectron-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AcornElectron-nyny77.png
rename to config/retroarch/borders/NyNy77/AcornElectron-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ActionMax-nyny77.cfg b/config/retroarch/borders/NyNy77/ActionMax-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ActionMax-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ActionMax-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ActionMax-nyny77.png b/config/retroarch/borders/NyNy77/ActionMax-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ActionMax-nyny77.png
rename to config/retroarch/borders/NyNy77/ActionMax-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AdventureVision-nyny77.cfg b/config/retroarch/borders/NyNy77/AdventureVision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AdventureVision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AdventureVision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AdventureVision-nyny77.png b/config/retroarch/borders/NyNy77/AdventureVision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AdventureVision-nyny77.png
rename to config/retroarch/borders/NyNy77/AdventureVision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.cfg b/config/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.png b/config/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.png
rename to config/retroarch/borders/NyNy77/AmericanLaserGames-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Amiga-nyny77.cfg b/config/retroarch/borders/NyNy77/Amiga-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Amiga-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Amiga-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Amiga-nyny77.png b/config/retroarch/borders/NyNy77/Amiga-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Amiga-nyny77.png
rename to config/retroarch/borders/NyNy77/Amiga-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AmigaCD32-nyny77.cfg b/config/retroarch/borders/NyNy77/AmigaCD32-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmigaCD32-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AmigaCD32-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AmigaCD32-nyny77.png b/config/retroarch/borders/NyNy77/AmigaCD32-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmigaCD32-nyny77.png
rename to config/retroarch/borders/NyNy77/AmigaCD32-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Amstrad-nyny77.cfg b/config/retroarch/borders/NyNy77/Amstrad-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Amstrad-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Amstrad-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Amstrad-nyny77.png b/config/retroarch/borders/NyNy77/Amstrad-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Amstrad-nyny77.png
rename to config/retroarch/borders/NyNy77/Amstrad-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AmstradCPC-nyny77.cfg b/config/retroarch/borders/NyNy77/AmstradCPC-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmstradCPC-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AmstradCPC-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AmstradCPC-nyny77.png b/config/retroarch/borders/NyNy77/AmstradCPC-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmstradCPC-nyny77.png
rename to config/retroarch/borders/NyNy77/AmstradCPC-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AmstradGX4000-nyny77.cfg b/config/retroarch/borders/NyNy77/AmstradGX4000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmstradGX4000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AmstradGX4000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AmstradGX4000-nyny77.png b/config/retroarch/borders/NyNy77/AmstradGX4000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AmstradGX4000-nyny77.png
rename to config/retroarch/borders/NyNy77/AmstradGX4000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Android-nyny77.cfg b/config/retroarch/borders/NyNy77/Android-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Android-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Android-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Android-nyny77.png b/config/retroarch/borders/NyNy77/Android-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Android-nyny77.png
rename to config/retroarch/borders/NyNy77/Android-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Apogee-nyny77.cfg b/config/retroarch/borders/NyNy77/Apogee-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apogee-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Apogee-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Apogee-nyny77.png b/config/retroarch/borders/NyNy77/Apogee-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apogee-nyny77.png
rename to config/retroarch/borders/NyNy77/Apogee-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Apple-nyny77.cfg b/config/retroarch/borders/NyNy77/Apple-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apple-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Apple-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Apple-nyny77.png b/config/retroarch/borders/NyNy77/Apple-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apple-nyny77.png
rename to config/retroarch/borders/NyNy77/Apple-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Apple2-nyny77.cfg b/config/retroarch/borders/NyNy77/Apple2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apple2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Apple2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Apple2-nyny77.png b/config/retroarch/borders/NyNy77/Apple2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apple2-nyny77.png
rename to config/retroarch/borders/NyNy77/Apple2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Apple2GS-nyny77.cfg b/config/retroarch/borders/NyNy77/Apple2GS-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apple2GS-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Apple2GS-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Apple2GS-nyny77.png b/config/retroarch/borders/NyNy77/Apple2GS-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Apple2GS-nyny77.png
rename to config/retroarch/borders/NyNy77/Apple2GS-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Arcadia2001-nyny77.cfg b/config/retroarch/borders/NyNy77/Arcadia2001-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Arcadia2001-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Arcadia2001-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Arcadia2001-nyny77.png b/config/retroarch/borders/NyNy77/Arcadia2001-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Arcadia2001-nyny77.png
rename to config/retroarch/borders/NyNy77/Arcadia2001-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Atari2600-nyny77.cfg b/config/retroarch/borders/NyNy77/Atari2600-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Atari2600-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Atari2600-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Atari2600-nyny77.png b/config/retroarch/borders/NyNy77/Atari2600-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Atari2600-nyny77.png
rename to config/retroarch/borders/NyNy77/Atari2600-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Atari5200-nyny77.cfg b/config/retroarch/borders/NyNy77/Atari5200-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Atari5200-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Atari5200-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Atari5200-nyny77.png b/config/retroarch/borders/NyNy77/Atari5200-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Atari5200-nyny77.png
rename to config/retroarch/borders/NyNy77/Atari5200-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Atari7800-nyny77.cfg b/config/retroarch/borders/NyNy77/Atari7800-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Atari7800-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Atari7800-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Atari7800-nyny77.png b/config/retroarch/borders/NyNy77/Atari7800-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Atari7800-nyny77.png
rename to config/retroarch/borders/NyNy77/Atari7800-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariJaguar-nyny77.cfg b/config/retroarch/borders/NyNy77/AtariJaguar-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariJaguar-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AtariJaguar-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariJaguar-nyny77.png b/config/retroarch/borders/NyNy77/AtariJaguar-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariJaguar-nyny77.png
rename to config/retroarch/borders/NyNy77/AtariJaguar-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.cfg b/config/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.png b/config/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.png
rename to config/retroarch/borders/NyNy77/AtariLynxBezel-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariST-nyny77.cfg b/config/retroarch/borders/NyNy77/AtariST-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariST-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AtariST-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariST-nyny77.png b/config/retroarch/borders/NyNy77/AtariST-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariST-nyny77.png
rename to config/retroarch/borders/NyNy77/AtariST-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.cfg b/config/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.png b/config/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.png
rename to config/retroarch/borders/NyNy77/AtariSuperCharger-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariXE-nyny77.cfg b/config/retroarch/borders/NyNy77/AtariXE-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariXE-nyny77.cfg
rename to config/retroarch/borders/NyNy77/AtariXE-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/AtariXE-nyny77.png b/config/retroarch/borders/NyNy77/AtariXE-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/AtariXE-nyny77.png
rename to config/retroarch/borders/NyNy77/AtariXE-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/BallyAstrocade-nyny77.cfg b/config/retroarch/borders/NyNy77/BallyAstrocade-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BallyAstrocade-nyny77.cfg
rename to config/retroarch/borders/NyNy77/BallyAstrocade-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/BallyAstrocade-nyny77.png b/config/retroarch/borders/NyNy77/BallyAstrocade-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BallyAstrocade-nyny77.png
rename to config/retroarch/borders/NyNy77/BallyAstrocade-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.cfg b/config/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.cfg
rename to config/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.png b/config/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.png
rename to config/retroarch/borders/NyNy77/BandaiPlaydia-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.cfg b/config/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.cfg
rename to config/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.png b/config/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.png
rename to config/retroarch/borders/NyNy77/BandaiSwanCrystal-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.cfg b/config/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.cfg
rename to config/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.png b/config/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.png
rename to config/retroarch/borders/NyNy77/BandaiWonderSwan-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.cfg b/config/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.cfg
rename to config/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.png b/config/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.png
rename to config/retroarch/borders/NyNy77/BandaiWonderSwanColor-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/BigFishGames-nyny77.cfg b/config/retroarch/borders/NyNy77/BigFishGames-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BigFishGames-nyny77.cfg
rename to config/retroarch/borders/NyNy77/BigFishGames-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/BigFishGames-nyny77.png b/config/retroarch/borders/NyNy77/BigFishGames-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/BigFishGames-nyny77.png
rename to config/retroarch/borders/NyNy77/BigFishGames-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CDTV-nyny77.cfg b/config/retroarch/borders/NyNy77/CDTV-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CDTV-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CDTV-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CDTV-nyny77.png b/config/retroarch/borders/NyNy77/CDTV-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CDTV-nyny77.png
rename to config/retroarch/borders/NyNy77/CDTV-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CamputersLynx-nyny77.cfg b/config/retroarch/borders/NyNy77/CamputersLynx-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CamputersLynx-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CamputersLynx-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CamputersLynx-nyny77.png b/config/retroarch/borders/NyNy77/CamputersLynx-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CamputersLynx-nyny77.png
rename to config/retroarch/borders/NyNy77/CamputersLynx-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomCPS1-nyny77.cfg b/config/retroarch/borders/NyNy77/CapcomCPS1-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomCPS1-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CapcomCPS1-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomCPS1-nyny77.png b/config/retroarch/borders/NyNy77/CapcomCPS1-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomCPS1-nyny77.png
rename to config/retroarch/borders/NyNy77/CapcomCPS1-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomCPS2-nyny77.cfg b/config/retroarch/borders/NyNy77/CapcomCPS2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomCPS2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CapcomCPS2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomCPS2-nyny77.png b/config/retroarch/borders/NyNy77/CapcomCPS2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomCPS2-nyny77.png
rename to config/retroarch/borders/NyNy77/CapcomCPS2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomCPS3-nyny77.cfg b/config/retroarch/borders/NyNy77/CapcomCPS3-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomCPS3-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CapcomCPS3-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomCPS3-nyny77.png b/config/retroarch/borders/NyNy77/CapcomCPS3-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomCPS3-nyny77.png
rename to config/retroarch/borders/NyNy77/CapcomCPS3-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.cfg b/config/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.png b/config/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.png
rename to config/retroarch/borders/NyNy77/CapcomPowerSystemChnager-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CasioPV1000-nyny77.cfg b/config/retroarch/borders/NyNy77/CasioPV1000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CasioPV1000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CasioPV1000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CasioPV1000-nyny77.png b/config/retroarch/borders/NyNy77/CasioPV1000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CasioPV1000-nyny77.png
rename to config/retroarch/borders/NyNy77/CasioPV1000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CasioPV1000b-nyny77.cfg b/config/retroarch/borders/NyNy77/CasioPV1000b-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CasioPV1000b-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CasioPV1000b-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CasioPV1000b-nyny77.png b/config/retroarch/borders/NyNy77/CasioPV1000b-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CasioPV1000b-nyny77.png
rename to config/retroarch/borders/NyNy77/CasioPV1000b-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Cave-nyny77.cfg b/config/retroarch/borders/NyNy77/Cave-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Cave-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Cave-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Cave-nyny77.png b/config/retroarch/borders/NyNy77/Cave-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Cave-nyny77.png
rename to config/retroarch/borders/NyNy77/Cave-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ColecoAdam-nyny77.cfg b/config/retroarch/borders/NyNy77/ColecoAdam-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ColecoAdam-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ColecoAdam-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ColecoAdam-nyny77.png b/config/retroarch/borders/NyNy77/ColecoAdam-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ColecoAdam-nyny77.png
rename to config/retroarch/borders/NyNy77/ColecoAdam-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ColecoVision-nyny77.cfg b/config/retroarch/borders/NyNy77/ColecoVision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ColecoVision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ColecoVision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ColecoVision-nyny77.png b/config/retroarch/borders/NyNy77/ColecoVision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ColecoVision-nyny77.png
rename to config/retroarch/borders/NyNy77/ColecoVision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Commodore16-nyny77.cfg b/config/retroarch/borders/NyNy77/Commodore16-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Commodore16-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Commodore16-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Commodore16-nyny77.png b/config/retroarch/borders/NyNy77/Commodore16-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Commodore16-nyny77.png
rename to config/retroarch/borders/NyNy77/Commodore16-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.cfg b/config/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.png b/config/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.png
rename to config/retroarch/borders/NyNy77/Commodore16Plus4-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Commodore64-nyny77.cfg b/config/retroarch/borders/NyNy77/Commodore64-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Commodore64-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Commodore64-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Commodore64-nyny77.png b/config/retroarch/borders/NyNy77/Commodore64-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Commodore64-nyny77.png
rename to config/retroarch/borders/NyNy77/Commodore64-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CommodoreMAX-nyny77.cfg b/config/retroarch/borders/NyNy77/CommodoreMAX-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CommodoreMAX-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CommodoreMAX-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CommodoreMAX-nyny77.png b/config/retroarch/borders/NyNy77/CommodoreMAX-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CommodoreMAX-nyny77.png
rename to config/retroarch/borders/NyNy77/CommodoreMAX-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.cfg b/config/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.cfg
rename to config/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.png b/config/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.png
rename to config/retroarch/borders/NyNy77/CommodoreVIC20-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Daphne-nyny77.cfg b/config/retroarch/borders/NyNy77/Daphne-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Daphne-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Daphne-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Daphne-nyny77.png b/config/retroarch/borders/NyNy77/Daphne-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Daphne-nyny77.png
rename to config/retroarch/borders/NyNy77/Daphne-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/DataEastClassics-nyny77.cfg b/config/retroarch/borders/NyNy77/DataEastClassics-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/DataEastClassics-nyny77.cfg
rename to config/retroarch/borders/NyNy77/DataEastClassics-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/DataEastClassics-nyny77.png b/config/retroarch/borders/NyNy77/DataEastClassics-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/DataEastClassics-nyny77.png
rename to config/retroarch/borders/NyNy77/DataEastClassics-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Dice-nyny77.cfg b/config/retroarch/borders/NyNy77/Dice-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Dice-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Dice-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Dice-nyny77.png b/config/retroarch/borders/NyNy77/Dice-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Dice-nyny77.png
rename to config/retroarch/borders/NyNy77/Dice-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Dragon64-nyny77.cfg b/config/retroarch/borders/NyNy77/Dragon64-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Dragon64-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Dragon64-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Dragon64-nyny77.png b/config/retroarch/borders/NyNy77/Dragon64-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Dragon64-nyny77.png
rename to config/retroarch/borders/NyNy77/Dragon64-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.cfg b/config/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.cfg
rename to config/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.png b/config/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.png
rename to config/retroarch/borders/NyNy77/EG2000ColourGenie-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ElektronikaBK-nyny77.cfg b/config/retroarch/borders/NyNy77/ElektronikaBK-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ElektronikaBK-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ElektronikaBK-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ElektronikaBK-nyny77.png b/config/retroarch/borders/NyNy77/ElektronikaBK-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ElektronikaBK-nyny77.png
rename to config/retroarch/borders/NyNy77/ElektronikaBK-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.cfg b/config/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.cfg
rename to config/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.png b/config/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.png
rename to config/retroarch/borders/NyNy77/EpochGamePocketComputer-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ExamuExBoard-nyny77.cfg b/config/retroarch/borders/NyNy77/ExamuExBoard-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ExamuExBoard-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ExamuExBoard-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ExamuExBoard-nyny77.png b/config/retroarch/borders/NyNy77/ExamuExBoard-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ExamuExBoard-nyny77.png
rename to config/retroarch/borders/NyNy77/ExamuExBoard-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ExidySorcerer-nyny77.cfg b/config/retroarch/borders/NyNy77/ExidySorcerer-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ExidySorcerer-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ExidySorcerer-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ExidySorcerer-nyny77.png b/config/retroarch/borders/NyNy77/ExidySorcerer-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ExidySorcerer-nyny77.png
rename to config/retroarch/borders/NyNy77/ExidySorcerer-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/FairchildChannelF-nyny77.cfg b/config/retroarch/borders/NyNy77/FairchildChannelF-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FairchildChannelF-nyny77.cfg
rename to config/retroarch/borders/NyNy77/FairchildChannelF-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/FairchildChannelF-nyny77.png b/config/retroarch/borders/NyNy77/FairchildChannelF-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FairchildChannelF-nyny77.png
rename to config/retroarch/borders/NyNy77/FairchildChannelF-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/FightCade-nyny77.cfg b/config/retroarch/borders/NyNy77/FightCade-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FightCade-nyny77.cfg
rename to config/retroarch/borders/NyNy77/FightCade-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/FightCade-nyny77.png b/config/retroarch/borders/NyNy77/FightCade-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FightCade-nyny77.png
rename to config/retroarch/borders/NyNy77/FightCade-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.cfg b/config/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.cfg
rename to config/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.png b/config/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.png
rename to config/retroarch/borders/NyNy77/FujitsuFMTownsMarty-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.cfg b/config/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.cfg
rename to config/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.png b/config/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.png
rename to config/retroarch/borders/NyNy77/FuntechSuperAcan-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/GP32-nyny77.cfg b/config/retroarch/borders/NyNy77/GP32-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/GP32-nyny77.cfg
rename to config/retroarch/borders/NyNy77/GP32-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/GP32-nyny77.png b/config/retroarch/borders/NyNy77/GP32-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/GP32-nyny77.png
rename to config/retroarch/borders/NyNy77/GP32-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/GameMaster-nyny77.cfg b/config/retroarch/borders/NyNy77/GameMaster-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/GameMaster-nyny77.cfg
rename to config/retroarch/borders/NyNy77/GameMaster-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/GameMaster-nyny77.png b/config/retroarch/borders/NyNy77/GameMaster-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/GameMaster-nyny77.png
rename to config/retroarch/borders/NyNy77/GameMaster-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/GogCom-nyny77.cfg b/config/retroarch/borders/NyNy77/GogCom-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/GogCom-nyny77.cfg
rename to config/retroarch/borders/NyNy77/GogCom-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/GogCom-nyny77.png b/config/retroarch/borders/NyNy77/GogCom-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/GogCom-nyny77.png
rename to config/retroarch/borders/NyNy77/GogCom-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/HBMame-nyny77.cfg b/config/retroarch/borders/NyNy77/HBMame-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/HBMame-nyny77.cfg
rename to config/retroarch/borders/NyNy77/HBMame-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/HBMame-nyny77.png b/config/retroarch/borders/NyNy77/HBMame-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/HBMame-nyny77.png
rename to config/retroarch/borders/NyNy77/HBMame-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/IBM-nyny77.cfg b/config/retroarch/borders/NyNy77/IBM-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IBM-nyny77.cfg
rename to config/retroarch/borders/NyNy77/IBM-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/IBM-nyny77.png b/config/retroarch/borders/NyNy77/IBM-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IBM-nyny77.png
rename to config/retroarch/borders/NyNy77/IBM-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.cfg b/config/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.cfg
rename to config/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.png b/config/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.png
rename to config/retroarch/borders/NyNy77/IGSPolygameMaster-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/IntertronVC4000-nyny77.cfg b/config/retroarch/borders/NyNy77/IntertronVC4000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IntertronVC4000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/IntertronVC4000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/IntertronVC4000-nyny77.png b/config/retroarch/borders/NyNy77/IntertronVC4000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IntertronVC4000-nyny77.png
rename to config/retroarch/borders/NyNy77/IntertronVC4000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/IremClassics-nyny77.cfg b/config/retroarch/borders/NyNy77/IremClassics-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IremClassics-nyny77.cfg
rename to config/retroarch/borders/NyNy77/IremClassics-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/IremClassics-nyny77.png b/config/retroarch/borders/NyNy77/IremClassics-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/IremClassics-nyny77.png
rename to config/retroarch/borders/NyNy77/IremClassics-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/JupiterAce-nyny77.cfg b/config/retroarch/borders/NyNy77/JupiterAce-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/JupiterAce-nyny77.cfg
rename to config/retroarch/borders/NyNy77/JupiterAce-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/JupiterAce-nyny77.png b/config/retroarch/borders/NyNy77/JupiterAce-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/JupiterAce-nyny77.png
rename to config/retroarch/borders/NyNy77/JupiterAce-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.cfg b/config/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.cfg
rename to config/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.png b/config/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.png
rename to config/retroarch/borders/NyNy77/KonamiEAmusement-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/KonamiGX400-nyny77.cfg b/config/retroarch/borders/NyNy77/KonamiGX400-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/KonamiGX400-nyny77.cfg
rename to config/retroarch/borders/NyNy77/KonamiGX400-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/KonamiGX400-nyny77.png b/config/retroarch/borders/NyNy77/KonamiGX400-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/KonamiGX400-nyny77.png
rename to config/retroarch/borders/NyNy77/KonamiGX400-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/KonamiRetro-nyny77.cfg b/config/retroarch/borders/NyNy77/KonamiRetro-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/KonamiRetro-nyny77.cfg
rename to config/retroarch/borders/NyNy77/KonamiRetro-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/KonamiRetro-nyny77.png b/config/retroarch/borders/NyNy77/KonamiRetro-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/KonamiRetro-nyny77.png
rename to config/retroarch/borders/NyNy77/KonamiRetro-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.cfg b/config/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.cfg
rename to config/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.png b/config/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.png
rename to config/retroarch/borders/NyNy77/LIVIV-PC01-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Loopy-nyny77.cfg b/config/retroarch/borders/NyNy77/Loopy-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Loopy-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Loopy-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Loopy-nyny77.png b/config/retroarch/borders/NyNy77/Loopy-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Loopy-nyny77.png
rename to config/retroarch/borders/NyNy77/Loopy-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.cfg b/config/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.png b/config/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.png
rename to config/retroarch/borders/NyNy77/MGTSamCoupe-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.cfg b/config/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.png b/config/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.png
rename to config/retroarch/borders/NyNy77/MagnavoxOdyssey-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.cfg b/config/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.png b/config/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.png
rename to config/retroarch/borders/NyNy77/MagnavoxOdyssey2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Mame-nyny77.cfg b/config/retroarch/borders/NyNy77/Mame-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Mame-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Mame-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Mame-nyny77.png b/config/retroarch/borders/NyNy77/Mame-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Mame-nyny77.png
rename to config/retroarch/borders/NyNy77/Mame-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MattelAquarius-nyny77.cfg b/config/retroarch/borders/NyNy77/MattelAquarius-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MattelAquarius-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MattelAquarius-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MattelAquarius-nyny77.png b/config/retroarch/borders/NyNy77/MattelAquarius-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MattelAquarius-nyny77.png
rename to config/retroarch/borders/NyNy77/MattelAquarius-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MattelInteliVision-nyny77.cfg b/config/retroarch/borders/NyNy77/MattelInteliVision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MattelInteliVision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MattelInteliVision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MattelInteliVision-nyny77.png b/config/retroarch/borders/NyNy77/MattelInteliVision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MattelInteliVision-nyny77.png
rename to config/retroarch/borders/NyNy77/MattelInteliVision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.cfg b/config/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.png b/config/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.png
rename to config/retroarch/borders/NyNy77/MattelIntelliVision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MegaDuck-nyny77.cfg b/config/retroarch/borders/NyNy77/MegaDuck-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MegaDuck-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MegaDuck-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MegaDuck-nyny77.png b/config/retroarch/borders/NyNy77/MegaDuck-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MegaDuck-nyny77.png
rename to config/retroarch/borders/NyNy77/MegaDuck-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.cfg b/config/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.png b/config/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.png
rename to config/retroarch/borders/NyNy77/MicrosoftDOS-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.cfg b/config/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.png b/config/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.png
rename to config/retroarch/borders/NyNy77/MicrosoftMSX-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.cfg b/config/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.png b/config/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.png
rename to config/retroarch/borders/NyNy77/MicrosoftMSX2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.cfg b/config/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.png b/config/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.png
rename to config/retroarch/borders/NyNy77/MicrosoftMSXTurbo-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.cfg b/config/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.png b/config/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.png
rename to config/retroarch/borders/NyNy77/MicrosoftXBox-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MidwayTUnit-nyny77.cfg b/config/retroarch/borders/NyNy77/MidwayTUnit-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MidwayTUnit-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MidwayTUnit-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MidwayTUnit-nyny77.png b/config/retroarch/borders/NyNy77/MidwayTUnit-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MidwayTUnit-nyny77.png
rename to config/retroarch/borders/NyNy77/MidwayTUnit-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.cfg b/config/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.cfg
rename to config/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.png b/config/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.png
rename to config/retroarch/borders/NyNy77/MidwayWolfUnit-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Mugen-nyny77.cfg b/config/retroarch/borders/NyNy77/Mugen-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Mugen-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Mugen-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Mugen-nyny77.png b/config/retroarch/borders/NyNy77/Mugen-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Mugen-nyny77.png
rename to config/retroarch/borders/NyNy77/Mugen-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPC8801-nyny77.cfg b/config/retroarch/borders/NyNy77/NECPC8801-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPC8801-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NECPC8801-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPC8801-nyny77.png b/config/retroarch/borders/NyNy77/NECPC8801-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPC8801-nyny77.png
rename to config/retroarch/borders/NyNy77/NECPC8801-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPC9801-nyny77.cfg b/config/retroarch/borders/NyNy77/NECPC9801-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPC9801-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NECPC9801-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPC9801-nyny77.png b/config/retroarch/borders/NyNy77/NECPC9801-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPC9801-nyny77.png
rename to config/retroarch/borders/NyNy77/NECPC9801-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPCEngine-nyny77.cfg b/config/retroarch/borders/NyNy77/NECPCEngine-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPCEngine-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NECPCEngine-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPCEngine-nyny77.png b/config/retroarch/borders/NyNy77/NECPCEngine-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPCEngine-nyny77.png
rename to config/retroarch/borders/NyNy77/NECPCEngine-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.cfg b/config/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.png b/config/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.png
rename to config/retroarch/borders/NyNy77/NECPCEngineCD-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPCFX-nyny77.cfg b/config/retroarch/borders/NyNy77/NECPCFX-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPCFX-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NECPCFX-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NECPCFX-nyny77.png b/config/retroarch/borders/NyNy77/NECPCFX-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECPCFX-nyny77.png
rename to config/retroarch/borders/NyNy77/NECPCFX-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.cfg b/config/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.png b/config/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.png
rename to config/retroarch/borders/NyNy77/NECSuperGrafX-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Namco-nyny77.cfg b/config/retroarch/borders/NyNy77/Namco-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Namco-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Namco-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Namco-nyny77.png b/config/retroarch/borders/NyNy77/Namco-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Namco-nyny77.png
rename to config/retroarch/borders/NyNy77/Namco-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NamcoGalaga-nyny77.cfg b/config/retroarch/borders/NyNy77/NamcoGalaga-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NamcoGalaga-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NamcoGalaga-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NamcoGalaga-nyny77.png b/config/retroarch/borders/NyNy77/NamcoGalaga-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NamcoGalaga-nyny77.png
rename to config/retroarch/borders/NyNy77/NamcoGalaga-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NamcoSystem22-nyny77.cfg b/config/retroarch/borders/NyNy77/NamcoSystem22-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NamcoSystem22-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NamcoSystem22-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NamcoSystem22-nyny77.png b/config/retroarch/borders/NyNy77/NamcoSystem22-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NamcoSystem22-nyny77.png
rename to config/retroarch/borders/NyNy77/NamcoSystem22-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Naomi-nyny77.cfg b/config/retroarch/borders/NyNy77/Naomi-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Naomi-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Naomi-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Naomi-nyny77.png b/config/retroarch/borders/NyNy77/Naomi-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Naomi-nyny77.png
rename to config/retroarch/borders/NyNy77/Naomi-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Naomi2-nyny77.cfg b/config/retroarch/borders/NyNy77/Naomi2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Naomi2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Naomi2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Naomi2-nyny77.png b/config/retroarch/borders/NyNy77/Naomi2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Naomi2-nyny77.png
rename to config/retroarch/borders/NyNy77/Naomi2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.cfg b/config/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.png b/config/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.png
rename to config/retroarch/borders/NyNy77/NecCoreGrafX-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.cfg b/config/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.png b/config/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.png
rename to config/retroarch/borders/NyNy77/NecCoreGrafX2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboDuo-nyny77.cfg b/config/retroarch/borders/NyNy77/NecTurboDuo-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboDuo-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NecTurboDuo-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboDuo-nyny77.png b/config/retroarch/borders/NyNy77/NecTurboDuo-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboDuo-nyny77.png
rename to config/retroarch/borders/NyNy77/NecTurboDuo-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.cfg b/config/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.png b/config/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.png
rename to config/retroarch/borders/NyNy77/NecTurboGrafX16-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.cfg b/config/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.png b/config/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.png
rename to config/retroarch/borders/NyNy77/NecTurboGrafXCD-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.cfg b/config/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.png b/config/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.png
rename to config/retroarch/borders/NyNy77/NecTurboGrafx16b-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.png b/config/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoArcadeSystem-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.png b/config/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoEntertainmentSystem-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.png b/config/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoFamicomDiskSystem-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.png b/config/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoFamicomFamily-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.png b/config/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoFamilyComputer-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameBoy-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorBleu-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorGris-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorJaune-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorNoir-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorRouge-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameBoyColorVert-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameCube-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoGameCube-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameCube-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoGameCube-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoGameCube-nyny77.png b/config/retroarch/borders/NyNy77/NintendoGameCube-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoGameCube-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoGameCube-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoN64-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoN64-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoN64-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoN64-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoN64-nyny77.png b/config/retroarch/borders/NyNy77/NintendoN64-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoN64-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoN64-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.png b/config/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoPokemonMini-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSNES-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoSNES-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSNES-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoSNES-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSNES-nyny77.png b/config/retroarch/borders/NyNy77/NintendoSNES-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSNES-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoSNES-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.png b/config/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoSatellaview-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.png b/config/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoSuperFamicom-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.png b/config/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoSuperNintendo-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.cfg b/config/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.cfg
rename to config/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.png b/config/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.png
rename to config/retroarch/borders/NyNy77/NintendoVirtualBoy-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/OpenBor-nyny77.cfg b/config/retroarch/borders/NyNy77/OpenBor-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/OpenBor-nyny77.cfg
rename to config/retroarch/borders/NyNy77/OpenBor-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/OpenBor-nyny77.png b/config/retroarch/borders/NyNy77/OpenBor-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/OpenBor-nyny77.png
rename to config/retroarch/borders/NyNy77/OpenBor-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Oric-nyny77.cfg b/config/retroarch/borders/NyNy77/Oric-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Oric-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Oric-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Oric-nyny77.png b/config/retroarch/borders/NyNy77/Oric-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Oric-nyny77.png
rename to config/retroarch/borders/NyNy77/Oric-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Origin-nyny77.cfg b/config/retroarch/borders/NyNy77/Origin-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Origin-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Origin-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Origin-nyny77.png b/config/retroarch/borders/NyNy77/Origin-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Origin-nyny77.png
rename to config/retroarch/borders/NyNy77/Origin-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/OthelloMultivision-nyny77.cfg b/config/retroarch/borders/NyNy77/OthelloMultivision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/OthelloMultivision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/OthelloMultivision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/OthelloMultivision-nyny77.png b/config/retroarch/borders/NyNy77/OthelloMultivision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/OthelloMultivision-nyny77.png
rename to config/retroarch/borders/NyNy77/OthelloMultivision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Panasonic-nyny77.cfg b/config/retroarch/borders/NyNy77/Panasonic-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Panasonic-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Panasonic-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Panasonic-nyny77.png b/config/retroarch/borders/NyNy77/Panasonic-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Panasonic-nyny77.png
rename to config/retroarch/borders/NyNy77/Panasonic-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Pegasus-nyny77.cfg b/config/retroarch/borders/NyNy77/Pegasus-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Pegasus-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Pegasus-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Pegasus-nyny77.png b/config/retroarch/borders/NyNy77/Pegasus-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Pegasus-nyny77.png
rename to config/retroarch/borders/NyNy77/Pegasus-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.cfg b/config/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.png b/config/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.png
rename to config/retroarch/borders/NyNy77/PhilipsVG5000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.cfg b/config/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.cfg
rename to config/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.png b/config/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.png
rename to config/retroarch/borders/NyNy77/PioneerPalcomLaserDisc-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/PopCap-nyny77.cfg b/config/retroarch/borders/NyNy77/PopCap-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/PopCap-nyny77.cfg
rename to config/retroarch/borders/NyNy77/PopCap-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/PopCap-nyny77.png b/config/retroarch/borders/NyNy77/PopCap-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/PopCap-nyny77.png
rename to config/retroarch/borders/NyNy77/PopCap-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Psikyo-nyny77.cfg b/config/retroarch/borders/NyNy77/Psikyo-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Psikyo-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Psikyo-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Psikyo-nyny77.png b/config/retroarch/borders/NyNy77/Psikyo-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Psikyo-nyny77.png
rename to config/retroarch/borders/NyNy77/Psikyo-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Psikyob-nyny77.cfg b/config/retroarch/borders/NyNy77/Psikyob-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Psikyob-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Psikyob-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Psikyob-nyny77.png b/config/retroarch/borders/NyNy77/Psikyob-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Psikyob-nyny77.png
rename to config/retroarch/borders/NyNy77/Psikyob-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/RCAStudio2-nyny77.cfg b/config/retroarch/borders/NyNy77/RCAStudio2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/RCAStudio2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/RCAStudio2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/RCAStudio2-nyny77.png b/config/retroarch/borders/NyNy77/RCAStudio2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/RCAStudio2-nyny77.png
rename to config/retroarch/borders/NyNy77/RCAStudio2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/RockOla-nyny77.cfg b/config/retroarch/borders/NyNy77/RockOla-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/RockOla-nyny77.cfg
rename to config/retroarch/borders/NyNy77/RockOla-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/RockOla-nyny77.png b/config/retroarch/borders/NyNy77/RockOla-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/RockOla-nyny77.png
rename to config/retroarch/borders/NyNy77/RockOla-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKClassics-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKClassics-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKClassics-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKClassics-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKClassics-nyny77.png b/config/retroarch/borders/NyNy77/SNKClassics-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKClassics-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKClassics-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.png b/config/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKHyperNeoGeo64-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeo-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeoCD-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeoMVS-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPlaymore-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPocket-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPocketColor-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeoPocketColorB-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.cfg b/config/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.png b/config/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.png
rename to config/retroarch/borders/NyNy77/SNKNeoGeoX-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.cfg b/config/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.png b/config/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.png
rename to config/retroarch/borders/NyNy77/SammyAtomiswave-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.cfg b/config/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.png b/config/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.png
rename to config/retroarch/borders/NyNy77/SammyAtomiswaveb-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ScummVM-nyny77.cfg b/config/retroarch/borders/NyNy77/ScummVM-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ScummVM-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ScummVM-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ScummVM-nyny77.png b/config/retroarch/borders/NyNy77/ScummVM-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ScummVM-nyny77.png
rename to config/retroarch/borders/NyNy77/ScummVM-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Sega32X-nyny77.cfg b/config/retroarch/borders/NyNy77/Sega32X-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Sega32X-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Sega32X-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Sega32X-nyny77.png b/config/retroarch/borders/NyNy77/Sega32X-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Sega32X-nyny77.png
rename to config/retroarch/borders/NyNy77/Sega32X-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaAM2-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaAM2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaAM2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaAM2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaAM2-nyny77.png b/config/retroarch/borders/NyNy77/SegaAM2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaAM2-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaAM2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaAM3-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaAM3-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaAM3-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaAM3-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaAM3-nyny77.png b/config/retroarch/borders/NyNy77/SegaAM3-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaAM3-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaAM3-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaCD-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaCD-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaCD-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaCD-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaCD-nyny77.png b/config/retroarch/borders/NyNy77/SegaCD-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaCD-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaCD-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaDefault-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaDefault-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaDefault-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaDefault-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaDefault-nyny77.png b/config/retroarch/borders/NyNy77/SegaDefault-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaDefault-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaDefault-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaDreamcast-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaDreamcast-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaDreamcast-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaDreamcast-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaDreamcast-nyny77.png b/config/retroarch/borders/NyNy77/SegaDreamcast-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaDreamcast-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaDreamcast-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGameGear-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaGameGear-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGameGear-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaGameGear-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGameGear-nyny77.png b/config/retroarch/borders/NyNy77/SegaGameGear-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGameGear-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaGameGear-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGenesis-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaGenesis-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGenesis-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaGenesis-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGenesis-nyny77.png b/config/retroarch/borders/NyNy77/SegaGenesis-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGenesis-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaGenesis-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGenesis3-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaGenesis3-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGenesis3-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaGenesis3-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGenesis3-nyny77.png b/config/retroarch/borders/NyNy77/SegaGenesis3-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGenesis3-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaGenesis3-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.png b/config/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaGenesisCDx-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaHikaru-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaHikaru-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaHikaru-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaHikaru-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaHikaru-nyny77.png b/config/retroarch/borders/NyNy77/SegaHikaru-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaHikaru-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaHikaru-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.png b/config/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaMasterSystem-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaMegaCD-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaMegaCD-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaMegaCD-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaMegaCD-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaMegaCD-nyny77.png b/config/retroarch/borders/NyNy77/SegaMegaCD-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaMegaCD-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaMegaCD-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaMegadrive-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaMegadrive-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaMegadrive-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaMegadrive-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaMegadrive-nyny77.png b/config/retroarch/borders/NyNy77/SegaMegadrive-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaMegadrive-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaMegadrive-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaNomad-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaNomad-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaNomad-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaNomad-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaNomad-nyny77.png b/config/retroarch/borders/NyNy77/SegaNomad-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaNomad-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaNomad-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaPico-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaPico-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaPico-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaPico-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaPico-nyny77.png b/config/retroarch/borders/NyNy77/SegaPico-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaPico-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaPico-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSC3000H-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaSC3000H-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSC3000H-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaSC3000H-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSC3000H-nyny77.png b/config/retroarch/borders/NyNy77/SegaSC3000H-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSC3000H-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaSC3000H-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSG1000-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaSG1000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSG1000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaSG1000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSG1000-nyny77.png b/config/retroarch/borders/NyNy77/SegaSG1000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSG1000-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaSG1000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSTV-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaSTV-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSTV-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaSTV-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSTV-nyny77.png b/config/retroarch/borders/NyNy77/SegaSTV-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSTV-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaSTV-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.png b/config/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaSaturnEU-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.png b/config/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaSaturnJAP-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaTriforce-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaTriforce-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaTriforce-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaTriforce-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaTriforce-nyny77.png b/config/retroarch/borders/NyNy77/SegaTriforce-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaTriforce-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaTriforce-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaTriforceb-nyny77.cfg b/config/retroarch/borders/NyNy77/SegaTriforceb-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaTriforceb-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SegaTriforceb-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SegaTriforceb-nyny77.png b/config/retroarch/borders/NyNy77/SegaTriforceb-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SegaTriforceb-nyny77.png
rename to config/retroarch/borders/NyNy77/SegaTriforceb-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SharpX1-nyny77.cfg b/config/retroarch/borders/NyNy77/SharpX1-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SharpX1-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SharpX1-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SharpX1-nyny77.png b/config/retroarch/borders/NyNy77/SharpX1-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SharpX1-nyny77.png
rename to config/retroarch/borders/NyNy77/SharpX1-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SharpX68000-nyny77.cfg b/config/retroarch/borders/NyNy77/SharpX68000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SharpX68000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SharpX68000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SharpX68000-nyny77.png b/config/retroarch/borders/NyNy77/SharpX68000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SharpX68000-nyny77.png
rename to config/retroarch/borders/NyNy77/SharpX68000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SharpX79000-nyny77.cfg b/config/retroarch/borders/NyNy77/SharpX79000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SharpX79000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SharpX79000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SharpX79000-nyny77.png b/config/retroarch/borders/NyNy77/SharpX79000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SharpX79000-nyny77.png
rename to config/retroarch/borders/NyNy77/SharpX79000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SinclairZX81-nyny77.cfg b/config/retroarch/borders/NyNy77/SinclairZX81-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SinclairZX81-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SinclairZX81-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SinclairZX81-nyny77.png b/config/retroarch/borders/NyNy77/SinclairZX81-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SinclairZX81-nyny77.png
rename to config/retroarch/borders/NyNy77/SinclairZX81-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.cfg b/config/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.png b/config/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.png
rename to config/retroarch/borders/NyNy77/SinclairZXSpectrum-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SonyPlaystation-nyny77.cfg b/config/retroarch/borders/NyNy77/SonyPlaystation-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SonyPlaystation-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SonyPlaystation-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SonyPlaystation-nyny77.png b/config/retroarch/borders/NyNy77/SonyPlaystation-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SonyPlaystation-nyny77.png
rename to config/retroarch/borders/NyNy77/SonyPlaystation-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SordM5-nyny77.cfg b/config/retroarch/borders/NyNy77/SordM5-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SordM5-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SordM5-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SordM5-nyny77.png b/config/retroarch/borders/NyNy77/SordM5-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SordM5-nyny77.png
rename to config/retroarch/borders/NyNy77/SordM5-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SpectraVideo-nyny77.cfg b/config/retroarch/borders/NyNy77/SpectraVideo-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SpectraVideo-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SpectraVideo-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SpectraVideo-nyny77.png b/config/retroarch/borders/NyNy77/SpectraVideo-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SpectraVideo-nyny77.png
rename to config/retroarch/borders/NyNy77/SpectraVideo-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.cfg b/config/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.png b/config/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.png
rename to config/retroarch/borders/NyNy77/SuperCassetteVision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SuperGameBoy-nyny77.cfg b/config/retroarch/borders/NyNy77/SuperGameBoy-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SuperGameBoy-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SuperGameBoy-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SuperGameBoy-nyny77.png b/config/retroarch/borders/NyNy77/SuperGameBoy-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SuperGameBoy-nyny77.png
rename to config/retroarch/borders/NyNy77/SuperGameBoy-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/SuperVision-nyny77.cfg b/config/retroarch/borders/NyNy77/SuperVision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SuperVision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/SuperVision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/SuperVision-nyny77.png b/config/retroarch/borders/NyNy77/SuperVision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/SuperVision-nyny77.png
rename to config/retroarch/borders/NyNy77/SuperVision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoClassics-nyny77.cfg b/config/retroarch/borders/NyNy77/TaitoClassics-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoClassics-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TaitoClassics-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoClassics-nyny77.png b/config/retroarch/borders/NyNy77/TaitoClassics-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoClassics-nyny77.png
rename to config/retroarch/borders/NyNy77/TaitoClassics-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.cfg b/config/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.png b/config/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.png
rename to config/retroarch/borders/NyNy77/TaitoClassicsV2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.cfg b/config/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.png b/config/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.png
rename to config/retroarch/borders/NyNy77/TaitoTypeX2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.cfg b/config/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.png b/config/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.png
rename to config/retroarch/borders/NyNy77/TaitoTypeX3-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.cfg b/config/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.png b/config/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.png
rename to config/retroarch/borders/NyNy77/TaitoTypeX7-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.cfg b/config/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.png b/config/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.png
rename to config/retroarch/borders/NyNy77/TaitoTypeXPlus-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.cfg b/config/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.png b/config/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.png
rename to config/retroarch/borders/NyNy77/TaitoTypeXZero-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TandyTRS80-nyny77.cfg b/config/retroarch/borders/NyNy77/TandyTRS80-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TandyTRS80-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TandyTRS80-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TandyTRS80-nyny77.png b/config/retroarch/borders/NyNy77/TandyTRS80-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TandyTRS80-nyny77.png
rename to config/retroarch/borders/NyNy77/TandyTRS80-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Techmos-nyny77.cfg b/config/retroarch/borders/NyNy77/Techmos-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Techmos-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Techmos-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Techmos-nyny77.png b/config/retroarch/borders/NyNy77/Techmos-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Techmos-nyny77.png
rename to config/retroarch/borders/NyNy77/Techmos-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.cfg b/config/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.png b/config/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.png
rename to config/retroarch/borders/NyNy77/TexasInstrumentTI994A-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.cfg b/config/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.png b/config/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.png
rename to config/retroarch/borders/NyNy77/TheImaginationMachine-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TigerGameCom-nyny77.cfg b/config/retroarch/borders/NyNy77/TigerGameCom-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TigerGameCom-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TigerGameCom-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TigerGameCom-nyny77.png b/config/retroarch/borders/NyNy77/TigerGameCom-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TigerGameCom-nyny77.png
rename to config/retroarch/borders/NyNy77/TigerGameCom-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Toaplan-nyny77.cfg b/config/retroarch/borders/NyNy77/Toaplan-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Toaplan-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Toaplan-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Toaplan-nyny77.png b/config/retroarch/borders/NyNy77/Toaplan-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Toaplan-nyny77.png
rename to config/retroarch/borders/NyNy77/Toaplan-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TomyTutor-nyny77.cfg b/config/retroarch/borders/NyNy77/TomyTutor-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TomyTutor-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TomyTutor-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TomyTutor-nyny77.png b/config/retroarch/borders/NyNy77/TomyTutor-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TomyTutor-nyny77.png
rename to config/retroarch/borders/NyNy77/TomyTutor-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/TouhouProject-nyny77.cfg b/config/retroarch/borders/NyNy77/TouhouProject-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TouhouProject-nyny77.cfg
rename to config/retroarch/borders/NyNy77/TouhouProject-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/TouhouProject-nyny77.png b/config/retroarch/borders/NyNy77/TouhouProject-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/TouhouProject-nyny77.png
rename to config/retroarch/borders/NyNy77/TouhouProject-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Vector06C-nyny77.cfg b/config/retroarch/borders/NyNy77/Vector06C-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vector06C-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Vector06C-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Vector06C-nyny77.png b/config/retroarch/borders/NyNy77/Vector06C-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vector06C-nyny77.png
rename to config/retroarch/borders/NyNy77/Vector06C-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Vectrex-nyny77.cfg b/config/retroarch/borders/NyNy77/Vectrex-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vectrex-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Vectrex-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Vectrex-nyny77.png b/config/retroarch/borders/NyNy77/Vectrex-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vectrex-nyny77.png
rename to config/retroarch/borders/NyNy77/Vectrex-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Vectrexb-nyny77.cfg b/config/retroarch/borders/NyNy77/Vectrexb-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vectrexb-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Vectrexb-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Vectrexb-nyny77.png b/config/retroarch/borders/NyNy77/Vectrexb-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vectrexb-nyny77.png
rename to config/retroarch/borders/NyNy77/Vectrexb-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Vierge-nyny77.cfg b/config/retroarch/borders/NyNy77/Vierge-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vierge-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Vierge-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Vierge-nyny77.png b/config/retroarch/borders/NyNy77/Vierge-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Vierge-nyny77.png
rename to config/retroarch/borders/NyNy77/Vierge-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/ViergeVertical-nyny77.cfg b/config/retroarch/borders/NyNy77/ViergeVertical-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ViergeVertical-nyny77.cfg
rename to config/retroarch/borders/NyNy77/ViergeVertical-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/ViergeVertical-nyny77.png b/config/retroarch/borders/NyNy77/ViergeVertical-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/ViergeVertical-nyny77.png
rename to config/retroarch/borders/NyNy77/ViergeVertical-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/WataraSupervision-nyny77.cfg b/config/retroarch/borders/NyNy77/WataraSupervision-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/WataraSupervision-nyny77.cfg
rename to config/retroarch/borders/NyNy77/WataraSupervision-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/WataraSupervision-nyny77.png b/config/retroarch/borders/NyNy77/WataraSupervision-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/WataraSupervision-nyny77.png
rename to config/retroarch/borders/NyNy77/WataraSupervision-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/Zinc-nyny77.cfg b/config/retroarch/borders/NyNy77/Zinc-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Zinc-nyny77.cfg
rename to config/retroarch/borders/NyNy77/Zinc-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/Zinc-nyny77.png b/config/retroarch/borders/NyNy77/Zinc-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/Zinc-nyny77.png
rename to config/retroarch/borders/NyNy77/Zinc-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-CPS1-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-CPS1-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-CPS1-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-CPS1-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-CPS1-nyny77.png b/config/retroarch/borders/NyNy77/vert-CPS1-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-CPS1-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-CPS1-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-CPS2-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-CPS2-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-CPS2-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-CPS2-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-CPS2-nyny77.png b/config/retroarch/borders/NyNy77/vert-CPS2-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-CPS2-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-CPS2-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-CPS3-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-CPS3-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-CPS3-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-CPS3-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-CPS3-nyny77.png b/config/retroarch/borders/NyNy77/vert-CPS3-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-CPS3-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-CPS3-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Capcom-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-Capcom-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Capcom-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-Capcom-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Capcom-nyny77.png b/config/retroarch/borders/NyNy77/vert-Capcom-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Capcom-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-Capcom-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Cave-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-Cave-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Cave-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-Cave-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Cave-nyny77.png b/config/retroarch/borders/NyNy77/vert-Cave-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Cave-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-Cave-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.png b/config/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-IGSPolygameMaster-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.png b/config/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-KonamiGX4000-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-MameShmup-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-MameShmup-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-MameShmup-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-MameShmup-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-MameShmup-nyny77.png b/config/retroarch/borders/NyNy77/vert-MameShmup-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-MameShmup-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-MameShmup-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.png b/config/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-NamcoGalaga-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Psikyo-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-Psikyo-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Psikyo-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-Psikyo-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Psikyo-nyny77.png b/config/retroarch/borders/NyNy77/vert-Psikyo-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Psikyo-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-Psikyo-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.png b/config/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-SegaSTV-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.png b/config/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-TaitoClassics-nyny77.png
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Toaplan-nyny77.cfg b/config/retroarch/borders/NyNy77/vert-Toaplan-nyny77.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Toaplan-nyny77.cfg
rename to config/retroarch/borders/NyNy77/vert-Toaplan-nyny77.cfg
diff --git a/emu-configs/retroarch/borders/NyNy77/vert-Toaplan-nyny77.png b/config/retroarch/borders/NyNy77/vert-Toaplan-nyny77.png
similarity index 100%
rename from emu-configs/retroarch/borders/NyNy77/vert-Toaplan-nyny77.png
rename to config/retroarch/borders/NyNy77/vert-Toaplan-nyny77.png
diff --git a/emu-configs/retroarch/borders/pegasus/3DO.cfg b/config/retroarch/borders/pegasus/3DO.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/3DO.cfg
rename to config/retroarch/borders/pegasus/3DO.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/3do.png b/config/retroarch/borders/pegasus/3do.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/3do.png
rename to config/retroarch/borders/pegasus/3do.png
diff --git a/emu-configs/retroarch/borders/pegasus/ChannelF.cfg b/config/retroarch/borders/pegasus/ChannelF.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ChannelF.cfg
rename to config/retroarch/borders/pegasus/ChannelF.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/ColecoVision.cfg b/config/retroarch/borders/pegasus/ColecoVision.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ColecoVision.cfg
rename to config/retroarch/borders/pegasus/ColecoVision.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/Dreamcast.cfg b/config/retroarch/borders/pegasus/Dreamcast.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/Dreamcast.cfg
rename to config/retroarch/borders/pegasus/Dreamcast.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/GX4000.cfg b/config/retroarch/borders/pegasus/GX4000.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/GX4000.cfg
rename to config/retroarch/borders/pegasus/GX4000.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/Gamecube.cfg b/config/retroarch/borders/pegasus/Gamecube.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/Gamecube.cfg
rename to config/retroarch/borders/pegasus/Gamecube.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/Intellivision.cfg b/config/retroarch/borders/pegasus/Intellivision.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/Intellivision.cfg
rename to config/retroarch/borders/pegasus/Intellivision.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/LICENSE b/config/retroarch/borders/pegasus/LICENSE
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/LICENSE
rename to config/retroarch/borders/pegasus/LICENSE
diff --git a/emu-configs/retroarch/borders/pegasus/MSX.cfg b/config/retroarch/borders/pegasus/MSX.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/MSX.cfg
rename to config/retroarch/borders/pegasus/MSX.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/MSX2.cfg b/config/retroarch/borders/pegasus/MSX2.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/MSX2.cfg
rename to config/retroarch/borders/pegasus/MSX2.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/MarkIII.cfg b/config/retroarch/borders/pegasus/MarkIII.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/MarkIII.cfg
rename to config/retroarch/borders/pegasus/MarkIII.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/N64.cfg b/config/retroarch/borders/pegasus/N64.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/N64.cfg
rename to config/retroarch/borders/pegasus/N64.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/Odyssey2.cfg b/config/retroarch/borders/pegasus/Odyssey2.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/Odyssey2.cfg
rename to config/retroarch/borders/pegasus/Odyssey2.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/SNES87.png b/config/retroarch/borders/pegasus/SNES87.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/SNES87.png
rename to config/retroarch/borders/pegasus/SNES87.png
diff --git a/emu-configs/retroarch/borders/pegasus/ScummVM.cfg b/config/retroarch/borders/pegasus/ScummVM.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ScummVM.cfg
rename to config/retroarch/borders/pegasus/ScummVM.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/SuperGrafx.cfg b/config/retroarch/borders/pegasus/SuperGrafx.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/SuperGrafx.cfg
rename to config/retroarch/borders/pegasus/SuperGrafx.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/X1.cfg b/config/retroarch/borders/pegasus/X1.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/X1.cfg
rename to config/retroarch/borders/pegasus/X1.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/amstradcpc.cfg b/config/retroarch/borders/pegasus/amstradcpc.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/amstradcpc.cfg
rename to config/retroarch/borders/pegasus/amstradcpc.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/amstradcpc.png b/config/retroarch/borders/pegasus/amstradcpc.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/amstradcpc.png
rename to config/retroarch/borders/pegasus/amstradcpc.png
diff --git a/emu-configs/retroarch/borders/pegasus/atari2600.cfg b/config/retroarch/borders/pegasus/atari2600.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari2600.cfg
rename to config/retroarch/borders/pegasus/atari2600.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/atari2600.png b/config/retroarch/borders/pegasus/atari2600.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari2600.png
rename to config/retroarch/borders/pegasus/atari2600.png
diff --git a/emu-configs/retroarch/borders/pegasus/atari5200.cfg b/config/retroarch/borders/pegasus/atari5200.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari5200.cfg
rename to config/retroarch/borders/pegasus/atari5200.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/atari5200.png b/config/retroarch/borders/pegasus/atari5200.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari5200.png
rename to config/retroarch/borders/pegasus/atari5200.png
diff --git a/emu-configs/retroarch/borders/pegasus/atari7800.cfg b/config/retroarch/borders/pegasus/atari7800.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari7800.cfg
rename to config/retroarch/borders/pegasus/atari7800.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/atari7800.png b/config/retroarch/borders/pegasus/atari7800.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari7800.png
rename to config/retroarch/borders/pegasus/atari7800.png
diff --git a/emu-configs/retroarch/borders/pegasus/atari800.cfg b/config/retroarch/borders/pegasus/atari800.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari800.cfg
rename to config/retroarch/borders/pegasus/atari800.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/atari800.png b/config/retroarch/borders/pegasus/atari800.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atari800.png
rename to config/retroarch/borders/pegasus/atari800.png
diff --git a/emu-configs/retroarch/borders/pegasus/atarijaguar.cfg b/config/retroarch/borders/pegasus/atarijaguar.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atarijaguar.cfg
rename to config/retroarch/borders/pegasus/atarijaguar.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/atarijaguar.png b/config/retroarch/borders/pegasus/atarijaguar.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atarijaguar.png
rename to config/retroarch/borders/pegasus/atarijaguar.png
diff --git a/emu-configs/retroarch/borders/pegasus/atarist.cfg b/config/retroarch/borders/pegasus/atarist.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atarist.cfg
rename to config/retroarch/borders/pegasus/atarist.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/atarist.png b/config/retroarch/borders/pegasus/atarist.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/atarist.png
rename to config/retroarch/borders/pegasus/atarist.png
diff --git a/emu-configs/retroarch/borders/pegasus/channelf.png b/config/retroarch/borders/pegasus/channelf.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/channelf.png
rename to config/retroarch/borders/pegasus/channelf.png
diff --git a/emu-configs/retroarch/borders/pegasus/colecovision.png b/config/retroarch/borders/pegasus/colecovision.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/colecovision.png
rename to config/retroarch/borders/pegasus/colecovision.png
diff --git a/emu-configs/retroarch/borders/pegasus/dreamcast.png b/config/retroarch/borders/pegasus/dreamcast.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/dreamcast.png
rename to config/retroarch/borders/pegasus/dreamcast.png
diff --git a/emu-configs/retroarch/borders/pegasus/fmtowns.cfg b/config/retroarch/borders/pegasus/fmtowns.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/fmtowns.cfg
rename to config/retroarch/borders/pegasus/fmtowns.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/fmtowns.png b/config/retroarch/borders/pegasus/fmtowns.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/fmtowns.png
rename to config/retroarch/borders/pegasus/fmtowns.png
diff --git a/emu-configs/retroarch/borders/pegasus/gamecube.png b/config/retroarch/borders/pegasus/gamecube.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gamecube.png
rename to config/retroarch/borders/pegasus/gamecube.png
diff --git a/emu-configs/retroarch/borders/pegasus/gb.cfg b/config/retroarch/borders/pegasus/gb.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gb.cfg
rename to config/retroarch/borders/pegasus/gb.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/gb.png b/config/retroarch/borders/pegasus/gb.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gb.png
rename to config/retroarch/borders/pegasus/gb.png
diff --git a/emu-configs/retroarch/borders/pegasus/gba.cfg b/config/retroarch/borders/pegasus/gba.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gba.cfg
rename to config/retroarch/borders/pegasus/gba.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/gba.png b/config/retroarch/borders/pegasus/gba.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gba.png
rename to config/retroarch/borders/pegasus/gba.png
diff --git a/emu-configs/retroarch/borders/pegasus/gbc.cfg b/config/retroarch/borders/pegasus/gbc.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gbc.cfg
rename to config/retroarch/borders/pegasus/gbc.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/gbc.png b/config/retroarch/borders/pegasus/gbc.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gbc.png
rename to config/retroarch/borders/pegasus/gbc.png
diff --git a/emu-configs/retroarch/borders/pegasus/genesis.cfg b/config/retroarch/borders/pegasus/genesis.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/genesis.cfg
rename to config/retroarch/borders/pegasus/genesis.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/gg-integer.png b/config/retroarch/borders/pegasus/gg-integer.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gg-integer.png
rename to config/retroarch/borders/pegasus/gg-integer.png
diff --git a/emu-configs/retroarch/borders/pegasus/gg.cfg b/config/retroarch/borders/pegasus/gg.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gg.cfg
rename to config/retroarch/borders/pegasus/gg.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/gx4000.png b/config/retroarch/borders/pegasus/gx4000.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/gx4000.png
rename to config/retroarch/borders/pegasus/gx4000.png
diff --git a/emu-configs/retroarch/borders/pegasus/intellivision.png b/config/retroarch/borders/pegasus/intellivision.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/intellivision.png
rename to config/retroarch/borders/pegasus/intellivision.png
diff --git a/emu-configs/retroarch/borders/pegasus/markIII.png b/config/retroarch/borders/pegasus/markIII.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/markIII.png
rename to config/retroarch/borders/pegasus/markIII.png
diff --git a/emu-configs/retroarch/borders/pegasus/mastersystem.cfg b/config/retroarch/borders/pegasus/mastersystem.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/mastersystem.cfg
rename to config/retroarch/borders/pegasus/mastersystem.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/mastersystem.png b/config/retroarch/borders/pegasus/mastersystem.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/mastersystem.png
rename to config/retroarch/borders/pegasus/mastersystem.png
diff --git a/emu-configs/retroarch/borders/pegasus/megadrive.cfg b/config/retroarch/borders/pegasus/megadrive.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/megadrive.cfg
rename to config/retroarch/borders/pegasus/megadrive.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/megadrive.png b/config/retroarch/borders/pegasus/megadrive.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/megadrive.png
rename to config/retroarch/borders/pegasus/megadrive.png
diff --git a/emu-configs/retroarch/borders/pegasus/msx.png b/config/retroarch/borders/pegasus/msx.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/msx.png
rename to config/retroarch/borders/pegasus/msx.png
diff --git a/emu-configs/retroarch/borders/pegasus/msx2.png b/config/retroarch/borders/pegasus/msx2.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/msx2.png
rename to config/retroarch/borders/pegasus/msx2.png
diff --git a/emu-configs/retroarch/borders/pegasus/n64.png b/config/retroarch/borders/pegasus/n64.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/n64.png
rename to config/retroarch/borders/pegasus/n64.png
diff --git a/emu-configs/retroarch/borders/pegasus/neogeo.cfg b/config/retroarch/borders/pegasus/neogeo.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/neogeo.cfg
rename to config/retroarch/borders/pegasus/neogeo.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/neogeo.png b/config/retroarch/borders/pegasus/neogeo.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/neogeo.png
rename to config/retroarch/borders/pegasus/neogeo.png
diff --git a/emu-configs/retroarch/borders/pegasus/neogeocd.cfg b/config/retroarch/borders/pegasus/neogeocd.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/neogeocd.cfg
rename to config/retroarch/borders/pegasus/neogeocd.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/neogeocd.png b/config/retroarch/borders/pegasus/neogeocd.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/neogeocd.png
rename to config/retroarch/borders/pegasus/neogeocd.png
diff --git a/emu-configs/retroarch/borders/pegasus/neogeopocket.png b/config/retroarch/borders/pegasus/neogeopocket.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/neogeopocket.png
rename to config/retroarch/borders/pegasus/neogeopocket.png
diff --git a/emu-configs/retroarch/borders/pegasus/nes.cfg b/config/retroarch/borders/pegasus/nes.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/nes.cfg
rename to config/retroarch/borders/pegasus/nes.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/nes.png b/config/retroarch/borders/pegasus/nes.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/nes.png
rename to config/retroarch/borders/pegasus/nes.png
diff --git a/emu-configs/retroarch/borders/pegasus/ngp.cfg b/config/retroarch/borders/pegasus/ngp.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ngp.cfg
rename to config/retroarch/borders/pegasus/ngp.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/ngpc.cfg b/config/retroarch/borders/pegasus/ngpc.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ngpc.cfg
rename to config/retroarch/borders/pegasus/ngpc.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/odyssey2.png b/config/retroarch/borders/pegasus/odyssey2.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/odyssey2.png
rename to config/retroarch/borders/pegasus/odyssey2.png
diff --git a/emu-configs/retroarch/borders/pegasus/pc.cfg b/config/retroarch/borders/pegasus/pc.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pc.cfg
rename to config/retroarch/borders/pegasus/pc.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/pc.png b/config/retroarch/borders/pegasus/pc.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pc.png
rename to config/retroarch/borders/pegasus/pc.png
diff --git a/emu-configs/retroarch/borders/pegasus/pc88.cfg b/config/retroarch/borders/pegasus/pc88.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pc88.cfg
rename to config/retroarch/borders/pegasus/pc88.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/pc88.png b/config/retroarch/borders/pegasus/pc88.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pc88.png
rename to config/retroarch/borders/pegasus/pc88.png
diff --git a/emu-configs/retroarch/borders/pegasus/pc98.cfg b/config/retroarch/borders/pegasus/pc98.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pc98.cfg
rename to config/retroarch/borders/pegasus/pc98.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/pc98.png b/config/retroarch/borders/pegasus/pc98.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pc98.png
rename to config/retroarch/borders/pegasus/pc98.png
diff --git a/emu-configs/retroarch/borders/pegasus/pcengine.cfg b/config/retroarch/borders/pegasus/pcengine.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pcengine.cfg
rename to config/retroarch/borders/pegasus/pcengine.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/pcengine.png b/config/retroarch/borders/pegasus/pcengine.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pcengine.png
rename to config/retroarch/borders/pegasus/pcengine.png
diff --git a/emu-configs/retroarch/borders/pegasus/pcenginecd.cfg b/config/retroarch/borders/pegasus/pcenginecd.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pcenginecd.cfg
rename to config/retroarch/borders/pegasus/pcenginecd.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/pcenginecd.png b/config/retroarch/borders/pegasus/pcenginecd.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pcenginecd.png
rename to config/retroarch/borders/pegasus/pcenginecd.png
diff --git a/emu-configs/retroarch/borders/pegasus/pcfx.cfg b/config/retroarch/borders/pegasus/pcfx.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pcfx.cfg
rename to config/retroarch/borders/pegasus/pcfx.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/pcfx.png b/config/retroarch/borders/pegasus/pcfx.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/pcfx.png
rename to config/retroarch/borders/pegasus/pcfx.png
diff --git a/emu-configs/retroarch/borders/pegasus/ps2.cfg b/config/retroarch/borders/pegasus/ps2.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ps2.cfg
rename to config/retroarch/borders/pegasus/ps2.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/ps2.png b/config/retroarch/borders/pegasus/ps2.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ps2.png
rename to config/retroarch/borders/pegasus/ps2.png
diff --git a/emu-configs/retroarch/borders/pegasus/psx.cfg b/config/retroarch/borders/pegasus/psx.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/psx.cfg
rename to config/retroarch/borders/pegasus/psx.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/psx.png b/config/retroarch/borders/pegasus/psx.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/psx.png
rename to config/retroarch/borders/pegasus/psx.png
diff --git a/emu-configs/retroarch/borders/pegasus/saturn.cfg b/config/retroarch/borders/pegasus/saturn.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/saturn.cfg
rename to config/retroarch/borders/pegasus/saturn.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/saturn.png b/config/retroarch/borders/pegasus/saturn.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/saturn.png
rename to config/retroarch/borders/pegasus/saturn.png
diff --git a/emu-configs/retroarch/borders/pegasus/scummvm.png b/config/retroarch/borders/pegasus/scummvm.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/scummvm.png
rename to config/retroarch/borders/pegasus/scummvm.png
diff --git a/emu-configs/retroarch/borders/pegasus/sega32x.cfg b/config/retroarch/borders/pegasus/sega32x.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/sega32x.cfg
rename to config/retroarch/borders/pegasus/sega32x.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/sega32x.png b/config/retroarch/borders/pegasus/sega32x.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/sega32x.png
rename to config/retroarch/borders/pegasus/sega32x.png
diff --git a/emu-configs/retroarch/borders/pegasus/segacd.cfg b/config/retroarch/borders/pegasus/segacd.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/segacd.cfg
rename to config/retroarch/borders/pegasus/segacd.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/segacd.png b/config/retroarch/borders/pegasus/segacd.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/segacd.png
rename to config/retroarch/borders/pegasus/segacd.png
diff --git a/emu-configs/retroarch/borders/pegasus/sg1000.cfg b/config/retroarch/borders/pegasus/sg1000.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/sg1000.cfg
rename to config/retroarch/borders/pegasus/sg1000.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/sg1000.png b/config/retroarch/borders/pegasus/sg1000.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/sg1000.png
rename to config/retroarch/borders/pegasus/sg1000.png
diff --git a/emu-configs/retroarch/borders/pegasus/sgb.cfg b/config/retroarch/borders/pegasus/sgb.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/sgb.cfg
rename to config/retroarch/borders/pegasus/sgb.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/sgb.png b/config/retroarch/borders/pegasus/sgb.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/sgb.png
rename to config/retroarch/borders/pegasus/sgb.png
diff --git a/emu-configs/retroarch/borders/pegasus/snes.cfg b/config/retroarch/borders/pegasus/snes.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/snes.cfg
rename to config/retroarch/borders/pegasus/snes.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/snes.png b/config/retroarch/borders/pegasus/snes.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/snes.png
rename to config/retroarch/borders/pegasus/snes.png
diff --git a/emu-configs/retroarch/borders/pegasus/snes87.cfg b/config/retroarch/borders/pegasus/snes87.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/snes87.cfg
rename to config/retroarch/borders/pegasus/snes87.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/supergrafx.png b/config/retroarch/borders/pegasus/supergrafx.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/supergrafx.png
rename to config/retroarch/borders/pegasus/supergrafx.png
diff --git a/emu-configs/retroarch/borders/pegasus/thomson.cfg b/config/retroarch/borders/pegasus/thomson.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/thomson.cfg
rename to config/retroarch/borders/pegasus/thomson.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/thomson.png b/config/retroarch/borders/pegasus/thomson.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/thomson.png
rename to config/retroarch/borders/pegasus/thomson.png
diff --git a/emu-configs/retroarch/borders/pegasus/ti99.cfg b/config/retroarch/borders/pegasus/ti99.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ti99.cfg
rename to config/retroarch/borders/pegasus/ti99.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/ti99.png b/config/retroarch/borders/pegasus/ti99.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/ti99.png
rename to config/retroarch/borders/pegasus/ti99.png
diff --git a/emu-configs/retroarch/borders/pegasus/wswanc.cfg b/config/retroarch/borders/pegasus/wswanc.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/wswanc.cfg
rename to config/retroarch/borders/pegasus/wswanc.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/wswanc.png b/config/retroarch/borders/pegasus/wswanc.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/wswanc.png
rename to config/retroarch/borders/pegasus/wswanc.png
diff --git a/emu-configs/retroarch/borders/pegasus/x1.png b/config/retroarch/borders/pegasus/x1.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/x1.png
rename to config/retroarch/borders/pegasus/x1.png
diff --git a/emu-configs/retroarch/borders/pegasus/x68000.cfg b/config/retroarch/borders/pegasus/x68000.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/x68000.cfg
rename to config/retroarch/borders/pegasus/x68000.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/x68000.png b/config/retroarch/borders/pegasus/x68000.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/x68000.png
rename to config/retroarch/borders/pegasus/x68000.png
diff --git a/emu-configs/retroarch/borders/pegasus/zxspectrum.cfg b/config/retroarch/borders/pegasus/zxspectrum.cfg
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/zxspectrum.cfg
rename to config/retroarch/borders/pegasus/zxspectrum.cfg
diff --git a/emu-configs/retroarch/borders/pegasus/zxspectrum.png b/config/retroarch/borders/pegasus/zxspectrum.png
similarity index 100%
rename from emu-configs/retroarch/borders/pegasus/zxspectrum.png
rename to config/retroarch/borders/pegasus/zxspectrum.png
diff --git a/emu-configs/retroarch/core-overrides/PPSSPP/PPSSPP.cfg b/config/retroarch/core-overrides/PPSSPP/PPSSPP.cfg
similarity index 100%
rename from emu-configs/retroarch/core-overrides/PPSSPP/PPSSPP.cfg
rename to config/retroarch/core-overrides/PPSSPP/PPSSPP.cfg
diff --git a/emu-configs/retroarch/retroarch-core-options.cfg b/config/retroarch/retroarch-core-options.cfg
similarity index 100%
rename from emu-configs/retroarch/retroarch-core-options.cfg
rename to config/retroarch/retroarch-core-options.cfg
diff --git a/emu-configs/retroarch/retroarch.cfg b/config/retroarch/retroarch.cfg
similarity index 100%
rename from emu-configs/retroarch/retroarch.cfg
rename to config/retroarch/retroarch.cfg
diff --git a/emu-configs/retroarch/scummvm.ini b/config/retroarch/scummvm.ini
similarity index 100%
rename from emu-configs/retroarch/scummvm.ini
rename to config/retroarch/scummvm.ini
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic_standard_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_generic_standard_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_generic_standard_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_generic_standard_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3_dualshock3_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_ps3_dualshock3_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps3_dualshock3_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_ps3_dualshock3_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4_dualshock4_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_ps4_dualshock4_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps4_dualshock4_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_ps4_dualshock4_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5_dualsense_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_ps5_dualsense_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_ps5_dualsense_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_ps5_dualsense_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steam_controller_gordon_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_steam_controller_gordon_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steam_controller_gordon_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_steam_controller_gordon_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_full.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_full.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_full.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_full.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_steamdeck_neptune_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switch_pro_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_switch_pro_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_switch_pro_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_switch_pro_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xbox360_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_xbox360_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xbox360_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_xbox360_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone_simple.vdf b/config/retrodeck/controller_configs/RetroDECK_controller_xboxone_simple.vdf
similarity index 100%
rename from emu-configs/defaults/retrodeck/controller_configs/RetroDECK_controller_xboxone_simple.vdf
rename to config/retrodeck/controller_configs/RetroDECK_controller_xboxone_simple.vdf
diff --git a/emu-configs/defaults/retrodeck/helper_files/Install-firmware-through-Ryujinx.txt b/config/retrodeck/helper_files/Install-firmware-through-Ryujinx.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/Install-firmware-through-Ryujinx.txt
rename to config/retrodeck/helper_files/Install-firmware-through-Ryujinx.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Duckstation-textures.txt b/config/retrodeck/helper_files/how-to-install-Duckstation-textures.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-Duckstation-textures.txt
rename to config/retrodeck/helper_files/how-to-install-Duckstation-textures.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mesen-textures.txt b/config/retrodeck/helper_files/how-to-install-Mesen-textures.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-Mesen-textures.txt
rename to config/retrodeck/helper_files/how-to-install-Mesen-textures.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt b/config/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt
rename to config/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-PCSX2-textures.txt b/config/retrodeck/helper_files/how-to-install-PCSX2-textures.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-PCSX2-textures.txt
rename to config/retrodeck/helper_files/how-to-install-PCSX2-textures.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt b/config/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt
rename to config/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-dolphin-mods.txt b/config/retrodeck/helper_files/how-to-install-dolphin-mods.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-dolphin-mods.txt
rename to config/retrodeck/helper_files/how-to-install-dolphin-mods.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-primehack-mods.txt b/config/retrodeck/helper_files/how-to-install-primehack-mods.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-primehack-mods.txt
rename to config/retrodeck/helper_files/how-to-install-primehack-mods.txt
diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt b/config/retrodeck/helper_files/how-to-install-psvita-games.txt
similarity index 100%
rename from emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt
rename to config/retrodeck/helper_files/how-to-install-psvita-games.txt
diff --git a/emu-configs/defaults/retrodeck/presets/citra_presets.cfg b/config/retrodeck/presets/citra_presets.cfg
similarity index 63%
rename from emu-configs/defaults/retrodeck/presets/citra_presets.cfg
rename to config/retrodeck/presets/citra_presets.cfg
index 05b0d7b0..6ebd5c48 100644
--- a/emu-configs/defaults/retrodeck/presets/citra_presets.cfg
+++ b/config/retrodeck/presets/citra_presets.cfg
@@ -1,7 +1,7 @@
config_file_format^citra
-change^ask_to_exit^confirmClose^true^UI^$citraconf^$emuconfigs/citra/qt-config.ini
-change^ask_to_exit^confirmClose\default^true^UI^$citraconf^$emuconfigs/citra/qt-config.ini
-change^abxy_button_swap^profiles\1\button_a^button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
-change^abxy_button_swap^profiles\1\button_b^button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
-change^abxy_button_swap^profiles\1\button_x^button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
-change^abxy_button_swap^profiles\1\button_y^button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$emuconfigs/citra/qt-config.ini
+change^ask_to_exit^confirmClose^true^UI^$citraconf^$config/citra/qt-config.ini
+change^ask_to_exit^confirmClose\default^true^UI^$citraconf^$config/citra/qt-config.ini
+change^abxy_button_swap^profiles\1\button_a^button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$config/citra/qt-config.ini
+change^abxy_button_swap^profiles\1\button_b^button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$config/citra/qt-config.ini
+change^abxy_button_swap^profiles\1\button_x^button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$config/citra/qt-config.ini
+change^abxy_button_swap^profiles\1\button_y^button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls^$citraconf^$config/citra/qt-config.ini
diff --git a/config/retrodeck/presets/dolphin_presets.cfg b/config/retrodeck/presets/dolphin_presets.cfg
new file mode 100644
index 00000000..2348df5b
--- /dev/null
+++ b/config/retrodeck/presets/dolphin_presets.cfg
@@ -0,0 +1,2 @@
+config_file_format^dolphin
+change^ask_to_exit^ConfirmStop^True^Interface^$dolphinconf^$config/dolphin/Dolphin.ini
diff --git a/config/retrodeck/presets/duckstation_presets.cfg b/config/retrodeck/presets/duckstation_presets.cfg
new file mode 100644
index 00000000..c15b5db1
--- /dev/null
+++ b/config/retrodeck/presets/duckstation_presets.cfg
@@ -0,0 +1,8 @@
+config_file_format^duckstation
+change^cheevos^Enabled^true^Cheevos^$duckstationconf^$config/duckstation/settings.ini
+change^cheevos^Username^$cheevos_username^Cheevos^$duckstationconf^$config/duckstation/settings.ini
+change^cheevos^Token^$cheevos_token^Cheevos^$duckstationconf^$config/duckstation/settings.ini
+change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Cheevos^$duckstationconf^$config/duckstation/settings.ini
+change^cheevos_hardcore^ChallengeMode^true^Cheevos^$duckstationconf^$config/duckstation/settings.ini
+change^savestate_auto_save^SaveStateOnExit^true^Main^$duckstationconf^$config/duckstation/settings.ini
+change^ask_to_exit^ConfirmPowerOff^true^Main^$duckstationconf^$config/duckstation/settings.ini
diff --git a/emu-configs/defaults/retrodeck/presets/example.txt b/config/retrodeck/presets/example.txt
similarity index 92%
rename from emu-configs/defaults/retrodeck/presets/example.txt
rename to config/retrodeck/presets/example.txt
index 3d64330c..8b32161e 100644
--- a/emu-configs/defaults/retrodeck/presets/example.txt
+++ b/config/retrodeck/presets/example.txt
@@ -6,4 +6,4 @@ enable^abxy_button_swap^/var/config/retroarch/config/remaps/Snes9x/snes.rmp # T
OTHER NOTES:
- The name of the presets configuration file for any given system MUST be _presets.cfg
- The is whatever name is given to this system in retrodeck.cfg, it is not tied to the actual emulator name.
-- The name given to the system in retrodeck.cfg will be translated to a "nice looking" format for user dialogs through the file at emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg but will be used internally as-is
+- The name given to the system in retrodeck.cfg will be translated to a "nice looking" format for user dialogs through the file at config/retrodeck/reference_lists/pretty_system_names.cfg but will be used internally as-is
diff --git a/emu-configs/defaults/retrodeck/presets/gb_presets.cfg b/config/retrodeck/presets/gb_presets.cfg
similarity index 57%
rename from emu-configs/defaults/retrodeck/presets/gb_presets.cfg
rename to config/retrodeck/presets/gb_presets.cfg
index 5c61c27b..ef495dfa 100644
--- a/emu-configs/defaults/retrodeck/presets/gb_presets.cfg
+++ b/config/retrodeck/presets/gb_presets.cfg
@@ -1,13 +1,13 @@
config_file_format^retroarch
-change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_height^576^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_width^640^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_x^320^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_y^20^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gb.cfg^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_scale_landscape^1.205000^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_y_offset_landscape^0.005000^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_height^576^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_width^640^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_x^320^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_y^20^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gb.cfg^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_scale_landscape^1.205000^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_y_offset_landscape^0.005000^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
enable^abxy_button_swap^/var/config/retroarch/config/remaps/Gambatte/gb.rmp
-change^rewind^rewind_enable^true^^/var/config/retroarch/config/Gambatte/gb.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^rewind^rewind_enable^true^^/var/config/retroarch/config/Gambatte/gb.cfg^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/gba_presets.cfg b/config/retrodeck/presets/gba_presets.cfg
similarity index 58%
rename from emu-configs/defaults/retrodeck/presets/gba_presets.cfg
rename to config/retrodeck/presets/gba_presets.cfg
index 7f4d649e..f0f80cc4 100644
--- a/emu-configs/defaults/retrodeck/presets/gba_presets.cfg
+++ b/config/retrodeck/presets/gba_presets.cfg
@@ -1,13 +1,13 @@
config_file_format^retroarch
-change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_height^640^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_width^960^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_x^160^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_y^0^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gba.cfg^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_scale_landscape^1.2150000^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_y_offset_landscape^0.020000^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_height^640^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_width^960^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_x^160^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_y^0^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gba.cfg^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_scale_landscape^1.2150000^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_y_offset_landscape^0.020000^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
enable^abxy_button_swap^/var/config/retroarch/config/remaps/mGBA/gba.rmp
-change^rewind^rewind_enable^true^^/var/config/retroarch/config/mGBA/gba.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^rewind^rewind_enable^true^^/var/config/retroarch/config/mGBA/gba.cfg^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg b/config/retrodeck/presets/gbc_presets.cfg
similarity index 58%
rename from emu-configs/defaults/retrodeck/presets/gbc_presets.cfg
rename to config/retrodeck/presets/gbc_presets.cfg
index 4580722e..4bdbbb9d 100644
--- a/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg
+++ b/config/retrodeck/presets/gbc_presets.cfg
@@ -1,13 +1,13 @@
config_file_format^retroarch
-change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_height^576^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_width^640^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_x^320^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_y^20^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gbc.cfg^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_scale_landscape^1.205000^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_y_offset_landscape^-0.040000^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_height^576^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_width^640^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_x^320^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_y^20^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gbc.cfg^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_scale_landscape^1.205000^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_y_offset_landscape^-0.040000^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
enable^abxy_button_swap^/var/config/retroarch/config/remaps/Gambatte/gbc.rmp
-change^rewind^rewind_enable^true^^/var/config/retroarch/config/Gambatte/gbc.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^rewind^rewind_enable^true^^/var/config/retroarch/config/Gambatte/gbc.cfg^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/genesis_presets.cfg b/config/retrodeck/presets/genesis_presets.cfg
similarity index 52%
rename from emu-configs/defaults/retrodeck/presets/genesis_presets.cfg
rename to config/retrodeck/presets/genesis_presets.cfg
index 59fccbf8..5de02f08 100644
--- a/emu-configs/defaults/retrodeck/presets/genesis_presets.cfg
+++ b/config/retrodeck/presets/genesis_presets.cfg
@@ -1,7 +1,7 @@
config_file_format^retroarch
-change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/genesis.cfg^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.100000^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_scale_landscape^1.040000^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^rewind^rewind_enable^true^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/genesis.cfg^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.100000^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_scale_landscape^1.040000^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$config/retroarch/retroarch.cfg
+change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$config/retroarch/retroarch.cfg
+change^rewind^rewind_enable^true^^/var/config/retroarch/config/Genesis Plus GX/genesis.cfg^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/gg_presets.cfg b/config/retrodeck/presets/gg_presets.cfg
similarity index 52%
rename from emu-configs/defaults/retrodeck/presets/gg_presets.cfg
rename to config/retrodeck/presets/gg_presets.cfg
index c2b58364..5920c6d1 100644
--- a/emu-configs/defaults/retrodeck/presets/gg_presets.cfg
+++ b/config/retrodeck/presets/gg_presets.cfg
@@ -1,12 +1,12 @@
config_file_format^retroarch
-change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_width^960^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_height^720^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_x^160^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^custom_viewport_y^24^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gg.cfg^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_scale_landscape^1.350000^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_y_offset_landscape^0.020000^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^rewind^rewind_enable^true^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^aspect_ratio_index^23^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_width^960^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_height^720^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_x^160^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^custom_viewport_y^24^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gg.cfg^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.110000^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_scale_landscape^1.350000^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_y_offset_landscape^0.020000^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
+change^rewind^rewind_enable^true^^/var/config/retroarch/config/Genesis Plus GX/gg.cfg^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/n64_presets.cfg b/config/retrodeck/presets/n64_presets.cfg
similarity index 61%
rename from emu-configs/defaults/retrodeck/presets/n64_presets.cfg
rename to config/retrodeck/presets/n64_presets.cfg
index 8a92b041..147b8b3d 100644
--- a/emu-configs/defaults/retrodeck/presets/n64_presets.cfg
+++ b/config/retrodeck/presets/n64_presets.cfg
@@ -1,6 +1,6 @@
config_file_format^retroarch
-change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/N64.cfg^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.145000^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/N64.cfg^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.145000^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$config/retroarch/retroarch.cfg
+change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/Mupen64Plus-Next/n64.cfg^$config/retroarch/retroarch.cfg
enable^abxy_button_swap^/var/config/retroarch/config/remaps/Snes9x/snes.rmp
diff --git a/config/retrodeck/presets/pcsx2_presets.cfg b/config/retrodeck/presets/pcsx2_presets.cfg
new file mode 100644
index 00000000..d91d4f90
--- /dev/null
+++ b/config/retrodeck/presets/pcsx2_presets.cfg
@@ -0,0 +1,8 @@
+config_file_format^pcsx2
+change^cheevos^Enabled^true^Achievements^$pcsx2conf^$config/PCSX2/PCSX2.ini
+change^cheevos^Username^$cheevos_username^Achievements^$pcsx2conf^$config/PCSX2/PCSX2.ini
+change^cheevos^Token^$cheevos_token^Achievements^$pcsx2conf^$config/PCSX2/PCSX2.ini
+change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Achievements^$pcsx2conf^$config/PCSX2/PCSX2.ini
+change^cheevos_hardcore^ChallengeMode^true^Achievements^$pcsx2conf^$config/PCSX2/PCSX2.ini
+change^savestate_auto_save^SaveStateOnShutdown^true^EmuCore^$pcsx2conf^$config/PCSX2/PCSX2.ini
+change^ask_to_exit^ConfirmShutdown^true^UI^$pcsx2conf^$config/PCSX2/PCSX2.ini
diff --git a/emu-configs/defaults/retrodeck/presets/ppsspp_presets.cfg b/config/retrodeck/presets/ppsspp_presets.cfg
similarity index 63%
rename from emu-configs/defaults/retrodeck/presets/ppsspp_presets.cfg
rename to config/retrodeck/presets/ppsspp_presets.cfg
index 061b6dee..2236fdd2 100644
--- a/emu-configs/defaults/retrodeck/presets/ppsspp_presets.cfg
+++ b/config/retrodeck/presets/ppsspp_presets.cfg
@@ -1,5 +1,5 @@
config_file_format^ppsspp
-change^savestate_auto_load^AutoLoadSaveState^2^General^$ppssppconf^$emuconfigs/ppssppdl/ppsspp.ini
-change^cheevos^AchievementsEnable^True^Achievements^$ppssppconf^$emuconfigs/ppssppdl/ppsspp.ini
-change^cheevos^AchievementsUserName^Achievements^$cheevos_username^$ppssppconf^$emuconfigs/ppssppdl/ppsspp.ini
-change^cheevos_hardcore^AchievementsChallengeMode^True^Achievements^$ppssppconf^$emuconfigs/ppssppdl/ppsspp.ini
+change^savestate_auto_load^AutoLoadSaveState^2^General^$ppssppconf^$config/ppssppdl/ppsspp.ini
+change^cheevos^AchievementsEnable^True^Achievements^$ppssppconf^$config/ppssppdl/ppsspp.ini
+change^cheevos^AchievementsUserName^Achievements^$cheevos_username^$ppssppconf^$config/ppssppdl/ppsspp.ini
+change^cheevos_hardcore^AchievementsChallengeMode^True^Achievements^$ppssppconf^$config/ppssppdl/ppsspp.ini
diff --git a/config/retrodeck/presets/primehack_presets.cfg b/config/retrodeck/presets/primehack_presets.cfg
new file mode 100644
index 00000000..6e5754be
--- /dev/null
+++ b/config/retrodeck/presets/primehack_presets.cfg
@@ -0,0 +1,2 @@
+config_file_format^primehack
+change^ask_to_exit^ConfirmStop^True^Interface^$primehackconf^$config/primehack/Dolphin.ini
diff --git a/emu-configs/defaults/retrodeck/presets/psx_ra_presets.cfg b/config/retrodeck/presets/psx_ra_presets.cfg
similarity index 55%
rename from emu-configs/defaults/retrodeck/presets/psx_ra_presets.cfg
rename to config/retrodeck/presets/psx_ra_presets.cfg
index f9cffa4f..3376f1d0 100644
--- a/emu-configs/defaults/retrodeck/presets/psx_ra_presets.cfg
+++ b/config/retrodeck/presets/psx_ra_presets.cfg
@@ -1,6 +1,6 @@
config_file_format^retroarch
-change^borders^input_overlay^/var/config/retrodeck/overlays/borders/pegasus/psx.cfg^^/var/config/retroarch/config/SwanStation/psx.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.120000^^/var/config/retroarch/config/SwanStation/psx.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/SwanStation/psx.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_scale_landscape^1.040000^^/var/config/retroarch/config/SwanStation/psx.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/SwanStation/psx.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retrodeck/overlays/borders/pegasus/psx.cfg^^/var/config/retroarch/config/SwanStation/psx.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.120000^^/var/config/retroarch/config/SwanStation/psx.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/SwanStation/psx.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_scale_landscape^1.040000^^/var/config/retroarch/config/SwanStation/psx.cfg^$config/retroarch/retroarch.cfg
+change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/SwanStation/psx.cfg^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled b/config/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled
similarity index 100%
rename from emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled
rename to config/retrodeck/presets/remaps/Gambatte/gb.rmp.disabled
diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled b/config/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled
similarity index 100%
rename from emu-configs/defaults/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled
rename to config/retrodeck/presets/remaps/Gambatte/gbc.rmp.disabled
diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Mesen/nes.rmp.disabled b/config/retrodeck/presets/remaps/Mesen/nes.rmp.disabled
similarity index 100%
rename from emu-configs/defaults/retrodeck/presets/remaps/Mesen/nes.rmp.disabled
rename to config/retrodeck/presets/remaps/Mesen/nes.rmp.disabled
diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled b/config/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled
similarity index 100%
rename from emu-configs/defaults/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled
rename to config/retrodeck/presets/remaps/Mupen64Plus-Next/n64.rmp.disabled
diff --git a/emu-configs/defaults/retrodeck/presets/remaps/Snes9x/snes.rmp.disabled b/config/retrodeck/presets/remaps/Snes9x/snes.rmp.disabled
similarity index 100%
rename from emu-configs/defaults/retrodeck/presets/remaps/Snes9x/snes.rmp.disabled
rename to config/retrodeck/presets/remaps/Snes9x/snes.rmp.disabled
diff --git a/emu-configs/defaults/retrodeck/presets/remaps/mGBA/gba.rmp.disabled b/config/retrodeck/presets/remaps/mGBA/gba.rmp.disabled
similarity index 100%
rename from emu-configs/defaults/retrodeck/presets/remaps/mGBA/gba.rmp.disabled
rename to config/retrodeck/presets/remaps/mGBA/gba.rmp.disabled
diff --git a/config/retrodeck/presets/retroarch_presets.cfg b/config/retrodeck/presets/retroarch_presets.cfg
new file mode 100644
index 00000000..9a05b1f6
--- /dev/null
+++ b/config/retrodeck/presets/retroarch_presets.cfg
@@ -0,0 +1,7 @@
+config_file_format^retroarch-all
+change^cheevos^cheevos_enable^true^^$raconf^$config/retroarch/retroarch.cfg
+change^cheevos^cheevos_token^$cheevos_token^^$raconf^$config/retroarch/retroarch.cfg
+change^cheevos^cheevos_username^$cheevos_username^^$raconf^$config/retroarch/retroarch.cfg
+change^cheevos_hardcore^cheevos_hardcore_mode_enable^true^^$raconf^$config/retroarch/retroarch.cfg
+change^quick_resume^savestate_auto_load^true^^$raconf^$config/retroarch/retroarch.cfg
+change^quick_resume^savestate_auto_save^true^^$raconf^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/snes_presets.cfg b/config/retrodeck/presets/snes_presets.cfg
similarity index 60%
rename from emu-configs/defaults/retrodeck/presets/snes_presets.cfg
rename to config/retrodeck/presets/snes_presets.cfg
index 99825095..396a7131 100644
--- a/emu-configs/defaults/retrodeck/presets/snes_presets.cfg
+++ b/config/retrodeck/presets/snes_presets.cfg
@@ -1,8 +1,8 @@
config_file_format^retroarch
-change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/snes87.cfg^^/var/config/retroarch/config/Snes9x/snes.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_aspect_adjust_landscape^0.305000^^/var/config/retroarch/config/Snes9x/snes.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_scale_landscape^1.050000^^/var/config/retroarch/config/Snes9x/snes.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Snes9x/snes.cfg^$emuconfigs/retroarch/retroarch.cfg
-change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/Snes9x/snes.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/snes87.cfg^^/var/config/retroarch/config/Snes9x/snes.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_aspect_adjust_landscape^0.305000^^/var/config/retroarch/config/Snes9x/snes.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_scale_landscape^1.050000^^/var/config/retroarch/config/Snes9x/snes.cfg^$config/retroarch/retroarch.cfg
+change^borders^input_overlay_enable^true^^/var/config/retroarch/config/Snes9x/snes.cfg^$config/retroarch/retroarch.cfg
+change^widescreen^aspect_ratio_index^24^^/var/config/retroarch/config/Snes9x/snes.cfg^$config/retroarch/retroarch.cfg
enable^abxy_button_swap^/var/config/retroarch/config/remaps/Snes9x/snes.rmp
-change^rewind^rewind_enable^true^^/var/config/retroarch/config/Snes9x/snes.cfg^$emuconfigs/retroarch/retroarch.cfg
+change^rewind^rewind_enable^true^^/var/config/retroarch/config/Snes9x/snes.cfg^$config/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg b/config/retrodeck/presets/yuzu_presets.cfg
similarity index 62%
rename from emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg
rename to config/retrodeck/presets/yuzu_presets.cfg
index e03474f1..8c7247a0 100644
--- a/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg
+++ b/config/retrodeck/presets/yuzu_presets.cfg
@@ -1,7 +1,7 @@
config_file_format^yuzu
-change^ask_to_exit^confirmClose^true^UI^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
-change^ask_to_exit^confirmClose\default^true^UI^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
-change^abxy_button_swap^player_0_button_a^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:0,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
-change^abxy_button_swap^player_0_button_b^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:1,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
-change^abxy_button_swap^player_0_button_x^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:2,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
-change^abxy_button_swap^player_0_button_y^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:3,pad:0"^Controls^$yuzuconf^$emuconfigs/yuzu/qt-config.ini
+change^ask_to_exit^confirmClose^true^UI^$yuzuconf^$config/yuzu/qt-config.ini
+change^ask_to_exit^confirmClose\default^true^UI^$yuzuconf^$config/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_a^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:0,pad:0"^Controls^$yuzuconf^$config/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_b^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:1,pad:0"^Controls^$yuzuconf^$config/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_x^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:2,pad:0"^Controls^$yuzuconf^$config/yuzu/qt-config.ini
+change^abxy_button_swap^player_0_button_y^"engine:sdl,guid:03000000de280000ff11000001000000,port:0,button:3,pad:0"^Controls^$yuzuconf^$config/yuzu/qt-config.ini
diff --git a/emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg b/config/retrodeck/reference_lists/bios_checklist.cfg
similarity index 99%
rename from emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg
rename to config/retrodeck/reference_lists/bios_checklist.cfg
index a775d8bc..09d55096 100644
--- a/emu-configs/defaults/retrodeck/reference_lists/bios_checklist.cfg
+++ b/config/retrodeck/reference_lists/bios_checklist.cfg
@@ -132,7 +132,7 @@ cgrom.dat^keropi/^cb0a5cfcf7247a7eab74bb2716260269^Sharp X68000^Font file (Requi
iplrom30.dat^keropi/^f373003710ab4322642f527f567e020a^Sharp X68000^X68000 BIOS 2
iplromco.dat^keropi/^cc78d4f4900f622bd6de1aed7f52592f^Sharp X68000^X68000 BIOS 3
iplromxv.dat^keropi/^0617321daa182c3f3d6f41fd02fb3275^Sharp X68000^X68000 BIOS 4
-psxonpsp660.bin^^c53ca5908936d412331790f4426c6c33^Sony PSX^PS1 BIOS (At least 1 required)
+psxonpsp660.bin^^c53ca5908936d412331790f4426c6c33^Sony PSX^PS1 BIOS from PSP (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)
diff --git a/emu-configs/defaults/retrodeck/reference_lists/compression_targets.cfg b/config/retrodeck/reference_lists/compression_targets.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/compression_targets.cfg
rename to config/retrodeck/reference_lists/compression_targets.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg b/config/retrodeck/reference_lists/easter_egg_checklist.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg
rename to config/retrodeck/reference_lists/easter_egg_checklist.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/finit_options_list.cfg b/config/retrodeck/reference_lists/finit_options_list.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/finit_options_list.cfg
rename to config/retrodeck/reference_lists/finit_options_list.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg b/config/retrodeck/reference_lists/helper_files_list.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg
rename to config/retrodeck/reference_lists/helper_files_list.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/incompatible_presets.cfg b/config/retrodeck/reference_lists/incompatible_presets.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/incompatible_presets.cfg
rename to config/retrodeck/reference_lists/incompatible_presets.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/input_validation.cfg b/config/retrodeck/reference_lists/input_validation.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/input_validation.cfg
rename to config/retrodeck/reference_lists/input_validation.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg b/config/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg
rename to config/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg b/config/retrodeck/reference_lists/pretty_system_names.cfg
similarity index 58%
rename from emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg
rename to config/retrodeck/reference_lists/pretty_system_names.cfg
index e668911a..309b38fa 100644
--- a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg
+++ b/config/retrodeck/reference_lists/pretty_system_names.cfg
@@ -1,17 +1,23 @@
-dolphin^Dolphin (GameCube / Wii Standalone Emulator)
+cemu^Cemu (Nintendo Wii U Standalone Emulator)
+citra^Citra (Nintendo 3DS Standalone Emulator, via Ponzu)
+dolphin^Dolphin (Nintendo GameCube / Wii Standalone Emulator)
duckstation^Duckstation (Sony Playstation Standalone Emulator)
gb^Nintendo GameBoy
gba^Nintendo GameBoy Advance
gbc^Nintendo GameBoy Color
genesis^Sega Genesis/Master System
gg^Sega GameGear
+mame^MAME (Multi-Arcade Machine Standalone Emulator)
+melonds^MelonDS (Nintendo DS Standalone Emulator)
n64^Nintendo 64
pcsx2^PCSX2 (Sony Playstation 2 Standalone Emulator)
ppsspp^PPSSPP (Sony PSP Standalone Emulator)
primehack^Primehack (Metroid Prime Standalone Emulator)
psx_ra^Sony Playstation (RetroArch Core)
retroarch^RetroArch (Multi-emulator Frontend)
+rpcs3^RPCS3 (Sony Playstation 3 Standalone Emulator)
ryujinx^Ryujinx (Nintendo Switch Standalone Emulator)
snes^Nintendo Super Nintendo
+vita3k^Vita3K (Sony PSVita Standalone Emulator)
+xemu^XEMU (Microsoft Xbox Standalone Emulator)
yuzu^Yuzu (Nintendo Switch Standalone Emulator, via Ponzu)
-citra^Citra (Nintendo 3DS Standalone Emulator, via Ponzu)
\ No newline at end of file
diff --git a/config/retrodeck/reference_lists/retrodeck_credits.txt b/config/retrodeck/reference_lists/retrodeck_credits.txt
new file mode 100644
index 00000000..c2cf3ac2
--- /dev/null
+++ b/config/retrodeck/reference_lists/retrodeck_credits.txt
@@ -0,0 +1,72 @@
+The Team
+
+---
+
+XargonWan
+
+RetroDECK project founder and also one of the founding members of AmberELEC.
+Grand General of the IPL (Italian Pizza Legion) in the internal pizza war.
+
+---
+
+Lazorne
+
+Community management/outreach, testing, documentation, emulator configurations, Steam Input and feature request / issue management.
+Meme Lord of the Wiki and also the cult leader of the NPC (The Nordic Pizza Cult) also called by the others as "The Pizza Heresy Cult" or "Harbingers of Pizza Chaos". Instigator of the internal pizza war.
+
+---
+
+jiannazzone
+
+Web Development, Community management/outreach, testing, documentation. Have not choosen a side yet in the Pizza War.
+
+---
+
+IceNine451
+
+Creator of the RetroDECK configurator, the RetroDECK Framework and various cool things.
+Freedom loving leader of the MCCP (Murican Cheese Crust Patriots) in the internal pizza war.
+
+---
+
+Lx32
+
+
+Develops various new features, functions and tools.
+1st Commander of the IPL (Italian Pizza Legion) nicknamed Paladin al Taglio in the internal pizza war.
+
+---
+
+WallK
+
+Checks GODOT and other things.
+Pizza Mercenary
+
+---
+
+dottormac
+
+Does bleeding edge cooker testing (lives in the danger zone), some feature suggestions and design.
+
+---
+
+MonkeyX
+Jack of all trades: mainly working on GODOT and Manifest
+
+---
+
+We want give our special thanks to:
+
+- Our Patreon and donors that keeps the build servers running and provide feedback.
+
+- All related emulation, front end and software projects that we are dependent on.
+
+- All people that have put both time and money into emulation projects.
+
+- All the users who help others with support, guidance and good spirit.
+
+- All the users who help with testing and reporting issues.
+
+- All the community creators who creates various art and assets for the community.
+
+You are all the ones that makes this project possible.
diff --git a/config/retrodeck/reference_lists/supported_emulators.cfg b/config/retrodeck/reference_lists/supported_emulators.cfg
new file mode 100644
index 00000000..17f51083
--- /dev/null
+++ b/config/retrodeck/reference_lists/supported_emulators.cfg
@@ -0,0 +1,15 @@
+cemu^/app/bin/Cemu-wrapper
+citra^/var/data/ponzu/Citra/bin/citra-qt
+dolphin^/app/bin/dolphin-emu
+duckstation^/app/bin/duckstation-qt
+mame^/app/bin/mame
+melonds^/app/bin/melonds
+pcsx2^/app/bin/pcsx2-qt
+ppsspp^/app/bin/PPSSPPSDL
+primehack^/app/bin/primehack-wrapper
+retroarch^/app/bin/retroarch
+rpcs3^/app/bin/rpcs3
+ryujinx^/app/bin/Ryujinx.sh
+vita3k^/app/bin/Vita3K
+xemu^/app/bin/xemu
+yuzu^/var/data/ponzu/Yuzu/bin/yuzu
diff --git a/emu-configs/defaults/retrodeck/reference_lists/zip_compressable_extensions.cfg b/config/retrodeck/reference_lists/zip_compressable_extensions.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/reference_lists/zip_compressable_extensions.cfg
rename to config/retrodeck/reference_lists/zip_compressable_extensions.cfg
diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/config/retrodeck/retrodeck.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck/retrodeck.cfg
rename to config/retrodeck/retrodeck.cfg
diff --git a/emu-configs/rpcs3/GuiConfigs/CurrentSettings.ini b/config/rpcs3/GuiConfigs/CurrentSettings.ini
similarity index 100%
rename from emu-configs/rpcs3/GuiConfigs/CurrentSettings.ini
rename to config/rpcs3/GuiConfigs/CurrentSettings.ini
diff --git a/emu-configs/rpcs3/config.yml b/config/rpcs3/config.yml
similarity index 98%
rename from emu-configs/rpcs3/config.yml
rename to config/rpcs3/config.yml
index 2660b26e..53bb6fc5 100644
--- a/emu-configs/rpcs3/config.yml
+++ b/config/rpcs3/config.yml
@@ -20,7 +20,6 @@ Core:
SPU loop detection: false
Max SPURS Threads: 6
SPU Block Size: Mega
- Accurate GETLLAR: false
Accurate SPU DMA: false
Accurate SPU Reservations: true
Accurate Cache Line Stores: false
@@ -104,6 +103,7 @@ Video:
Strict Texture Flushing: false
Multithreaded RSX: false
Relaxed ZCULL Sync: false
+ Force Hardware MSAA Resolve: false
3D Display Mode: Disabled
Debug Program Analyser: false
Accurate ZCULL stats: true
@@ -165,6 +165,7 @@ Audio:
Convert to 16 bit: false
Audio Format: Stereo
Audio Formats: 0
+ Audio Channel Layout: Automatic
Audio Device: "@@@default@@@"
Master Volume: 100
Enable Buffering: true
@@ -186,6 +187,7 @@ Input/Output:
Buzz emulated controller: "Null"
Turntable emulated controller: "Null"
GHLtar emulated controller: "Null"
+ GameTablet emulated controller: Disabled
Pad handler mode: Single-threaded
Keep pads connected: false
Pad handler sleep (microseconds): 1000
@@ -200,6 +202,7 @@ System:
Keyboard Type: English keyboard (US standard)
Enter button assignment: Enter with cross
Console time offset (s): 0
+ System Name: RPCS3-960
PSID high: 0
PSID low: 0
HDD Model Name: ""
diff --git a/emu-configs/rpcs3/evdev_positive_axis.yml b/config/rpcs3/evdev_positive_axis.yml
similarity index 100%
rename from emu-configs/rpcs3/evdev_positive_axis.yml
rename to config/rpcs3/evdev_positive_axis.yml
diff --git a/emu-configs/rpcs3/input_configs/active_profiles.yml b/config/rpcs3/input_configs/active_profiles.yml
similarity index 100%
rename from emu-configs/rpcs3/input_configs/active_profiles.yml
rename to config/rpcs3/input_configs/active_profiles.yml
diff --git a/emu-configs/rpcs3/input_configs/global/Default.yml b/config/rpcs3/input_configs/global/Default.yml
similarity index 100%
rename from emu-configs/rpcs3/input_configs/global/Default.yml
rename to config/rpcs3/input_configs/global/Default.yml
diff --git a/emu-configs/rpcs3/vfs.yml b/config/rpcs3/vfs.yml
similarity index 100%
rename from emu-configs/rpcs3/vfs.yml
rename to config/rpcs3/vfs.yml
diff --git a/emu-configs/ryujinx/Config.json b/config/ryujinx/Config.json
similarity index 100%
rename from emu-configs/ryujinx/Config.json
rename to config/ryujinx/Config.json
diff --git a/emu-configs/ryujinx/profiles/controller/Steam Deck - Neptune.json b/config/ryujinx/profiles/controller/Steam Deck - Neptune.json
similarity index 100%
rename from emu-configs/ryujinx/profiles/controller/Steam Deck - Neptune.json
rename to config/ryujinx/profiles/controller/Steam Deck - Neptune.json
diff --git a/emu-configs/ryujinx/profiles/controller/Steam Virtual Controller.json b/config/ryujinx/profiles/controller/Steam Virtual Controller.json
similarity index 100%
rename from emu-configs/ryujinx/profiles/controller/Steam Virtual Controller.json
rename to config/ryujinx/profiles/controller/Steam Virtual Controller.json
diff --git a/emu-configs/vita3k/config.yml b/config/vita3k/config.yml
similarity index 90%
rename from emu-configs/vita3k/config.yml
rename to config/vita3k/config.yml
index c1114ec2..5cca3861 100644
--- a/emu-configs/vita3k/config.yml
+++ b/config/vita3k/config.yml
@@ -25,10 +25,15 @@ screen-filter: Bilinear
v-sync: true
anisotropic-filtering: 1
texture-cache: true
+async-pipeline-compilation: true
show-compile-shaders: true
hashless-texture-cache: false
+import-textures: false
+export-textures: false
+export-as-png: true
boot-apps-full-screen: true
audio-backend: SDL
+audio-volume: 100
ngs-enable: true
sys-button: 1
sys-lang: 1
@@ -78,16 +83,20 @@ keyboard-button-psbutton: 19
keyboard-gui-toggle-gui: 10
keyboard-gui-fullscreen: 68
keyboard-gui-toggle-touch: 23
+keyboard-toggle-texture-replacement: 0
+keyboard-take-screenshot: 0
user-id: 00
user-auto-connect: true
-dump-textures: false
+user-lang: ""
display-info-message: true
show-welcome: false
+check-for-updates: false
asia-font-support: false
shader-cache: true
spirv-shader: false
+fps-hack: true
current-ime-lang: 4
-psn-status: 0
+psn-signed-in: 0
http-enable: true
http-timeout-attempts: 50
http-timeout-sleep-ms: 100
diff --git a/emu-configs/vita3k/ux0/user/00/user.xml b/config/vita3k/ux0/user/00/user.xml
similarity index 100%
rename from emu-configs/vita3k/ux0/user/00/user.xml
rename to config/vita3k/ux0/user/00/user.xml
diff --git a/emu-configs/xemu/xemu.toml b/config/xemu/xemu.toml
similarity index 100%
rename from emu-configs/xemu/xemu.toml
rename to config/xemu/xemu.toml
diff --git a/emu-configs/yuzu/qt-config.ini b/config/yuzu/qt-config.ini
similarity index 100%
rename from emu-configs/yuzu/qt-config.ini
rename to config/yuzu/qt-config.ini
diff --git a/developer_toolbox/build_retrodeck_locally.sh b/developer_toolbox/build_retrodeck_locally.sh
index 85b9e90e..cbd12fea 100755
--- a/developer_toolbox/build_retrodeck_locally.sh
+++ b/developer_toolbox/build_retrodeck_locally.sh
@@ -2,9 +2,22 @@
# WARNING: run this script from the project root folder, not from here!!
+# Check if script is running with elevated privileges
+if [ "$EUID" -ne 0 ]; then
+ echo "The build might fail without some superuser permissions, please run me with sudo. Continue without sudo? [y/N]"
+ read -r continue_without_sudo
+ if [[ "$continue_without_sudo" != "y" ]]; then
+ exit 1
+ fi
+fi
+
git submodule update --init --recursive
export GITHUB_WORKSPACE="."
+
+# Initialize the Flatpak repo
+ostree init --mode=archive-z2 --repo=${GITHUB_WORKSPACE}/retrodeck-repo
+
cp net.retrodeck.retrodeck.appdata.xml net.retrodeck.retrodeck.appdata.xml.bak
cp net.retrodeck.retrodeck.yml net.retrodeck.retrodeck.yml.bak
@@ -12,7 +25,8 @@ automation_tools/install_dependencies.sh
automation_tools/cooker_build_id.sh
automation_tools/pre_build_automation.sh
automation_tools/cooker_flatpak_portal_add.sh
-automation_tools/appdata_management.sh
+# THIS SCRIPT IS BROKEN HENCE DISABLED FTM
+# automation_tools/appdata_management.sh
automation_tools/flatpak_build_download_only.sh
automation_tools/flatpak_build_only.sh
automation_tools/flatpak_build_bundle.sh
diff --git a/developer_toolbox/inject_framework.sh b/developer_toolbox/inject_framework.sh
index 65a16c35..fd3dedd7 100755
--- a/developer_toolbox/inject_framework.sh
+++ b/developer_toolbox/inject_framework.sh
@@ -22,7 +22,7 @@ else
fi
sudo cp -vfr "res/binding_icons" "$app/retrodeck/binding_icons"
-sudo cp -vfr "emu-configs/"** "$app/retrodeck/emu-configs/"
+sudo cp -vfr "config/"** "$app/retrodeck/config/"
sudo cp -vfr "tools" "$app"
sudo cp -vfr "retrodeck.sh" "$app/bin/"
sudo cp -vfr "functions/"** "$app/libexec/"
diff --git a/emu-configs/defaults/retrodeck/presets/dolphin_presets.cfg b/emu-configs/defaults/retrodeck/presets/dolphin_presets.cfg
deleted file mode 100644
index 0836e0ca..00000000
--- a/emu-configs/defaults/retrodeck/presets/dolphin_presets.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-config_file_format^dolphin
-change^ask_to_exit^ConfirmStop^True^Interface^$dolphinconf^$emuconfigs/dolphin/Dolphin.ini
diff --git a/emu-configs/defaults/retrodeck/presets/duckstation_presets.cfg b/emu-configs/defaults/retrodeck/presets/duckstation_presets.cfg
deleted file mode 100644
index e4a2e66a..00000000
--- a/emu-configs/defaults/retrodeck/presets/duckstation_presets.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-config_file_format^duckstation
-change^cheevos^Enabled^true^Cheevos^$duckstationconf^$emuconfigs/duckstation/settings.ini
-change^cheevos^Username^$cheevos_username^Cheevos^$duckstationconf^$emuconfigs/duckstation/settings.ini
-change^cheevos^Token^$cheevos_token^Cheevos^$duckstationconf^$emuconfigs/duckstation/settings.ini
-change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Cheevos^$duckstationconf^$emuconfigs/duckstation/settings.ini
-change^cheevos_hardcore^ChallengeMode^true^Cheevos^$duckstationconf^$emuconfigs/duckstation/settings.ini
-change^savestate_auto_save^SaveStateOnExit^true^Main^$duckstationconf^$emuconfigs/duckstation/settings.ini
-change^ask_to_exit^ConfirmPowerOff^true^Main^$duckstationconf^$emuconfigs/duckstation/settings.ini
diff --git a/emu-configs/defaults/retrodeck/presets/pcsx2_presets.cfg b/emu-configs/defaults/retrodeck/presets/pcsx2_presets.cfg
deleted file mode 100644
index 134cd00d..00000000
--- a/emu-configs/defaults/retrodeck/presets/pcsx2_presets.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-config_file_format^pcsx2
-change^cheevos^Enabled^true^Achievements^$pcsx2conf^$emuconfigs/PCSX2/PCSX2.ini
-change^cheevos^Username^$cheevos_username^Achievements^$pcsx2conf^$emuconfigs/PCSX2/PCSX2.ini
-change^cheevos^Token^$cheevos_token^Achievements^$pcsx2conf^$emuconfigs/PCSX2/PCSX2.ini
-change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Achievements^$pcsx2conf^$emuconfigs/PCSX2/PCSX2.ini
-change^cheevos_hardcore^ChallengeMode^true^Achievements^$pcsx2conf^$emuconfigs/PCSX2/PCSX2.ini
-change^savestate_auto_save^SaveStateOnShutdown^true^EmuCore^$pcsx2conf^$emuconfigs/PCSX2/PCSX2.ini
-change^ask_to_exit^ConfirmShutdown^true^UI^$pcsx2conf^$emuconfigs/PCSX2/PCSX2.ini
diff --git a/emu-configs/defaults/retrodeck/presets/primehack_presets.cfg b/emu-configs/defaults/retrodeck/presets/primehack_presets.cfg
deleted file mode 100644
index 3eb75c36..00000000
--- a/emu-configs/defaults/retrodeck/presets/primehack_presets.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-config_file_format^primehack
-change^ask_to_exit^ConfirmStop^True^Interface^$primehackconf^$emuconfigs/primehack/Dolphin.ini
diff --git a/emu-configs/defaults/retrodeck/presets/retroarch_presets.cfg b/emu-configs/defaults/retrodeck/presets/retroarch_presets.cfg
deleted file mode 100644
index 2cbc3596..00000000
--- a/emu-configs/defaults/retrodeck/presets/retroarch_presets.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-config_file_format^retroarch-all
-change^cheevos^cheevos_enable^true^^$raconf^$emuconfigs/retroarch/retroarch.cfg
-change^cheevos^cheevos_token^$cheevos_token^^$raconf^$emuconfigs/retroarch/retroarch.cfg
-change^cheevos^cheevos_username^$cheevos_username^^$raconf^$emuconfigs/retroarch/retroarch.cfg
-change^cheevos_hardcore^cheevos_hardcore_mode_enable^true^^$raconf^$emuconfigs/retroarch/retroarch.cfg
-change^quick_resume^savestate_auto_load^true^^$raconf^$emuconfigs/retroarch/retroarch.cfg
-change^quick_resume^savestate_auto_save^true^^$raconf^$emuconfigs/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/retrodeck/reference_lists/retrodeck_credits.txt b/emu-configs/defaults/retrodeck/reference_lists/retrodeck_credits.txt
deleted file mode 100644
index 49d44557..00000000
--- a/emu-configs/defaults/retrodeck/reference_lists/retrodeck_credits.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-Credits & The Team
-
-This is the page where we try to introduce the team and thank everyone who have contributed to the project so far.
-If you feel you have contributed to the project but lacks mention, please contact us on discord!
-
-The Team
-XargonWan
-RetroDECK project founder and also one of the founding members of AmberELEC.
-
-IceNine451
-Creator of the RetroDECK configurator and the RetroDECK Framework.
-
-Lazorne
-Community management/outreach, testing, documentation and Wiki Lord.
-
-WallK
-Works on Godot Features.
-
-LX32
-Works on a many projects.
-
-dottormac
-Tester
-
-
-Collaborators
-Leon Styhre
-Maker of EmulationStation Desktop Edition
-
-anthonycaccese
-Theme creator for ES-DE and AmberELEC
-
-
-Additional credits
-RavenKilit
-Former Beta Tester and AmberELEC contributor
-
-MorGuux
-Made the RetroDECK steamdb graphics for the old logo
-
-Pixelguin
-Made the new logo and steamdb graphics
-
-teotwaki
-Generous cloud hosting sponsor
-
-Niroku / Atari
-Helps with community management, is also part of Batocera
-
-Gabeboii
-Webmaster
-
-Draco
-Former server admiistrator and code consultant
-
-ItzSelenux
-Maker of pixelitos
-
-Kenny.nl
-The Kenny.nl project provides several free game assets under open licenses.
-
-
-Special Thanks
-
-We want give special thanks to:
-
- Our Patreons that keeps the build servers running and provide feedback.
- All related emulation projects, such as Batocera and AmberELEC where we are taking our inspiration.
- All people that have put both time and money into emulation projects.
- All the users who help others with support, guidance and good spirit.
- All the users who help with testing and reporting issues.
- All the community creators who creates various art and assets for the community.
-
-You are the ones that makes this project possible.
diff --git a/functions/050_save_migration.sh b/functions/050_save_migration.sh
index b75672b4..4eaf7dc0 100644
--- a/functions/050_save_migration.sh
+++ b/functions/050_save_migration.sh
@@ -6,8 +6,8 @@ save_migration() {
then
# ROMs on SD card
roms_folder="$default_sd/retrodeck/roms"
- if [[ ! -L $rdhome && ! -L $rdhome/roms ]]; then # Add a roms folder symlink back to ~/retrodeck if missing, to fix things like PS2 autosaves until user migrates whole ~retrodeck directory
- ln -s $roms_folder $rdhome/roms
+ if [[ ! -L "$rdhome" && ! -L "$rdhome/roms" ]]; then # Add a roms folder symlink back to ~/retrodeck if missing, to fix things like PS2 autosaves until user migrates whole ~retrodeck directory
+ ln -s $roms_folder "$rdhome/roms"
fi
else
# ROMs on Internal
@@ -30,7 +30,7 @@ save_migration() {
# Doing the dir prep as we don't know from which version we came
dir_prep "$media_folder" "/var/config/ES-DE/downloaded_media"
dir_prep "$themes_folder" "/var/config/ES-DE/themes"
- create_dir $rdhome/logs #this was added later, maybe safe to remove in a few versions
+ create_dir "$rdhome/logs" #this was added later, maybe safe to remove in a few versions
# Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed
cp -fv /app/retrodeck/es_settings.xml /var/config/ES-DE/settings/es_settings.xml
@@ -39,13 +39,13 @@ save_migration() {
# Perform save and state migration if needed
# Moving PCSX2 Saves
- mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2
- mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards
+ mv -fv /var/config/PCSX2/sstates/* "$rdhome/states/ps2/pcsx2"
+ mv -fv /var/config/PCSX2/memcards/* "$rdhome/saves/ps2/memcards"
# Moving Citra saves from legacy location to 0.5.0b structure
- mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra
- rmdir $rdhome/saves/Citra # Old folder cleanup
+ mv -fv "$rdhome/saves/Citra/"* "$rdhome/saves/n3ds/citra"
+ rmdir "$rdhome/saves/Citra" # Old folder cleanup
versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves
@@ -54,7 +54,7 @@ save_migration() {
save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip"
state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip"
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="You are updating to a version of RetroDECK where save file locations have changed!\n\nYour existing files will be backed up for safety and then sorted automatically.\n\nIf a file cannot be sorted automatically it will remain where it is for manual sorting.\n\nPLEASE BE PATIENT! This process can take several minutes if you have a large ROM library."
@@ -71,9 +71,9 @@ save_migration() {
current_dest_folder=
gamestoskip=
- tar -C $rdhome -czf $save_backup_file saves # Backup save directory for safety
+ tar -C "$rdhome" -czf $save_backup_file saves # Backup save directory for safety
log i "Saves backed up to" $save_backup_file $migration_logfile
- tar -C $rdhome -czf $state_backup_file states # Backup state directory for safety
+ tar -C "$rdhome" -czf $state_backup_file states # Backup state directory for safety
log i "States backed up to" $state_backup_file $migration_logfile
(
@@ -144,7 +144,7 @@ save_migration() {
done
) |
- zenity --progress \
+ rd_zenity --progress \
--icon-name=net.retrodeck.retrodeck \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title="Processing Files" \
@@ -154,14 +154,14 @@ save_migration() {
--auto-close
if [[ $(cat $migration_logfile | grep "ERROR" | wc -l) -eq 0 ]]; then
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="The migration process has sorted all of your files automatically.\n\nEverything should be working normally, if you experience any issues please check the RetroDECK wiki or contact us directly on the Discord."
else
cat $migration_logfile | grep "ERROR" > "$rdhome/manual_sort_needed.log"
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="The migration process was unable to sort $(cat $migration_logfile | grep "ERROR" | wc -l) files automatically.\n\nThese files will need to be moved manually to their new locations, find more detail on the RetroDECK wiki.\n\nA log of the files that need manual sorting can be found at $rdhome/manual_sort_needed.log"
diff --git a/functions/checks.sh b/functions/checks.sh
index 2bd9af51..bf769850 100644
--- a/functions/checks.sh
+++ b/functions/checks.sh
@@ -51,7 +51,7 @@ check_for_version_update() {
if [[ ! "$update_ignore" == "$online_version" ]]; then
if [[ "$update_repo" == "RetroDECK" ]] && [[ $(sed -e 's/[\.a-z]//g' <<< $version) -le $(sed -e 's/[\.a-z]//g' <<< $online_version) ]]; then
- # choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Ignore this version" \
+ # choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Ignore this version" \
# --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
# --title "RetroDECK Update Available" \
# --text="There is a new version of RetroDECK on the stable release channel $online_version. Would you like to update to it?\n\n(depending on your internet speed this could takes several minutes).")
@@ -65,7 +65,7 @@ check_for_version_update() {
# (
# flatpak-spawn --host flatpak update --noninteractive -y net.retrodeck.retrodeck
# ) |
- # zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ # rd_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 Updater" \
# --text="Upgrade in process please wait (this could takes several minutes)."
@@ -74,7 +74,7 @@ check_for_version_update() {
# fi
# TODO: add the logic to check and update the branch from the configuration file
log i "Showing new version found dialog"
- choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Ignore this version" \
+ choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Ignore this version" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK - New Update Available" \
--text="There is a new version of RetroDECK available: $online_version .\nYou can easily update from the app store you have installed, examples: KDE Discover or Gnome Software.\n\nIf you would like to ignore this notification, click the \"Ignore this version\" button.")
@@ -85,7 +85,7 @@ check_for_version_update() {
fi
elif [[ "$update_repo" == "RetroDECK-cooker" ]] && [[ ! $version == $online_version ]]; then
log i "Showing update request dialog as \"$online_version\" was found and is greater then \"$version\""
- choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Ignore this version" \
+ choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Ignore this version" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK - New Cooker Version Available" \
--text="There is a more recent version of RetroDECK cooker.\nYou are running version $hard_version . The latest is $online_version .\n\nWould you like to update?\nIf you would like to ignore this notification, click the \"Ignore this version\" button.\n\nIf you would like to disable these notifications entirely: disable Online Update Checks in the Configurator.")
@@ -99,7 +99,7 @@ check_for_version_update() {
log i "Selected: \"Yes\""
configurator_generic_dialog "RetroDECK Online Update" "The update process may take several minutes.\n\nAfter the update is complete, RetroDECK will close. When you run it again you will be using the latest version."
(
- local latest_cooker_download=$(curl --silent https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases/latest | grep '"browser_download_url":.*flatpak' | grep -v '\.sha' | sed -E 's/.*"([^"]+)".*/\1/')
+ local latest_cooker_download=$(curl --silent https://api.github.com/repos/RetroDECK/Cooker/releases/latest | grep '"browser_download_url":.*flatpak' | grep -v '\.sha' | sed -E 's/.*"([^"]+)".*/\1/')
local temp_folder="$rdhome/RetroDECK_Updates"
create_dir $temp_folder
log i "Downloading version \"$online_version\" in \"$temp_folder/RetroDECK-cooker.flatpak\" from url: \"$latest_cooker_download\""
@@ -141,7 +141,7 @@ check_for_version_update() {
rm -rf "$temp_folder" # Cleanup old bundles to save space
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 Updater" \
--text="RetroDECK is updating to the latest version, please wait."
@@ -156,11 +156,13 @@ check_for_version_update() {
}
validate_input() {
- while IFS="^" read -r input action
+ while IFS="^" read -r input action || [[ -n "$input" ]];
do
- if [[ "$input" == "$1" ]]; then
- eval "$action"
- input_validated="true"
+ if [[ ! $input == "#"* ]] && [[ ! -z "$input" ]]; then
+ if [[ "$input" == "$1" ]]; then
+ eval "$action"
+ input_validated="true"
+ fi
fi
done < $input_validation
}
diff --git a/functions/compression.sh b/functions/compression.sh
index d33f5a2d..4b0bcdd8 100644
--- a/functions/compression.sh
+++ b/functions/compression.sh
@@ -28,7 +28,7 @@ compress_game() {
fi
if [[ $post_compression_cleanup == "true" ]]; then # Remove file(s) if requested
- if [[ -f "${file%.*}.$compatible_compression_format" ]]; then
+ if [[ -f "${file%.*}.$1" ]]; then
log i "Performing post-compression file cleanup"
if [[ "$file" == *".cue" ]]; then
local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file")
@@ -38,15 +38,14 @@ compress_game() {
log i "Removing file $file_path/$line"
rm -f "$file_path/$line"
done < <(printf '%s\n' "$cue_bin_files")
- log i "Removing file $(realpath $file)"
+ log i "Removing file $(realpath "$file")"
rm -f $(realpath "$file")
else
- log i "Removing file $(realpath $file)"
+ log i "Removing file $(realpath "$file")"
rm -f "$(realpath "$file")"
fi
else
- log i "Compressed file ${file%.*}.$compatible_compression_format not found, skipping original file deletion"
- configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "A compressed version of the file was not found, skipping deletion."
+ log i "Compressed file ${file%.*}.$1 not found, skipping original file deletion"
fi
fi
}
@@ -155,19 +154,19 @@ find_compatible_games() {
do
local compatible_compression_format=$(find_compatible_compression_format "$game")
if [[ $compression_format == "chd" ]]; then
- if [[ $compatible_compression_format == "chd" ]]; then
+ if [[ $compatible_compression_format == "chd" && ! -f "$(echo ${game%.*}.chd)" ]]; then
all_compressable_games=("${all_compressable_games[@]}" "$game")
compressable_games_list=("${compressable_games_list[@]}" "false" "${game#$roms_folder}" "$game")
echo "${game}"^"$compatible_compression_format" >> "$godot_compression_compatible_games"
fi
elif [[ $compression_format == "zip" ]]; then
- if [[ $compatible_compression_format == "zip" ]]; then
+ if [[ $compatible_compression_format == "zip" && ! -f "$(echo ${game%.*}.zip)" ]]; then
all_compressable_games=("${all_compressable_games[@]}" "$game")
compressable_games_list=("${compressable_games_list[@]}" "false" "${game#$roms_folder}" "$game")
echo "${game}"^"$compatible_compression_format" >> "$godot_compression_compatible_games"
fi
elif [[ $compression_format == "rvz" ]]; then
- if [[ $compatible_compression_format == "rvz" ]]; then
+ if [[ $compatible_compression_format == "rvz" && ! -f "$(echo ${game%.*}.rvz)" ]]; then
all_compressable_games=("${all_compressable_games[@]}" "$game")
compressable_games_list=("${compressable_games_list[@]}" "false" "${game#$roms_folder}" "$game")
echo "${game}"^"$compatible_compression_format" >> "$godot_compression_compatible_games"
diff --git a/functions/configurator_functions.sh b/functions/configurator_functions.sh
index b654105e..768215b8 100644
--- a/functions/configurator_functions.sh
+++ b/functions/configurator_functions.sh
@@ -10,24 +10,26 @@ check_bios_files() {
fi
touch "$godot_bios_files_checked"
- while IFS="^" read -r bios_file bios_subdir bios_hash bios_system bios_desc
+ while IFS="^" read -r bios_file bios_subdir bios_hash bios_system bios_desc || [[ -n "$bios_file" ]];
do
- bios_file_found="No"
- bios_hash_matched="No"
- if [[ -f "$bios_folder/$bios_subdir$bios_file" ]]; then
- bios_file_found="Yes"
- if [[ $bios_hash == "Unknown" ]]; then
- bios_hash_matched="Unknown"
- elif [[ $(md5sum "$bios_folder/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
- bios_hash_matched="Yes"
+ if [[ ! $bios_file == "#"* ]] && [[ ! -z "$bios_file" ]]; then
+ bios_file_found="No"
+ bios_hash_matched="No"
+ if [[ -f "$bios_folder/$bios_subdir$bios_file" ]]; then
+ bios_file_found="Yes"
+ if [[ $bios_hash == "Unknown" ]]; then
+ bios_hash_matched="Unknown"
+ elif [[ $(md5sum "$bios_folder/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
+ bios_hash_matched="Yes"
+ fi
+ fi
+ if [[ "$1" == "basic" ]]; then
+ bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc")
+ echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc" >> "$godot_bios_files_checked" # Godot data transfer temp file
+ else
+ bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc" "$bios_subdir" "$bios_hash")
+ echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc"^"$bios_subdir"^"$bios_hash" >> "$godot_bios_files_checked" # Godot data transfer temp file
fi
- fi
- if [[ "$1" == "basic" ]]; then
- bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc")
- echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc" >> "$godot_bios_files_checked" # Godot data transfer temp file
- else
- bios_checked_list=("${bios_checked_list[@]}" "$bios_file" "$bios_system" "$bios_file_found" "$bios_hash_matched" "$bios_desc" "$bios_subdir" "$bios_hash")
- echo "$bios_file"^"$bios_system"^"$bios_file_found"^"$bios_hash_matched"^"$bios_desc"^"$bios_subdir"^"$bios_hash" >> "$godot_bios_files_checked" # Godot data transfer temp file
fi
done < $bios_checklist
}
@@ -42,6 +44,14 @@ find_empty_rom_folders() {
empty_rom_folders_list=()
all_empty_folders=()
+ all_helper_files=()
+
+ while IFS='^' read -r file dest || [[ -n "$file" ]];
+ do
+ if [[ ! "$file" == "#"* ]] && [[ ! -z "$file" ]]; then
+ all_helper_files=("${all_helper_files[@]}" "$file")
+ fi
+ done < "$helper_files_list"
for system in $(find "$roms_folder" -mindepth 1 -maxdepth 1 -type d -printf '%f\n')
do
@@ -59,6 +69,21 @@ find_empty_rom_folders() {
empty_rom_folders_list=("${empty_rom_folders_list[@]}" "false" "$(realpath $dir)")
all_empty_folders=("${all_empty_folders[@]}" "$(realpath $dir)")
echo "$(realpath $dir)" >> "$godot_empty_roms_folders" # Godot data transfer temp file
+ elif [[ $count -eq 2 ]] && [[ "$files" =~ "systeminfo.txt" ]]; then
+ # Directory contains 2 files, one of which is "systeminfo.txt"
+ for helper_file in ${all_helper_files[@]} # Compare helper file list to dir file list
+ do
+ if [[ "$files" =~ "$helper_file" ]]; then
+ contains_helper_file="true" # Helper file was found
+ break
+ fi
+ done
+ if [[ "$contains_helper_file" == "true" ]]; then
+ # Directory contains only systeminfo.txt and a helper file
+ empty_rom_folders_list=("${empty_rom_folders_list[@]}" "false" "$(realpath $dir)")
+ all_empty_folders=("${all_empty_folders[@]}" "$(realpath $dir)")
+ echo "$(realpath $dir)" >> "$godot_empty_roms_folders" # Godot data transfer temp file
+ fi
fi
done
}
diff --git a/functions/dialogs.sh b/functions/dialogs.sh
index 3772c7e9..613be8d2 100644
--- a/functions/dialogs.sh
+++ b/functions/dialogs.sh
@@ -1,7 +1,5 @@
#!/bin/bash
-source /app/libexec/functions.sh
-
# Dialog colors
purple="#a864fc"
blue="#6fbfff"
@@ -10,7 +8,7 @@ debug_dialog() {
# This function is for displaying commands run by the Configurator without actually running them
# USAGE: debug_dialog "command"
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Debug Dialog" \
--text="$1"
@@ -19,7 +17,7 @@ debug_dialog() {
configurator_process_complete_dialog() {
# This dialog shows when a process is complete.
# USAGE: configurator_process_complete_dialog "process text"
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Quit" --extra-button="OK" \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Quit" --extra-button="OK" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Process Complete" \
--text="The process of $1 is now complete.\n\nYou may need to quit and restart RetroDECK for your changes to take effect\n\nClick OK to return to the Main Menu or Quit to quit RetroDECK."
@@ -35,7 +33,7 @@ configurator_generic_dialog() {
# This dialog is for showing temporary messages before another process happens.
# USAGE: configurator_generic_dialog "title text" "info text"
log i "Showing a configurator_generic_dialog"
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "$1" \
--text="$2"
@@ -45,7 +43,7 @@ configurator_generic_question_dialog() {
# This dialog provides a generic dialog for getting a response from a user.
# USAGE: $(configurator_generic_question_dialog "title text" "action text")
# This function will return a "true" if the user clicks "Yes", and "false" if they click "No".
- choice=$(zenity --title "RetroDECK - $1" --question --no-wrap --cancel-label="No" --ok-label="Yes" \
+ choice=$(rd_zenity --title "RetroDECK - $1" --question --no-wrap --cancel-label="No" --ok-label="Yes" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="$2")
if [[ $? == "0" ]]; then
@@ -59,7 +57,7 @@ configurator_destination_choice_dialog() {
# This dialog is for making things easy for new users to move files to common locations. Gives the options for "Internal", "SD Card" and "Custom" locations.
# USAGE: $(configurator_destination_choice_dialog "folder being moved" "action text")
# This function returns one of the values: "Back" "Internal Storage" "SD Card" "Custom Location"
- choice=$(zenity --title "RetroDECK Configurator Utility - Moving $1 folder" --info --no-wrap --ok-label="Back" --extra-button="Internal Storage" --extra-button="SD Card" --extra-button="Custom Location" \
+ choice=$(rd_zenity --title "RetroDECK Configurator Utility - Moving $1 folder" --info --no-wrap --ok-label="Back" --extra-button="Internal Storage" --extra-button="SD Card" --extra-button="Custom Location" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="$2")
@@ -75,7 +73,7 @@ configurator_reset_confirmation_dialog() {
# This dialog provides a confirmation for any reset functions, before the reset is actually performed.
# USAGE: $(configurator_reset_confirmation_dialog "emulator being reset" "action text")
# This function will return a "true" if the user clicks Confirm, and "false" if they click Cancel.
- choice=$(zenity --title "RetroDECK Configurator Utility - Reset $1" --question --no-wrap --cancel-label="Cancel" --ok-label="Confirm" \
+ choice=$(rd_zenity --title "RetroDECK Configurator Utility - Reset $1" --question --no-wrap --cancel-label="Cancel" --ok-label="Confirm" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--text="$2")
if [[ $? == "0" ]]; then
@@ -135,7 +133,7 @@ configurator_move_folder_dialog() {
configurator_generic_dialog "RetroDECK Configurator - Move Folder" "The moving process was not completed, please try again."
fi
else # If there isn't enough space in the picked destination
- zenity --icon-name=net.retrodeck.retrodeck --error --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Move Directories" \
--text="The destination directory you have selected does not have enough free space for the files you are trying to move.\n\nPlease select a new destination or free up some space."
@@ -172,7 +170,7 @@ changelog_dialog() {
if [[ "$1" == "all" ]]; then
xml sel -t -m "//release" -v "concat('RetroDECK version: ', @version)" -n -v "description" -n $rd_appdata | awk '{$1=$1;print}' | sed -e '/./b' -e :n -e 'N;s/\n$//;tn' > "/var/config/retrodeck/changelog.txt"
- zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Changelogs" \
--filename="/var/config/retrodeck/changelog.txt"
@@ -181,7 +179,7 @@ changelog_dialog() {
echo -e "In RetroDECK version $1, the following changes were made:\n$version_changelog" > "/var/config/retrodeck/changelog-partial.txt" 2>/dev/null
- zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Changelogs" \
--filename="/var/config/retrodeck/changelog-partial.txt"
@@ -192,7 +190,7 @@ get_cheevos_token_dialog() {
# This function will return a RetroAchvievements token from a valid username and password, will return "login failed" otherwise
# USAGE: get_cheevos_token_dialog
- local cheevos_info=$(zenity --forms --title="Cheevos" \
+ local cheevos_info=$(rd_zenity --forms --title="Cheevos" \
--text="Username and password." \
--separator="^" \
--add-entry="Username" \
@@ -219,7 +217,7 @@ desktop_mode_warning() {
if [[ $(check_desktop_mode) == "true" && $desktop_mode_warning == "true" ]]; then
local message='You appear to be running RetroDECK in the Steam Deck'\''s Desktop mode!\n\nSome functions of RetroDECK may not work properly in Desktop mode, such as the Steam Deck'\''s normal controls.\n\nRetroDECK is best enjoyed in Game mode!\n\nDo you still want to proceed?'
log i "Showing message:\n$message"
- choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Never show this again" \
+ choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Never show this again" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Desktop Mode Warning" \
--text="$message")
@@ -247,7 +245,7 @@ low_space_warning() {
if [[ "$used_percent" -ge 90 && -d "$HOME/retrodeck" ]]; then # If there is any RetroDECK data on the main drive to move
local message='Your main drive is over 90% full!\n\nIf your drive fills completely this can lead to data loss or system crash.\n\nPlease consider moving some RetroDECK folders to other storage locations using the Configurator.'
log i "Showing message:\n$message"
- choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Never show this again" \
+ choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Never show this again" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Low Space Warning" \
--text="$message")
diff --git a/functions/framework.sh b/functions/framework.sh
index 92f3b32e..08e736f3 100644
--- a/functions/framework.sh
+++ b/functions/framework.sh
@@ -410,47 +410,44 @@ deploy_single_patch() {
cp -fv "$1" "$3" # Create a copy of the original file to be patched
-while IFS="^" read -r action current_section setting_name setting_value system_name
+while IFS="^" read -r action current_section setting_name setting_value system_name || [[ -n "$action" ]];
do
+ if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
+ case $action in
- case $action in
+ "disable_file" )
+ eval disable_file "$setting_name"
+ ;;
- "disable_file" )
- eval disable_file "$setting_name"
- ;;
+ "enable_file" )
+ eval enable_file "$setting_name"
+ ;;
- "enable_file" )
- eval enable_file "$setting_name"
- ;;
+ "add_setting_line" )
+ add_setting_line "$3" "$setting_name" "$system_name" "$current_section"
+ ;;
- "add_setting_line" )
- add_setting_line "$3" "$setting_name" "$system_name" "$current_section"
- ;;
+ "disable_setting" )
+ disable_setting "$3" "$setting_name" "$system_name" "$current_section"
+ ;;
- "disable_setting" )
- disable_setting "$3" "$setting_name" "$system_name" "$current_section"
- ;;
+ "enable_setting" )
+ enable_setting "$3" "$setting_name" "$system_name" "$current_section"
+ ;;
- "enable_setting" )
- enable_setting "$3" "$setting_name" "$system_name" "$current_section"
- ;;
+ "change" )
+ if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
+ eval setting_value="$setting_value"
+ fi
+ set_setting_value "$3" "$setting_name" "$setting_value" "$system_name" "$current_section"
+ ;;
- "change" )
- if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
- eval setting_value="$setting_value"
- fi
- set_setting_value "$3" "$setting_name" "$setting_value" "$system_name" "$current_section"
- ;;
+ * )
+ log e "Config line malformed: $action"
+ ;;
- *"#"* )
- # Comment line in patch file
- ;;
-
- * )
- echo "Config line malformed: $action"
- ;;
-
- esac
+ esac
+ fi
done < "$2"
}
@@ -461,60 +458,58 @@ deploy_multi_patch() {
# Patch file format should be as follows, with optional entries in (). Optional settings can be left empty, but must still have ^ dividers:
# $action^($current_section)^$setting_name^$setting_value^$system_name^($config file)
-while IFS="^" read -r action current_section setting_name setting_value system_name config_file
+while IFS="^" read -r action current_section setting_name setting_value system_name config_file || [[ -n "$action" ]];
do
- case $action in
+ if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
+ case $action in
- "disable_file" )
- if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
- eval config_file="$config_file"
- fi
- disable_file "$config_file"
- ;;
+ "disable_file" )
+ if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
+ eval config_file="$config_file"
+ fi
+ disable_file "$config_file"
+ ;;
- "enable_file" )
- if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
- eval config_file="$config_file"
- fi
- enable_file "$config_file"
- ;;
+ "enable_file" )
+ if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
+ eval config_file="$config_file"
+ fi
+ enable_file "$config_file"
+ ;;
- "add_setting_line" )
- if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
- eval config_file="$config_file"
- fi
- add_setting_line "$config_file" "$setting_name" "$system_name" "$current_section"
- ;;
+ "add_setting_line" )
+ if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
+ eval config_file="$config_file"
+ fi
+ add_setting_line "$config_file" "$setting_name" "$system_name" "$current_section"
+ ;;
- "disable_setting" )
- if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
- eval config_file="$config_file"
- fi
- disable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
- ;;
+ "disable_setting" )
+ if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
+ eval config_file="$config_file"
+ fi
+ disable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
+ ;;
- "enable_setting" )
- if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
- eval config_file="$config_file"
- fi
- enable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
- ;;
+ "enable_setting" )
+ if [[ "$config_file" = \$* ]]; then # If patch setting value is a reference to an internal variable name
+ eval config_file="$config_file"
+ fi
+ enable_setting "$config_file" "$setting_name" "$system_name" "$current_section"
+ ;;
- "change" )
- if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
- eval setting_value="$setting_value"
- fi
- set_setting_value "$config_file" "$setting_name" "$setting_value" "$system_name" "$current_section"
- ;;
+ "change" )
+ if [[ "$setting_value" = \$* ]]; then # If patch setting value is a reference to an internal variable name
+ eval setting_value="$setting_value"
+ fi
+ set_setting_value "$config_file" "$setting_name" "$setting_value" "$system_name" "$current_section"
+ ;;
- *"#"* )
- # Comment line in patch file
- ;;
+ * )
+ log e "Config line malformed: $action"
+ ;;
- * )
- echo "Config line malformed: $action"
- ;;
-
- esac
+ esac
+ fi
done < "$1"
}
diff --git a/functions/global.sh b/functions/global.sh
index 5ae8c08d..a8293060 100644
--- a/functions/global.sh
+++ b/functions/global.sh
@@ -2,6 +2,10 @@
# This file is containing some global function needed for the script such as the config file tools
+# pathing the retrodeck components provided libraries
+# now disabled as we are importing everything in /app/lib. In case we are breaking something we need to restore this approach
+# export LD_LIBRARY_PATH="/app/retrodeck/lib:/app/retrodeck/lib/debug:/app/retrodeck/lib/pkgconfig:$LD_LIBRARY_PATH"
+
source /app/libexec/050_save_migration.sh
source /app/libexec/checks.sh
source /app/libexec/compression.sh
@@ -13,42 +17,42 @@ source /app/libexec/framework.sh
source /app/libexec/post_update.sh
source /app/libexec/prepare_component.sh
source /app/libexec/presets.sh
-source /app/libexec/configurator_fuctions.sh
+source /app/libexec/configurator_functions.sh
# Static variables
rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path
rd_conf_backup="/var/config/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update
-rd_logs_folder="/var/config/retrodeck/logs" # Static location to write all RetroDECK-related logs
-emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
-rd_defaults="$emuconfigs/defaults/retrodeck/retrodeck.cfg" # A default RetroDECK config file
+rd_logs_folder="/var/config/retrodeck/logs" # Static location to write all RetroDECK-related logs
+config="/app/retrodeck/config" # folder with all the default emulator configs
+rd_defaults="$config/retrodeck/retrodeck.cfg" # A default RetroDECK config file
rd_update_patch="/var/config/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates
-bios_checklist="$emuconfigs/defaults/retrodeck/reference_lists/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
-compression_targets="$emuconfigs/defaults/retrodeck/reference_lists/compression_targets.cfg" # A config file containing supported compression types per system
-zip_compressable_extensions="$emuconfigs/defaults/retrodeck/reference_lists/zip_compressable_extensions.cfg" # A config file containing every file extension that is allowed to be compressed to .zip format, because there are a lot!
-easter_egg_checklist="$emuconfigs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up
-input_validation="$emuconfigs/defaults/retrodeck/reference_lists/input_validation.cfg" # A config file listing valid CLI inputs
-finit_options_list="$emuconfigs/defaults/retrodeck/reference_lists/finit_options_list.cfg" # A config file listing available optional installs during finit
+bios_checklist="$config/retrodeck/reference_lists/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
+compression_targets="$config/retrodeck/reference_lists/compression_targets.cfg" # A config file containing supported compression types per system
+zip_compressable_extensions="$config/retrodeck/reference_lists/zip_compressable_extensions.cfg" # A config file containing every file extension that is allowed to be compressed to .zip format, because there are a lot!
+easter_egg_checklist="$config/retrodeck/reference_lists/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up
+input_validation="$config/retrodeck/reference_lists/input_validation.cfg" # A config file listing valid CLI inputs
+finit_options_list="$config/retrodeck/reference_lists/finit_options_list.cfg" # A config file listing available optional installs during finit
splashscreen_dir="/var/config/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens
current_splash_file="/var/config/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot
default_splash_file="/var/config/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
-multi_user_emulator_config_dirs="$emuconfigs/defaults/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
+multi_user_emulator_config_dirs="$config/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
rd_es_themes="/app/share/es-de/themes" # The directory where themes packaged with RetroDECK are stored
lockfile="/var/config/retrodeck/.lock" # Where the lockfile is located
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path # A static location for RetroDECK logs to be written
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
+rd_repo="https://github.com/RetroDECK/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_1="https://flathub.org" # The URL of a common internet target for testing network access
remote_network_target_2="$rd_repo" # The URL of a common internet target for testing network access
remote_network_target_3="https://one.one.one.one" # The URL of a common internet target for testing network access
-helper_files_folder="$emuconfigs/defaults/retrodeck/helper_files" # The parent folder of RetroDECK documentation files for deployment
-helper_files_list="$emuconfigs/defaults/retrodeck/reference_lists/helper_files_list.cfg" # The list of files to be deployed and where they go
+helper_files_folder="$config/retrodeck/helper_files" # The parent folder of RetroDECK documentation files for deployment
+helper_files_list="$config/retrodeck/reference_lists/helper_files_list.cfg" # The list of files to be deployed and where they go
rd_appdata="/app/share/appdata/net.retrodeck.retrodeck.appdata.xml" # The shipped appdata XML file for this version
rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2023_0228_05fe32f5dc8c78acbcd84d36ee7fdc5b/PS3UPDAT.PUP"
RA_API_URL="https://retroachievements.org/dorequest.php" # API URL for RetroAchievements.org
-presets_dir="$emuconfigs/defaults/retrodeck/presets" # Repository for all system preset config files
-incompatible_presets_reference_list="$emuconfigs/defaults/retrodeck/reference_lists/incompatible_presets.cfg" # A config file listing all incompatible presets for reference (eg. cannot have borders and widescreen enabled simultaniously)
-pretty_system_names_reference_list="$emuconfigs/defaults/retrodeck/reference_lists/pretty_system_names.cfg" # An internal translation list for turning internal names (eg. gbc) to "pretty" names (Nintendo GameBoy Color)
+presets_dir="$config/retrodeck/presets" # Repository for all system preset config files
+incompatible_presets_reference_list="$config/retrodeck/reference_lists/incompatible_presets.cfg" # A config file listing all incompatible presets for reference (eg. cannot have borders and widescreen enabled simultaniously)
+pretty_system_names_reference_list="$config/retrodeck/reference_lists/pretty_system_names.cfg" # An internal translation list for turning internal names (eg. gbc) to "pretty" names (Nintendo GameBoy Color)
# Godot data transfer temp files
@@ -118,8 +122,7 @@ rpcs3vfsconf="/var/config/rpcs3/vfs.yml"
# Vita3k config files
-vita3kconf="/var/data/Vita3K/config.yml"
-vita3kusrconfdir="$bios_folder/Vita3K/Vita3K"
+vita3kconf="/var/config/Vita3K/config.yml"
# MAME-SA config files
@@ -200,7 +203,6 @@ else
fi
conf_read
- #tmplog_merger # This function is tempry(?) removed
# Verify rdhome is where it is supposed to be.
if [[ ! -d "$rdhome" ]]; then
diff --git a/functions/multi_user.sh b/functions/multi_user.sh
index 10fced39..d18e220d 100644
--- a/functions/multi_user.sh
+++ b/functions/multi_user.sh
@@ -2,7 +2,7 @@
multi_user_set_default_dialog() {
chosen_user="$1"
- choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="No and don't ask again" \
+ choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="No and don't ask again" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Default User" \
--text="Would you like to set $chosen_user as the default user?\n\nIf the current user cannot be determined from the system, the default will be used.\nThis normally only happens in Desktop Mode.\n\nIf you would like to be asked which user is playing every time, click \"No and don't ask again\"")
@@ -23,7 +23,7 @@ do
full_userlist=("${full_userlist[@]}" "$user")
done < <(ls -1 "$multi_user_data_folder")
-chosen_user=$(zenity \
+chosen_user=$(rd_zenity \
--list --width=1200 --height=720 \
--ok-label="Select User" \
--text="Choose the current user:" \
@@ -65,7 +65,7 @@ multi_user_disable_multi_user_mode() {
full_userlist=("${full_userlist[@]}" "$user")
done < <(ls -1 "$multi_user_data_folder")
- single_user=$(zenity \
+ single_user=$(rd_zenity \
--list --width=1200 --height=720 \
--ok-label="Select User" \
--text="Choose the current user:" \
@@ -125,7 +125,7 @@ multi_user_determine_current_user() {
multi_user_setup_new_user
else # If running in Desktop mode for the first time
configurator_generic_dialog "RetroDECK Multi-User Mode" "The current user could not be determined from the system and there is no existing userlist.\n\nPlease enter the Steam account username (not profile name) into the next dialog, or run RetroDECK in game mode."
- if zenity --entry \
+ if rd_zenity --entry \
--title="Specify Steam username" \
--text="Enter Steam username:"
then # User clicked "OK"
@@ -149,7 +149,7 @@ multi_user_determine_current_user() {
multi_user_return_to_single_user() {
single_user="$1"
- echo "Returning to single-user mode for $single_user"
+ log i "Returning to single-user mode for $single_user"
unlink "$saves_folder"
unlink "$states_folder"
unlink "$rd_conf"
@@ -182,7 +182,7 @@ multi_user_return_to_single_user() {
multi_user_setup_new_user() {
# TODO: RPCS3 one-offs
- echo "Setting up new user"
+ log i "Setting up new user"
unlink "$saves_folder"
unlink "$states_folder"
dir_prep "$multi_user_data_folder/$SteamAppUser/saves" "$saves_folder"
@@ -196,8 +196,8 @@ multi_user_setup_new_user() {
mv "/var/config/retroarch/retroarch.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg"
mv "/var/config/retroarch/retroarch-core-options.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg"
else
- cp "$emuconfigs/retroarch/retroarch.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg"
- cp "$emuconfigs/retroarch/retroarch-core-options.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg"
+ cp "$config/retroarch/retroarch.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg"
+ cp "$config/retroarch/retroarch-core-options.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg"
set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch"
set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch"
set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch"
@@ -220,7 +220,7 @@ multi_user_setup_new_user() {
}
multi_user_link_current_user_files() {
- echo "Linking existing user"
+ log i "Linking existing user"
ln -sfT "$multi_user_data_folder/$SteamAppUser/saves" "$saves_folder"
ln -sfT "$multi_user_data_folder/$SteamAppUser/states" "$states_folder"
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retrodeck/retrodeck.cfg" "$rd_conf"
diff --git a/functions/other_functions.sh b/functions/other_functions.sh
index 2c6f9947..4676c174 100644
--- a/functions/other_functions.sh
+++ b/functions/other_functions.sh
@@ -8,10 +8,10 @@ directory_browse() {
while [ $path_selected == false ]
do
- local target="$(zenity --file-selection --title="Choose $1" --directory)"
+ local target="$(rd_zenity --file-selection --title="Choose $1" --directory)"
if [ ! -z "$target" ] #yes
then
- zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
+ rd_zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
--text="Directory $target chosen, is this correct?"
if [ $? == 0 ]
then
@@ -20,7 +20,7 @@ directory_browse() {
break
fi
else
- zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
+ rd_zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
--text="No directory selected. Do you want to exit the selection process?"
if [ $? == 0 ]
then
@@ -38,10 +38,10 @@ file_browse() {
while [ $file_selected == false ]
do
- local target="$(zenity --file-selection --title="Choose $1")"
+ local target="$(rd_zenity --file-selection --title="Choose $1")"
if [ ! -z "$target" ] #yes
then
- zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
+ rd_zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
--text="File $target chosen, is this correct?"
if [ $? == 0 ]
then
@@ -50,7 +50,7 @@ file_browse() {
break
fi
else
- zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
+ rd_zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
--text="No file selected. Do you want to exit the selection process?"
if [ $? == 0 ]
then
@@ -89,13 +89,13 @@ move() {
rsync -a --remove-source-files --ignore-existing --mkpath "$source_dir" "$dest_dir" # Copy files but don't overwrite conflicts
find "$source_dir" -type d -empty -delete # Cleanup empty folders that were left behind
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 - Move in Progress" \
--text="Moving directory $(basename "$1") to new location of $2, please wait."
if [[ -d "$source_dir" ]]; then # Some conflicting files remain
- zenity --icon-name=net.retrodeck.retrodeck --error --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Move Directories" \
--text="There were some conflicting files that were not moved.\n\nAll files that could be moved are in the new location,\nany files that already existed at the new location have not been moved and will need to be handled manually."
@@ -133,7 +133,7 @@ download_file() {
(
wget "$1" -O "$2" -q
) |
- zenity --progress \
+ rd_zenity --progress \
--title="Downloading File" \
--text="Downloading $3..." \
--pulsate \
@@ -153,7 +153,6 @@ update_rd_conf() {
# STAGE 2: To handle presets sections that use duplicate setting names
- mv -f $rd_conf $rd_conf_backup # Backup config file agiain before update but after Stage 1 expansion
generate_single_patch $rd_defaults $rd_conf_backup $rd_update_patch retrodeck # Create a patch file for differences between defaults and current user settings
sed -i '/change^^version/d' $rd_update_patch # Remove version line from temporary patch file
deploy_single_patch $rd_defaults $rd_update_patch $rd_conf # Re-apply user settings to defaults file
@@ -286,6 +285,11 @@ dir_prep() {
log i "$symlink is now $real"
}
+rd_zenity() {
+ # This function replaces the standard 'zenity' command and filters out annoying GTK errors on Steam Deck
+ zenity 2> >(grep -v 'Gtk' >&2) "$@"
+}
+
update_rpcs3_firmware() {
create_dir "$roms_folder/ps3/tmp"
chmod 777 "$roms_folder/ps3/tmp"
@@ -313,7 +317,7 @@ make_name_pretty() {
if [[ ! -z "$system" ]]; then
IFS='^' read -r internal_name pretty_name < <(echo "$system")
else
- pretty_name="$system"
+ pretty_name="$1"
fi
echo "$pretty_name"
}
@@ -323,10 +327,10 @@ finit_browse() {
path_selected=false
while [ $path_selected == false ]
do
- local target="$(zenity --file-selection --title="Choose RetroDECK data directory location" --directory)"
+ local target="$(rd_zenity --file-selection --title="Choose RetroDECK data directory location" --directory)"
if [[ ! -z "$target" ]]; then
if [[ -w "$target" ]]; then
- zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \
+ rd_zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" \
--cancel-label="No" \
--ok-label "Yes" \
--text="Your RetroDECK data folder will be:\n\n$target/retrodeck\n\nis that ok?"
@@ -336,7 +340,7 @@ do
echo "$target/retrodeck"
break
else
- zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Do you want to quit?"
+ rd_zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" --text="Do you want to quit?"
if [ $? == 0 ] # yes, quit
then
quit_retrodeck
@@ -344,7 +348,7 @@ do
fi
fi
else
- zenity --error --no-wrap \
+ rd_zenity --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--ok-label "Quit" \
@@ -357,13 +361,15 @@ done
finit_user_options_dialog() {
finit_available_options=()
- while IFS="^" read -r enabled option_name option_desc option_tag
+ while IFS="^" read -r enabled option_name option_desc option_tag || [[ -n "$enabled" ]];
do
- finit_available_options=("${finit_available_options[@]}" "$enabled" "$option_name" "$option_desc" "$option_tag")
+ if [[ ! $enabled == "#"* ]] && [[ ! -z "$enabled" ]]; then
+ finit_available_options=("${finit_available_options[@]}" "$enabled" "$option_name" "$option_desc" "$option_tag")
+ fi
done < $finit_options_list
- local choices=$(zenity \
+ local choices=$(rd_zenity \
--list --width=1200 --height=720 \
--checklist --hide-column=4 --ok-label="Confirm Selections" --extra-button="Enable All" \
--separator=" " --print-column=4 \
@@ -407,7 +413,7 @@ finit() {
if [ ! -d "$sdcard" ] # SD Card path is not existing
then
log e "SD card not found"
- zenity --error --no-wrap \
+ rd_zenity --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--ok-label "Browse" \
@@ -420,7 +426,7 @@ finit() {
elif [ ! -w "$sdcard" ] #SD card found but not writable
then
log e "SD card found but not writable"
- zenity --error --no-wrap \
+ rd_zenity --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--ok-label "Quit" \
@@ -435,7 +441,7 @@ finit() {
"Custom Location" )
log i "Custom Location selected"
- zenity --info --no-wrap \
+ rd_zenity --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--ok-label "Browse" \
@@ -449,6 +455,8 @@ finit() {
esac
+ log i "\"retrodeck\" folder will be located in \"$rdhome\""
+
prepare_component "reset" "retrodeck" # Parse the [paths] section of retrodeck.cfg and set the value of / create all needed folders
conf_write # Write the new values to retrodeck.cfg
@@ -464,7 +472,7 @@ finit() {
configurator_generic_dialog "Vita3K Firmware Install" "You have chosen to install the Vita3K firmware during the RetroDECK first setup.\n\nThis process will take several minutes and requires network access.\n\nVita3K will be launched automatically at the end of the RetroDECK setup process.\nOnce the firmware is installed, please close the emulator to finish the process."
fi
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --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, which can take up to one minute.\nRetroDECK will start once the process is completed.\n\nPress OK to continue."
@@ -492,7 +500,7 @@ finit() {
fi
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 Finishing Initialization" \
--text="RetroDECK is finishing the initial setup process, please wait."
@@ -522,11 +530,11 @@ install_retrodeck_controller_profile() {
if [[ -d "$HOME/.steam/steam/controller_base/templates/" || -d "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/" ]]; then
if [[ -d "$HOME/.steam/steam/controller_base/templates/" ]]; then # If a normal binary Steam install exists
rsync -rlD --mkpath "/app/retrodeck/binding_icons/" "$HOME/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/"
- rsync -rlD --mkpath "$emuconfigs/defaults/retrodeck/controller_configs/" "$HOME/.steam/steam/controller_base/templates/"
+ rsync -rlD --mkpath "$config/retrodeck/controller_configs/" "$HOME/.steam/steam/controller_base/templates/"
fi
if [[ -d "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/" ]]; then # If a Flatpak Steam install exists
rsync -rlD --mkpath "/app/retrodeck/binding_icons/" "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/"
- rsync -rlD --mkpath "$emuconfigs/defaults/retrodeck/controller_configs/" "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/"
+ rsync -rlD --mkpath "$config/retrodeck/controller_configs/" "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/"
fi
else
configurator_generic_dialog "RetroDECK Controller Profile Install" "The target directories for the controller profile do not exist.\n\nThis may happen if you do not have Steam installed or the location is does not have permission to be read."
@@ -555,13 +563,12 @@ deploy_helper_files() {
# This script will distribute helper documentation files throughout the filesystem according to the $helper_files_list
# USAGE: deploy_helper_files
- while IFS='^' read -r file dest
+ while IFS='^' read -r file dest || [[ -n "$file" ]];
do
if [[ ! "$file" == "#"* ]] && [[ ! -z "$file" ]]; then
eval current_dest="$dest"
cp -f "$helper_files_folder/$file" "$current_dest/$file"
fi
-
done < "$helper_files_list"
}
@@ -574,13 +581,15 @@ easter_eggs() {
current_day=$(date +"%0m%0d") # Read the current date in a format that can be calculated in ranges
current_time=$(date +"%0H%0M") # Read the current time in a format that can be calculated in ranges
if [[ ! -z $(cat $easter_egg_checklist) ]]; then
- while IFS="^" read -r start_date end_date start_time end_time splash_file # Read Easter Egg checklist file and separate values
+ while IFS="^" read -r start_date end_date start_time end_time splash_file || [[ -n "$start_date" ]]; # Read Easter Egg checklist file and separate values
do
- if [[ "$((10#$current_day))" -ge "$((10#$start_date))" && "$((10#$current_day))" -le "$((10#$end_date))" && "$((10#$current_time))" -ge "$((10#$start_time))" && "$((10#$current_time))" -le "$((10#$end_time))" ]]; then # If current line specified date/time matches current date/time, set $splash_file to be deployed
- new_splash_file="$splashscreen_dir/$splash_file"
- break
- else # When there are no matches, the default splash screen is set to deploy
- new_splash_file="$default_splash_file"
+ if [[ ! $start_date == "#"* ]] && [[ ! -z "$start_date" ]]; then
+ if [[ "$((10#$current_day))" -ge "$((10#$start_date))" && "$((10#$current_day))" -le "$((10#$end_date))" && "$((10#$current_time))" -ge "$((10#$start_time))" && "$((10#$current_time))" -le "$((10#$end_time))" ]]; then # If current line specified date/time matches current date/time, set $splash_file to be deployed
+ new_splash_file="$splashscreen_dir/$splash_file"
+ break
+ else # When there are no matches, the default splash screen is set to deploy
+ new_splash_file="$default_splash_file"
+ fi
fi
done < $easter_egg_checklist
else
@@ -696,7 +705,7 @@ ponzu_remove() {
# TODO: this function is not yet used
branch_selector() {
log d "Fetch branches from GitHub API excluding \"main\""
- branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}')
+ branches=$(curl -s https://api.github.com/repos/RetroDECK/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}')
# Create an array to store branch names
branch_array=()
@@ -709,7 +718,7 @@ branch_selector() {
# Display branches in a Zenity list dialog
selected_branch=$(
- zenity --list \
+ rd_zenity --list \
--icon-name=net.retrodeck.retrodeck \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Cooker Branch - Select Branch" \
@@ -719,7 +728,7 @@ branch_selector() {
# Display warning message
if [ $selected_branch ]; then
- zenity --question --icon-name=net.retrodeck.retrodeck --no-wrap \
+ rd_zenity --question --icon-name=net.retrodeck.retrodeck --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Cooker Branch - Switch Branch" \
--text="Are you sure you want to move to \"$selected_branch\" branch?"
@@ -728,7 +737,7 @@ branch_selector() {
set_setting_value "$rd_conf" "branch" "$selected_branch" "retrodeck" "options"
branch="feat/sftp"
# Get the latest release for the specified branch
- latest_release=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases" | jq ".[] | select(.target_commitish == \"$branch_name\") | .tag_name" | head -n 1)
+ latest_release=$(curl -s "https://api.github.com/repos/RetroDECK/Cooker/releases" | jq ".[] | select(.target_commitish == \"$branch_name\") | .tag_name" | head -n 1)
# TODO: this will fail because the builds coming from the PRs are not published yet, we should fix them
# TODO: form a proper url: $flatpak_file_url
configurator_generic_dialog "RetroDECK Online Update" "The update process may take several minutes.\n\nAfter the update is complete, RetroDECK will close. When you run it again you will be using the latest version."
@@ -740,7 +749,7 @@ branch_selector() {
flatpak-spawn --host flatpak install --user --bundle --noninteractive -y "$rdhome/RetroDECK_Updates/RetroDECK-cooker.flatpak"
rm -rf "$rdhome/RetroDECK_Updates" # Cleanup old bundles to save space
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 Updater" \
--text="RetroDECK is updating to the latest \"$selected_branch\" version, please wait."
diff --git a/functions/post_update.sh b/functions/post_update.sh
index 3dcc012b..22eb5caf 100644
--- a/functions/post_update.sh
+++ b/functions/post_update.sh
@@ -43,9 +43,9 @@ post_update() {
dir_prep "$bios_folder/pico-8" "$HOME/.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 "$saves_folder/pico-8" "$bios_folder/pico-8/cdata" # PICO-8 saves folder structure was backwards, fixing for consistency.
- cp -f "$emuconfigs/citra/qt-config.ini" /var/config/citra-emu/qt-config.ini
+ cp -f "$config/citra/qt-config.ini" /var/config/citra-emu/qt-config.ini
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
- cp -fr "$emuconfigs/yuzu/"* /var/config/yuzu/
+ cp -fr "$config/yuzu/"* /var/config/yuzu/
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/yuzu/qt-config.ini
# Remove unneeded tools folder, as location has changed to RO space
@@ -57,7 +57,7 @@ post_update() {
# Changed settings in Duckstation and PCSX2: The "ask on exit" was disabled and "save on exit" was enabled.
# The default configs have been updated for new installs and resets, a patch was created to address existing installs.
- deploy_multi_patch "emu-configs/patches/updates/064b_update.patch"
+ deploy_multi_patch "config/patches/updates/064b_update.patch"
fi
if [[ $(check_version_is_older_than "0.6.5b") == "true" ]]; then
# In version 0.6.5b, the following changes were made:
@@ -95,13 +95,13 @@ post_update() {
conf_read
mv -f "$pcsx2conf" "$pcsx2conf.bak"
- generate_single_patch "$emuconfigs/PCSX2/PCSX2.ini" "$pcsx2conf.bak" "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch" pcsx2
- deploy_single_patch "$emuconfigs/PCSX2/PCSX2.ini" "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch" "$pcsx2conf"
+ generate_single_patch "$config/PCSX2/PCSX2.ini" "$pcsx2conf.bak" "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch" pcsx2
+ deploy_single_patch "$config/PCSX2/PCSX2.ini" "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch" "$pcsx2conf"
rm -f "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch"
dir_prep "/var/config/duckstation" "/var/data/duckstation"
mv -f "$duckstationconf" "$duckstationconf.bak"
- generate_single_patch "$emuconfigs/duckstation/settings.ini" "$duckstationconf.bak" "/var/config/duckstation/duckstation-cheevos-upgrade.patch" pcsx2
- deploy_single_patch "$emuconfigs/duckstation/settings.ini" "/var/config/duckstation/duckstation-cheevos-upgrade.patch" "$duckstationconf"
+ generate_single_patch "$config/duckstation/settings.ini" "$duckstationconf.bak" "/var/config/duckstation/duckstation-cheevos-upgrade.patch" pcsx2
+ deploy_single_patch "$config/duckstation/settings.ini" "/var/config/duckstation/duckstation-cheevos-upgrade.patch" "$duckstationconf"
rm -f "/var/config/duckstation/duckstation-cheevos-upgrade.patch"
create_dir "$mods_folder"
@@ -125,15 +125,15 @@ post_update() {
dir_prep "$rdhome/gamelists" "/var/config/emulationstation/ES-DE/gamelists"
dir_prep "$borders_folder" "/var/config/retroarch/overlays/borders"
- rsync -rlD --mkpath "/app/retrodeck/emu-configs/retroarch/borders/" "/var/config/retroarch/overlays/borders/"
+ rsync -rlD --mkpath "/app/retrodeck/config/retroarch/borders/" "/var/config/retroarch/overlays/borders/"
- rsync -rlD --mkpath "$emuconfigs/defaults/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/"
+ rsync -rlD --mkpath "$config/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/"
if [[ ! -f "$bios_folder/capsimg.so" ]]; then
cp -f "/app/retrodeck/extras/Amiga/capsimg.so" "$bios_folder/capsimg.so"
fi
- cp -f $emuconfigs/rpcs3/vfs.yml /var/config/rpcs3/vfs.yml
+ cp -f $config/rpcs3/vfs.yml /var/config/rpcs3/vfs.yml
sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf"
set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3/" "rpcs3"
if [[ -d "$roms_folder/ps3/emudir" ]]; then # The old location exists, meaning the emulator was run at least once.
@@ -304,7 +304,7 @@ post_update() {
log i "In version 0.8.1b, the following changes were made that required config file updates/reset or other changes to the filesystem:"
log i "- ES-DE files were moved inside the retrodeck folder, migrating to the new structure"
log i "- Give the user the option to reset Ryujinx, which was not properly initialized in 0.8.0b"
-
+
log d "ES-DE files were moved inside the retrodeck folder, migrating to the new structure"
dir_prep "$rdhome/ES-DE/collections" "/var/config/ES-DE/collections"
dir_prep "$rdhome/ES-DE/gamelists" "/var/config/ES-DE/gamelists"
@@ -313,8 +313,7 @@ post_update() {
set_setting_value "$es_settings" "UserThemeDirectory" "$rdhome/ES-DE/themes" "es_settings"
mv -f "$rdhome/themes" "$rdhome/ES-DE/themes" && log d "Move of \"$rdhome/themes\" completed"
mv -f "$rdhome/downloaded_media" "$rdhome/ES-DE/downloaded_media" && log d "Move of \"$rdhome/downloaded_media\" completed"
- mv -f "$rdhome/gamelists/"* "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" completed"
- rm -rf "$rdhome/gamelists"
+ mv -f "$rdhome/gamelists/"* "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" completed" && rm -rf "$rdhome/gamelists"
log i "MAME-SA, migrating samples to the new exposed folder: from \"/var/data/mame/assets/samples\" to \"$bios_folder/mame-sa/samples\""
create_dir "$bios_folder/mame-sa/samples"
@@ -323,14 +322,14 @@ post_update() {
log i "Installing the missing ScummVM assets and renaming \"$mods_folder/RetroArch/ScummVM/themes\" into \"theme\""
mv -f "$mods_folder/RetroArch/ScummVM/themes" "$mods_folder/RetroArch/ScummVM/theme"
- unzip -o "$emuconfigs/retroarch/ScummVM.zip" 'scummvm/extra/*' -d /tmp
- unzip -o "$emuconfigs/retroarch/ScummVM.zip" 'scummvm/theme/*' -d /tmp
+ unzip -o "$config/retroarch/ScummVM.zip" 'scummvm/extra/*' -d /tmp
+ unzip -o "$config/retroarch/ScummVM.zip" 'scummvm/theme/*' -d /tmp
mv -f /tmp/scummvm/extra "$mods_folder/RetroArch/ScummVM"
mv -f /tmp/scummvm/theme "$mods_folder/RetroArch/ScummVM"
rm -rf /tmp/extra /tmp/theme
log i "Placing cheats in \"/var/data/mame/cheat\""
- unzip -j -o "$emuconfigs/mame/cheat0264.zip" 'cheat.7z' -d "/var/data/mame/cheat"
+ unzip -j -o "$config/mame/cheat0264.zip" 'cheat.7z' -d "/var/data/mame/cheat"
log d "Verifying with user if they want to reset Ryujinx"
if [[ "$(configurator_generic_question_dialog "RetroDECK 0.8.1b Ryujinx Reset" "In RetroDECK 0.8.0b the Ryujinx emulator was not properly initialized for upgrading users.\nThis would cause Ryujinx to not work properly.\n\nWould you like to reset Ryujinx to default RetroDECK settings now?\n\nIf you have made your own changes to the Ryujinx config, you can decline this reset.")" == "true" ]]; then
@@ -339,10 +338,46 @@ post_update() {
fi
fi
+ if [[ $(check_version_is_older_than "0.8.2b") == "true" ]]; then
+ log i "Vita3K changed some paths, reflecting them: moving \"/var/data/Vita3K\" in \"/var/config/Vita3K\""
+ move "/var/data/Vita3K" "/var/config/Vita3K"
+ log i "Moving ES-DE downloaded_media, gamelist, and themes from \"$rdhome\" to \"$rdhome/ES-DE\" due to a RetroDECK Framework bug"
+ move "$rdhome/themes" "$rdhome/ES-DE/themes" && log d "Move of \"$rdhome/themes\" completed"
+ move "$rdhome/downloaded_media" "$rdhome/ES-DE/downloaded_media" && log d "Move of \"$rdhome/downloaded_media\" completed"
+ move "$rdhome/gamelists" "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" completed"
+ log i "Since in this version we moved to a PR build of Ryujinx we need to symlink it."
+ ln -sv $ryujinxconf "$(dirname $ryujinxconf)/PRConfig.json"
+ fi
+
+ if [[ $(check_version_is_older_than "0.8.3b") == "true" ]]; then
+ # In version 0.8.3b, the following changes were made:
+ # - Recovery from a failed move of the themes, downloaded_media and gamelists folder to their new ES-DE locations.
+ if [[ !-d "$rdhome/ES-DE/themes" || ! -d "$rdhome/ES-DE/downloaded_media" || ! -d "$rdhome/ES-DE/gamelists" ]]; then
+ log i "Moving ES-DE downloaded_media, gamelist, and themes from \"$rdhome\" to \"$rdhome/ES-DE\" due to a RetroDECK Framework bug"
+ if [[ -d "$rdhome/themes" && ! -d "$rdhome/ES-DE/themes" ]]; then
+ move "$rdhome/themes" "$rdhome/ES-DE/themes" && log d "Move of \"$rdhome/themes\" completed"
+ else
+ log i "ES-DE themes appears to already have been migrated."
+ fi
+ if [[ -d "$rdhome/downloaded_media" && ! -d "$rdhome/ES-DE/downloaded_media" ]]; then
+ move "$rdhome/downloaded_media" "$rdhome/ES-DE/downloaded_media" && log d "Move of \"$rdhome/downloaded_media\" completed"
+ else
+ log i "ES-DE downloaded media appears to already have been migrated."
+ fi
+ if [[ -d "$rdhome/gamelists" && ! -d "$rdhome/ES-DE/gamelists" ]]; then
+ move "$rdhome/gamelists" "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" completed"
+ else
+ log i "ES-DE gamelists appears to already have been migrated."
+ fi
+ else
+ log i "ES-DE dfolders appears to already have been migrated."
+ fi
+ fi
+
# if [[ $(check_version_is_older_than "0.9.0b") == "true" ]]; then
# # Placeholder for version 0.9.0b
# rm /var/config/emulationstation/.emulationstation # remving the old symlink to .emulationstation as it might be not needed anymore
- # TODO: change RETRODECKHOMEDIR/bios/cemu in emu-configs/cemu/settings.xml into RETRODECKHOMEDIR/bios/cemu/mlc
+ # TODO: change RETRODECKHOMEDIR/bios/cemu in config/cemu/settings.xml into RETRODECKHOMEDIR/bios/cemu/mlc
# if [ ! -d "$bios_folder/cemu/mlc" ]; then
# log i "Cemu MLC folder was moved from \"$bios_folder/cemu\" to \"$bios_folder/cemu/mlc\", migrating it"
# mv -f "$bios_folder/cemu" "$bios_folder/cemu/mlc"
@@ -352,7 +387,10 @@ post_update() {
# log AND ZENITY "Found Cemu keys.txt" in "/var/data/Cemu/keys.txt", for a better compatibility is better to move it into "$bios_folder/cemu/mlc/keys.txt, do you want to continue?
# if yes: mv "/var/data/Cemu/keys.txt" "$bios_folder/cemu/mlc/keys.txt"
# ln -s "$bios_folder/cemu/mlc/keys.txt" "/var/data/Cemu/keys.txt" <--- AND THIS SHOULD BE EVEN PUT IN THE PREPARATION SCRIPT
- # fi
+ # fi
+ # TODO: is this true?
+ # log i "Since in this version we restored Ryujinx to a main buikd we don't need the symlink anymore."
+ # rm "$(dirname $ryujinxconf)/PRConfig.json"
# fi
# The following commands are run every time.
@@ -372,7 +410,7 @@ post_update() {
deploy_helper_files
build_retrodeck_current_presets
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 - Upgrade Process" \
--width=400 --height=200 \
diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh
index a040fa20..137a5bbe 100644
--- a/functions/prepare_component.sh
+++ b/functions/prepare_component.sh
@@ -23,7 +23,8 @@ prepare_component() {
local current_setting_name=$(get_setting_name "$config_line" "retrodeck")
if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations
local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths")
- declare -g "$current_setting_name=$rdhome/$(basename $current_setting_value)"
+ declare -g "$current_setting_name=$rdhome/${current_setting_value#*retrodeck/}" #removes everything until "retrodeck" and adds the actual retrodeck folder
+ log d "Setting: $current_setting_name=$current_setting_value"
if [[ ! $current_setting_name == "logs_folder" ]]; then # Don't create a logs folder normally, we want to maintain the current files exactly to not lose early-install logs.
create_dir "$rdhome/$(basename $current_setting_value)"
else # Log folder-specific actions
@@ -33,8 +34,8 @@ prepare_component() {
fi
fi
done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
- create_dir "/var/config/retrodeck/godot"
-
+ create_dir "/var/config/retrodeck/godot" # TODO: what is this for? Can we delete it or add it to the retrodeck.cfg so the folder will be created by the above script?
+
fi
if [[ "$action" == "postmove" ]]; then # Update the paths of any folders that came with the retrodeck folder during a move
while read -r config_line; do
@@ -87,8 +88,8 @@ prepare_component() {
if [[ "$action" == "reset" ]]; then # Run reset-only commands
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/retroarch"
- cp -fv $emuconfigs/retroarch/retroarch.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
- cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
+ cp -fv $config/retroarch/retroarch.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
+ cp -fv $config/retroarch/retroarch-core-options.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
else # Single-user actions
create_dir -d /var/config/retroarch
dir_prep "$bios_folder" "/var/config/retroarch/system"
@@ -97,12 +98,12 @@ prepare_component() {
cp -rf /app/share/libretro/shaders /var/config/retroarch/
dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders"
rsync -rlD --mkpath "/app/share/libretro/cores/" "/var/config/retroarch/cores/"
- cp -fv $emuconfigs/retroarch/retroarch.cfg /var/config/retroarch/
- cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg /var/config/retroarch/
- rsync -rlD --mkpath "$emuconfigs/retroarch/core-overrides/" "/var/config/retroarch/config/"
- rsync -rlD --mkpath "$emuconfigs/defaults/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/"
+ cp -fv $config/retroarch/retroarch.cfg /var/config/retroarch/
+ cp -fv $config/retroarch/retroarch-core-options.cfg /var/config/retroarch/
+ rsync -rlD --mkpath "$config/retroarch/core-overrides/" "/var/config/retroarch/config/"
+ rsync -rlD --mkpath "$config/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/"
dir_prep "$borders_folder" "/var/config/retroarch/overlays/borders"
- rsync -rlD --mkpath "/app/retrodeck/emu-configs/retroarch/borders/" "/var/config/retroarch/overlays/borders/"
+ rsync -rlD --mkpath "/app/retrodeck/config/retroarch/borders/" "/var/config/retroarch/overlays/borders/"
set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch"
set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch"
set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch"
@@ -124,7 +125,7 @@ prepare_component() {
create_dir "$bios_folder/fbneo/cheats"
create_dir "$bios_folder/fbneo/blend"
dir_prep "$mods_folder/FBNeo" "$bios_folder/fbneo/patched"
-
+
# PPSSPP
log i "--------------------------------"
log i "Prepearing PPSSPP_LIBRETRO"
@@ -159,11 +160,11 @@ prepare_component() {
log i "-----------------------------------------------------------"
log i "Prepearing ScummVM LIBRETRO"
log i "-----------------------------------------------------------"
- cp -fv "$emuconfigs/retroarch/scummvm.ini" "$ra_scummvm_conf"
+ cp -fv "$config/retroarch/scummvm.ini" "$ra_scummvm_conf"
create_dir "$mods_folder/RetroArch/ScummVM/icons"
log i "Installing ScummVM assets"
- unzip -o "$emuconfigs/retroarch/ScummVM.zip" 'scummvm/extra/*' -d /tmp
- unzip -o "$emuconfigs/retroarch/ScummVM.zip" 'scummvm/theme/*' -d /tmp
+ unzip -o "$config/retroarch/ScummVM.zip" 'scummvm/extra/*' -d /tmp
+ unzip -o "$config/retroarch/ScummVM.zip" 'scummvm/theme/*' -d /tmp
mv -f /tmp/scummvm/extra "$mods_folder/RetroArch/ScummVM"
mv -f /tmp/scummvm/theme "$mods_folder/RetroArch/ScummVM"
rm -rf /tmp/extra /tmp/theme
@@ -172,11 +173,11 @@ prepare_component() {
set_setting_value "$ra_scummvm_conf" "themepath" "$mods_folder/RetroArch/ScummVM/theme" "libretro_scummvm" "scummvm"
set_setting_value "$ra_scummvm_conf" "savepath" "$saves_folder/scummvm" "libretro_scummvm" "scummvm"
set_setting_value "$ra_scummvm_conf" "browser_lastpath" "$roms_folder/scummvm" "libretro_scummvm" "scummvm"
-
+
dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64plus/cache"
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64plus/hires_texture"
-
+
# Reset default preset settings
set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "cheevos")" "retrodeck" "cheevos"
set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "cheevos_hardcore")" "retrodeck" "cheevos_hardcore"
@@ -222,7 +223,7 @@ prepare_component() {
log i "------------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/citra-emu"
- cp -fv $emuconfigs/citra/qt-config.ini "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini"
+ cp -fv $config/citra/qt-config.ini "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
@@ -230,7 +231,7 @@ prepare_component() {
dir_prep "$multi_user_data_folder/$SteamAppUser/config/citra-emu" "/var/config/citra-emu"
else # Single-user actions
create_dir -d /var/config/citra-emu/
- cp -f $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
+ cp -f $config/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
set_setting_value "$citraconf" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
set_setting_value "$citraconf" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
set_setting_value "$citraconf" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
@@ -249,7 +250,7 @@ prepare_component() {
set_setting_value "$rd_conf" "citra" "$(get_setting_value "$rd_defaults" "citra" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
- dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata"
+ dir_prep "$bios_folder/citra/sysdata" "/var/data/citra-emu/sysdata"
dir_prep "$rdhome/logs/citra" "/var/data/citra-emu/log"
dir_prep "$mods_folder/Citra" "/var/data/citra-emu/load/mods"
dir_prep "$texture_packs_folder/Citra" "/var/data/citra-emu/load/textures"
@@ -268,13 +269,13 @@ prepare_component() {
log i "----------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/Cemu"
- cp -fr "$emuconfigs/cemu/"* "$multi_user_data_folder/$SteamAppUser/config/Cemu/"
+ cp -fr "$config/cemu/"* "$multi_user_data_folder/$SteamAppUser/config/Cemu/"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "mlc_path" "$bios_folder/cemu" "cemu"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Cemu" "/var/config/Cemu"
else
create_dir -d /var/config/Cemu/
- cp -fr "$emuconfigs/cemu/"* /var/config/Cemu/
+ cp -fr "$config/cemu/"* /var/config/Cemu/
set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu"
set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
fi
@@ -296,7 +297,7 @@ prepare_component() {
log i "----------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu"
- cp -fvr "$emuconfigs/dolphin/"* "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/"
+ cp -fvr "$config/dolphin/"* "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "BIOS" "$bios_folder" "dolphin" "GBA"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
@@ -305,7 +306,7 @@ prepare_component() {
dir_prep "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu" "/var/config/dolphin-emu"
else # Single-user actions
create_dir -d /var/config/dolphin-emu/
- cp -fvr "$emuconfigs/dolphin/"* /var/config/dolphin-emu/
+ cp -fvr "$config/dolphin/"* /var/config/dolphin-emu/
set_setting_value "$dolphinconf" "BIOS" "$bios_folder" "dolphin" "GBA"
set_setting_value "$dolphinconf" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
@@ -350,7 +351,7 @@ prepare_component() {
log i "------------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/data/duckstation/"
- cp -fv "$emuconfigs/duckstation/"* "$multi_user_data_folder/$SteamAppUser/data/duckstation"
+ cp -fv "$config/duckstation/"* "$multi_user_data_folder/$SteamAppUser/data/duckstation"
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
@@ -360,7 +361,7 @@ prepare_component() {
else # Single-user actions
create_dir -d "/var/config/duckstation/"
create_dir "$saves_folder/psx/duckstation/memcards"
- cp -fv "$emuconfigs/duckstation/"* /var/config/duckstation
+ cp -fv "$config/duckstation/"* /var/config/duckstation
set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
set_setting_value "$duckstationconf" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
set_setting_value "$duckstationconf" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
@@ -396,7 +397,7 @@ prepare_component() {
log i "----------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/melonDS/"
- cp -fvr $emuconfigs/melonds/melonDS.ini "$multi_user_data_folder/$SteamAppUser/config/melonDS/"
+ cp -fvr $config/melonds/melonDS.ini "$multi_user_data_folder/$SteamAppUser/config/melonDS/"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "BIOS9Path" "$bios_folder/bios9.bin" "melonds"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "BIOS7Path" "$bios_folder/bios7.bin" "melonds"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "FirmwarePath" "$bios_folder/firmware.bin" "melonds"
@@ -405,7 +406,7 @@ prepare_component() {
dir_prep "$multi_user_data_folder/$SteamAppUser/config/melonDS" "/var/config/melonDS"
else # Single-user actions
create_dir -d /var/config/melonDS/
- cp -fvr $emuconfigs/melonds/melonDS.ini /var/config/melonDS/
+ cp -fvr $config/melonds/melonDS.ini /var/config/melonDS/
set_setting_value "$melondsconf" "BIOS9Path" "$bios_folder/bios9.bin" "melonds"
set_setting_value "$melondsconf" "BIOS7Path" "$bios_folder/bios7.bin" "melonds"
set_setting_value "$melondsconf" "FirmwarePath" "$bios_folder/firmware.bin" "melonds"
@@ -435,7 +436,7 @@ prepare_component() {
log i "----------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis"
- cp -fvr "$emuconfigs/PCSX2/"* "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/"
+ cp -fvr "$config/PCSX2/"* "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/PCSX2.ini" "Bios" "$bios_folder" "pcsx2" "Folders"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/PCSX2.ini" "Snapshots" "$screenshots_folder" "pcsx2" "Folders"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/PCSX2.ini" "SaveStates" "$states_folder/ps2/pcsx2" "pcsx2" "Folders"
@@ -444,7 +445,7 @@ prepare_component() {
dir_prep "$multi_user_data_folder/$SteamAppUser/config/PCSX2" "/var/config/PCSX2"
else # Single-user actions
create_dir -d "/var/config/PCSX2/inis"
- cp -fvr "$emuconfigs/PCSX2/"* /var/config/PCSX2/inis/
+ cp -fvr "$config/PCSX2/"* /var/config/PCSX2/inis/
set_setting_value "$pcsx2conf" "Bios" "$bios_folder" "pcsx2" "Folders"
set_setting_value "$pcsx2conf" "Snapshots" "$screenshots_folder" "pcsx2" "Folders"
set_setting_value "$pcsx2conf" "SaveStates" "$states_folder/ps2/pcsx2" "pcsx2" "Folders"
@@ -478,8 +479,8 @@ prepare_component() {
dir_prep "$bios_folder/pico-8" "$HOME/.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 "$saves_folder/pico-8" "$bios_folder/pico-8/cdata" # PICO-8 saves folder
- cp -fv "$emuconfigs/pico-8/config.txt" "$bios_folder/pico-8/config.txt"
- cp -fv "$emuconfigs/pico-8/sdl_controllers.txt" "$bios_folder/pico-8/sdl_controllers.txt"
+ cp -fv "$config/pico-8/config.txt" "$bios_folder/pico-8/config.txt"
+ cp -fv "$config/pico-8/sdl_controllers.txt" "$bios_folder/pico-8/sdl_controllers.txt"
fi
fi
@@ -491,12 +492,12 @@ prepare_component() {
log i "------------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/ppsspp/PSP/SYSTEM/"
- cp -fv "$emuconfigs/ppssppsdl/"* "$multi_user_data_folder/$SteamAppUser/config/ppsspp/PSP/SYSTEM/"
+ cp -fv "$config/ppssppsdl/"* "$multi_user_data_folder/$SteamAppUser/config/ppsspp/PSP/SYSTEM/"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/ppsspp/PSP/SYSTEM/ppsspp.ini" "CurrentDirectory" "$roms_folder/psp" "ppsspp" "General"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/ppsspp" "/var/config/ppsspp"
else # Single-user actions
create_dir -d /var/config/ppsspp/PSP/SYSTEM/
- cp -fv "$emuconfigs/ppssppsdl/"* /var/config/ppsspp/PSP/SYSTEM/
+ cp -fv "$config/ppssppsdl/"* /var/config/ppsspp/PSP/SYSTEM/
set_setting_value "$ppssppconf" "CurrentDirectory" "$roms_folder/psp" "ppsspp" "General"
fi
# Shared actions
@@ -520,12 +521,12 @@ prepare_component() {
log i "----------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/primehack"
- cp -fvr "$emuconfigs/primehack/config/"* "$multi_user_data_folder/$SteamAppUser/config/primehack/"
+ cp -fvr "$config/primehack/config/"* "$multi_user_data_folder/$SteamAppUser/config/primehack/"
set_setting_value ""$multi_user_data_folder/$SteamAppUser/config/primehack/Dolphin.ini"" "ISOPath0" "$roms_folder/gc" "primehack" "General"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/primehack" "/var/config/primehack"
else # Single-user actions
create_dir -d /var/config/primehack/
- cp -fvr "$emuconfigs/primehack/config/"* /var/config/primehack/
+ cp -fvr "$config/primehack/config/"* /var/config/primehack/
set_setting_value "$primehackconf" "ISOPath0" "$roms_folder/gc" "primehack" "General"
fi
# Shared actions
@@ -538,7 +539,7 @@ prepare_component() {
dir_prep "$saves_folder/wii/primehack" "/var/data/primehack/Wii"
dir_prep "$mods_folder/Primehack" "/var/data/primehack/Load/GraphicMods"
dir_prep "$texture_packs_folder/Primehack" "/var/data/primehack/Load/Textures"
- cp -fvr "$emuconfigs/primehack/data/"* "$multi_user_data_folder/$SteamAppUser/data/primehack/" # this must be done after the dirs are prepared as it copying some "mods"
+ cp -fvr "$config/primehack/data/"* "$multi_user_data_folder/$SteamAppUser/data/primehack/" # this must be done after the dirs are prepared as it copying some "mods"
# Reset default preset settings
set_setting_value "$rd_conf" "primehack" "$(get_setting_value "$rd_defaults" "primehack" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
@@ -564,14 +565,14 @@ prepare_component() {
log i "------------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/rpcs3/"
- cp -fr "$emuconfigs/rpcs3/"* "$multi_user_data_folder/$SteamAppUser/config/rpcs3/"
+ cp -fr "$config/rpcs3/"* "$multi_user_data_folder/$SteamAppUser/config/rpcs3/"
# This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name.
sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" "/games/" "$roms_folder/ps3/" "rpcs3"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/rpcs3" "/var/config/rpcs3"
else # Single-user actions
create_dir -d /var/config/rpcs3/
- cp -fr "$emuconfigs/rpcs3/"* /var/config/rpcs3/
+ cp -fr "$config/rpcs3/"* /var/config/rpcs3/
# This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name.
sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf"
set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3/" "rpcs3"
@@ -605,7 +606,7 @@ prepare_component() {
rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
#create_dir "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system"
# TODO: add /var/config/Ryujinx/system system folder management
- cp -fv $emuconfigs/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
+ cp -fv $config/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json"
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx"
# TODO: add nand (saves) folder management
@@ -616,8 +617,8 @@ prepare_component() {
log d "Removing \"/var/config/Ryujinx\""
rm -rf /var/config/Ryujinx
create_dir /var/config/Ryujinx/system
- cp -fv $emuconfigs/ryujinx/Config.json $ryujinxconf
- cp -fvr $emuconfigs/ryujinx/profiles /var/config/Ryujinx/
+ cp -fv $config/ryujinx/Config.json $ryujinxconf
+ cp -fvr $config/ryujinx/profiles /var/config/Ryujinx/
log d "Replacing placeholders in \"$ryujinxconf\""
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf"
log i "Linking switch nand/saves folder"
@@ -627,6 +628,9 @@ prepare_component() {
dir_prep "$saves_folder/switch/ryujinx/sdcard" "/var/config/Ryujinx/sdcard"
dir_prep "$bios_folder/switch/firmware" "/var/config/Ryujinx/bis/system/Contents/registered"
dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system"
+ # TODO: delete these two lines after Ryujinx is back to a proper build
+ log i "Since in this version we moved to a PR build of Ryujinx we need to symlink it." # TODO: deleteme later
+ ln -sv $ryujinxconf "$(dirname $ryujinxconf)/PRConfig.json" # TODO: deleteme later
fi
fi
# if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
@@ -646,7 +650,7 @@ prepare_component() {
log i "----------------------"
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/yuzu"
- cp -fvr "$emuconfigs/yuzu/"* "$multi_user_data_folder/$SteamAppUser/config/yuzu/"
+ cp -fvr "$config/yuzu/"* "$multi_user_data_folder/$SteamAppUser/config/yuzu/"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "nand_directory" "$saves_folder/switch/yuzu/nand" "yuzu" "Data%20Storage"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
@@ -654,7 +658,7 @@ prepare_component() {
dir_prep "$multi_user_data_folder/$SteamAppUser/config/yuzu" "/var/config/yuzu"
else # Single-user actions
create_dir -d /var/config/yuzu/
- cp -fvr "$emuconfigs/yuzu/"* /var/config/yuzu/
+ cp -fvr "$config/yuzu/"* /var/config/yuzu/
set_setting_value "$yuzuconf" "nand_directory" "$saves_folder/switch/yuzu/nand" "yuzu" "Data%20Storage"
set_setting_value "$yuzuconf" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
set_setting_value "$yuzuconf" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
@@ -702,7 +706,7 @@ prepare_component() {
rm -rf /var/config/xemu
rm -rf /var/data/xemu
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/xemu/"
- cp -fv $emuconfigs/xemu/xemu.toml "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml"
+ cp -fv $config/xemu/xemu.toml "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files"
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files"
@@ -714,7 +718,7 @@ prepare_component() {
rm -rf /var/config/xemu
rm -rf /var/data/xemu
dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look
- cp -fv $emuconfigs/xemu/xemu.toml "$xemuconf"
+ cp -fv $config/xemu/xemu.toml "$xemuconf"
set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files"
set_setting_value "$xemuconf" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files"
@@ -747,18 +751,18 @@ prepare_component() {
log d "Figure out what Vita3k needs for multi-user"
else # Single-user actions
# NOTE: the component is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K
- rm -rf "/var/data/Vita3K"
- create_dir "/var/data/Vita3K/Vita3K"
- cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K" # component config
- cp -fvr "$emuconfigs/vita3k/ux0" "$bios_folder/Vita3K/Vita3K" # User config
- set_setting_value "$vita3kconf" "pref-path" "$rdhome/bios/Vita3K/Vita3K/" "vita3k"
+ rm -rf "/var/config/Vita3K"
+ create_dir "/var/config/Vita3K"
+ cp -fvr "$config/vita3k/config.yml" "$vita3kconf" # component config
+ cp -fvr "$config/vita3k/ux0" "$bios_folder/Vita3K/" # User config
+ set_setting_value "$vita3kconf" "pref-path" "$bios_folder/Vita3K/" "vita3k"
fi
# Shared actions
- dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/Vita3K/ux0/user/00/savedata" # Multi-user safe?
+ dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/ux0/user/00/savedata" # Multi-user safe?
fi
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
- dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/Vita3K/ux0/user/00/savedata" # Multi-user safe?
- set_setting_value "$vita3kconf" "pref-path" "$rdhome/bios/Vita3K/Vita3K/" "vita3k"
+ dir_prep "$saves_folder/psvita/vita3k" "$bios_folder/Vita3K/ux0/user/00/savedata" # Multi-user safe?
+ set_setting_value "$vita3kconf" "pref-path" "$bios_folder/Vita3K/" "vita3k"
fi
fi
@@ -816,9 +820,9 @@ prepare_component() {
create_dir "/var/data/mame/assets/ui"
dir_prep "$saves_folder/mame-sa/hiscore" "/var/config/mame/hiscore"
- cp -fvr "$emuconfigs/mame/mame.ini" "$mameconf"
- cp -fvr "$emuconfigs/mame/ui.ini" "$mameuiconf"
- cp -fvr "$emuconfigs/mame/default.cfg" "$mamedefconf"
+ cp -fvr "$config/mame/mame.ini" "$mameconf"
+ cp -fvr "$config/mame/ui.ini" "$mameuiconf"
+ cp -fvr "$config/mame/default.cfg" "$mamedefconf"
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "$mameconf" # one-off as roms folders are a lot
set_setting_value "$mameconf" "nvram_directory" "$saves_folder/mame-sa/nvram" "mame"
@@ -828,7 +832,7 @@ prepare_component() {
set_setting_value "$mameconf" "samplepath" "$bios_folder/mame-sa/samples" "mame"
log i "Placing cheats in \"/var/data/mame/cheat\""
- unzip -j -o "$emuconfigs/mame/cheat0264.zip" 'cheat.7z' -d "/var/data/mame/cheat"
+ unzip -j -o "$config/mame/cheat0264.zip" 'cheat.7z' -d "/var/data/mame/cheat"
fi
@@ -844,26 +848,16 @@ prepare_component() {
create_dir "/var/data/gzdoom/audio/midi"
create_dir "/var/data/gzdoom/audio/fm_banks"
create_dir "/var/data/gzdoom/audio/soundfonts"
- create_dir "$rdhome/bios/gzdoom"
+ create_dir "$bios_folder/gzdoom"
- cp -fvr "$emuconfigs/gzdoom/gzdoom.ini" "/var/config/gzdoom"
+ cp -fvr "$config/gzdoom/gzdoom.ini" "/var/config/gzdoom"
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
fi
- if [[ "$component" =~ ^(boilr|all)$ ]]; then
- component_found="true"
- log i "----------------------"
- log i "Prepearing BOILR"
- log i "----------------------"
-
- create_dir "/var/config/boilr"
- cp -fvr "/app/libexec/steam-sync/config.toml" "/var/config/boilr"
- fi
-
- if [[ $component_found="false" ]]; then
+ if [[ $component_found == "false" ]]; then
log e "Supplied component $component not found, not resetting"
fi
diff --git a/functions/presets.sh b/functions/presets.sh
index ce384307..aac3c321 100644
--- a/functions/presets.sh
+++ b/functions/presets.sh
@@ -6,7 +6,7 @@ change_preset_dialog() {
build_preset_list_options "$1"
- choice=$(zenity \
+ choice=$(rd_zenity \
--list --width=1200 --height=720 \
--checklist \
--separator="," \
@@ -23,12 +23,12 @@ change_preset_dialog() {
(
make_preset_changes
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 - Presets Configuration" \
--text="Setting up your presets, please wait..."
else
- echo "No choices made"
+ log i "No preset choices made"
fi
}
@@ -79,11 +79,14 @@ make_preset_changes() {
fi
set_setting_value "$rd_conf" "$emulator" "true" "retrodeck" "$preset"
# Check for conflicting presets for this system
- while IFS=: read -r preset_being_checked known_incompatible_preset; do
- if [[ "$preset" == "$preset_being_checked" ]]; then
- if [[ $(get_setting_value "$rd_conf" "$emulator" "retrodeck" "$known_incompatible_preset") == "true" ]]; then
- changed_presets=("${changed_presets[@]}" "$known_incompatible_preset")
- set_setting_value "$rd_conf" "$emulator" "false" "retrodeck" "$known_incompatible_preset"
+ while IFS=: read -r preset_being_checked known_incompatible_preset || [[ -n "$preset_being_checked" ]];
+ do
+ if [[ ! $preset_being_checked == "#"* ]] && [[ ! -z "$preset_being_checked" ]]; then
+ if [[ "$preset" == "$preset_being_checked" ]]; then
+ if [[ $(get_setting_value "$rd_conf" "$emulator" "retrodeck" "$known_incompatible_preset") == "true" ]]; then
+ changed_presets=("${changed_presets[@]}" "$known_incompatible_preset")
+ set_setting_value "$rd_conf" "$emulator" "false" "retrodeck" "$known_incompatible_preset"
+ fi
fi
fi
done < "$incompatible_presets_reference_list"
@@ -116,81 +119,83 @@ build_preset_config() {
local read_system_name=$(get_setting_name "$system_line")
if [[ "$read_system_name" == "$system_being_changed" ]]; then
local read_system_enabled=$(get_setting_value "$rd_conf" "$read_system_name" "retrodeck" "$current_preset")
- while IFS='^' read -r action read_preset read_setting_name new_setting_value section target_file defaults_file
+ while IFS='^' read -r action read_preset read_setting_name new_setting_value section target_file defaults_file || [[ -n "$action" ]];
do
- case "$action" in
+ if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
+ case "$action" in
- "config_file_format" )
- if [[ "$read_preset" == "retroarch-all" ]]; then
- local retroarch_all="true"
- local read_config_format="retroarch"
- else
- local read_config_format="$read_preset"
- fi
- ;;
+ "config_file_format" )
+ if [[ "$read_preset" == "retroarch-all" ]]; then
+ local retroarch_all="true"
+ local read_config_format="retroarch"
+ else
+ local read_config_format="$read_preset"
+ fi
+ ;;
- "change" )
- if [[ "$read_preset" == "$current_preset" ]]; then
- if [[ "$target_file" = \$* ]]; then # Read current target file and resolve if it is a variable
- eval target_file=$target_file
- fi
- local read_target_file="$target_file"
- if [[ "$defaults_file" = \$* ]]; then #Read current defaults file and resolve if it is a variable
- eval defaults_file=$defaults_file
- fi
- local read_defaults_file="$defaults_file"
- if [[ "$read_system_enabled" == "true" ]]; then
- if [[ "$new_setting_value" = \$* ]]; then
- eval new_setting_value=$new_setting_value
+ "change" )
+ if [[ "$read_preset" == "$current_preset" ]]; then
+ if [[ "$target_file" = \$* ]]; then # Read current target file and resolve if it is a variable
+ eval target_file=$target_file
fi
- if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then # If this is a RetroArch core, generate the override file
- if [[ ! -f "$read_target_file" ]]; then
- create_dir "$(realpath "$(dirname "$read_target_file")")"
- echo "$read_setting_name = \""$new_setting_value"\"" > "$read_target_file"
- else
- if [[ -z $(grep -o -P "^$read_setting_name\b" "$read_target_file") ]]; then
- add_setting "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
+ local read_target_file="$target_file"
+ if [[ "$defaults_file" = \$* ]]; then #Read current defaults file and resolve if it is a variable
+ eval defaults_file=$defaults_file
+ fi
+ local read_defaults_file="$defaults_file"
+ if [[ "$read_system_enabled" == "true" ]]; then
+ if [[ "$new_setting_value" = \$* ]]; then
+ eval new_setting_value=$new_setting_value
+ fi
+ if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then # If this is a RetroArch core, generate the override file
+ if [[ ! -f "$read_target_file" ]]; then
+ create_dir "$(realpath "$(dirname "$read_target_file")")"
+ echo "$read_setting_name = \""$new_setting_value"\"" > "$read_target_file"
else
- set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
- fi
+ if [[ -z $(grep -o -P "^$read_setting_name\b" "$read_target_file") ]]; then
+ add_setting "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
+ else
+ set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
+ fi
+ fi
+ else
+ set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
fi
else
- set_setting_value "$read_target_file" "$read_setting_name" "$new_setting_value" "$read_config_format" "$section"
- fi
- else
- if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then
- if [[ -f "$read_target_file" ]]; then
- delete_setting "$read_target_file" "$read_setting_name" "$read_config_format" "$section"
- if [[ -z $(cat "$read_target_file") ]]; then # If the override file is empty
- rm -f "$read_target_file"
- fi
- if [[ -z $(ls -1 "$(dirname "$read_target_file")") ]]; then # If the override folder is empty
- rmdir "$(realpath "$(dirname "$read_target_file")")"
+ if [[ "$read_config_format" == "retroarch" && ! "$retroarch_all" == "true" ]]; then
+ if [[ -f "$read_target_file" ]]; then
+ delete_setting "$read_target_file" "$read_setting_name" "$read_config_format" "$section"
+ if [[ -z $(cat "$read_target_file") ]]; then # If the override file is empty
+ rm -f "$read_target_file"
+ fi
+ if [[ -z $(ls -1 "$(dirname "$read_target_file")") ]]; then # If the override folder is empty
+ rmdir "$(realpath "$(dirname "$read_target_file")")"
+ fi
fi
+ else
+ local default_setting_value=$(get_setting_value "$read_defaults_file" "$read_setting_name" "$read_config_format" "$section")
+ set_setting_value "$read_target_file" "$read_setting_name" "$default_setting_value" "$read_config_format" "$section"
fi
- else
- local default_setting_value=$(get_setting_value "$read_defaults_file" "$read_setting_name" "$read_config_format" "$section")
- set_setting_value "$read_target_file" "$read_setting_name" "$default_setting_value" "$read_config_format" "$section"
fi
fi
- fi
- ;;
+ ;;
- "enable" )
- if [[ "$read_preset" == "$current_preset" ]]; then
- if [[ "$read_system_enabled" == "true" ]]; then
- enable_file "$read_setting_name"
- else
- disable_file "$read_setting_name"
+ "enable" )
+ if [[ "$read_preset" == "$current_preset" ]]; then
+ if [[ "$read_system_enabled" == "true" ]]; then
+ enable_file "$read_setting_name"
+ else
+ disable_file "$read_setting_name"
+ fi
fi
- fi
- ;;
+ ;;
- * )
- echo "Other data: $action $read_preset $read_setting_name $new_setting_value $section" # DEBUG
- ;;
+ * )
+ log d "Other data: $action $read_preset $read_setting_name $new_setting_value $section" # DEBUG
+ ;;
- esac
+ esac
+ fi
done < <(cat "$presets_dir/$read_system_name"_presets.cfg)
fi
done < <(printf '%s\n' "$preset_section")
@@ -202,7 +207,7 @@ build_retrodeck_current_presets() {
# This can also be used to build the "current" state post-update after adding new systems
# USAGE: build_retrodeck_current_presets
- while IFS= read -r current_setting_line # Read the existing retrodeck.cfg
+ while IFS= read -r current_setting_line || [[ -n "$current_setting_line" ]]; # Read the existing retrodeck.cfg
do
if [[ (! -z "$current_setting_line") && (! "$current_setting_line" == "#"*) && (! "$current_setting_line" == "[]") ]]; then # If the line has a valid entry in it
if [[ ! -z $(grep -o -P "^\[.+?\]$" <<< "$current_setting_line") ]]; then # If the line is a section header
diff --git a/functions/steam-sync/config.toml b/functions/steam-sync/config.toml
deleted file mode 100644
index 0bdd0e25..00000000
--- a/functions/steam-sync/config.toml
+++ /dev/null
@@ -1,61 +0,0 @@
-debug = false
-config_version = 1
-blacklisted_games = []
-boilr_tag = "retrodeck"
-
-[steamgrid_db]
-enabled = true
-prefer_animated = false
-banned_images = []
-only_download_boilr_images = false
-allow_nsfw = false
-
-[steam]
-create_collections = false
-optimize_for_big_picture = false
-stop_steam = false
-start_steam = false
-
-[bottles]
-enabled = false
-
-[epic_games]
-enabled = false
-safe_launch = []
-
-[flatpak]
-enabled = false
-
-[gog]
-enabled = false
-create_symlinks = true
-
-[heroic]
-enabled = false
-launch_games_through_heroic = []
-default_launch_through_heroic = true
-
-[itch]
-enabled = false
-create_symlinks = true
-
-[legendary]
-enabled = false
-
-[lutris]
-enabled = false
-executable = "lutris"
-flatpak = true
-flatpak_image = "net.lutris.Lutris"
-installed = true
-
-[origin]
-enabled = false
-
-[uplay]
-enabled = false
-
-[minigalaxy]
-enabled = true
-create_symlinks = false
-games_folder = "/var/config/boilr/sync/"
diff --git a/functions/steam-sync/steam-sync.py b/functions/steam-sync/steam-sync.py
deleted file mode 100644
index 11b078b2..00000000
--- a/functions/steam-sync/steam-sync.py
+++ /dev/null
@@ -1,456 +0,0 @@
-"""Sync RetroDECK favorites games with steam shortcuts"""
-import binascii
-import os
-import re
-import shlex
-import shutil
-import glob
-import sys
-import time
-import hashlib
-
-import xml.etree.ElementTree as ET
-
-command_list_default={
-"3do": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/opera_libretro.so",
-"amiga": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
-"amiga1200": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
-"amiga600": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
-"amigacd32": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
-"amstradcpc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so",
-"arcade": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"arduboy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/arduous_libretro.so",
-"astrocde": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"atari2600": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so",
-"atari5200": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so",
-"atari7800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prosystem_libretro.so",
-"atari800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
-"atarijaguar": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so",
-"atarijaguarcd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/virtualjaguar_libretro.so",
-"atarilynx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so",
-"atarist": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/hatari_libretro.so",
-"atarixe": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
-"atomiswave": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
-"c64": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so",
-"cavestory": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nxengine_libretro.so",
-"cdimono1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so",
-"cdtv": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
-"chailove": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/chailove_libretro.so",
-"channelf": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freechaf_libretro.so",
-"colecovision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
-"cps": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"cps1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"cps2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"cps3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"doom": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so",
-"dos": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so",
-"dreamcast": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
-"easyrpg": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/easyrpg_libretro.so",
-"famicom": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
-"fba": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so",
-"fbneo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so",
-"fds": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
-"gameandwatch": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so",
-"gamegear": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"gb": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so",
-"gba": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so",
-"gbc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so",
-"genesis": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"gx4000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so",
-"intellivision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/freeintv_libretro.so",
-"j2me": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/squirreljme_libretro.so",
-"lcdgames": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gw_libretro.so",
-"lutro": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/lutro_libretro.so",
-"mame": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"mastersystem": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"megacd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"megacdjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"megadrive": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"megaduck": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameduck_libretro.so",
-"mess": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mess2015_libretro.so",
-"model2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"moto": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so",
-"msx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
-"msx1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
-"msx2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
-"msxturbor": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
-"multivision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so",
-"n64": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so",
-"n64dd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so",
-"naomi": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
-"naomigd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
-"nds": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so",
-"neogeo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so",
-"neogeocd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so",
-"neogeocdjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so",
-"nes": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
-"ngp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so",
-"ngpc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so",
-"odyssey2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so",
-"palm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mu_libretro.so",
-"pc88": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quasi88_libretro.so",
-"pc98": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so",
-"pcengine": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
-"pcenginecd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
-"pcfx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pcfx_libretro.so",
-"pokemini": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pokemini_libretro.so",
-"psx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so",
-"quake": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so",
-"satellaview": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
-"saturn": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so",
-"saturnjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so",
-"scummvm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/scummvm_libretro.so",
-"sega32x": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
-"sega32xjp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
-"sega32xna": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
-"segacd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"sfc": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
-"sg-1000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"sgb": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so",
-"snes": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
-"snesna": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
-"spectravideo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
-"sufami": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
-"supergrafx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so",
-"supervision": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/potator_libretro.so",
-"tg16": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
-"tg-cd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
-"tic80": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tic80_libretro.so",
-"to8": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/theodore_libretro.so",
-"uzebox": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/uzem_libretro.so",
-"vectrex": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vecx_libretro.so",
-"vic20": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xvic_libretro.so",
-"videopac": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/o2em_libretro.so",
-"virtualboy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_vb_libretro.so",
-"wasm4": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/wasm4_libretro.so",
-"wonderswan": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so",
-"wonderswancolor": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_wswan_libretro.so",
-"x1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/x1_libretro.so",
-"x68000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/px68k_libretro.so",
-"zx81": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/81_libretro.so",
-"zxspectrum": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fuse_libretro.so",
-"switch": "flatpak run --command=/var/data/ponzu/Yuzu/bin/yuzu net.retrodeck.retrodeck -f -g",
-"n3ds": "flatpak run --command=/var/data/ponzu/Citra/bin/citra-qt net.retrodeck.retrodeck",
-"ps2": "flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch",
-"wiiu": "flatpak run --command=Cemu-wrapper net.retrodeck.retrodeck -g",
-"gc": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
-"wii": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
-"xbox": "flatpak run --command=xemu net.retrodeck.retrodeck -dvd_path",
-"ps3": "flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui",
-"psp": "flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck",
-"pico8": "flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run"
-}
-
-alt_command_list={
-"PUAE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae_libretro.so",
-"Caprice32": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cap32_libretro.so",
-"MAME - CURRENT": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"Stella": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella_libretro.so",
-"a5200": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/a5200_libretro.so",
-"Atari800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
-"Handy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/handy_libretro.so",
-"VICE x64sc Accurate": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64sc_libretro.so",
-"SAME CDi": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/same_cdi_libretro.so",
-"blueMSX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bluemsx_libretro.so",
-"MAME - CURRENT": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame_libretro.so",
-"PrBoom": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/prboom_libretro.so",
-"DOSBox-Pure": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_pure_libretro.so",
-"Mesen": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen_libretro.so",
-"Genesis Plus GX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_libretro.so",
-"Gamebatte": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gambatte_libretro.so",
-"mGBA": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so",
-"ParaLLEI N64": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/parallel_n64_libretro.so",
-"DeSmuME": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume_libretro.so",
-"NeoCD": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/neocd_libretro.so",
-"Beetle NeoPop": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_ngp_libretro.so",
-"Neko Project II Kai": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/np2kai_libretro.so",
-"Beetle PCE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so",
-"Swanstation": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/swanstation_libretro.so",
-"TyrQuake": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tyrquake_libretro.so",
-"Beetle Saturn": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_saturn_libretro.so",
-"Snes 9x - Current": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x_libretro.so",
-"Beetle SuperGrafx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supergrafx_libretro.so",
-"Yuzu (Standalone)": "flatpak run --command=yuzu net.retrodeck.retrodeck -f -g",
-"Citra (Standalone)": "flatpak run --command=citra net.retrodeck.retrodeck",
-"PCSX2 (Standalone)": "flatpak run --command=pcsx2-qt net.retrodeck.retrodeck -batch",
-"Dolphin (Standalone)": "flatpak run --command=dolphin-emu-wrapper net.retrodeck.retrodeck -b -e",
-"RPCS3 Directory (Standalone)": "flatpak run --command=pcsx3 net.retrodeck.retrodeck --no-gui",
-"PPSSPP (Standalone)": "flatpak run --command=PPSSPPSDL net.retrodeck.retrodeck",
-"PICO-8 (Standalone)": "flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -run",
-"PUAE 2021": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/puae2021_libretro.so",
-"CrocoDS": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so",
-"CPCemu (Standalone)": "NYI", #NYI
-"MAME 2010": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2010_libretro.so",
-"MAME 2003-Plus": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2003_plus_libretro.so",
-"MAME 2000": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mame2000_libretro.so",
-"MAME (Standalone)": "NYI", #NYI
-"FinalBurn Neo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbneo_libretro.so",
-"FinalBurn Neo (Standalone)": "NYI", #NYI
-"FB Alpha 2012": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_libretro.so",
-"Flycast": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/flycast_libretro.so",
-"Flycast (Standalone)": "NYI", #NYI
-"Kronos": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/kronos_libretro.so",
-"Supermodel (Standalone)": "NYI", #NYI
-"Supermodel [Fullscreen] (Standalone)": "NYI", #NYI
-"Shortcut or script": "TODO: I have to catch how it works", #TODO
-"Atari800 (Standalone)": "NYI", #NYI
-"Stella 2014": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/stella2014_libretro.so",
-"Atari800": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/atari800_libretro.so",
-"Beetle Lynx": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_lynx_libretro.so",
-"VICE x64 Fast": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x64_libretro.so",
-"VICE x64 SuperCPU": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_xscpu64_libretro.so",
-"VICE x128": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vice_x128_libretro.so",
-"Frodo": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/frodo_libretro.so",
-"CDi 2015": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/cdi2015_libretro.so",
-"Gearcoleco": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearcoleco_libretro.so",
-"FB Alpha 2012 CPS-1": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps1_libretro.so",
-"FB Alpha 2012 CPS-2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps2_libretro.so",
-"FB Alpha 2012 CPS-3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fbalpha2012_cps3_libretro.so",
-"Boom 3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro.so",
-"Boom 3 xp": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/boom3_libretro_xp.so",
-"DOSBox-Core": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_core_libretro.so",
-"DOSBox-SVN": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dosbox_svn_libretro.so",
-"Keep ES-DE running": "TODO: I have to catch how it works", #TODO
-"AppImage (Suspend ES-DE)": "TODO: I have to catch how it works", #TODO
-"AppImage (Keep ES-DE running)": "TODO: I have to catch how it works", #TODO
-"Nestopia UE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nestopia_libretro.so",
-"FCEUmm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fceumm_libretro.so",
-"QuickNES": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/quicknes_libretro.so",
-"Genesis Plus GX Wide": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/genesis_plus_gx_wide_libretro.so",
-"Gearsystem": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearsystem_libretro.so",
-"SMS Plus GX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/smsplus_libretro.so",
-"SameBoy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/sameboy_libretro.so",
-"Gearboy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gearboy_libretro.so",
-"TGB Dual": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/tgbdual_libretro.so",
-"Mesen-S": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mesen-s_libretro.so",
-"VBA-M": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vbam_libretro.so",
-"bsnes": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_libretro.so",
-"mGBA": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mgba_libretro.so",
-"VBA Next": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vba_next_libretro.so",
-"gpSP": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/gpsp_libretro.so",
-"Dolphin": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/dolphin_libretro.so",
-"PrimeHack (Standalone)": "flatpak run --command=primehack-wrapper net.retrodeck.retrodeck -b -e",
-"PicoDrive": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/picodrive_libretro.so",
-"BlastEm": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/blastem_libretro.so",
-"CrocoDS": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/crocods_libretro.so",
-"fMSX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/fmsx_libretro.so",
-"Citra": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra_libretro.so",
-"Citra 2018": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/citra2018_libretro.so",
-"Mupen64Plus-Next": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mupen64plus_next_libretro.so",
-"DeSmuME 2015": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/desmume2015_libretro.so",
-"melonDS": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/melonds_libretro.so",
-"melonDS (Standalone)": "flatpak run --command=melonDS net.retrodeck.retrodeck",
-"FinalBurn Neo neogeocd": "flatpak run --command=retroarch net.retrodeck.retrodeck --subsystem neocd -L /var/config/retroarch/cores/fbneo_libretro.so",
-"RACE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/race_libretro.so",
-"Neko Project II": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/nekop2_libretro.so",
-"Beetle PCE FAST": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_fast_libretro.so",
-"PICO-8 Splore (Standalone)": "flatpak run --command=pico8 net.retrodeck.retrodeck -desktop_path ~/retrodeck/screenshots -root_path {GAMEDIR} -splore",
-"AppImage": "TODO: I have to catch how it works", #TODO
-"LRPS2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so",
-"PCSX2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx2_libretro.so",
-"RPCS3 Shortcut (Standalone)": "TODO: I have to catch how it works", #TODO
-"PPSSPP": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/ppsspp_libretro.so",
-"Beetle PSX": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_libretro.so",
-"Beetle PSX HW": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_psx_hw_libretro.so",
-"PCSX ReARMed": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/pcsx_rearmed_libretro.so",
-"DuckStation (Standalone)": "flatpak run --command=duckstation-qt net.retrodeck.retrodeck -batch",
-"vitaQuake 2": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2_libretro.so",
-"vitaQuake 2 [Rogue]": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-rogue_libretro.so",
-"vitaQuake 2 [Xatrix]": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-xatrix_libretro.so",
-"vitaQuake 2 [Zaero]": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake2-zaero_libretro.so",
-"vitaQuake 3": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/vitaquake3_libretro.so",
-"YabaSanshiro": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabasanshiro_libretro.so",
-"Yabause": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/yabause_libretro.so",
-"Snes9x 2010": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/snes9x2010_libretro.so",
-"bsnes-hd": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_hd_beta_libretro.so",
-"bsnes-mercury Accuracy": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/bsnes_mercury_accuracy_libretro.so",
-"Beetle Supafaust": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_supafaust_libretro.so",
-"Beetle PCE": "flatpak run --command=retroarch net.retrodeck.retrodeck -L /var/config/retroarch/cores/mednafen_pce_libretro.so"
-}
-
-exit_file="/tmp/retrodeck_steam_sync_exit"
-rdhome=""
-roms_folder=""
-
-def create_shortcut_new(games):
- changes=0
- old_games=os.listdir(rdhome+"/.sync/")
-
- for game in games:
- try:
- i=old_games.index(game[0])
- old_games[i]=0
- except ValueError:
- print(game[0]+" is a new game!")
- changes=1
-
- path=rdhome+"/.sync/"+game[0]
- print("Go to path: "+path)
- if not os.path.exists(path):
- os.makedirs(path)
- fl=open(path+"/goggame-0.info","w")
- fl.write('{\n')
- fl.write(' "buildId": "",\n')
- fl.write(' "clientId": "",\n')
- fl.write(' "gameId": "",\n')
- fl.write(' "name": "'+game[0]+'",\n')
- fl.write(' "playTasks": [\n')
- fl.write(' {\n')
- fl.write(' "category": "launcher",\n')
- fl.write(' "isPrimary": true,\n')
- fl.write(' "languages": [\n')
- fl.write(' "en-US"\n')
- fl.write(' ],\n')
- fl.write(' "name": "'+game[0]+'",\n')
- fl.write(' "path": "launch.sh",\n')
- fl.write(' "type": "FileTask"\n')
- fl.write(' }\n')
- fl.write(' ]\n')
- fl.write('}\n')
- fl.close()
-
- fl=open(path+"/launch.sh","w")
- fl.write("#!/bin/bash\n\n")
- fl.write('if test "$(whereis flatpak)" = "flatpak:"\n')
- fl.write("then\n")
- fl.write("flatpak-spawn --host "+game[1]+"\n")
- fl.write("else\n")
- fl.write(game[1]+"\n")
- fl.write("fi\n")
- fl.close()
-
- st=os.stat(path+"/launch.sh")
- os.chmod(path+"/launch.sh", st.st_mode | 0o0111)
-
- print("Start removing")
- print(old_games)
- for game in old_games:
- if game:
- shutil.rmtree(rdhome+"/.sync/"+game)
- changes=1
-
- if changes:
- os.system("boilr --no-ui")
-
-def addToSteam(systems):
- games=[]
- for system in systems:
- print("Start parsing system: {}".format(system))
-
- f=open(rdhome+"/gamelists/"+system+"/gamelist.xml","r")
- f.readline()
- parser=ET.XMLParser()
- parser.feed(b'')
- parser.feed(f.read())
- parser.feed(b' ')
- root=parser.close()
- f.close()
-
- globalAltEmu=""
- for subroot in root:
- if subroot.tag=="alternativeEmulator":
- for alt in subroot:
- globalAltEmu=alt.text
- else:
- for game in subroot:
- path=""
- name=""
- favorite=""
- altemulator=globalAltEmu
- for tag in game:
- if tag.tag=="path":
- path=tag.text
- elif tag.tag=="name":
- name=tag.text
- elif tag.tag=="favorite":
- favorite=tag.text
- elif tag.tag=="altemulator":
- altemulator=tag.text
-
- if favorite=="true" and altemulator=="":
- print("Find favorite game: {}".format(name))
- games.append([name,command_list_default[system]+" '"+roms_folder+"/"+system+path[1:]+"'"])
- elif favorite=="true":
- print("Find favorite game with alternative emulator: {}, {}".format(name,altemulator))
- if ("neogeocd" in system) and altemulator=="FinalBurn Neo":
- games.append([name,alt_command_list[altemulator+" neogeocd"]+" '"+roms_folder+"/"+system+path[1:]+"'"])
- print(alt_command_list[altemulator+" neogeocd"]+" '"+roms_folder+"/"+system+path[1:]+"'")
- elif system=="pico8" and altemulator=="PICO-8 Splore (Standalone)":
- games.append([name,alt_command_list[altemulator]])
- print(alt_command_list[altemulator])
- else:
- games.append([name,alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'"])
- print(alt_command_list[altemulator]+" '"+roms_folder+"/"+system+path[1:]+"'")
- if not games==[]:
- create_shortcut_new(games)
-
-def start_config():
- global rdhome
- global roms_folder
- global command_list_default
- global alt_command_list
-
- if os.path.isfile(exit_file):
- os.remove(exit_file)
-
- print("Open RetroDECK config file: {}".format(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg")))
-
- fl=open(os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/retrodeck/retrodeck.cfg"),"r")
- lines=fl.readlines()
- for line in lines:
- if "rdhome" in line:
- rdhome=line[7:-1]
- elif "roms_folder" in line:
- roms_folder=line[12:-1]
- fl.close()
-
- command_list_default["pico8"]=command_list_default["pico8"].replace("{GAMEDIR}",roms_folder+"/pico8")
- alt_command_list["PICO-8 Splore (Standalone)"]=alt_command_list["PICO-8 Splore (Standalone)"].replace("{GAMEDIR}",roms_folder+"/pico8")
-
- if not os.path.exists(rdhome+"/.sync/"):
- os.makedirs(rdhome+"/.sync/")
-
- boilr_path=os.path.expanduser("~/.var/app/net.retrodeck.retrodeck/config/boilr/config.toml")
- if os.path.isfile(boilr_path):
- with open(boilr_path,"r") as f:
- data=f.read()
- data=re.sub("\"games_folder.*","games_folder = "+rdhome+"/.sync/\"",data)
- with open(boilr_path,"w") as f:
- f.write(data)
- else:
- print("Error! BoilR config not initialized.")
-
-if __name__=="__main__":
- start_config()
-
- new_hash={}
- for system in os.listdir(rdhome+"/gamelists/"):
- new_hash[system]=hashlib.md5(open(rdhome+"/gamelists/"+system+"/gamelist.xml","rb").read()).hexdigest()
-
- running=True
-
- while running:
- time.sleep(30)
- systems=[]
-
- for system in os.listdir(rdhome+"/gamelists/"):
- if not system in systems:
- if system in new_hash.keys():
- old_hash=new_hash[system]
- new_hash[system]=hashlib.md5(open(rdhome+"/gamelists/"+system+"/gamelist.xml","rb").read()).hexdigest()
- if not new_hash[system] == old_hash:
- print("System {} changed!".format(system))
- systems.append(system)
- else:
- print("System {} not changed!".format(system))
- else:
- new_hash[system]=hashlib.md5(open(rdhome+"/gamelists/"+system+"/gamelist.xml","rb").read()).hexdigest()
- print("System {} added!".format(system))
- systems.append(system)
-
- if os.path.isfile(exit_file):
- running=False
- os.remove(exit_file)
-
- addToSteam(systems)
- print("Finish!")
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 395edded..5fc22d0e 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -7,32 +7,32 @@
RetroDECK brings an environment to catalog and play your retro games directly on your Steam Deck
RetroDECK Team
https://retrodeck.net
- https://github.com/XargonWan/RetroDECK/issues
+ https://github.com/RetroDECK/RetroDECK/issues
https://retrodeck.readthedocs.io
- https://github.com/XargonWan/RetroDECK/wiki/FAQs---Frequently-asked-questions
+ https://github.com/RetroDECK/RetroDECK/wiki/FAQs---Frequently-asked-questions
https://www.patreon.com/RetroDECK
- https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true
+ https://github.com/RetroDECK/RetroDECK/blob/main/res/logo.png?raw=true
- https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen01.jpeg?raw=true
+ https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen01.jpeg?raw=true
- https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen02.jpeg?raw=true
+ https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen02.jpeg?raw=true
- https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen03.jpeg?raw=true
+ https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen03.jpeg?raw=true
- https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen04.jpeg?raw=true
+ https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen04.jpeg?raw=true
- https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true
+ https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true
- https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true
+ https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true
@@ -52,7 +52,7 @@
4. [OPTIONAL] Download Steam Grids graphics for RetroDECK with BoilR
For more detailed information check our wiki:
- https://github.com/XargonWan/RetroDECK/wiki
+ https://github.com/RetroDECK/RetroDECK/wiki
If you want to sponsor the project:
https://www.patreon.com/RetroDECK
If you want to join the RetroDECK community check our:
@@ -67,8 +67,55 @@
GPL-3.0
CC0-1.0
+
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.9.0b
+
+ Changes:
+
+ WELCOME TO cooker-0.9.0b!
+ RetroDECK is on a diet: we saved around 600mb
+
+ Developers, developers, developers:
+
+ Manifest was completely redone, more on that on the MONTH blog post
+ RetroDECK now is migrated to an organization on GitHub, as before, please check the MONTH blog post
+ pre_build_automation script weas reworked and additional functions are added
+ Contributing is now easier and the manifest build time is down to about 40m (was 3h30)
+
+ Known issues:
+
+ Please check the know issues in the Wiki under General Information.
+
+
+
+
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.8.2b
+
+ Changes:
+
+ ES-DE: updated to 3.0.3
+ RUNTIME: updated to KDE 6.7
+ All emulators and engines updated
+ CONFIGURATOR: fixed an issue in the multi-file compression tool that prevented some type of files to be converted
+ CONFIGURATOR: added headless state for some functions (this will help to migrate to the Godot Configurator)
+ CONFIGURATOR: added a new "Empty ROMs folder removal" tool helping the user to cleanup the roms folder by deleting the empty folders
+ CONFIGURATOR: added a new "Rebuild removed ROMs folders" tool. This is complementary to the previous one:by recreating the whole roms folder structure
+ CONFIGURATOR: chd compression functionality restored
+ FRAMEWORK: fixed an issue where second level subfolders inside retrodeck folder were not correctly placed, this caused errors on ES-DE as themes and downloaded_media folder could not be found after a reset or first install
+ CEMU: now audio should work correctly when docking and undocking the Steam Deck
+ CEMU: added microphone blow input to R3
+ DOLPHIN: now supports RetroAchivements but must be manually enabled from the emulator as the Configurator is not yet prepared for that
+ DUCKSTATION: now out of the rolling release
+ INFRASTRUCTURE: we now have a self-hosted Gitea repo in case fo disaster recovery
+
+ Known issues:
+
+ Please check the know issues in the Wiki under General Information.
+
+
+
- https://github.com/XargonWan/RetroDECK/releases/tag/0.8.1b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.8.1b
Changes:
Known issues:
- Please check the know issues in the Wiki under General Infomration.
+ Please check the know issues in the Wiki under General Information.
- https://github.com/XargonWan/RetroDECK/releases/tag/0.8.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.8.0b
Changes:
Known issues:
- Please check the know issues in the Wiki under General Infomration.
+ Please check the know issues in the Wiki under General Information.
- https://github.com/XargonWan/RetroDECK/releases/tag/0.7.6b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.6b
Changes:
Known issues:
- Please check the know issues in the Wiki under General Infomration.
+ Please check the know issues in the Wiki under General Information.
- https://github.com/XargonWan/RetroDECK/releases/tag/0.7.5b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.5b
Bug fixes and other changes:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.7.4b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.4b
Hotfix:
Known issues:
- Please check the know issues in the Wiki under General Infomration
+ Please check the know issues in the Wiki under General Information
- https://github.com/XargonWan/RetroDECK/releases/tag/0.7.3b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.3b
Updates:
Known issues:
- Please check the know issues in the Wiki under General Infomration
+ Please check the know issues in the Wiki under General Information
- https://github.com/XargonWan/RetroDECK/releases/tag/0.7.2b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.2b
Updates:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.7.1b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.1b
Information:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.7.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.0b
New - System features:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.6.6b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.6b
Bug fixes:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.6.5b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.5b
Bug fixes and other changes:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.6.4b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.4b
New features - General:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.6.3b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.3b
New features - General:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.6.2b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.2b
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).
@@ -438,7 +485,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.6.1b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.1b
Updated all the emulators and cores at their latest versions (except for Duckstation)
@@ -457,7 +504,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.6.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.0b
Added Ryujinx
@@ -482,7 +529,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.5.3b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.5.3b
Fixed inaccessible RetroArch shaders folder
@@ -499,7 +546,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.5.2b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.5.2b
VERY IMPORTANT: We are moving your saves! This can take time on the first boot. If you miss some saves they are not gone. Please read more in the wiki.
@@ -510,7 +557,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.5.1b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.5.1b
VERY IMPORTANT: We are moving your saves! This can take time on the first boot. If you miss some saves they are not gone. Please read more in the wiki.
@@ -532,7 +579,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.5.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.5.0b
VERY IMPORTANT: We are moving your saves! This can take time on the first boot. If you miss some saves they are not gone. Please read more in the wiki.
@@ -552,7 +599,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.4.5b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.4.5b
Fixed a bug where new symlinks were not created correctly and users couldn't scrape their games
@@ -567,7 +614,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.4.4b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.4.4b
Yuzu: Disabled shader caching as it was broken
@@ -592,7 +639,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.4.3b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.4.3b
Emulators:
@@ -620,7 +667,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.4.2b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.4.2b
Emulators:
@@ -655,7 +702,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.4.1b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.4.1b
Emulators:
@@ -694,7 +741,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.4.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.4.0b
Emulators:
- https://github.com/XargonWan/RetroDECK/releases/tag/0.3.1b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.3.1b
Fixed Dolphin: now Dolphin (Standalone) is the default emulator for GC/Wii.
@@ -759,7 +806,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.3.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.3.0b
Migrated everything from the old domain com.xargon.retrodeck to net.retrodeck.retrodeck to be aligned with flathub standards
@@ -779,7 +826,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.2.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.2.0b
Migrated everything from the old building script to a full fledged yaml in order to being published on Discover
@@ -795,7 +842,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.1.1b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.1.1b
Removed some debug stuff (press any key to continue)
@@ -807,7 +854,7 @@
- https://github.com/XargonWan/RetroDECK/releases/tag/0.1.0b
+ https://github.com/RetroDECK/RetroDECK/releases/tag/0.1.0b
Pick up and play, just put your roms and bios in /retrodeck/roms and /retrodeck/bios folders.
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 604186f0..86267ef9 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -1,10 +1,7 @@
app-id: net.retrodeck.retrodeck
runtime: org.kde.Platform
-runtime-version: "6.5"
+runtime-version: "6.7"
sdk: org.kde.Sdk
-sdk-extensions:
- - org.freedesktop.Sdk.Extension.llvm16 # Needed for RPCS3 (llvm17 actually)
- - org.freedesktop.Sdk.Extension.rust-stable # Needed for BoilR
command: retrodeck.sh
finish-args:
@@ -53,9 +50,7 @@ cleanup:
- /src
- '*.a'
- '*.la'
- # XMLSTARLET
- - /lib/debug
- - /share/runtime
+ - /app/retrodeck/tmplib
modules:
@@ -69,17 +64,17 @@ modules:
# The version number is hardcoded in /app/retrodeck/version
#
# UPDATE STEPS FOR MAIN:
- # [x] Update the VERSION variable on line containing "VERSION=THISBRANCH"
- # [x] Update the appdata.xml with the version number and notes
- #
+ # [ ] Update the VERSION variable on line containing "VERSION=THISBRANCH"
+ # [ ] Update the appdata.xml with the version number and notes
+
- name: version-initialization
buildsystem: simple
build-commands:
- |
# on main please update this with the version variable, eg: VERSION=0.8.0b
- # on cooker will be THISBRANCH
- VERSION=0.8.1b
+ # on cooker will be VERSION=cooker-0.9.0b for example
+ VERSION=cooker-0.9.0b
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
@@ -92,7 +87,7 @@ modules:
echo "Version is $VERSION"
sources:
- type: git
- url: https://github.com/XargonWan/RetroDECK.git
+ url: https://github.com/RetroDECK/RetroDECK.git
branch: THISBRANCH
- name: xmlstarlet
@@ -111,57 +106,6 @@ modules:
post-install:
- ln -s "xml" "${FLATPAK_DEST}/bin/xmlstarlet" ||:
- # mesa repo got a double certificate issue and gnutils cannot handle that so GLU download fails,
- # this affects even the shared-modules's libglu so I have to replace it temporarly
- # more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335
- # dependency of: RETROARCH, CEMU, RPCS3, XEMU
- - name: libglu
- buildsystem: meson
- cleanup:
- - /include
- - /lib/debug
- - /lib/pkgconfig
- - /lib/*.a
- sources:
- - type: archive
- url: https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.3.tar.xz
- sha256: bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f
- # - type: archive
- # url: https://mesa.freedesktop.org/archive/glu/glu-9.0.3.tar.xz
- # sha256: bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f
- # x-checker-data:
- # type: anitya
- # project-id: 13518
- # stable-only: true
- # url-template: https://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz
-
- - name: libgudev
- buildsystem: meson
- config-opts:
- - -Dtests=disabled
- - -Dvapi=disabled
- - -Dintrospection=disabled
- - -Dgtk_doc=false
- cleanup:
- - /include
- - /etc
- - /libexec
- - /sbin
- - /lib/pkgconfig
- - /lib/systemd
- - /man
- - /share/aclocal
- - /share/doc
- - /share/gtk-doc
- - /share/man
- - /share/pkgconfig
- - '*.la'
- - '*.a'
- sources:
- - type: archive
- url: https://ftp.osuosl.org/pub/blfs/conglomeration/libgudev/libgudev-237.tar.xz
- sha256: 0d06b21170d20c93e4f0534dbb9b0a8b4f1119ffb00b4031aaeb5b9148b686aa
-
- name: rclone
buildsystem: simple
build-commands:
@@ -210,364 +154,31 @@ modules:
url: https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64
sha256: 4ee662847c588c3ef2fec8bfb304e8739e3dbaba87ccb9a608d691c88f5b64dc
- # dependency of: CEMU
- - name: glslang
- buildsystem: cmake-ninja
- config-opts:
- - -DCMAKE_BUILD_TYPE=Release
- - -DENABLE_CTEST=OFF
- # TODO: Does Cemu benefit from SPIRV-Tools-opt
- - -DENABLE_OPT=OFF
- cleanup:
- - /include
- - /lib/cmake
- sources:
- - type: archive
- url: https://github.com/KhronosGroup/glslang/archive/14.1.0.tar.gz
- sha256: b5e4c36d60eda7613f36cfee3489c6f507156829c707e1ecd7f48ca45b435322
- x-checker-data:
- type: anitya
- stable-only: true
- project-id: 205796
- url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz
- # - type: git
- # url: https://github.com/KhronosGroup/SPIRV-Tools.git
- # tag: sdk-1.3.261.1
- # dest: External/spirv-tools
- # - type: git
- # url: https://github.com/KhronosGroup/SPIRV-Headers.git
- # tag: sdk-1.3.261.1
- # dest: External/spirv-tools/external/spirv-headers
-
- # enables motion controls on non-wii controllers (switch, ps4, etc)
- # dependency of: DOLPHIN, RPCS3
- # TODO: requires a udev rule enabling Motion Sensors access
- - name: libevdev
- buildsystem: meson
- config-opts:
- - -Dtests=disabled
- - -Ddocumentation=disabled
- sources:
- - type: archive
- url: https://www.freedesktop.org/software/libevdev/libevdev-1.13.1.tar.xz
- sha256: 06a77bf2ac5c993305882bc1641017f5bec1592d6d1b64787bad492ab34f2f36
- x-checker-data:
- type: anitya
- project-id: 20540
- stable-only: true
- url-template: https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz
-
- # dependency of: CEMU
- - name: rapidjson
- buildsystem: cmake-ninja
- config-opts:
- - -DRAPIDJSON_BUILD_DOC=OFF
- - -DRAPIDJSON_BUILD_EXAMPLES=OFF
- - -DRAPIDJSON_BUILD_TESTS=OFF
- - -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF
- cleanup:
- - /include
- - /lib/cmake
- - /lib/pkgconfig
- - /share/doc
- sources:
- - type: archive
- url: https://github.com/Tencent/rapidjson/archive/refs/tags/v1.1.0.tar.gz
- sha256: bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e
- x-checker-data:
- type: anitya
- project-id: 7422
- stable-only: true
- url-template: https://github.com/Tencent/rapidjson/archive/refs/tags/v$version.tar.gz
-
- # dependency of: CEMU, SOLARUS
- - name: glm
- buildsystem: cmake-ninja
- cleanup: ['*']
- no-make-install: true
- post-install:
- - install -d ${FLATPAK_DEST}/include
- - cp -R glm ${FLATPAK_DEST}/include
- - cp -R cmake/glm ${FLATPAK_DEST}/lib/cmake
- sources:
- - type: archive
- url: https://github.com/g-truc/glm/releases/download/0.9.9.8/glm-0.9.9.8.zip
- sha256: 37e2a3d62ea3322e43593c34bae29f57e3e251ea89f4067506c94043769ade4c
-
- # dependency of: CEMU, ES-DE
- - name: pugixml
- buildsystem: cmake-ninja
- config-opts:
- - -DBUILD_SHARED_LIBS=ON
- cleanup:
- - /include
- - /lib/cmake
- - /lib/pkgconfig
- sources:
- - type: archive
- url: https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz
- sha256: 2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015
- x-checker-data:
- type: anitya
- project-id: 3728
- url-template: https://github.com/zeux/pugixml/releases/download/v$version/pugixml-$version.tar.gz
-
- # dependency of: CEMU, RPCS3
- - rd-submodules/shared-modules/glew/glew.json
-
- # dependency of: XEMU, MelonDS
- - name: libslirp
- buildsystem: meson
- sources:
- - type: git
- url: https://gitlab.freedesktop.org/slirp/libslirp.git
- tag: v4.7.0
-
- # dependency of: CEMU (1.0.26), DOLPHIN (1.0.27)
- - name: libusb
- config-opts:
- - --disable-static
- cleanup:
- - /include
- - /lib/*.la
- - /lib/pkgconfig
- sources:
- - type: archive
- url: https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2
- sha256: ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575
- x-checker-data:
- type: anitya
- project-id: 1749
- stable-only: true
- url-template: https://github.com/libusb/libusb/releases/download/v$version/libusb-$version.tar.bz2
-
- # ES-DE - START
- # https://gitlab.com/es-de/emulationstation-de
-
- - name: ffmpeg
- config-opts:
- - --disable-static
- - --disable-programs
- - --disable-doc
- - --enable-gpl
- - --enable-shared
- - --enable-libvorbis
- - --enable-libopus
- - --enable-libvpx
- - --enable-postproc
- sources:
- - type: git
- url: https://github.com/FFmpeg/FFmpeg.git
- tag: n5.1.1
-
- - name: freeimage
- no-autogen: true
- build-options:
- cxxflags: -std=c++14
- make-args:
- - DESTDIR=/app
- sources:
- - type: archive
- url: http://downloads.sourceforge.net/freeimage/FreeImage3180.zip
- sha256: f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd
- - type: shell
- commands:
- - sed -i 's|-o root -g root ||' ./Makefile.gnu
- - sed -i 's|/usr|/app|' ./Makefile.gnu
-
- - name: libgit2
- buildsystem: cmake-ninja
- config-opts:
- - -DCMAKE_BUILD_TYPE=Release
- - -DBUILD_SHARED_LIBS:BOOL=ON
- - -DTHREADSAFE=ON
- sources:
- - type: git
- url: https://github.com/libgit2/libgit2.git
- tag: v1.6.3
-
- # Needed from ES-DE 2.1.0+
- - name: libpoppler-glib
- buildsystem: cmake-ninja
- config-opts:
- - -DENABLE_BOOST=OFF
- sources:
- - type: archive
- # original link not working, found a mirror
- url: https://poppler.freedesktop.org/poppler-22.11.0.tar.xz
- #url: https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-22.11.0/poppler-poppler-22.11.0.tar.bz2
- sha256: 093ba9844ed774285517361c15e21a31ba4df278a499263d4403cca74f2da828
- cleanup:
- - /lib/pkgconfig
- - /include
- - '*.a'
- - '*.la'
-
- # When updating this module remember to check those on the main repos:
- - name: ES-DE
- buildsystem: cmake-ninja
- config-opts:
- - -DRETRODECK=on
- cleanup:
- - es-app
- - es-core
- sources:
- - type: git
- url: https://github.com/XargonWan/RetroDECK-ES-DE
- branch: retrodeck-main
- - type: shell
-
- # ES-DE - END
-
- # ES-DE Themes - START
-
- - name: art-book-next-es-de
- buildsystem: simple
- build-commands:
- - mkdir -p ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/
- - mv -f * ${FLATPAK_DEST}/share/es-de/themes/art-book-next-es-de/
- sources:
- - type: git
- url: https://github.com/anthonycaccese/art-book-next-es-de.git
- commit: 4fe896af7447404f6ea083335cd661c91b0f7860
-
- # ES-DE Themes - END
-
- # External manifests start
-
- # RetroArch - START
- # https://github.com/flathub/org.libretro.RetroArch
+ # RetroArch
+ # https://retroarch.com/index.php?page=platforms
- name: retroarch
- config-opts:
- - '--enable-dbus'
- make-args:
- - GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc
- - HAVE_TRANSLATE=1
- - HAVE_ACCESSIBILITY=1
+ buildsystem: simple
+ build-commands:
+ - mkdir -p "${FLATPAK_DEST}/share/libretro/"
+ - cp -r ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/* "${FLATPAK_DEST}/share/libretro/"
+ - chmod +x ./*.AppImage
+ - ./*.AppImage --appimage-extract
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - cp -r squashfs-root/usr/* "${FLATPAK_DEST}"
sources:
- - type: git
- url: https://github.com/libretro/RetroArch.git
- commit: 06fa5325f8b3cd42e6fba3d57835d5924c9ea2e7
- - type: file
- path: rd-submodules/retroarch/retroarch.cfg
- - type: file
- path: rd-submodules/retroarch/VkLayer_FROG_gamescope_wsi.x86_64.json
- post-install:
- - mkdir -p ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/
- - >-
- mv ${FLATPAK_DEST}/share/pixmaps/retroarch.svg
- ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/
- - rmdir --ignore-fail-on-non-empty ${FLATPAK_DEST}/share/pixmaps/
- - mkdir -p ${FLATPAK_DEST}/etc
- - >-
- sed s:@prefix@:${FLATPAK_DEST}:g retroarch.cfg >
- ${FLATPAK_DEST}/etc/retroarch.cfg
- - mkdir -p ${FLATPAK_DEST}/share/vulkan/implicit_layer.d
- - >-
- install VkLayer_FROG_gamescope_wsi.x86_64.json
- /app/share/vulkan/implicit_layer.d/VkLayer_FROG_gamescope_wsi.x86_64.json
- modules:
- - rd-submodules/retroarch/modules/libpng/libpng-1.6.json
- - rd-submodules/retroarch/modules/nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json
- - 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
- #- 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.json
- - rd-submodules/retroarch/modules/libaio/libaio-0.3.112.json
- # certificate issue, check glu module for more info
- #- rd-submodules/shared-modules/glu/glu-9.json
- - rd-submodules/shared-modules/libdecor/libdecor.json
- - rd-submodules/retroarch/modules/gamemode/gamemode-1.8.json
- - name: retroarch-filers-video
- subdir: gfx/video_filters
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/RetroArch.git
- commit: 06fa5325f8b3cd42e6fba3d57835d5924c9ea2e7
- - name: retroarch-filers-audio
- subdir: libretro-common/audio/dsp_filters
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/RetroArch.git
- commit: 06fa5325f8b3cd42e6fba3d57835d5924c9ea2e7
- - name: retroarch-assets
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/retroarch-assets.git
- commit: 923b711dc6772a168d83dc8915e9260730fcf3a1
- - name: libretro-database
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/libretro-database.git
- commit: 977612e2cd284f67fc0d121d9d94c5982a49f61e
- - name: libretro-core-info
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/libretro-core-info.git
- commit: ad0f67e172dca9edb88a4eea1d541f407a9c2d12
- - name: retroarch-joypad-autoconfig
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/retroarch-joypad-autoconfig.git
- commit: ec43cfef730f15d6b20bf277681250b2f4b99a8b
- - name: common-shaders
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/common-shaders.git
- commit: 86cfa146a8dfddf6377ddb5dbcff552feae2e5bf
- - name: slang-shaders
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/slang-shaders.git
- commit: d367f6cf73e01a8e43028107ab1ded2d2f05fe6a
- - name: glsl-shaders
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/glsl-shaders.git
- commit: db974e4d6f6e3178198b7690095a107b3b509d4b
- - name: common-overlays
- make-install-args:
- - PREFIX=${FLATPAK_DEST}
- sources:
- - type: git
- url: https://github.com/libretro/common-overlays.git
- commit: c266abf4d7f9286fb6fbcfb57647cd9c80c45530
+ - type: archive
+ url: https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch.7z
+ sha256: RASHAPLACEHOLDER
- # RetroArch - END
-
- # Not part of the offical RetroArch manifest
+ # Not part of the offical RetroArch AppImage
# retroarch-cores-nightly must be earlier than retroarch-cores as it will overwrite this cores with the stable ones
- name: retroarch-cores-nightly
buildsystem: simple
build-commands:
- - mkdir -p /app/share/libretro/cores/
-
- - mv -f ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/
+ - mkdir -p ${FLATPAK_DEST}/share/libretro/cores/
+ - cp -r ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* ${FLATPAK_DEST}/share/libretro/cores/
sources:
- type: archive
url: https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z
@@ -576,8 +187,8 @@ modules:
- name: retroarch-cores
buildsystem: simple
build-commands:
- - mkdir -p /app/share/libretro/cores/
- - mv -f ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/
+ - mkdir -p ${FLATPAK_DEST}/share/libretro/cores/
+ - cp -rf ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* ${FLATPAK_DEST}/share/libretro/cores/
sources:
- type: archive
url: https://buildbot.libretro.com/stable/1.17.0/linux/x86_64/RetroArch_cores.7z
@@ -586,7 +197,7 @@ modules:
- name: retroarch-sameduck-core
buildsystem: simple
build-commands:
- - mv sameduck_libretro.so /app/share/libretro/cores/sameduck_libretro.so
+ - cp -f sameduck_libretro.so ${FLATPAK_DEST}/share/libretro/cores/sameduck_libretro.so
sources:
- type: archive
url: https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip
@@ -596,7 +207,7 @@ modules:
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/retrodeck/extras/PPSSPP
- - mv -f assets/* ${FLATPAK_DEST}/retrodeck/extras/PPSSPP/
+ - cp -r assets/* ${FLATPAK_DEST}/retrodeck/extras/PPSSPP/
sources:
- type: archive
url: https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip
@@ -606,8 +217,8 @@ modules:
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/retrodeck/extras/MSX
- - mv -f Databases ${FLATPAK_DEST}/retrodeck/extras/MSX/Databases
- - mv -f Machines ${FLATPAK_DEST}/retrodeck/extras/MSX/Machines
+ - cp -r Databases ${FLATPAK_DEST}/retrodeck/extras/MSX/Databases
+ - cp -r Machines ${FLATPAK_DEST}/retrodeck/extras/MSX/Machines
sources:
- type: archive
url: http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip
@@ -618,460 +229,157 @@ modules:
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/retrodeck/extras/Amiga
- - cp -f Linux/x86-64/capsimg.so ${FLATPAK_DEST}/retrodeck/extras/Amiga/capsimg.so
+ - cp -r Linux/x86-64/capsimg.so ${FLATPAK_DEST}/retrodeck/extras/Amiga/capsimg.so
sources:
- type: archive
url: https://github.com/rsn8887/capsimg/releases/download/1.1/Capsimg_for_Retroarch.zip
sha256: 16c1b511b8e1374a2b6461a66bb6f07b7d2627eb4e941fd1497a432330acaad1
strip-components: 0
- # PPSSPP - START
- # https://github.com/flathub/org.ppsspp.PPSSPP
+ # PPSSPP
+ # why from our artifacts: AppImage not provided, only Flatpak, requested here: https://github.com/hrydgard/ppsspp/issues/16511
+ # https://github.com/RetroDECK/org.ppsspp.PPSSPP
- - name: ppsspp
- buildsystem: cmake-ninja
- config-opts:
- - -DUSE_SYSTEM_FFMPEG=OFF
- - -DUSE_SYSTEM_LIBZIP=ON
- - -DUSE_SYSTEM_ZSTD=ON
- - -DUSE_WAYLAND_WSI=ON
- - -DUSING_QT_UI=OFF
- - -DBUILD_TESTING=OFF
- - -DOpenGL_GL_PREFERENCE=GLVND
- build-options:
- arch:
- aarch64:
- config-opts:
- - -DUSING_EGL=ON
- - -DUSING_GLES2=ON
- post-install:
- - install -Dm644 icons/icon-512.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/ppsspp.svg
- cleanup:
- - /share/ppsspp/assets/lang/README.md
+ - name: retrodeck-ppsspp
+ buildsystem: simple
+ build-commands:
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - cp -rL "files/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - rm -rf "files/lib"
+ - cp -r files/* "${FLATPAK_DEST}"
+ - chmod +x "${FLATPAK_DEST}/bin/"*
sources:
- - type: git
- url: &ppsspp-url https://github.com/hrydgard/ppsspp.git
- tag: v1.17.1
- commit: d479b74ed9c3e321bc3735da29bc125a2ac3b9b2
- x-checker-data:
- type: json
- url: https://api.github.com/repos/hrydgard/ppsspp/releases/latest
- version-query: .tag_name | sub("^v"; "")
- tag-query: .tag_name
- timestamp-query: .published_at
+ - type: archive
+ url: https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-PPSSPP-Artifact.tar.gz
+ sha256: RETRODECKPPSSPPLATEST
- # PPSSPP - END
-
-
- # PCSX2 - START
- # Inspired by:
- # https://github.com/flathub/com.zettlr.Zettlr/blob/master/com.zettlr.Zettlr.yaml
+ # PCSX2
+ # Inspired by: https://github.com/flathub/com.zettlr.Zettlr/blob/master/com.zettlr.Zettlr.yaml
# https://pcsx2.net/downloads/
- - name: pcsx2-qt
+ - name: pcsx2
buildsystem: simple
build-commands:
- - chmod +x pcsx2*.AppImage
- - ./pcsx2*.AppImage --appimage-extract
- - mkdir -p "${FLATPAK_DEST}/pcsx2-qt"
- - cp -r squashfs-root/* "${FLATPAK_DEST}/pcsx2-qt"
- - ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt"
+ - chmod +x *.AppImage
+ - ./*.AppImage --appimage-extract
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - cp -r squashfs-root/usr/* "${FLATPAK_DEST}"
sources:
- type: file
- url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.5769/pcsx2-v1.7.5769-linux-appimage-x64-Qt.AppImage
- sha256: d819a339b9f3c43ee44fe9b6d975b9f76cff7716b5976a3b94f77e2cf4cab667
+ url: https://github.com/PCSX2/pcsx2/releases/download/v2.1.55/pcsx2-v2.1.55-linux-appimage-x64-Qt.AppImage
+ sha256: d08ae2fdfc1bc3a4bd264b62ceda02f1e2de87c704ee1f464e5ce52073998e33
- # PCSX2 - END
+ # Dolphin
+ # why from source: AppImage not provided, only Flatpak
+ # https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu
- # Dolphin - START
- # https://github.com/flathub/org.DolphinEmu.dolphin-emu
- # WHEN UPADTING: remember to update rd-submodules/dolphin contents
-
- # needed for screensaver inhibition
- - name: xdg-screensaver-shim
- buildsystem: meson
- sources:
- - type: archive
- url: https://github.com/Unrud/xdg-screensaver-shim/archive/0.0.2.tar.gz
- sha256: 0ed2a69fe6ee6cbffd2fe16f85116db737f17fb1e79bfb812d893cf15c728399
-
- - name: dolphin-emu
- buildsystem: cmake-ninja
- config-opts:
- - -DCMAKE_BUILD_TYPE=Release
- - -DENABLE_ALSA=OFF
- - -DENABLE_SDL=ON
- - -DENABLE_EVDEV=ON
- - -DDISTRIBUTOR=Flathub
- cleanup:
- - /share/man
- post-install:
- - install -D -t ${FLATPAK_DEST}/bin/ dolphin-emu-wrapper
- - sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
- sources:
- - type: git
- # Sometimes Dolphin or its submodules clone are failing in https so it must done in ssh
- # fatal: remote transport reported error
- # url: ssh://git@github.com/dolphin-emu/dolphin.git
- url: https://github.com/dolphin-emu/dolphin.git
- commit: 032c77b462a220016f23c5079e71bb23e0ad2adf
- x-checker-data:
- type: json
- url: https://dolphin-emu.org/update/latest/beta
- commit-query: .hash
- version-query: .shortrev
- timestamp-query: .date
- is-main-source: true
- # 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
- # in non-writable paths, typically happens when a user
- # has leftover files from a previous non-flatpak install
- - type: patch
- path: rd-submodules/dolphin/detectflatpak.patch
- # version strings must match exactly for online multiplayer
- - type: patch
- path: rd-submodules/dolphin/nodirtyversion.patch
- - type: script
- commands:
- - |
- for i in {0..9}; do
- test -S $XDG_RUNTIME_DIR/discord-ipc-$i ||
- ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
- done
- dolphin-emu "$@"
- dest-filename: dolphin-emu-wrapper
-
- - name: universal_dynamic_input
+ - name: retrodeck-dolphin
buildsystem: simple
build-commands:
- - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/DynamicInputTextures
- - cp -r * ${FLATPAK_DEST}/retrodeck/extras/DynamicInputTextures/
- sources:
- - type: git
- url: https://github.com/Venomalia/UniversalDynamicInput.git
- commit: UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER
-
- # Dolphin - END
-
- # XEMU - START
- # https://github.com/flathub/app.xemu.xemu
-
- - name: libpcap
- buildsystem: cmake-ninja
- cleanup:
- - /bin
- - /include
- - /lib/debug
- - /lib/pkgconfig
- - /lib/*.a
- - /share
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - cp -r "files/lib/debug" "${FLATPAK_DEST}/retrodeck/tmplib"
+ - rm -rf "files/lib/debug"
+ - cp -rL "files/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - rm -rf "files/lib"
+ - cp -r files/* "${FLATPAK_DEST}"
+ - chmod +x "${FLATPAK_DEST}/bin/"*
sources:
- type: archive
- url: https://www.tcpdump.org/release/libpcap-1.10.4.tar.gz
- sha256: ed19a0383fad72e3ad435fd239d7cd80d64916b87269550159d20e47160ebe5f
- x-checker-data:
- type: anitya
- project-id: 1702
- stable-only: true
- url-template: https://www.tcpdump.org/release/libpcap-$version.tar.gz
+ url: https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-dolphin-Artifact.tar.gz
+ sha256: RETRODECKDOLPHINLATEST
- - name: PyYAML
+ # PRIMEHACK
+ # https://github.com/RetroDECK/io.github.shiiion.primehack
+
+ - name: retrodeck-primehack
buildsystem: simple
build-commands:
- - python3 setup.py install --prefix=/app --root=/
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - rm -rf "files/lib/pkgconfig"
+ - cp -rL "files/lib/debug" "${FLATPAK_DEST}/retrodeck/tmplib"
+ - rm -rf "files/lib/debug"
+ - cp -rL "files/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - rm -rf "files/lib"
+ - cp -r files/* "${FLATPAK_DEST}"
+ - chmod +x "${FLATPAK_DEST}/bin/"*
sources:
- type: archive
- url: https://github.com/yaml/pyyaml/archive/refs/tags/6.0.tar.gz
- sha256: f33eaba25d8e0c1a959bbf00655198c287dfc5868f5b7b01e401eaa1796cc778
+ url: https://github.com/RetroDECK/io.github.shiiion.primehack/releases/latest/download/RetroDECK-primehack-Artifact.tar.gz
+ sha256: RETRODECKPRIMEHACKLATEST
- - name: xemu
- buildsystem: autotools
- builddir: true
- no-make-install: true
- build-options:
- cflags: -O3 -DXBOX=1 -Wno-error=redundant-decls
- config-opts:
- - --audio-drv-list=sdl
- - --disable-werror
- - --target-list=i386-softmmu
- make-args:
- - qemu-system-i386
- post-install:
- - |-
- for px in 16 32 48 64 128 256 512; do
- install -Dm644 ../ui/icons/xemu_${px}x${px}.png $FLATPAK_DEST/share/icons/hicolor/${px}x${px}/apps/app.xemu.xemu.png
- done
- - install -Dm644 ../ui/icons/xemu.svg $FLATPAK_DEST/share/icons/hicolor/scalable/apps/app.xemu.xemu.svg
- - mv qemu-system-i386 $FLATPAK_DEST/bin/xemu
- - mkdir -p $FLATPAK_DEST/share/licenses/xemu
- - cd .. && python3 scripts/gen-license.py > $FLATPAK_DEST/share/licenses/xemu/LICENSE.txt
- sources:
- - type: git
- url: https://github.com/xemu-project/xemu.git
- tag: v0.7.120
- commit: 94d826a4f125d755d6d37069ad7084bfde33d650
- x-checker-data:
- type: json
- url: https://api.github.com/repos/xemu-project/xemu/releases/latest
- tag-query: .tag_name
- timestamp-query: .published_at
- version-query: .tag_name
-
- - name: xemu-dummy-hdd
- buildsystem: simple
- build-commands:
- - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/XEMU
- - mv -f "xbox_hdd.qcow2" "${FLATPAK_DEST}/retrodeck/extras/XEMU/xbox_hdd.qcow2"
- sources:
- - type: archive
- url: https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip
- sha256: XEMUHDDHASHPLACEHOLDER
-
- # XEMU - END
-
- # MELONDS - START
- # https://github.com/flathub/net.kuribo64.melonDS
- # ちっちゃい、かわいい!
-
- - name: melonds
- buildsystem: cmake-ninja
- builddir: true
- build-options:
- config-opts:
- - -DUSE_QT6=ON
- sources:
- - type: git
- url: https://github.com/melonDS-emu/melonDS.git
- commit: 430de6b2702bb93faa8c2004aff3fbd084db4a1e
- - type: patch
- path: rd-submodules/melonds/hotkeys.patch
-
- # MELONDS - END
-
- # RPCS3 - START
- # https://github.com/flathub/net.rpcs3.RPCS3
+ # RPCS3
+ # https://rpcs3.net/download
- name: rpcs3
- buildsystem: cmake-ninja
- builddir: true
- build-options:
- # llvm17 is not available in framework 6.5 but in 6.6, so we're trying llvm16 and cross our fingers until Primehack is updated (as Primehack breaks on 6.6)
- #append-ld-library-path: /usr/lib/sdk/llvm17/lib
- #append-path: /usr/lib/sdk/llvm17/bin
- append-ld-library-path: /usr/lib/sdk/llvm16/lib
- append-path: /usr/lib/sdk/llvm16/bin
- 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: *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=OFF
- - -DUSE_NATIVE_INSTRUCTIONS=OFF
- - -DUSE_PRECOMPILED_HEADERS=OFF
- - -DUSE_SDL=ON
- - -DUSE_SYSTEM_CURL=ON
- - -DUSE_SYSTEM_FFMPEG=OFF # Disabled this to force RPCS3 to use our built FFMPEG
- - -DUSE_SYSTEM_LIBPNG=ON
- - -DUSE_SYSTEM_SDL=ON
- - -DUSE_SYSTEM_ZLIB=ON
- - -Wno-dev
- post-install:
- #- cp /usr/lib/sdk/llvm17/lib/libLLVM-17.so /app/lib/
- - cp /usr/lib/sdk/llvm16/lib/libLLVM-16.so /app/lib/
- - |-
- set -eux
- 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)";
- sources:
- - type: git
- url: https://github.com/RPCS3/rpcs3.git
- commit: 4ecf8ecd06c15f0557e1d9243f31e4c2d7baebe2
-
- # RPCS3 - END
-
- # PRIMEHACK - START
- # https://github.com/flathub/io.github.shiiion.primehack
-
- - name: primehack
- buildsystem: cmake-ninja
- config-opts:
- - -DCMAKE_BUILD_TYPE=Release
- - -DENABLE_ALSA=OFF
- - -DENABLE_SDL=ON
- - -DENABLE_EVDEV=ON
- - -DDISTRIBUTOR=Flathub
- - -DQT_DIR=
- cleanup:
- - /share/man
- post-install:
- - install -D primehack-wrapper /app/bin/primehack-wrapper
- sources:
- - type: git
- url: https://github.com/XargonWan/primehack
- commit: af7710ef7b04a632b4294eae5e0eff8fe9c4d1f8
- #url: https://github.com/TheDrifter363/primehack.git
- #commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c
- # 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
- # in non-writable paths, typically happens when a user
- # has leftover files from a previous non-flatpak install
- - type: patch
- path: rd-submodules/primehack/detectflatpak.patch
- # version strings must match exactly for online multiplayer
- - type: patch
- path: rd-submodules/primehack/nodirtyversion.patch
- - type: script
- commands:
- - for i in {0..9}; do
- - test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
- - done
- - primehack "$@"
- dest-filename: primehack-wrapper
-
- # # PRIMEHACK - END
-
- # Duckstation-AppImage - START
- # https://github.com/stenzek/duckstation/releases/tag/preview
-
- - name: Duckstation-AppImage
buildsystem: simple
build-commands:
- - chmod +x DuckStation-*.AppImage
- - ./DuckStation-x64*.AppImage --appimage-extract
- - mkdir -p "${FLATPAK_DEST}/duckstation"
- - cp -r squashfs-root/* "${FLATPAK_DEST}/duckstation"
- - ln -s "${FLATPAK_DEST}/duckstation/usr/bin/duckstation-qt" "${FLATPAK_DEST}/bin/duckstation-qt"
+ - chmod +x *.AppImage
+ - ./*.AppImage --appimage-extract
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - mkdir -p ${FLATPAK_DEST}/lib/ffmpeg # Needed for a ffmpeg bufgix
+ - mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - cp -r "squashfs-root/usr/bin/"* "${FLATPAK_DEST}/bin/"
+ - cp -r "squashfs-root/usr/share/"* "${FLATPAK_DEST}/share/"
+ #TODO: - cp -r squashfs-root/usr/optional* # maybe already included in flatpak runtime
+ #TODO: - cp -r squashfs-root/usr/plugins* # maybe already included in qt
+ #TODO: Do we need this wrapper? squashfs-root/apprun-hooks/linuxdeploy-plugin-qt-hook.sh
sources:
- type: file
- url: https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage
- sha256: DUCKSTATIONSHAPLACEHOLDER
+ url: https://github.com/RPCS3/rpcs3-binaries-linux/releases/download/build-ebcb4034119955991a17210af2a45a672fc9533d/rpcs3-v0.0.32-16685-ebcb4034_linux64.AppImage
+ sha256: 2553d56e01a3e3058fa9ceb4e1d61a07eaf2c5bba9e96b29e8923914d89f6e17
- # Duckstation-AppImage - END
+ # MELONDS
+ # https://github.com/melonDS-emu/melonDS/releases/latest
- # Cemu - START
- # needed libusb 1.0.26 but we provide 1.0.27, it could break
- # https://github.com/cemu-project/Cemu/releases
- # https://github.com/flathub/info.cemu.Cemu
-
- - name: hidapi
- buildsystem: cmake-ninja
- sources:
- - type: archive
- url: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-0.14.0.tar.gz
- sha256: a5714234abe6e1f53647dd8cba7d69f65f71c558b7896ed218864ffcf405bcbd
- x-checker-data:
- type: anitya
- project-id: 5594
- stable-only: true
- url-template: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-$version.tar.gz
-
- - name: boost
+ - name: melonds
buildsystem: simple
build-commands:
- - ./bootstrap.sh --prefix=${FLATPAK_DEST} --with-toolset=gcc --with-libraries=filesystem,system,program_options,nowide
- - ./b2 install variant=release link=shared runtime-link=shared cxxflags="$CXXFLAGS"
- linkflags="$LDFLAGS" -j ${FLATPAK_BUILDER_N_JOBS}
- cleanup:
- - /include
- - /lib/cmake
+ - rm -f "files/manifest.json"
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib/"
+ - cp -rL "files/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib/"
+ - rm -rf "files/lib"
+ - cp -r files/* "${FLATPAK_DEST}/"
+ - chmod +x "${FLATPAK_DEST}/bin/"*
sources:
- type: archive
- url: https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.tar.bz2
- sha256: 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617
- x-checker-data:
- type: anitya
- project-id: 6845
- stable-only: true
- url-template: https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_${major}_${minor}_$patch.tar.bz2
+ url: https://github.com/RetroDECK/net.kuribo64.melonDS/releases/latest/download/RetroDECK-melonds-Artifact.tar.gz
+ sha256: RETRODECKMELONDSLATEST
- - name: libzip
- buildsystem: cmake-ninja
- config-opts:
- - -DBUILD_DOC=OFF
- - -DBUILD_EXAMPLES=OFF
- - -DBUILD_REGRESS=OFF
- - -DBUILD_TOOLS=OFF
- cleanup:
- - /bin
- - /include
- - /lib/cmake
- - /lib/pkgconfig
- sources:
- - type: archive
- url: https://libzip.org/download/libzip-1.10.1.tar.xz
- mirror-urls:
- - https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.xz
- sha256: dc3c8d5b4c8bbd09626864f6bcf93de701540f761d76b85d7c7d710f4bd90318
- x-checker-data:
- type: anitya
- project-id: 10649
- url-template: https://libzip.org/download/libzip-$version.tar.xz
+ # Duckstation
+ # https://github.com/stenzek/duckstation/releases/tag/preview
- - name: fmt
- buildsystem: cmake-ninja
- config-opts:
- - -DFMT_TEST=Off
- cleanup:
- - '*'
+ - name: duckstation
+ buildsystem: simple
+ build-commands:
+ - chmod +x *.AppImage
+ - ./*.AppImage --appimage-extract
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - cp -r squashfs-root/usr/* "${FLATPAK_DEST}"
sources:
- - type: archive
- url: https://github.com/fmtlib/fmt/archive/9.1.0.tar.gz
- sha256: 5dea48d1fcddc3ec571ce2058e13910a0d4a6bab4cc09a809d8b1dd1c88ae6f2
- x-checker-data:
- type: anitya
- project-id: 11526
- url-template: https://github.com/fmtlib/fmt/archive/$version.tar.gz
- versions: {<: '10.0'}
+ - type: file
+ url: https://github.com/stenzek/duckstation/releases/download/v0.1-6937/DuckStation-x64.AppImage
+ sha256: 8a16f034cc8b11341ed9ad382226549301736794582bdec46a5e19b3ca981e07
- - name: wxWidgets
- buildsystem: cmake-ninja
- cleanup:
- - /bin
- - /include
- - /lib/cmake
- - /lib/wx
- - /share
- sources:
- - type: archive
- url: https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.4/wxWidgets-3.2.4.tar.bz2
- sha256: 0640e1ab716db5af2ecb7389dbef6138d7679261fbff730d23845ba838ca133e
- x-checker-data:
- type: anitya
- project-id: 5150
- stable-only: true
- url-template: https://github.com/wxWidgets/wxWidgets/releases/download/v$version/wxWidgets-$version.tar.bz2
- versions: {'!=': 3.2.4-with-msvs2012-fix}
+ # Cemu
+ # https://github.com/cemu-project/Cemu/releases
- - name: Cemu
- buildsystem: cmake-ninja
- config-opts:
- - -DPORTABLE=false
- - -DENABLE_VCPKG=false
+ - name: cemu
+ buildsystem: simple
+ build-commands:
+ - chmod +x *.AppImage
+ - ./*.AppImage --appimage-extract
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - rm -rf "squashfs-root/usr/lib/girepository-1.0" # causes issues, I think we already have this
+ - mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - cp -r squashfs-root/usr/* "${FLATPAK_DEST}"
+ - install -Dm755 Cemu-wrapper "${FLATPAK_DEST}/bin/"
+ #TODO: do we need this wrapper? squashfs-root/apprun-hooks/linuxdeploy-plugin-gtk.sh
sources:
- - type: git
- url: https://github.com/cemu-project/Cemu
- # TODO: Update tag pattern on next stable ^v([\d.]+)$
- x-checker-data:
- type: git
- tag-pattern: ^v([\d.]+-\d+)$
- tag: v2.0-79
- commit: efbbb817fe1cbe09ee132344b44a0f61f8b8ac96
- - type: shell
- commands:
- - sed "s/set(EXPERIMENTAL_VERSION.*/set(EXPERIMENTAL_VERSION \"$(git describe
- --tag | sed "s/v2.0-//")\" CACHE STRING \"\")/g" -i CMakeLists.txt
+ - type: file
+ url: https://github.com/cemu-project/Cemu/releases/download/v2.0-88/Cemu-2.0-88-x86_64.AppImage
+ sha256: 1af1ad5322df5fa0e2a97588c7486604daf42deb8c4d07a2b885047d9701fed0
- type: script
commands:
- |
@@ -1081,41 +389,10 @@ modules:
ln -sf {app/com.discordapp.$d,$XDG_RUNTIME_DIR}/discord-ipc-$i;
done
done
- Cemu_relwithdebinfo "$@"
+ Cemu "$@"
dest-filename: Cemu-wrapper
- - type: script
- dest-filename: dev_release_metainfo.py
- commands:
- - |
- import os
- import xml.etree.ElementTree as ET
- meta_file = os.environ.get('AS_META_FILE')
- version = os.environ.get('AS_META_VERSION')
- release_type = os.environ.get('AS_META_TYPE')
- release_date = os.environ.get('AS_META_DATE')
- release_url = os.environ.get('AS_META_URL')
- tree = ET.parse(meta_file)
- root = tree.getroot()
- el_releases = root.find('releases')
- for el_release in el_releases:
- el_releases.remove(el_release)
- el_release = ET.SubElement(el_releases, 'release')
- el_url = ET.SubElement(el_release, 'url')
- el_url.text = release_url
- el_release.attrib['type'] = release_type
- el_release.attrib['date'] = release_date
- el_release.attrib['version'] = version
- ET.indent(tree, space=' ', level=0)
- tree.write(meta_file, encoding='utf8')
- post-install:
- - cp -r bin/gameProfiles ${FLATPAK_DEST}/share/Cemu/
- - cp -r bin/resources ${FLATPAK_DEST}/share/Cemu/
- - install -Dm644 -t ${FLATPAK_DEST}/share/icons/hicolor/128x128/apps/ dist/linux/info.cemu.Cemu.png
- - install -D -t ${FLATPAK_DEST}/bin/ bin/Cemu_relwithdebinfo Cemu-wrapper
- # Cemu - END
-
- # Vita3K - START
+ # Vita3K - AUTOUPDATED
- name: vita3k
buildsystem: simple
@@ -1134,84 +411,46 @@ modules:
- type: file
path: res/retrodeck.png
- # Vita3K - END
+ # SOLARUS
+ # why from source: they only provide a snap
+ # https://github.com/RetroDECK/org.solarus_games.solarus.Launcher
- # SOLARUS - START
- # https://github.com/flathub/org.solarus_games.solarus.Launcher
-
- - name: luajit
- no-autogen: true
- cleanup:
- - /bin
- - /lib/*.a
- - /include
- - /lib/pkgconfig
- - /share/man
- sources:
- - type: archive
- url: https://luajit.org/download/LuaJIT-2.0.5.tar.gz
- sha256: 874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979
- - type: shell
- commands:
- - sed -i 's|/usr/local|/app|' ./Makefile
-
- - name: libmodplug
- cleanup:
- - /include
- sources:
- - type: archive
- url: https://download.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz
- sha512: 880e10154fd367ee24ace53ca7e32a5c1fee7dfff1f934e6499944c12779427da63e2f55f8d6ce25db0a42a5b4424053bf64305b31dbfc4ef6a8909924d655fd
-
- - name: physfs
- buildsystem: cmake-ninja
- config-opts:
- - -DPHYSFS_BUILD_TEST=OFF
- sources:
- - type: archive
- url: https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2
- sha256: 304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863
- size: 194888
- x-checker-data:
- type: anitya
- project-id: 3631
- url-template: https://icculus.org/physfs/downloads/physfs-$version.tar.bz2
-
- - name: solarus
- buildsystem: cmake-ninja
- builddir: true
- config-opts:
- - -DSOLARUS_GUI=OFF
- sources:
- - type: git
- url: https://gitlab.com/solarus-games/solarus.git
- tag: v1.6.5
- commit: 3aec70b0556a8d7aed7903d1a3e4d9a18c5d1649
-
- # SOLARUS - END
-
- # GZDoom - Start
- # When updating remember to update all the .pk3 files from the standalone linux download
- - rd-submodules/shared-modules/gzdoom/gzdoom.json
- # GZDoom - END
-
- # MAME - Start
-
- - name: retrodeck-mame
+ - name: retrodeck-solarus
buildsystem: simple
build-commands:
- - cp -rn files/* /app
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ #- cp -r "files/lib/debug/lib/*" "${FLATPAK_DEST}/retrodeck/tmplib/debug/"
+ - rm -rf "files/lib/debug" "files/lib/pkgconfig"
+ - cp -rL files/* "${FLATPAK_DEST}"
+ - chmod +x "${FLATPAK_DEST}/bin/"*
sources:
- - type: archive
- url: RETRODECKMAMEURLPLACEHOLDER
- sha256: RETRODECKMAMEPLACEHOLDER
+ - type: archive
+ url: https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
+ sha256: RETRODECKSOLARUSLATEST
- # MAME - End
+ # GZDoom
+ # When updating remember to update all the .pk3 files from the standalone linux download
+ # https://github.com/RetroDECK/org.zdoom.GZDoom
- # Ryujinx Appimage - START
+ - name: retrodeck-gzdoom
+ buildsystem: simple
+ build-commands:
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - rm -rf "files/lib/cmake" "files/lib/pkgconfig" "files/lib/debug"
+ - cp -rL "files/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - rm -rf "files/lib"
+ - cp -r files/* "${FLATPAK_DEST}"
+ - chmod +x "${FLATPAK_DEST}/bin/"*
+ sources:
+ - type: archive
+ url: https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
+ sha256: RETRODECKGZDOOMLATEST
+
+ # Ryujinx Appimage
# https://ryujinx.org/download
- - name: Ryujinx
+ # This version was reported as working with symlinks: https://discord.com/channels/951662718102962256/951715885968654418/1264882000658169866
+ - name: Ryujinx-reported-working-version
buildsystem: simple
build-commands:
- |
@@ -1223,9 +462,108 @@ modules:
url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.1297/ryujinx-1.1.1297-linux_x64.tar.gz
sha256: 28b38754e7d2e92083b313b23278c180ae54ac025edbbd0276ec03baec0cec0f
- # Ryujinx Appimage - END
+ # XEMU
+ # https://xemu.app/docs/download/#download-for-linux
- # External manifests end
+ - name: xemu
+ buildsystem: simple
+ build-commands:
+ - chmod +x *.AppImage
+ - ./*.AppImage --appimage-extract
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - mv "squashfs-root/usr/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - cp -r squashfs-root/usr/* "${FLATPAK_DEST}/"
+ sources:
+ - type: file
+ url: https://github.com/xemu-project/xemu/releases/download/v0.7.129/xemu-v0.7.129-x86_64.AppImage
+ sha256: f680774d96a66bf1195cd133497755d43be5eda5f178457a6df32bc691dd8c74
+
+ - name: xemu-dummy-hdd
+ buildsystem: simple
+ build-commands:
+ - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/XEMU
+ - mv -f "xbox_hdd.qcow2" "${FLATPAK_DEST}/retrodeck/extras/XEMU/xbox_hdd.qcow2"
+ sources:
+ - type: archive
+ url: https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip
+ sha256: XEMUHDDHASHPLACEHOLDER
+
+ # MAME
+
+ - name: retrodeck-mame
+ buildsystem: simple
+ build-commands:
+ - rm -f files/manifest.json
+ - cp -rn files/* ${FLATPAK_DEST}
+ sources:
+ - type: archive
+ url: https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
+ sha256: RETRODECKMAMELATEST
+
+ # ES-DE
+
+ - name: ES-DE
+ buildsystem: simple
+ build-commands:
+ - mkdir -p "${FLATPAK_DEST}/retrodeck/tmplib" "${FLATPAK_DEST}/retrodeck/tmplib/debug"
+ - cp -rL "files/lib/"* "${FLATPAK_DEST}/retrodeck/tmplib"
+ - rm -rf "files/lib"
+ - cp -r files/* "${FLATPAK_DEST}"
+ - chmod +x "${FLATPAK_DEST}/bin/"*
+ sources:
+ - type: archive
+ #url: RETRODECKESDEURLPLACEHOLDER
+ #sha256: RETRODECKESDEPLACEHOLDER
+ url: https://github.com/RetroDECK/ES-DE/releases/download/feat%2Fsmaller-menu-010824.10/RetroDECK-ES-DE-Artifact.tar.gz
+ sha256: 47ac3a062e7f199475ee1989d0961ab55dac1f285a54ab0e1cf500f9ceb42015
+
+ - name: retrodeck-theme
+ buildsystem: simple
+ build-commands:
+ - mkdir -p ${FLATPAK_DEST}/share/es-de/themes/retrodeck/
+ - mv -f * ${FLATPAK_DEST}/share/es-de/themes/retrodeck/
+ sources:
+ - type: git
+ url: https://github.com/RetroDECK/RetroDECK-theme
+ commit: 975c41cac99d150b6ae86a1dfd19988058c69aad
+
+ - name: fetch-missing-libs
+ buildsystem: simple
+ build-commands:
+ - |
+ # Search for missingl ibraries in our libtmp folder
+ missing_libs=$(find "${FLATPAK_DEST}/bin" -type f -exec ldd {} + 2>/dev/null | grep "not found" | awk '{print $1}' | sort | uniq)
+
+ # for some reason these libraries are not recognized as missing so we mantain this list
+ manually_imported="libpostproc.so.56 libswscale.so.6 libshaderc_shared.so.1"
+
+ missing_libs="$missing_libs $manually_imported"
+
+ # Origin paths
+ src_dir="${FLATPAK_DEST}/retrodeck/tmplib"
+ src_debug_dir="${FLATPAK_DEST}/retrodeck/tmplib/debug"
+
+ # Destionation paths
+ dest_dir="${FLATPAK_DEST}/lib"
+ dest_debug_dir="${FLATPAK_DEST}/retrodeck/lib/debug"
+
+ mkdir -p "$dest_dir" "dest_debug_dir"
+
+ copy_missing_libs() {
+ local src=$1
+ local dest=$2
+ for lib in $missing_libs; do
+ if [[ -f "$src/$lib" ]]; then
+ cp "$src/$lib" "$dest"
+ echo "Copied \"$lib\" to \"$dest\""
+ fi
+ done
+ }
+
+ copy_missing_libs "$src_dir" "$dest_dir"
+ copy_missing_libs "$src_debug_dir" "$dest_debug_dir"
+
+ rm -rf "$src_dir"
- name: retrodeck
buildsystem: simple
@@ -1235,59 +573,56 @@ modules:
- mkdir -p ${FLATPAK_DEST}/retrodeck
# These must be put in home folder, managed by retrodeck.sh
- - cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
- - mv -f -t ${FLATPAK_DEST}/retrodeck es-configs/rd_prepacks
+ - cp config/es-de/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
+ - mv -f -t ${FLATPAK_DEST}/retrodeck config/es-de/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/es-de/resources/graphics
+ - mv -f -t ${FLATPAK_DEST}/retrodeck ${FLATPAK_DEST}/share/es-de/resources/graphics
- cp -f res/splash.svg ${FLATPAK_DEST}/retrodeck/graphics/splash.svg
- cp -f res/splash.svg ${FLATPAK_DEST}/retrodeck/graphics/splash-orig.svg
- cp -rf res/extra_splashes/ ${FLATPAK_DEST}/retrodeck/graphics
- - cp -f res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
+ - cp -f res/icon.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
- cp -f res/icon-configurator.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.configurator.svg
- mv -f -t ${FLATPAK_DEST}/retrodeck res/binding_icons
# RetroDECK core script
- - cp retrodeck.sh /app/bin/retrodeck.sh
- - chmod +x /app/bin/retrodeck.sh
+ - cp retrodeck.sh ${FLATPAK_DEST}/bin/retrodeck.sh
+ - chmod +x ${FLATPAK_DEST}/bin/retrodeck.sh
# Tools
- - mkdir -p /app/tools
- - cp -r tools/** /app/tools
- - find /app/tools -type f \( -name "*.sh" -o -name "*.py" \) -exec chmod +x {} \;
+ - mkdir -p ${FLATPAK_DEST}/tools
+ - cp -r tools/** ${FLATPAK_DEST}/tools
+ - find ${FLATPAK_DEST}/tools -type f \( -name "*.sh" -o -name "*.py" \) -exec chmod +x {} \;
# Function libraries
- - mkdir -p /app/libexec
- - cp -r functions/** "/app/libexec/"
+ - mkdir -p ${FLATPAK_DEST}/libexec
+ - cp -r functions/** "${FLATPAK_DEST}/libexec/"
# Desktop entries
- - cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
+ - cp net.retrodeck.retrodeck.desktop ${FLATPAK_DEST}/share/applications/net.retrodeck.retrodeck.desktop
- cp net.retrodeck.retrodeck.Configurator.desktop /app/share/applications/net.retrodeck.retrodeck.Configurator.desktop
- chmod +x net.retrodeck.retrodeck*desktop
# Initializing default emulator configs
- - cp -r emu-configs ${FLATPAK_DEST}/retrodeck/emu-configs/
+ - cp -r config ${FLATPAK_DEST}/retrodeck/config/
# PICO-8 wrapper
- - cp ${FLATPAK_DEST}/retrodeck/emu-configs/pico-8/pico8-wrapper.sh /app/bin/pico8
- - chmod +x /app/bin/pico8
-
- # Needed for ffmpeg (RPCS3)
- - mkdir -p ${FLATPAK_DEST}/lib/ffmpeg
+ - cp ${FLATPAK_DEST}/retrodeck/config/pico-8/pico8-wrapper.sh ${FLATPAK_DEST}/bin/pico8
+ - chmod +x ${FLATPAK_DEST}/bin/pico8
# Placing appdata
- mkdir -p ${FLATPAK_DEST}/share/appdata
- cp net.retrodeck.retrodeck.appdata.xml ${FLATPAK_DEST}/share/appdata
# Creating symlinks for a prettier access
- - ln -s /app/bin/retrodeck.sh /app/bin/retrodeck
- - ln -s /app/tools/configurator.sh /app/bin/configurator
+ - ln -s ${FLATPAK_DEST}/bin/retrodeck.sh ${FLATPAK_DEST}/bin/retrodeck
+ - ln -s ${FLATPAK_DEST}/tools/configurator.sh ${FLATPAK_DEST}/bin/configurator
# GZDOOM wrapper
- - cp emu-configs/gzdoom/gzdoom.sh ${FLATPAK_DEST}/bin/gzdoom.sh
+ - cp config/gzdoom/gzdoom.sh ${FLATPAK_DEST}/bin/gzdoom.sh
- chmod +x ${FLATPAK_DEST}/bin/gzdoom.sh
sources:
- type: git
- url: https://github.com/XargonWan/RetroDECK.git
+ url: https://github.com/RetroDECK/RetroDECK.git
branch: THISBRANCH
diff --git a/old/disabled-workflows/TEST_release_info.yml b/old/disabled-workflows/TEST_release_info.yml
index ebf21609..b9a891d1 100644
--- a/old/disabled-workflows/TEST_release_info.yml
+++ b/old/disabled-workflows/TEST_release_info.yml
@@ -39,7 +39,7 @@ jobs:
- name: Getting version info
id: version
run: |
- appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
+ appdata="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
echo "REL_VER=$REL_VER" >> $GITHUB_ENV
diff --git a/old/disabled-workflows/cooker-selfhosted-persistent.yml b/old/disabled-workflows/cooker-selfhosted-persistent.yml
index 711deb76..1c89a17a 100644
--- a/old/disabled-workflows/cooker-selfhosted-persistent.yml
+++ b/old/disabled-workflows/cooker-selfhosted-persistent.yml
@@ -11,8 +11,8 @@ on:
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- - 'emu-configs/**'
- - 'es-configs/**'
+ - 'config/**'
+ - 'config/es-de/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
@@ -27,7 +27,7 @@ on:
jobs:
Building_RetroDECK:
- runs-on: self-hosted
+ runs-on: retrodeck
steps:
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
@@ -64,7 +64,7 @@ jobs:
run: |
if [[ "$BRANCH_NAME" == 'refs/'* ]]; then
pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}')
- source_branch=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
+ source_branch=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
source_branch=${source_branch//\//-}
echo "[DEBUG] source branch is: $source_branch"
echo "TAG=PR-$pr_number-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
@@ -140,7 +140,7 @@ jobs:
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
- On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}).
+ On branch [${{env.BRANCH_NAME}}](https://github.com/RetroDECK/RetroDECK/tree/${{env.BRANCH_NAME}}).
## Commits since last release
${{ steps.commits.outputs.commits }}
diff --git a/old/disabled-workflows/cooker-selfhosted.yml b/old/disabled-workflows/cooker-selfhosted.yml
index 4ffb693a..c264940f 100644
--- a/old/disabled-workflows/cooker-selfhosted.yml
+++ b/old/disabled-workflows/cooker-selfhosted.yml
@@ -8,8 +8,8 @@ on:
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- - 'emu-configs/**'
- - 'es-configs/**'
+ - 'config/**'
+ - 'config/es-de/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
@@ -29,7 +29,7 @@ on:
jobs:
Building_RetroDECK:
- runs-on: self-hosted
+ runs-on: retrodeck
steps:
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
@@ -66,7 +66,7 @@ jobs:
run: |
if [[ "$BRANCH_NAME" == 'refs/'* ]]; then
pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}')
- source_branch=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
+ source_branch=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
source_branch=${source_branch//\//-}
echo "[DEBUG] source branch is: $source_branch"
echo "TAG=PR-$pr_number-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
@@ -142,7 +142,7 @@ jobs:
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
- On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}).
+ On branch [${{env.BRANCH_NAME}}](https://github.com/RetroDECK/RetroDECK/tree/${{env.BRANCH_NAME}}).
## Commits since last release
${{ steps.commits.outputs.commits }}
diff --git a/old/disabled-workflows/flathub_push_cooker.yml b/old/disabled-workflows/flathub_push_cooker.yml
index 65a4d349..2760bade 100644
--- a/old/disabled-workflows/flathub_push_cooker.yml
+++ b/old/disabled-workflows/flathub_push_cooker.yml
@@ -25,7 +25,7 @@ jobs:
fi
git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub
cd $gits_folder
- git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK
+ git clone --recursive https://github.com/RetroDECK/RetroDECK RetroDECK
cd $gits_folder/RetroDECK
# NON-EDITABLES
@@ -66,7 +66,7 @@ jobs:
# curl -sL \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \
- # https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \
+ # https://api.github.com/repos/RetroDECK/Cooker/releases \
# | jq .[0].tag_name \
# | tr -d \" \
# )
diff --git a/old/disabled-workflows/update-readthedocs.yml b/old/disabled-workflows/update-readthedocs.yml
index f32127e4..65784a36 100644
--- a/old/disabled-workflows/update-readthedocs.yml
+++ b/old/disabled-workflows/update-readthedocs.yml
@@ -26,7 +26,7 @@ jobs:
- name: Update ReadTheDocs wiki-rtd
id: wiki-rtd-update
run: |
- git checkout https://github.com/XargonWan/RetroDECK.wiki-rtd.git tmp/wiki-rtd
+ git checkout https://github.com/RetroDECK/RetroDECK.wiki-rtd.git tmp/wiki-rtd
cp -rf tmp/wiki-rtd/* wiki-rtd
rm wiki-rtd/index.md
mv wiki-rtd/Home.md wiki-rtd/index.md
diff --git a/emu-configs/defaults/citra/citra-qt-config.ini b/old/emu-configs/defaults/citra/citra-qt-config.ini
similarity index 100%
rename from emu-configs/defaults/citra/citra-qt-config.ini
rename to old/emu-configs/defaults/citra/citra-qt-config.ini
diff --git a/emu-configs/defaults/dolphin/Dolphin.ini b/old/emu-configs/defaults/dolphin/Dolphin.ini
similarity index 77%
rename from emu-configs/defaults/dolphin/Dolphin.ini
rename to old/emu-configs/defaults/dolphin/Dolphin.ini
index 5ac640b9..73f06aa0 100644
--- a/emu-configs/defaults/dolphin/Dolphin.ini
+++ b/old/emu-configs/defaults/dolphin/Dolphin.ini
@@ -51,10 +51,17 @@ Threads = True
ISOPath0 =
ISOPath1 =
ISOPaths = 2
-WiiSDCardPath =
WirelessMac =
HotkeysRequireFocus = True
RecursiveISOPaths = False
+NANDRootPath =
+DumpPath = /var/data/dolphin-emu/Dump/
+LoadPath = /var/data/dolphin-emu/Load/
+NANDRootPath = /var/data/dolphin-emu/Wii/
+ResourcePackPath = /var/data/dolphin-emu/ResourcePacks/
+WFSPath =
+WiiSDCardPath =
+WiiSDCardSyncFolder = /var/data/dolphin-emu/Load/WiiSDSync/
[Interface]
ConfirmStop = True
CursorVisibility = 0
@@ -63,6 +70,14 @@ PauseOnFocusLost = False
ShowActiveTitle = True
UseBuiltinTitleDatabase = True
UsePanicHandlers = True
+[NetPlay]
+TraversalChoice = direct
+[Core]
+SelectedLanguage = 0
+SerialPort1 = 255
+SkipIPL = True
+SlotA = 8
+SlotB = 255
[BluetoothPassthrough]
Enabled = False
[DSP]
@@ -77,4 +92,4 @@ SavesInRomPath = False
SavesPath =
Threads = True
[Input]
-BackgroundInput = False
+BackgroundInput = False
\ No newline at end of file
diff --git a/emu-configs/defaults/dolphin/FreeLook.ini b/old/emu-configs/defaults/dolphin/FreeLook.ini
similarity index 100%
rename from emu-configs/defaults/dolphin/FreeLook.ini
rename to old/emu-configs/defaults/dolphin/FreeLook.ini
diff --git a/emu-configs/defaults/dolphin/GBA.ini b/old/emu-configs/defaults/dolphin/GBA.ini
similarity index 100%
rename from emu-configs/defaults/dolphin/GBA.ini
rename to old/emu-configs/defaults/dolphin/GBA.ini
diff --git a/emu-configs/defaults/dolphin/GCPadNew.ini b/old/emu-configs/defaults/dolphin/GCPadNew.ini
similarity index 100%
rename from emu-configs/defaults/dolphin/GCPadNew.ini
rename to old/emu-configs/defaults/dolphin/GCPadNew.ini
diff --git a/emu-configs/defaults/dolphin/GFX.ini b/old/emu-configs/defaults/dolphin/GFX.ini
similarity index 100%
rename from emu-configs/defaults/dolphin/GFX.ini
rename to old/emu-configs/defaults/dolphin/GFX.ini
diff --git a/emu-configs/defaults/dolphin/Hotkeys.ini b/old/emu-configs/defaults/dolphin/Hotkeys.ini
similarity index 100%
rename from emu-configs/defaults/dolphin/Hotkeys.ini
rename to old/emu-configs/defaults/dolphin/Hotkeys.ini
diff --git a/emu-configs/defaults/dolphin/Qt.ini b/old/emu-configs/defaults/dolphin/Qt.ini
similarity index 100%
rename from emu-configs/defaults/dolphin/Qt.ini
rename to old/emu-configs/defaults/dolphin/Qt.ini
diff --git a/emu-configs/defaults/dolphin/WiimoteNew.ini b/old/emu-configs/defaults/dolphin/WiimoteNew.ini
similarity index 100%
rename from emu-configs/defaults/dolphin/WiimoteNew.ini
rename to old/emu-configs/defaults/dolphin/WiimoteNew.ini
diff --git a/emu-configs/defaults/duckstation/settings.ini b/old/emu-configs/defaults/duckstation/settings.ini
similarity index 100%
rename from emu-configs/defaults/duckstation/settings.ini
rename to old/emu-configs/defaults/duckstation/settings.ini
diff --git a/emu-configs/defaults/melonds/melonDS.ini b/old/emu-configs/defaults/melonds/melonDS.ini
similarity index 100%
rename from emu-configs/defaults/melonds/melonDS.ini
rename to old/emu-configs/defaults/melonds/melonDS.ini
diff --git a/emu-configs/defaults/pcsx2-qt/PCSX2.ini b/old/emu-configs/defaults/pcsx2-qt/PCSX2.ini
similarity index 100%
rename from emu-configs/defaults/pcsx2-qt/PCSX2.ini
rename to old/emu-configs/defaults/pcsx2-qt/PCSX2.ini
diff --git a/emu-configs/defaults/ppsspp/controls.ini b/old/emu-configs/defaults/ppsspp/controls.ini
similarity index 100%
rename from emu-configs/defaults/ppsspp/controls.ini
rename to old/emu-configs/defaults/ppsspp/controls.ini
diff --git a/emu-configs/defaults/ppsspp/ppsspp.ini b/old/emu-configs/defaults/ppsspp/ppsspp.ini
similarity index 100%
rename from emu-configs/defaults/ppsspp/ppsspp.ini
rename to old/emu-configs/defaults/ppsspp/ppsspp.ini
diff --git a/emu-configs/defaults/primehack/Dolphin.ini b/old/emu-configs/defaults/primehack/Dolphin.ini
similarity index 100%
rename from emu-configs/defaults/primehack/Dolphin.ini
rename to old/emu-configs/defaults/primehack/Dolphin.ini
diff --git a/emu-configs/primehack/config/FreeLookController.ini b/old/emu-configs/defaults/primehack/FreeLookController.ini
similarity index 100%
rename from emu-configs/primehack/config/FreeLookController.ini
rename to old/emu-configs/defaults/primehack/FreeLookController.ini
diff --git a/emu-configs/primehack/config/GBA.ini b/old/emu-configs/defaults/primehack/GBA.ini
similarity index 100%
rename from emu-configs/primehack/config/GBA.ini
rename to old/emu-configs/defaults/primehack/GBA.ini
diff --git a/emu-configs/primehack/config/GCKeyNew.ini b/old/emu-configs/defaults/primehack/GCKeyNew.ini
similarity index 100%
rename from emu-configs/primehack/config/GCKeyNew.ini
rename to old/emu-configs/defaults/primehack/GCKeyNew.ini
diff --git a/emu-configs/defaults/primehack/GCPadNew.ini b/old/emu-configs/defaults/primehack/GCPadNew.ini
similarity index 100%
rename from emu-configs/defaults/primehack/GCPadNew.ini
rename to old/emu-configs/defaults/primehack/GCPadNew.ini
diff --git a/emu-configs/primehack/config/Logger.ini b/old/emu-configs/defaults/primehack/Logger.ini
similarity index 100%
rename from emu-configs/primehack/config/Logger.ini
rename to old/emu-configs/defaults/primehack/Logger.ini
diff --git a/emu-configs/defaults/primehack/Qt.ini b/old/emu-configs/defaults/primehack/Qt.ini
similarity index 100%
rename from emu-configs/defaults/primehack/Qt.ini
rename to old/emu-configs/defaults/primehack/Qt.ini
diff --git a/emu-configs/defaults/primehack/WiimoteNew.ini b/old/emu-configs/defaults/primehack/WiimoteNew.ini
similarity index 100%
rename from emu-configs/defaults/primehack/WiimoteNew.ini
rename to old/emu-configs/defaults/primehack/WiimoteNew.ini
diff --git a/emu-configs/defaults/retroarch/retroarch-core-options.cfg b/old/emu-configs/defaults/retroarch/retroarch-core-options.cfg
similarity index 100%
rename from emu-configs/defaults/retroarch/retroarch-core-options.cfg
rename to old/emu-configs/defaults/retroarch/retroarch-core-options.cfg
diff --git a/emu-configs/defaults/retroarch/retroarch.cfg b/old/emu-configs/defaults/retroarch/retroarch.cfg
similarity index 100%
rename from emu-configs/defaults/retroarch/retroarch.cfg
rename to old/emu-configs/defaults/retroarch/retroarch.cfg
diff --git a/emu-configs/defaults/rpcs3/config.yml b/old/emu-configs/defaults/rpcs3/config.yml
similarity index 100%
rename from emu-configs/defaults/rpcs3/config.yml
rename to old/emu-configs/defaults/rpcs3/config.yml
diff --git a/emu-configs/defaults/rpcs3/vfs.yml b/old/emu-configs/defaults/rpcs3/vfs.yml
similarity index 100%
rename from emu-configs/defaults/rpcs3/vfs.yml
rename to old/emu-configs/defaults/rpcs3/vfs.yml
diff --git a/emu-configs/defaults/xemu/xemu.toml b/old/emu-configs/defaults/xemu/xemu.toml
similarity index 100%
rename from emu-configs/defaults/xemu/xemu.toml
rename to old/emu-configs/defaults/xemu/xemu.toml
diff --git a/emu-configs/defaults/yuzu/qt-config.ini b/old/emu-configs/defaults/yuzu/qt-config.ini
similarity index 100%
rename from emu-configs/defaults/yuzu/qt-config.ini
rename to old/emu-configs/defaults/yuzu/qt-config.ini
diff --git a/old/removed-modules.yml b/old/removed-modules.yml
index 04274441..343fe295 100644
--- a/old/removed-modules.yml
+++ b/old/removed-modules.yml
@@ -172,4 +172,182 @@
- type: file
path: rd-submodules/ryujinx/ryujinx-wrapper
- # Ryujinx - END
\ No newline at end of file
+ # Ryujinx - END
+
+ # Needed from ES-DE 2.1.0+
+ - name: libpoppler-glib
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DENABLE_BOOST=OFF
+ sources:
+ - type: archive
+ # original link not working, found a mirror
+ url: https://poppler.freedesktop.org/poppler-22.11.0.tar.xz
+ #url: https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-22.11.0/poppler-poppler-22.11.0.tar.bz2
+ sha256: 093ba9844ed774285517361c15e21a31ba4df278a499263d4403cca74f2da828
+ cleanup:
+ - /lib/pkgconfig
+ - /include
+ - '*.a'
+ - '*.la'
+
+
+ # dependency of: XEMU, MelonDS (4.7.0)
+ - name: libslirp
+ buildsystem: meson
+ cleanup:
+ - /include
+ sources:
+ - type: archive
+ url: https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.8.0/libslirp-v4.8.0.tar.gz
+ sha256: 2a98852e65666db313481943e7a1997abff0183bd9bea80caec1b5da89fda28c
+ x-checker-data:
+ type: anitya
+ project-id: 96796
+ stable-only: true
+ url-template: https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v$version/libslirp-v$version.tar.gz
+
+ # dependency of: CEMU (1.0.26), DOLPHIN (1.0.27)
+ - name: libusb
+ config-opts:
+ - --disable-static
+ cleanup:
+ - /include
+ - /lib/*.la
+ - /lib/pkgconfig
+ sources:
+ - type: archive
+ url: https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2
+ sha256: ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575
+ x-checker-data:
+ type: anitya
+ project-id: 1749
+ stable-only: true
+ url-template: https://github.com/libusb/libusb/releases/download/v$version/libusb-$version.tar.bz2
+
+ # Dolphin - START
+ # why from source: AppImage not provided, only Flatpak
+ # https://github.com/flathub/org.DolphinEmu.dolphin-emu
+ # WHEN UPADTING: remember to update rd-submodules/dolphin contents
+
+ - name: xdg-screensaver-shim
+ buildsystem: meson
+ sources:
+ - type: archive
+ url: https://github.com/Unrud/xdg-screensaver-shim/archive/0.0.2.tar.gz
+ sha256: 0ed2a69fe6ee6cbffd2fe16f85116db737f17fb1e79bfb812d893cf15c728399
+
+ - name: dolphin-emu
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DCMAKE_BUILD_TYPE=Release
+ - -DENABLE_ALSA=OFF
+ - -DENABLE_SDL=ON
+ - -DENABLE_EVDEV=ON
+ - -DDISTRIBUTOR=Flathub
+ cleanup:
+ - /share/man
+ post-install:
+ - install -D -t ${FLATPAK_DEST}/bin/ dolphin-emu-wrapper
+ - sed -i -e 's/viewBox="0 0 1024.02 571.29"/viewBox="0 -285.645 1024 1024" width="2048"
+ height="2048"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
+ sources:
+ - type: git
+ # Sometimes Dolphin or its submodules clone are failing in https so it must done in ssh
+ # fatal: remote transport reported error
+ # url: ssh://git@github.com/dolphin-emu/dolphin.git
+ url: https://github.com/dolphin-emu/dolphin.git
+ commit: cc3ff347b437fd80f3a2880d1bbc7ba2d5f191f4
+ # x-checker-data:
+ # type: json
+ # url: https://dolphin-emu.org/update/latest/beta
+ # commit-query: .hash
+ # version-query: .shortrev
+ # timestamp-query: .date
+ # is-main-source: true
+ # 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
+ # in non-writable paths, typically happens when a user
+ # has leftover files from a previous non-flatpak install
+ - type: patch
+ path: rd-submodules/dolphin/detectflatpak.patch
+ # version strings must match exactly for online multiplayer
+ - type: patch
+ path: rd-submodules/dolphin/nodirtyversion.patch
+ - type: script
+ commands:
+ - |
+ for i in {0..9}; do
+ test -S $XDG_RUNTIME_DIR/discord-ipc-$i ||
+ ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
+ done
+ dolphin-emu "$@"
+ dest-filename: dolphin-emu-wrapper
+
+ - name: universal_dynamic_input
+ buildsystem: simple
+ build-commands:
+ - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/DynamicInputTextures
+ - cp -rf * ${FLATPAK_DEST}/retrodeck/extras/DynamicInputTextures/
+ sources:
+ - type: git
+ url: https://github.com/Venomalia/UniversalDynamicInput.git
+ commit: UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER
+
+ # Dolphin - END
+
+ # SOLARUS - START
+ # why from source: they only provide a snap
+ # https://github.com/flathub/org.solarus_games.solarus.Launcher
+
+ - name: luajit
+ no-autogen: true
+ cleanup:
+ - /bin
+ - /lib/*.a
+ - /include
+ - /lib/pkgconfig
+ - /share/man
+ sources:
+ - type: archive
+ url: https://luajit.org/download/LuaJIT-2.0.5.tar.gz
+ sha256: 874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979
+ - type: shell
+ commands:
+ - sed -i 's|/usr/local|/app|' ./Makefile
+
+ - name: libmodplug
+ cleanup:
+ - /include
+ sources:
+ - type: archive
+ url: https://download.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz
+ sha512: 880e10154fd367ee24ace53ca7e32a5c1fee7dfff1f934e6499944c12779427da63e2f55f8d6ce25db0a42a5b4424053bf64305b31dbfc4ef6a8909924d655fd
+
+ - name: physfs
+ buildsystem: cmake-ninja
+ config-opts:
+ - -DPHYSFS_BUILD_TEST=OFF
+ sources:
+ - type: archive
+ url: https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2
+ sha256: 304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863
+ size: 194888
+ x-checker-data:
+ type: anitya
+ project-id: 3631
+ url-template: https://icculus.org/physfs/downloads/physfs-$version.tar.bz2
+
+ - name: solarus
+ buildsystem: cmake-ninja
+ builddir: true
+ config-opts:
+ - -DSOLARUS_GUI=OFF
+ sources:
+ - type: git
+ url: https://gitlab.com/solarus-games/solarus.git
+ tag: v1.6.5
+ commit: 3aec70b0556a8d7aed7903d1a3e4d9a18c5d1649
+
+ # SOLARUS - END
\ No newline at end of file
diff --git a/old/workflows/TEST_release_info.yml b/old/workflows/TEST_release_info.yml
index ebf21609..b9a891d1 100644
--- a/old/workflows/TEST_release_info.yml
+++ b/old/workflows/TEST_release_info.yml
@@ -39,7 +39,7 @@ jobs:
- name: Getting version info
id: version
run: |
- appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
+ appdata="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
echo "REL_VER=$REL_VER" >> $GITHUB_ENV
diff --git a/old/workflows/flathub_push_cooker.yml b/old/workflows/flathub_push_cooker.yml
index 65a4d349..2760bade 100644
--- a/old/workflows/flathub_push_cooker.yml
+++ b/old/workflows/flathub_push_cooker.yml
@@ -25,7 +25,7 @@ jobs:
fi
git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub
cd $gits_folder
- git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK
+ git clone --recursive https://github.com/RetroDECK/RetroDECK RetroDECK
cd $gits_folder/RetroDECK
# NON-EDITABLES
@@ -66,7 +66,7 @@ jobs:
# curl -sL \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \
- # https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \
+ # https://api.github.com/repos/RetroDECK/Cooker/releases \
# | jq .[0].tag_name \
# | tr -d \" \
# )
diff --git a/rd-submodules/boilr/cargo-lock.json b/rd-submodules/boilr/cargo-lock.json
deleted file mode 100644
index 24933d74..00000000
--- a/rd-submodules/boilr/cargo-lock.json
+++ /dev/null
@@ -1,5325 +0,0 @@
-[
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ab_glyph/ab_glyph-0.2.21.crate",
- "sha256": "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39",
- "dest": "cargo/vendor/ab_glyph-0.2.21"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39\", \"files\": {}}",
- "dest": "cargo/vendor/ab_glyph-0.2.21",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ab_glyph_rasterizer/ab_glyph_rasterizer-0.1.8.crate",
- "sha256": "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046",
- "dest": "cargo/vendor/ab_glyph_rasterizer-0.1.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046\", \"files\": {}}",
- "dest": "cargo/vendor/ab_glyph_rasterizer-0.1.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/accesskit/accesskit-0.11.0.crate",
- "sha256": "02c98a5d094590335462354da402d754fe2cb78f0e6ce5024611c28ed539c1de",
- "dest": "cargo/vendor/accesskit-0.11.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"02c98a5d094590335462354da402d754fe2cb78f0e6ce5024611c28ed539c1de\", \"files\": {}}",
- "dest": "cargo/vendor/accesskit-0.11.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/accesskit_consumer/accesskit_consumer-0.15.0.crate",
- "sha256": "ca541e0fdb600916d196a940228df99b86d804fd2e6ef13894d7814f2799db43",
- "dest": "cargo/vendor/accesskit_consumer-0.15.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ca541e0fdb600916d196a940228df99b86d804fd2e6ef13894d7814f2799db43\", \"files\": {}}",
- "dest": "cargo/vendor/accesskit_consumer-0.15.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/accesskit_macos/accesskit_macos-0.7.0.crate",
- "sha256": "cfea17e5bb5dcbfcf5b256ab2f5889a3e6f6582de78b9db9b6689adad3b002f3",
- "dest": "cargo/vendor/accesskit_macos-0.7.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"cfea17e5bb5dcbfcf5b256ab2f5889a3e6f6582de78b9db9b6689adad3b002f3\", \"files\": {}}",
- "dest": "cargo/vendor/accesskit_macos-0.7.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/accesskit_unix/accesskit_unix-0.5.0.crate",
- "sha256": "b4d1517421278cc8e67422d0786a18cf4291093ebe49eadf1cf989ff80e57f90",
- "dest": "cargo/vendor/accesskit_unix-0.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b4d1517421278cc8e67422d0786a18cf4291093ebe49eadf1cf989ff80e57f90\", \"files\": {}}",
- "dest": "cargo/vendor/accesskit_unix-0.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/accesskit_windows/accesskit_windows-0.14.0.crate",
- "sha256": "e11c7f177739f23bd19bb856e4a64fdd96eb8638ec0a6a6dde9a7019a9e91c53",
- "dest": "cargo/vendor/accesskit_windows-0.14.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e11c7f177739f23bd19bb856e4a64fdd96eb8638ec0a6a6dde9a7019a9e91c53\", \"files\": {}}",
- "dest": "cargo/vendor/accesskit_windows-0.14.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/accesskit_winit/accesskit_winit-0.14.0.crate",
- "sha256": "3f741b54fba827e49a73d55fdd43e8d3d5133aa7710a48581013c7802f232b83",
- "dest": "cargo/vendor/accesskit_winit-0.14.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3f741b54fba827e49a73d55fdd43e8d3d5133aa7710a48581013c7802f232b83\", \"files\": {}}",
- "dest": "cargo/vendor/accesskit_winit-0.14.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/addr2line/addr2line-0.19.0.crate",
- "sha256": "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97",
- "dest": "cargo/vendor/addr2line-0.19.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97\", \"files\": {}}",
- "dest": "cargo/vendor/addr2line-0.19.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/adler/adler-1.0.2.crate",
- "sha256": "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe",
- "dest": "cargo/vendor/adler-1.0.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe\", \"files\": {}}",
- "dest": "cargo/vendor/adler-1.0.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ahash/ahash-0.7.6.crate",
- "sha256": "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47",
- "dest": "cargo/vendor/ahash-0.7.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47\", \"files\": {}}",
- "dest": "cargo/vendor/ahash-0.7.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ahash/ahash-0.8.3.crate",
- "sha256": "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f",
- "dest": "cargo/vendor/ahash-0.8.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f\", \"files\": {}}",
- "dest": "cargo/vendor/ahash-0.8.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/aho-corasick/aho-corasick-1.0.1.crate",
- "sha256": "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04",
- "dest": "cargo/vendor/aho-corasick-1.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04\", \"files\": {}}",
- "dest": "cargo/vendor/aho-corasick-1.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/android-activity/android-activity-0.4.1.crate",
- "sha256": "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6",
- "dest": "cargo/vendor/android-activity-0.4.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6\", \"files\": {}}",
- "dest": "cargo/vendor/android-activity-0.4.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/android-properties/android-properties-0.2.2.crate",
- "sha256": "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04",
- "dest": "cargo/vendor/android-properties-0.2.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04\", \"files\": {}}",
- "dest": "cargo/vendor/android-properties-0.2.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/arboard/arboard-3.2.0.crate",
- "sha256": "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854",
- "dest": "cargo/vendor/arboard-3.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854\", \"files\": {}}",
- "dest": "cargo/vendor/arboard-3.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/arrayref/arrayref-0.3.7.crate",
- "sha256": "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545",
- "dest": "cargo/vendor/arrayref-0.3.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545\", \"files\": {}}",
- "dest": "cargo/vendor/arrayref-0.3.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/arrayvec/arrayvec-0.7.2.crate",
- "sha256": "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6",
- "dest": "cargo/vendor/arrayvec-0.7.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6\", \"files\": {}}",
- "dest": "cargo/vendor/arrayvec-0.7.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ascii/ascii-1.1.0.crate",
- "sha256": "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16",
- "dest": "cargo/vendor/ascii-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16\", \"files\": {}}",
- "dest": "cargo/vendor/ascii-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-broadcast/async-broadcast-0.5.1.crate",
- "sha256": "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b",
- "dest": "cargo/vendor/async-broadcast-0.5.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b\", \"files\": {}}",
- "dest": "cargo/vendor/async-broadcast-0.5.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-channel/async-channel-1.8.0.crate",
- "sha256": "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833",
- "dest": "cargo/vendor/async-channel-1.8.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833\", \"files\": {}}",
- "dest": "cargo/vendor/async-channel-1.8.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-executor/async-executor-1.5.1.crate",
- "sha256": "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb",
- "dest": "cargo/vendor/async-executor-1.5.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb\", \"files\": {}}",
- "dest": "cargo/vendor/async-executor-1.5.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-io/async-io-1.13.0.crate",
- "sha256": "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af",
- "dest": "cargo/vendor/async-io-1.13.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af\", \"files\": {}}",
- "dest": "cargo/vendor/async-io-1.13.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-lock/async-lock-2.7.0.crate",
- "sha256": "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7",
- "dest": "cargo/vendor/async-lock-2.7.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7\", \"files\": {}}",
- "dest": "cargo/vendor/async-lock-2.7.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-recursion/async-recursion-1.0.4.crate",
- "sha256": "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba",
- "dest": "cargo/vendor/async-recursion-1.0.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba\", \"files\": {}}",
- "dest": "cargo/vendor/async-recursion-1.0.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-task/async-task-4.4.0.crate",
- "sha256": "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae",
- "dest": "cargo/vendor/async-task-4.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae\", \"files\": {}}",
- "dest": "cargo/vendor/async-task-4.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-trait/async-trait-0.1.68.crate",
- "sha256": "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842",
- "dest": "cargo/vendor/async-trait-0.1.68"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842\", \"files\": {}}",
- "dest": "cargo/vendor/async-trait-0.1.68",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/atomic_refcell/atomic_refcell-0.1.10.crate",
- "sha256": "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31",
- "dest": "cargo/vendor/atomic_refcell-0.1.10"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31\", \"files\": {}}",
- "dest": "cargo/vendor/atomic_refcell-0.1.10",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/atspi/atspi-0.10.1.crate",
- "sha256": "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa",
- "dest": "cargo/vendor/atspi-0.10.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa\", \"files\": {}}",
- "dest": "cargo/vendor/atspi-0.10.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/atspi-macros/atspi-macros-0.2.0.crate",
- "sha256": "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768",
- "dest": "cargo/vendor/atspi-macros-0.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768\", \"files\": {}}",
- "dest": "cargo/vendor/atspi-macros-0.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/autocfg/autocfg-1.1.0.crate",
- "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
- "dest": "cargo/vendor/autocfg-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa\", \"files\": {}}",
- "dest": "cargo/vendor/autocfg-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/backtrace/backtrace-0.3.67.crate",
- "sha256": "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca",
- "dest": "cargo/vendor/backtrace-0.3.67"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca\", \"files\": {}}",
- "dest": "cargo/vendor/backtrace-0.3.67",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/base64/base64-0.13.1.crate",
- "sha256": "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8",
- "dest": "cargo/vendor/base64-0.13.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8\", \"files\": {}}",
- "dest": "cargo/vendor/base64-0.13.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/base64/base64-0.21.0.crate",
- "sha256": "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a",
- "dest": "cargo/vendor/base64-0.21.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a\", \"files\": {}}",
- "dest": "cargo/vendor/base64-0.21.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bit_field/bit_field-0.10.2.crate",
- "sha256": "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61",
- "dest": "cargo/vendor/bit_field-0.10.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61\", \"files\": {}}",
- "dest": "cargo/vendor/bit_field-0.10.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bitflags/bitflags-1.3.2.crate",
- "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
- "dest": "cargo/vendor/bitflags-1.3.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\", \"files\": {}}",
- "dest": "cargo/vendor/bitflags-1.3.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/block/block-0.1.6.crate",
- "sha256": "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a",
- "dest": "cargo/vendor/block-0.1.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a\", \"files\": {}}",
- "dest": "cargo/vendor/block-0.1.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/block-buffer/block-buffer-0.10.4.crate",
- "sha256": "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71",
- "dest": "cargo/vendor/block-buffer-0.10.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\", \"files\": {}}",
- "dest": "cargo/vendor/block-buffer-0.10.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/block-sys/block-sys-0.1.0-beta.1.crate",
- "sha256": "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146",
- "dest": "cargo/vendor/block-sys-0.1.0-beta.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146\", \"files\": {}}",
- "dest": "cargo/vendor/block-sys-0.1.0-beta.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/block2/block2-0.2.0-alpha.6.crate",
- "sha256": "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42",
- "dest": "cargo/vendor/block2-0.2.0-alpha.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42\", \"files\": {}}",
- "dest": "cargo/vendor/block2-0.2.0-alpha.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/build_const/build_const-0.2.2.crate",
- "sha256": "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7",
- "dest": "cargo/vendor/build_const-0.2.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7\", \"files\": {}}",
- "dest": "cargo/vendor/build_const-0.2.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bumpalo/bumpalo-3.12.2.crate",
- "sha256": "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b",
- "dest": "cargo/vendor/bumpalo-3.12.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b\", \"files\": {}}",
- "dest": "cargo/vendor/bumpalo-3.12.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bytecount/bytecount-0.6.3.crate",
- "sha256": "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c",
- "dest": "cargo/vendor/bytecount-0.6.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c\", \"files\": {}}",
- "dest": "cargo/vendor/bytecount-0.6.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bytemuck/bytemuck-1.13.1.crate",
- "sha256": "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea",
- "dest": "cargo/vendor/bytemuck-1.13.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea\", \"files\": {}}",
- "dest": "cargo/vendor/bytemuck-1.13.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bytemuck_derive/bytemuck_derive-1.4.1.crate",
- "sha256": "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192",
- "dest": "cargo/vendor/bytemuck_derive-1.4.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192\", \"files\": {}}",
- "dest": "cargo/vendor/bytemuck_derive-1.4.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/byteorder/byteorder-1.4.3.crate",
- "sha256": "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610",
- "dest": "cargo/vendor/byteorder-1.4.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610\", \"files\": {}}",
- "dest": "cargo/vendor/byteorder-1.4.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bytes/bytes-1.4.0.crate",
- "sha256": "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be",
- "dest": "cargo/vendor/bytes-1.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be\", \"files\": {}}",
- "dest": "cargo/vendor/bytes-1.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/calloop/calloop-0.10.5.crate",
- "sha256": "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192",
- "dest": "cargo/vendor/calloop-0.10.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192\", \"files\": {}}",
- "dest": "cargo/vendor/calloop-0.10.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cc/cc-1.0.79.crate",
- "sha256": "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f",
- "dest": "cargo/vendor/cc-1.0.79"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f\", \"files\": {}}",
- "dest": "cargo/vendor/cc-1.0.79",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cesu8/cesu8-1.1.0.crate",
- "sha256": "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c",
- "dest": "cargo/vendor/cesu8-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c\", \"files\": {}}",
- "dest": "cargo/vendor/cesu8-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate",
- "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
- "dest": "cargo/vendor/cfg-if-1.0.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd\", \"files\": {}}",
- "dest": "cargo/vendor/cfg-if-1.0.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cfg_aliases/cfg_aliases-0.1.1.crate",
- "sha256": "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e",
- "dest": "cargo/vendor/cfg_aliases-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e\", \"files\": {}}",
- "dest": "cargo/vendor/cfg_aliases-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cgl/cgl-0.3.2.crate",
- "sha256": "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff",
- "dest": "cargo/vendor/cgl-0.3.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff\", \"files\": {}}",
- "dest": "cargo/vendor/cgl-0.3.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/clipboard-win/clipboard-win-3.1.1.crate",
- "sha256": "9fdf5e01086b6be750428ba4a40619f847eb2e95756eee84b18e06e5f0b50342",
- "dest": "cargo/vendor/clipboard-win-3.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9fdf5e01086b6be750428ba4a40619f847eb2e95756eee84b18e06e5f0b50342\", \"files\": {}}",
- "dest": "cargo/vendor/clipboard-win-3.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/clipboard-win/clipboard-win-4.5.0.crate",
- "sha256": "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362",
- "dest": "cargo/vendor/clipboard-win-4.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362\", \"files\": {}}",
- "dest": "cargo/vendor/clipboard-win-4.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cocoa/cocoa-0.24.1.crate",
- "sha256": "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a",
- "dest": "cargo/vendor/cocoa-0.24.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a\", \"files\": {}}",
- "dest": "cargo/vendor/cocoa-0.24.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cocoa-foundation/cocoa-foundation-0.1.1.crate",
- "sha256": "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6",
- "dest": "cargo/vendor/cocoa-foundation-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6\", \"files\": {}}",
- "dest": "cargo/vendor/cocoa-foundation-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/color-eyre/color-eyre-0.6.2.crate",
- "sha256": "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204",
- "dest": "cargo/vendor/color-eyre-0.6.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204\", \"files\": {}}",
- "dest": "cargo/vendor/color-eyre-0.6.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/color-spantrace/color-spantrace-0.2.0.crate",
- "sha256": "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce",
- "dest": "cargo/vendor/color-spantrace-0.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce\", \"files\": {}}",
- "dest": "cargo/vendor/color-spantrace-0.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/color_quant/color_quant-1.1.0.crate",
- "sha256": "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b",
- "dest": "cargo/vendor/color_quant-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b\", \"files\": {}}",
- "dest": "cargo/vendor/color_quant-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/combine/combine-4.6.6.crate",
- "sha256": "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4",
- "dest": "cargo/vendor/combine-4.6.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4\", \"files\": {}}",
- "dest": "cargo/vendor/combine-4.6.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/concurrent-queue/concurrent-queue-2.2.0.crate",
- "sha256": "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c",
- "dest": "cargo/vendor/concurrent-queue-2.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c\", \"files\": {}}",
- "dest": "cargo/vendor/concurrent-queue-2.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/config/config-0.13.3.crate",
- "sha256": "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7",
- "dest": "cargo/vendor/config-0.13.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7\", \"files\": {}}",
- "dest": "cargo/vendor/config-0.13.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/copypasta/copypasta-0.8.2.crate",
- "sha256": "133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172",
- "dest": "cargo/vendor/copypasta-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172\", \"files\": {}}",
- "dest": "cargo/vendor/copypasta-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/core-foundation/core-foundation-0.9.3.crate",
- "sha256": "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146",
- "dest": "cargo/vendor/core-foundation-0.9.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146\", \"files\": {}}",
- "dest": "cargo/vendor/core-foundation-0.9.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/core-foundation-sys/core-foundation-sys-0.8.4.crate",
- "sha256": "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa",
- "dest": "cargo/vendor/core-foundation-sys-0.8.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa\", \"files\": {}}",
- "dest": "cargo/vendor/core-foundation-sys-0.8.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/core-graphics/core-graphics-0.22.3.crate",
- "sha256": "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb",
- "dest": "cargo/vendor/core-graphics-0.22.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb\", \"files\": {}}",
- "dest": "cargo/vendor/core-graphics-0.22.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/core-graphics-types/core-graphics-types-0.1.1.crate",
- "sha256": "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b",
- "dest": "cargo/vendor/core-graphics-types-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b\", \"files\": {}}",
- "dest": "cargo/vendor/core-graphics-types-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cpufeatures/cpufeatures-0.2.7.crate",
- "sha256": "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58",
- "dest": "cargo/vendor/cpufeatures-0.2.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58\", \"files\": {}}",
- "dest": "cargo/vendor/cpufeatures-0.2.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crc/crc-1.8.1.crate",
- "sha256": "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb",
- "dest": "cargo/vendor/crc-1.8.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb\", \"files\": {}}",
- "dest": "cargo/vendor/crc-1.8.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crc32fast/crc32fast-1.3.2.crate",
- "sha256": "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d",
- "dest": "cargo/vendor/crc32fast-1.3.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d\", \"files\": {}}",
- "dest": "cargo/vendor/crc32fast-1.3.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crossbeam-channel/crossbeam-channel-0.5.8.crate",
- "sha256": "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200",
- "dest": "cargo/vendor/crossbeam-channel-0.5.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200\", \"files\": {}}",
- "dest": "cargo/vendor/crossbeam-channel-0.5.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crossbeam-deque/crossbeam-deque-0.8.3.crate",
- "sha256": "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef",
- "dest": "cargo/vendor/crossbeam-deque-0.8.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef\", \"files\": {}}",
- "dest": "cargo/vendor/crossbeam-deque-0.8.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crossbeam-epoch/crossbeam-epoch-0.9.14.crate",
- "sha256": "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695",
- "dest": "cargo/vendor/crossbeam-epoch-0.9.14"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695\", \"files\": {}}",
- "dest": "cargo/vendor/crossbeam-epoch-0.9.14",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.15.crate",
- "sha256": "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b",
- "dest": "cargo/vendor/crossbeam-utils-0.8.15"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b\", \"files\": {}}",
- "dest": "cargo/vendor/crossbeam-utils-0.8.15",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crunchy/crunchy-0.2.2.crate",
- "sha256": "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7",
- "dest": "cargo/vendor/crunchy-0.2.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7\", \"files\": {}}",
- "dest": "cargo/vendor/crunchy-0.2.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crypto-common/crypto-common-0.1.6.crate",
- "sha256": "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3",
- "dest": "cargo/vendor/crypto-common-0.1.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3\", \"files\": {}}",
- "dest": "cargo/vendor/crypto-common-0.1.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/dashmap/dashmap-5.4.0.crate",
- "sha256": "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc",
- "dest": "cargo/vendor/dashmap-5.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc\", \"files\": {}}",
- "dest": "cargo/vendor/dashmap-5.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/derivative/derivative-2.2.0.crate",
- "sha256": "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b",
- "dest": "cargo/vendor/derivative-2.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b\", \"files\": {}}",
- "dest": "cargo/vendor/derivative-2.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/digest/digest-0.10.6.crate",
- "sha256": "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f",
- "dest": "cargo/vendor/digest-0.10.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f\", \"files\": {}}",
- "dest": "cargo/vendor/digest-0.10.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/dirs/dirs-4.0.0.crate",
- "sha256": "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059",
- "dest": "cargo/vendor/dirs-4.0.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059\", \"files\": {}}",
- "dest": "cargo/vendor/dirs-4.0.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/dirs-sys/dirs-sys-0.3.7.crate",
- "sha256": "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6",
- "dest": "cargo/vendor/dirs-sys-0.3.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6\", \"files\": {}}",
- "dest": "cargo/vendor/dirs-sys-0.3.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/dispatch/dispatch-0.2.0.crate",
- "sha256": "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b",
- "dest": "cargo/vendor/dispatch-0.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b\", \"files\": {}}",
- "dest": "cargo/vendor/dispatch-0.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/dlib/dlib-0.5.0.crate",
- "sha256": "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794",
- "dest": "cargo/vendor/dlib-0.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794\", \"files\": {}}",
- "dest": "cargo/vendor/dlib-0.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/dlv-list/dlv-list-0.3.0.crate",
- "sha256": "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257",
- "dest": "cargo/vendor/dlv-list-0.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257\", \"files\": {}}",
- "dest": "cargo/vendor/dlv-list-0.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/downcast-rs/downcast-rs-1.2.0.crate",
- "sha256": "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650",
- "dest": "cargo/vendor/downcast-rs-1.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650\", \"files\": {}}",
- "dest": "cargo/vendor/downcast-rs-1.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/dyn-clone/dyn-clone-1.0.11.crate",
- "sha256": "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30",
- "dest": "cargo/vendor/dyn-clone-1.0.11"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30\", \"files\": {}}",
- "dest": "cargo/vendor/dyn-clone-1.0.11",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ecolor/ecolor-0.22.0.crate",
- "sha256": "2e479a7fa3f23d4e794f8b2f8b3568dd4e47886ad1b12c9c095e141cb591eb63",
- "dest": "cargo/vendor/ecolor-0.22.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2e479a7fa3f23d4e794f8b2f8b3568dd4e47886ad1b12c9c095e141cb591eb63\", \"files\": {}}",
- "dest": "cargo/vendor/ecolor-0.22.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/eframe/eframe-0.22.0.crate",
- "sha256": "bf4596583a2c680c55b6feaa748f74890c4f9cb9c7cb69d6117110444cb65b2f",
- "dest": "cargo/vendor/eframe-0.22.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bf4596583a2c680c55b6feaa748f74890c4f9cb9c7cb69d6117110444cb65b2f\", \"files\": {}}",
- "dest": "cargo/vendor/eframe-0.22.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/egui/egui-0.22.0.crate",
- "sha256": "a3aef8ec3ae1b772f340170c65bf27d5b8c28f543a0116c844d2ac08d01123e7",
- "dest": "cargo/vendor/egui-0.22.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a3aef8ec3ae1b772f340170c65bf27d5b8c28f543a0116c844d2ac08d01123e7\", \"files\": {}}",
- "dest": "cargo/vendor/egui-0.22.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/egui-winit/egui-winit-0.22.0.crate",
- "sha256": "4a49155fd4a0a4fb21224407a91de0030847972ef90fc64edb63621caea61cb2",
- "dest": "cargo/vendor/egui-winit-0.22.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4a49155fd4a0a4fb21224407a91de0030847972ef90fc64edb63621caea61cb2\", \"files\": {}}",
- "dest": "cargo/vendor/egui-winit-0.22.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/egui_glow/egui_glow-0.22.0.crate",
- "sha256": "1f8c2752cdf1b0ef5fcda59a898cacabad974d4f5880e92a420b2c917022da64",
- "dest": "cargo/vendor/egui_glow-0.22.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1f8c2752cdf1b0ef5fcda59a898cacabad974d4f5880e92a420b2c917022da64\", \"files\": {}}",
- "dest": "cargo/vendor/egui_glow-0.22.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/either/either-1.8.1.crate",
- "sha256": "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91",
- "dest": "cargo/vendor/either-1.8.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91\", \"files\": {}}",
- "dest": "cargo/vendor/either-1.8.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/emath/emath-0.22.0.crate",
- "sha256": "3857d743a6e0741cdd60b622a74c7a36ea75f5f8f11b793b41d905d2c9721a4b",
- "dest": "cargo/vendor/emath-0.22.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3857d743a6e0741cdd60b622a74c7a36ea75f5f8f11b793b41d905d2c9721a4b\", \"files\": {}}",
- "dest": "cargo/vendor/emath-0.22.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/encoding_rs/encoding_rs-0.8.32.crate",
- "sha256": "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394",
- "dest": "cargo/vendor/encoding_rs-0.8.32"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394\", \"files\": {}}",
- "dest": "cargo/vendor/encoding_rs-0.8.32",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/enumflags2/enumflags2-0.7.7.crate",
- "sha256": "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2",
- "dest": "cargo/vendor/enumflags2-0.7.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2\", \"files\": {}}",
- "dest": "cargo/vendor/enumflags2-0.7.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/enumflags2_derive/enumflags2_derive-0.7.7.crate",
- "sha256": "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745",
- "dest": "cargo/vendor/enumflags2_derive-0.7.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745\", \"files\": {}}",
- "dest": "cargo/vendor/enumflags2_derive-0.7.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/epaint/epaint-0.22.0.crate",
- "sha256": "09333964d4d57f40a85338ba3ca5ed4716070ab184dcfed966b35491c5c64f3b",
- "dest": "cargo/vendor/epaint-0.22.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"09333964d4d57f40a85338ba3ca5ed4716070ab184dcfed966b35491c5c64f3b\", \"files\": {}}",
- "dest": "cargo/vendor/epaint-0.22.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/equivalent/equivalent-1.0.1.crate",
- "sha256": "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5",
- "dest": "cargo/vendor/equivalent-1.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5\", \"files\": {}}",
- "dest": "cargo/vendor/equivalent-1.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/errno/errno-0.2.8.crate",
- "sha256": "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1",
- "dest": "cargo/vendor/errno-0.2.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1\", \"files\": {}}",
- "dest": "cargo/vendor/errno-0.2.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/errno/errno-0.3.1.crate",
- "sha256": "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a",
- "dest": "cargo/vendor/errno-0.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a\", \"files\": {}}",
- "dest": "cargo/vendor/errno-0.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/errno-dragonfly/errno-dragonfly-0.1.2.crate",
- "sha256": "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf",
- "dest": "cargo/vendor/errno-dragonfly-0.1.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf\", \"files\": {}}",
- "dest": "cargo/vendor/errno-dragonfly-0.1.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/error-code/error-code-2.3.1.crate",
- "sha256": "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21",
- "dest": "cargo/vendor/error-code-2.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21\", \"files\": {}}",
- "dest": "cargo/vendor/error-code-2.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/event-listener/event-listener-2.5.3.crate",
- "sha256": "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0",
- "dest": "cargo/vendor/event-listener-2.5.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0\", \"files\": {}}",
- "dest": "cargo/vendor/event-listener-2.5.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/exr/exr-1.6.3.crate",
- "sha256": "bdd2162b720141a91a054640662d3edce3d50a944a50ffca5313cd951abb35b4",
- "dest": "cargo/vendor/exr-1.6.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bdd2162b720141a91a054640662d3edce3d50a944a50ffca5313cd951abb35b4\", \"files\": {}}",
- "dest": "cargo/vendor/exr-1.6.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/eyre/eyre-0.6.8.crate",
- "sha256": "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb",
- "dest": "cargo/vendor/eyre-0.6.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb\", \"files\": {}}",
- "dest": "cargo/vendor/eyre-0.6.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/fastrand/fastrand-1.9.0.crate",
- "sha256": "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be",
- "dest": "cargo/vendor/fastrand-1.9.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be\", \"files\": {}}",
- "dest": "cargo/vendor/fastrand-1.9.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/fdeflate/fdeflate-0.3.0.crate",
- "sha256": "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10",
- "dest": "cargo/vendor/fdeflate-0.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10\", \"files\": {}}",
- "dest": "cargo/vendor/fdeflate-0.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/flate2/flate2-1.0.26.crate",
- "sha256": "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743",
- "dest": "cargo/vendor/flate2-1.0.26"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743\", \"files\": {}}",
- "dest": "cargo/vendor/flate2-1.0.26",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/flume/flume-0.10.14.crate",
- "sha256": "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577",
- "dest": "cargo/vendor/flume-0.10.14"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577\", \"files\": {}}",
- "dest": "cargo/vendor/flume-0.10.14",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/fnv/fnv-1.0.7.crate",
- "sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1",
- "dest": "cargo/vendor/fnv-1.0.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\", \"files\": {}}",
- "dest": "cargo/vendor/fnv-1.0.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/foreign-types/foreign-types-0.3.2.crate",
- "sha256": "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1",
- "dest": "cargo/vendor/foreign-types-0.3.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1\", \"files\": {}}",
- "dest": "cargo/vendor/foreign-types-0.3.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/foreign-types-shared/foreign-types-shared-0.1.1.crate",
- "sha256": "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b",
- "dest": "cargo/vendor/foreign-types-shared-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\", \"files\": {}}",
- "dest": "cargo/vendor/foreign-types-shared-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/form_urlencoded/form_urlencoded-1.1.0.crate",
- "sha256": "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8",
- "dest": "cargo/vendor/form_urlencoded-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8\", \"files\": {}}",
- "dest": "cargo/vendor/form_urlencoded-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/fs2/fs2-0.4.3.crate",
- "sha256": "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213",
- "dest": "cargo/vendor/fs2-0.4.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213\", \"files\": {}}",
- "dest": "cargo/vendor/fs2-0.4.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures/futures-0.3.28.crate",
- "sha256": "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40",
- "dest": "cargo/vendor/futures-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40\", \"files\": {}}",
- "dest": "cargo/vendor/futures-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.28.crate",
- "sha256": "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2",
- "dest": "cargo/vendor/futures-channel-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2\", \"files\": {}}",
- "dest": "cargo/vendor/futures-channel-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.28.crate",
- "sha256": "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c",
- "dest": "cargo/vendor/futures-core-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c\", \"files\": {}}",
- "dest": "cargo/vendor/futures-core-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-executor/futures-executor-0.3.28.crate",
- "sha256": "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0",
- "dest": "cargo/vendor/futures-executor-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0\", \"files\": {}}",
- "dest": "cargo/vendor/futures-executor-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.28.crate",
- "sha256": "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964",
- "dest": "cargo/vendor/futures-io-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964\", \"files\": {}}",
- "dest": "cargo/vendor/futures-io-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-lite/futures-lite-1.13.0.crate",
- "sha256": "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce",
- "dest": "cargo/vendor/futures-lite-1.13.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce\", \"files\": {}}",
- "dest": "cargo/vendor/futures-lite-1.13.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.28.crate",
- "sha256": "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72",
- "dest": "cargo/vendor/futures-macro-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72\", \"files\": {}}",
- "dest": "cargo/vendor/futures-macro-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-sink/futures-sink-0.3.28.crate",
- "sha256": "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e",
- "dest": "cargo/vendor/futures-sink-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e\", \"files\": {}}",
- "dest": "cargo/vendor/futures-sink-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.28.crate",
- "sha256": "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65",
- "dest": "cargo/vendor/futures-task-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65\", \"files\": {}}",
- "dest": "cargo/vendor/futures-task-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.28.crate",
- "sha256": "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533",
- "dest": "cargo/vendor/futures-util-0.3.28"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533\", \"files\": {}}",
- "dest": "cargo/vendor/futures-util-0.3.28",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/generic-array/generic-array-0.14.7.crate",
- "sha256": "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a",
- "dest": "cargo/vendor/generic-array-0.14.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\", \"files\": {}}",
- "dest": "cargo/vendor/generic-array-0.14.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gethostname/gethostname-0.2.3.crate",
- "sha256": "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e",
- "dest": "cargo/vendor/gethostname-0.2.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e\", \"files\": {}}",
- "dest": "cargo/vendor/gethostname-0.2.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/getrandom/getrandom-0.2.9.crate",
- "sha256": "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4",
- "dest": "cargo/vendor/getrandom-0.2.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4\", \"files\": {}}",
- "dest": "cargo/vendor/getrandom-0.2.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gif/gif-0.12.0.crate",
- "sha256": "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045",
- "dest": "cargo/vendor/gif-0.12.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045\", \"files\": {}}",
- "dest": "cargo/vendor/gif-0.12.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gimli/gimli-0.27.2.crate",
- "sha256": "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4",
- "dest": "cargo/vendor/gimli-0.27.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4\", \"files\": {}}",
- "dest": "cargo/vendor/gimli-0.27.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gl_generator/gl_generator-0.14.0.crate",
- "sha256": "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d",
- "dest": "cargo/vendor/gl_generator-0.14.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d\", \"files\": {}}",
- "dest": "cargo/vendor/gl_generator-0.14.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glow/glow-0.12.1.crate",
- "sha256": "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1",
- "dest": "cargo/vendor/glow-0.12.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1\", \"files\": {}}",
- "dest": "cargo/vendor/glow-0.12.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glutin/glutin-0.30.8.crate",
- "sha256": "62f9b771a65f0a1e3ddb6aa16f867d87dc73c922411c255e6c4ab7f6d45c7327",
- "dest": "cargo/vendor/glutin-0.30.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"62f9b771a65f0a1e3ddb6aa16f867d87dc73c922411c255e6c4ab7f6d45c7327\", \"files\": {}}",
- "dest": "cargo/vendor/glutin-0.30.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glutin-winit/glutin-winit-0.3.0.crate",
- "sha256": "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4",
- "dest": "cargo/vendor/glutin-winit-0.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4\", \"files\": {}}",
- "dest": "cargo/vendor/glutin-winit-0.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glutin_egl_sys/glutin_egl_sys-0.5.0.crate",
- "sha256": "1b3bcbddc51573b977fc6dca5d93867e4f29682cdbaf5d13e48f4fa4346d4d87",
- "dest": "cargo/vendor/glutin_egl_sys-0.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1b3bcbddc51573b977fc6dca5d93867e4f29682cdbaf5d13e48f4fa4346d4d87\", \"files\": {}}",
- "dest": "cargo/vendor/glutin_egl_sys-0.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glutin_glx_sys/glutin_glx_sys-0.4.0.crate",
- "sha256": "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494",
- "dest": "cargo/vendor/glutin_glx_sys-0.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494\", \"files\": {}}",
- "dest": "cargo/vendor/glutin_glx_sys-0.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glutin_wgl_sys/glutin_wgl_sys-0.4.0.crate",
- "sha256": "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165",
- "dest": "cargo/vendor/glutin_wgl_sys-0.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165\", \"files\": {}}",
- "dest": "cargo/vendor/glutin_wgl_sys-0.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/h2/h2-0.3.19.crate",
- "sha256": "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782",
- "dest": "cargo/vendor/h2-0.3.19"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782\", \"files\": {}}",
- "dest": "cargo/vendor/h2-0.3.19",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/half/half-2.2.1.crate",
- "sha256": "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0",
- "dest": "cargo/vendor/half-2.2.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0\", \"files\": {}}",
- "dest": "cargo/vendor/half-2.2.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.12.3.crate",
- "sha256": "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888",
- "dest": "cargo/vendor/hashbrown-0.12.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888\", \"files\": {}}",
- "dest": "cargo/vendor/hashbrown-0.12.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.14.0.crate",
- "sha256": "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a",
- "dest": "cargo/vendor/hashbrown-0.14.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a\", \"files\": {}}",
- "dest": "cargo/vendor/hashbrown-0.14.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hermit-abi/hermit-abi-0.2.6.crate",
- "sha256": "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7",
- "dest": "cargo/vendor/hermit-abi-0.2.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7\", \"files\": {}}",
- "dest": "cargo/vendor/hermit-abi-0.2.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hermit-abi/hermit-abi-0.3.1.crate",
- "sha256": "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286",
- "dest": "cargo/vendor/hermit-abi-0.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286\", \"files\": {}}",
- "dest": "cargo/vendor/hermit-abi-0.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hex/hex-0.4.3.crate",
- "sha256": "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70",
- "dest": "cargo/vendor/hex-0.4.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70\", \"files\": {}}",
- "dest": "cargo/vendor/hex-0.4.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/http/http-0.2.9.crate",
- "sha256": "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482",
- "dest": "cargo/vendor/http-0.2.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482\", \"files\": {}}",
- "dest": "cargo/vendor/http-0.2.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/http-body/http-body-0.4.5.crate",
- "sha256": "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1",
- "dest": "cargo/vendor/http-body-0.4.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1\", \"files\": {}}",
- "dest": "cargo/vendor/http-body-0.4.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/httparse/httparse-1.8.0.crate",
- "sha256": "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904",
- "dest": "cargo/vendor/httparse-1.8.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904\", \"files\": {}}",
- "dest": "cargo/vendor/httparse-1.8.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/httpdate/httpdate-1.0.2.crate",
- "sha256": "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421",
- "dest": "cargo/vendor/httpdate-1.0.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421\", \"files\": {}}",
- "dest": "cargo/vendor/httpdate-1.0.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hyper/hyper-0.14.26.crate",
- "sha256": "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4",
- "dest": "cargo/vendor/hyper-0.14.26"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4\", \"files\": {}}",
- "dest": "cargo/vendor/hyper-0.14.26",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hyper-tls/hyper-tls-0.5.0.crate",
- "sha256": "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905",
- "dest": "cargo/vendor/hyper-tls-0.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905\", \"files\": {}}",
- "dest": "cargo/vendor/hyper-tls-0.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/idna/idna-0.3.0.crate",
- "sha256": "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6",
- "dest": "cargo/vendor/idna-0.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6\", \"files\": {}}",
- "dest": "cargo/vendor/idna-0.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/image/image-0.24.6.crate",
- "sha256": "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a",
- "dest": "cargo/vendor/image-0.24.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a\", \"files\": {}}",
- "dest": "cargo/vendor/image-0.24.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/indenter/indenter-0.3.3.crate",
- "sha256": "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683",
- "dest": "cargo/vendor/indenter-0.3.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683\", \"files\": {}}",
- "dest": "cargo/vendor/indenter-0.3.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/indexmap/indexmap-1.9.3.crate",
- "sha256": "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99",
- "dest": "cargo/vendor/indexmap-1.9.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99\", \"files\": {}}",
- "dest": "cargo/vendor/indexmap-1.9.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/indexmap/indexmap-2.0.0.crate",
- "sha256": "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d",
- "dest": "cargo/vendor/indexmap-2.0.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d\", \"files\": {}}",
- "dest": "cargo/vendor/indexmap-2.0.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/instant/instant-0.1.12.crate",
- "sha256": "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c",
- "dest": "cargo/vendor/instant-0.1.12"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c\", \"files\": {}}",
- "dest": "cargo/vendor/instant-0.1.12",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/integer-encoding/integer-encoding-3.0.4.crate",
- "sha256": "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02",
- "dest": "cargo/vendor/integer-encoding-3.0.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02\", \"files\": {}}",
- "dest": "cargo/vendor/integer-encoding-3.0.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/io-lifetimes/io-lifetimes-1.0.10.crate",
- "sha256": "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220",
- "dest": "cargo/vendor/io-lifetimes-1.0.10"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220\", \"files\": {}}",
- "dest": "cargo/vendor/io-lifetimes-1.0.10",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ipnet/ipnet-2.7.2.crate",
- "sha256": "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f",
- "dest": "cargo/vendor/ipnet-2.7.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f\", \"files\": {}}",
- "dest": "cargo/vendor/ipnet-2.7.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/is_executable/is_executable-1.0.1.crate",
- "sha256": "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8",
- "dest": "cargo/vendor/is_executable-1.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8\", \"files\": {}}",
- "dest": "cargo/vendor/is_executable-1.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/itoa/itoa-1.0.6.crate",
- "sha256": "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6",
- "dest": "cargo/vendor/itoa-1.0.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6\", \"files\": {}}",
- "dest": "cargo/vendor/itoa-1.0.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/jni/jni-0.21.1.crate",
- "sha256": "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97",
- "dest": "cargo/vendor/jni-0.21.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97\", \"files\": {}}",
- "dest": "cargo/vendor/jni-0.21.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/jni-sys/jni-sys-0.3.0.crate",
- "sha256": "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130",
- "dest": "cargo/vendor/jni-sys-0.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130\", \"files\": {}}",
- "dest": "cargo/vendor/jni-sys-0.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/jobserver/jobserver-0.1.26.crate",
- "sha256": "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2",
- "dest": "cargo/vendor/jobserver-0.1.26"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2\", \"files\": {}}",
- "dest": "cargo/vendor/jobserver-0.1.26",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/jpeg-decoder/jpeg-decoder-0.3.0.crate",
- "sha256": "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e",
- "dest": "cargo/vendor/jpeg-decoder-0.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e\", \"files\": {}}",
- "dest": "cargo/vendor/jpeg-decoder-0.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/js-sys/js-sys-0.3.62.crate",
- "sha256": "68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5",
- "dest": "cargo/vendor/js-sys-0.3.62"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5\", \"files\": {}}",
- "dest": "cargo/vendor/js-sys-0.3.62",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/json5/json5-0.4.1.crate",
- "sha256": "96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1",
- "dest": "cargo/vendor/json5-0.4.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"96b0db21af676c1ce64250b5f40f3ce2cf27e4e47cb91ed91eb6fe9350b430c1\", \"files\": {}}",
- "dest": "cargo/vendor/json5-0.4.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/khronos_api/khronos_api-3.1.0.crate",
- "sha256": "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc",
- "dest": "cargo/vendor/khronos_api-3.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc\", \"files\": {}}",
- "dest": "cargo/vendor/khronos_api-3.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/lazy-bytes-cast/lazy-bytes-cast-5.0.1.crate",
- "sha256": "10257499f089cd156ad82d0a9cd57d9501fa2c989068992a97eb3c27836f206b",
- "dest": "cargo/vendor/lazy-bytes-cast-5.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"10257499f089cd156ad82d0a9cd57d9501fa2c989068992a97eb3c27836f206b\", \"files\": {}}",
- "dest": "cargo/vendor/lazy-bytes-cast-5.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/lazy_static/lazy_static-1.4.0.crate",
- "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
- "dest": "cargo/vendor/lazy_static-1.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646\", \"files\": {}}",
- "dest": "cargo/vendor/lazy_static-1.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/lebe/lebe-0.5.2.crate",
- "sha256": "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8",
- "dest": "cargo/vendor/lebe-0.5.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8\", \"files\": {}}",
- "dest": "cargo/vendor/lebe-0.5.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/libc/libc-0.2.144.crate",
- "sha256": "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1",
- "dest": "cargo/vendor/libc-0.2.144"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1\", \"files\": {}}",
- "dest": "cargo/vendor/libc-0.2.144",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/libloading/libloading-0.7.4.crate",
- "sha256": "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f",
- "dest": "cargo/vendor/libloading-0.7.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f\", \"files\": {}}",
- "dest": "cargo/vendor/libloading-0.7.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/linked-hash-map/linked-hash-map-0.5.6.crate",
- "sha256": "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f",
- "dest": "cargo/vendor/linked-hash-map-0.5.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f\", \"files\": {}}",
- "dest": "cargo/vendor/linked-hash-map-0.5.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/linux-raw-sys/linux-raw-sys-0.3.7.crate",
- "sha256": "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f",
- "dest": "cargo/vendor/linux-raw-sys-0.3.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f\", \"files\": {}}",
- "dest": "cargo/vendor/linux-raw-sys-0.3.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/lock_api/lock_api-0.4.9.crate",
- "sha256": "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df",
- "dest": "cargo/vendor/lock_api-0.4.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df\", \"files\": {}}",
- "dest": "cargo/vendor/lock_api-0.4.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/log/log-0.4.17.crate",
- "sha256": "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
- "dest": "cargo/vendor/log-0.4.17"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e\", \"files\": {}}",
- "dest": "cargo/vendor/log-0.4.17",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/malloc_buf/malloc_buf-0.0.6.crate",
- "sha256": "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb",
- "dest": "cargo/vendor/malloc_buf-0.0.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb\", \"files\": {}}",
- "dest": "cargo/vendor/malloc_buf-0.0.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/memchr/memchr-2.5.0.crate",
- "sha256": "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
- "dest": "cargo/vendor/memchr-2.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d\", \"files\": {}}",
- "dest": "cargo/vendor/memchr-2.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/memmap2/memmap2-0.5.10.crate",
- "sha256": "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327",
- "dest": "cargo/vendor/memmap2-0.5.10"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327\", \"files\": {}}",
- "dest": "cargo/vendor/memmap2-0.5.10",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/memoffset/memoffset-0.6.5.crate",
- "sha256": "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce",
- "dest": "cargo/vendor/memoffset-0.6.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce\", \"files\": {}}",
- "dest": "cargo/vendor/memoffset-0.6.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/memoffset/memoffset-0.8.0.crate",
- "sha256": "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1",
- "dest": "cargo/vendor/memoffset-0.8.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1\", \"files\": {}}",
- "dest": "cargo/vendor/memoffset-0.8.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/mime/mime-0.3.17.crate",
- "sha256": "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a",
- "dest": "cargo/vendor/mime-0.3.17"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a\", \"files\": {}}",
- "dest": "cargo/vendor/mime-0.3.17",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/minimal-lexical/minimal-lexical-0.2.1.crate",
- "sha256": "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a",
- "dest": "cargo/vendor/minimal-lexical-0.2.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a\", \"files\": {}}",
- "dest": "cargo/vendor/minimal-lexical-0.2.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.6.2.crate",
- "sha256": "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa",
- "dest": "cargo/vendor/miniz_oxide-0.6.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa\", \"files\": {}}",
- "dest": "cargo/vendor/miniz_oxide-0.6.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/miniz_oxide/miniz_oxide-0.7.1.crate",
- "sha256": "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7",
- "dest": "cargo/vendor/miniz_oxide-0.7.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7\", \"files\": {}}",
- "dest": "cargo/vendor/miniz_oxide-0.7.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/mio/mio-0.8.6.crate",
- "sha256": "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9",
- "dest": "cargo/vendor/mio-0.8.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9\", \"files\": {}}",
- "dest": "cargo/vendor/mio-0.8.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/nanorand/nanorand-0.7.0.crate",
- "sha256": "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3",
- "dest": "cargo/vendor/nanorand-0.7.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3\", \"files\": {}}",
- "dest": "cargo/vendor/nanorand-0.7.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/native-tls/native-tls-0.2.11.crate",
- "sha256": "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e",
- "dest": "cargo/vendor/native-tls-0.2.11"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e\", \"files\": {}}",
- "dest": "cargo/vendor/native-tls-0.2.11",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ndk/ndk-0.7.0.crate",
- "sha256": "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0",
- "dest": "cargo/vendor/ndk-0.7.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0\", \"files\": {}}",
- "dest": "cargo/vendor/ndk-0.7.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ndk-context/ndk-context-0.1.1.crate",
- "sha256": "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b",
- "dest": "cargo/vendor/ndk-context-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b\", \"files\": {}}",
- "dest": "cargo/vendor/ndk-context-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ndk-sys/ndk-sys-0.4.1+23.1.7779620.crate",
- "sha256": "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3",
- "dest": "cargo/vendor/ndk-sys-0.4.1+23.1.7779620"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3\", \"files\": {}}",
- "dest": "cargo/vendor/ndk-sys-0.4.1+23.1.7779620",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/nix/nix-0.24.3.crate",
- "sha256": "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069",
- "dest": "cargo/vendor/nix-0.24.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069\", \"files\": {}}",
- "dest": "cargo/vendor/nix-0.24.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/nix/nix-0.25.1.crate",
- "sha256": "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4",
- "dest": "cargo/vendor/nix-0.25.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4\", \"files\": {}}",
- "dest": "cargo/vendor/nix-0.25.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/nohash-hasher/nohash-hasher-0.2.0.crate",
- "sha256": "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451",
- "dest": "cargo/vendor/nohash-hasher-0.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451\", \"files\": {}}",
- "dest": "cargo/vendor/nohash-hasher-0.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/nom/nom-7.1.3.crate",
- "sha256": "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a",
- "dest": "cargo/vendor/nom-7.1.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\", \"files\": {}}",
- "dest": "cargo/vendor/nom-7.1.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/nom_locate/nom_locate-4.1.0.crate",
- "sha256": "b1e299bf5ea7b212e811e71174c5d1a5d065c4c0ad0c8691ecb1f97e3e66025e",
- "dest": "cargo/vendor/nom_locate-4.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b1e299bf5ea7b212e811e71174c5d1a5d065c4c0ad0c8691ecb1f97e3e66025e\", \"files\": {}}",
- "dest": "cargo/vendor/nom_locate-4.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ntapi/ntapi-0.4.1.crate",
- "sha256": "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4",
- "dest": "cargo/vendor/ntapi-0.4.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4\", \"files\": {}}",
- "dest": "cargo/vendor/ntapi-0.4.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num-integer/num-integer-0.1.45.crate",
- "sha256": "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9",
- "dest": "cargo/vendor/num-integer-0.1.45"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9\", \"files\": {}}",
- "dest": "cargo/vendor/num-integer-0.1.45",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num-rational/num-rational-0.4.1.crate",
- "sha256": "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0",
- "dest": "cargo/vendor/num-rational-0.4.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0\", \"files\": {}}",
- "dest": "cargo/vendor/num-rational-0.4.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num-traits/num-traits-0.2.15.crate",
- "sha256": "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd",
- "dest": "cargo/vendor/num-traits-0.2.15"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd\", \"files\": {}}",
- "dest": "cargo/vendor/num-traits-0.2.15",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num_cpus/num_cpus-1.15.0.crate",
- "sha256": "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b",
- "dest": "cargo/vendor/num_cpus-1.15.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b\", \"files\": {}}",
- "dest": "cargo/vendor/num_cpus-1.15.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num_enum/num_enum-0.5.11.crate",
- "sha256": "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9",
- "dest": "cargo/vendor/num_enum-0.5.11"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9\", \"files\": {}}",
- "dest": "cargo/vendor/num_enum-0.5.11",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.5.11.crate",
- "sha256": "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799",
- "dest": "cargo/vendor/num_enum_derive-0.5.11"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799\", \"files\": {}}",
- "dest": "cargo/vendor/num_enum_derive-0.5.11",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/objc/objc-0.2.7.crate",
- "sha256": "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1",
- "dest": "cargo/vendor/objc-0.2.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1\", \"files\": {}}",
- "dest": "cargo/vendor/objc-0.2.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/objc-foundation/objc-foundation-0.1.1.crate",
- "sha256": "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9",
- "dest": "cargo/vendor/objc-foundation-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9\", \"files\": {}}",
- "dest": "cargo/vendor/objc-foundation-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/objc-sys/objc-sys-0.2.0-beta.2.crate",
- "sha256": "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7",
- "dest": "cargo/vendor/objc-sys-0.2.0-beta.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7\", \"files\": {}}",
- "dest": "cargo/vendor/objc-sys-0.2.0-beta.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/objc2/objc2-0.3.0-beta.3.crate",
- "sha256": "fe31e5425d3d0b89a15982c024392815da40689aceb34bad364d58732bcfd649",
- "dest": "cargo/vendor/objc2-0.3.0-beta.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fe31e5425d3d0b89a15982c024392815da40689aceb34bad364d58732bcfd649\", \"files\": {}}",
- "dest": "cargo/vendor/objc2-0.3.0-beta.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/objc2-encode/objc2-encode-2.0.0-pre.2.crate",
- "sha256": "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512",
- "dest": "cargo/vendor/objc2-encode-2.0.0-pre.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512\", \"files\": {}}",
- "dest": "cargo/vendor/objc2-encode-2.0.0-pre.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/objc_id/objc_id-0.1.1.crate",
- "sha256": "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b",
- "dest": "cargo/vendor/objc_id-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b\", \"files\": {}}",
- "dest": "cargo/vendor/objc_id-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/object/object-0.30.3.crate",
- "sha256": "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439",
- "dest": "cargo/vendor/object-0.30.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439\", \"files\": {}}",
- "dest": "cargo/vendor/object-0.30.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/once_cell/once_cell-1.17.1.crate",
- "sha256": "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3",
- "dest": "cargo/vendor/once_cell-1.17.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3\", \"files\": {}}",
- "dest": "cargo/vendor/once_cell-1.17.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/openssl/openssl-0.10.55.crate",
- "sha256": "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d",
- "dest": "cargo/vendor/openssl-0.10.55"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d\", \"files\": {}}",
- "dest": "cargo/vendor/openssl-0.10.55",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/openssl-macros/openssl-macros-0.1.1.crate",
- "sha256": "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c",
- "dest": "cargo/vendor/openssl-macros-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c\", \"files\": {}}",
- "dest": "cargo/vendor/openssl-macros-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/openssl-probe/openssl-probe-0.1.5.crate",
- "sha256": "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf",
- "dest": "cargo/vendor/openssl-probe-0.1.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf\", \"files\": {}}",
- "dest": "cargo/vendor/openssl-probe-0.1.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/openssl-src/openssl-src-111.25.3+1.1.1t.crate",
- "sha256": "924757a6a226bf60da5f7dd0311a34d2b52283dd82ddeb103208ddc66362f80c",
- "dest": "cargo/vendor/openssl-src-111.25.3+1.1.1t"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"924757a6a226bf60da5f7dd0311a34d2b52283dd82ddeb103208ddc66362f80c\", \"files\": {}}",
- "dest": "cargo/vendor/openssl-src-111.25.3+1.1.1t",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/openssl-sys/openssl-sys-0.9.90.crate",
- "sha256": "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6",
- "dest": "cargo/vendor/openssl-sys-0.9.90"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6\", \"files\": {}}",
- "dest": "cargo/vendor/openssl-sys-0.9.90",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/orbclient/orbclient-0.3.45.crate",
- "sha256": "221d488cd70617f1bd599ed8ceb659df2147d9393717954d82a0f5e8032a6ab1",
- "dest": "cargo/vendor/orbclient-0.3.45"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"221d488cd70617f1bd599ed8ceb659df2147d9393717954d82a0f5e8032a6ab1\", \"files\": {}}",
- "dest": "cargo/vendor/orbclient-0.3.45",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ordered-multimap/ordered-multimap-0.4.3.crate",
- "sha256": "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a",
- "dest": "cargo/vendor/ordered-multimap-0.4.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a\", \"files\": {}}",
- "dest": "cargo/vendor/ordered-multimap-0.4.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ordered-stream/ordered-stream-0.2.0.crate",
- "sha256": "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50",
- "dest": "cargo/vendor/ordered-stream-0.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50\", \"files\": {}}",
- "dest": "cargo/vendor/ordered-stream-0.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/owned_ttf_parser/owned_ttf_parser-0.19.0.crate",
- "sha256": "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4",
- "dest": "cargo/vendor/owned_ttf_parser-0.19.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4\", \"files\": {}}",
- "dest": "cargo/vendor/owned_ttf_parser-0.19.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/owo-colors/owo-colors-3.5.0.crate",
- "sha256": "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f",
- "dest": "cargo/vendor/owo-colors-3.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f\", \"files\": {}}",
- "dest": "cargo/vendor/owo-colors-3.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/parking/parking-2.1.0.crate",
- "sha256": "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e",
- "dest": "cargo/vendor/parking-2.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e\", \"files\": {}}",
- "dest": "cargo/vendor/parking-2.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/parking_lot/parking_lot-0.12.1.crate",
- "sha256": "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f",
- "dest": "cargo/vendor/parking_lot-0.12.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f\", \"files\": {}}",
- "dest": "cargo/vendor/parking_lot-0.12.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.9.7.crate",
- "sha256": "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521",
- "dest": "cargo/vendor/parking_lot_core-0.9.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521\", \"files\": {}}",
- "dest": "cargo/vendor/parking_lot_core-0.9.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/paste/paste-1.0.12.crate",
- "sha256": "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79",
- "dest": "cargo/vendor/paste-1.0.12"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79\", \"files\": {}}",
- "dest": "cargo/vendor/paste-1.0.12",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pathdiff/pathdiff-0.2.1.crate",
- "sha256": "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd",
- "dest": "cargo/vendor/pathdiff-0.2.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd\", \"files\": {}}",
- "dest": "cargo/vendor/pathdiff-0.2.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/percent-encoding/percent-encoding-2.2.0.crate",
- "sha256": "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e",
- "dest": "cargo/vendor/percent-encoding-2.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e\", \"files\": {}}",
- "dest": "cargo/vendor/percent-encoding-2.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pest/pest-2.6.0.crate",
- "sha256": "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70",
- "dest": "cargo/vendor/pest-2.6.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70\", \"files\": {}}",
- "dest": "cargo/vendor/pest-2.6.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pest_derive/pest_derive-2.6.0.crate",
- "sha256": "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb",
- "dest": "cargo/vendor/pest_derive-2.6.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb\", \"files\": {}}",
- "dest": "cargo/vendor/pest_derive-2.6.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pest_generator/pest_generator-2.6.0.crate",
- "sha256": "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e",
- "dest": "cargo/vendor/pest_generator-2.6.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e\", \"files\": {}}",
- "dest": "cargo/vendor/pest_generator-2.6.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pest_meta/pest_meta-2.6.0.crate",
- "sha256": "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411",
- "dest": "cargo/vendor/pest_meta-2.6.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411\", \"files\": {}}",
- "dest": "cargo/vendor/pest_meta-2.6.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pin-project/pin-project-1.1.0.crate",
- "sha256": "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead",
- "dest": "cargo/vendor/pin-project-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead\", \"files\": {}}",
- "dest": "cargo/vendor/pin-project-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pin-project-internal/pin-project-internal-1.1.0.crate",
- "sha256": "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07",
- "dest": "cargo/vendor/pin-project-internal-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07\", \"files\": {}}",
- "dest": "cargo/vendor/pin-project-internal-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.9.crate",
- "sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116",
- "dest": "cargo/vendor/pin-project-lite-0.2.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116\", \"files\": {}}",
- "dest": "cargo/vendor/pin-project-lite-0.2.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate",
- "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184",
- "dest": "cargo/vendor/pin-utils-0.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\", \"files\": {}}",
- "dest": "cargo/vendor/pin-utils-0.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pkg-config/pkg-config-0.3.27.crate",
- "sha256": "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964",
- "dest": "cargo/vendor/pkg-config-0.3.27"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964\", \"files\": {}}",
- "dest": "cargo/vendor/pkg-config-0.3.27",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/png/png-0.17.8.crate",
- "sha256": "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa",
- "dest": "cargo/vendor/png-0.17.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa\", \"files\": {}}",
- "dest": "cargo/vendor/png-0.17.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/polling/polling-2.8.0.crate",
- "sha256": "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce",
- "dest": "cargo/vendor/polling-2.8.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce\", \"files\": {}}",
- "dest": "cargo/vendor/polling-2.8.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ppv-lite86/ppv-lite86-0.2.17.crate",
- "sha256": "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de",
- "dest": "cargo/vendor/ppv-lite86-0.2.17"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de\", \"files\": {}}",
- "dest": "cargo/vendor/ppv-lite86-0.2.17",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-1.3.1.crate",
- "sha256": "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919",
- "dest": "cargo/vendor/proc-macro-crate-1.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919\", \"files\": {}}",
- "dest": "cargo/vendor/proc-macro-crate-1.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.57.crate",
- "sha256": "c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16",
- "dest": "cargo/vendor/proc-macro2-1.0.57"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16\", \"files\": {}}",
- "dest": "cargo/vendor/proc-macro2-1.0.57",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/qoi/qoi-0.4.1.crate",
- "sha256": "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001",
- "dest": "cargo/vendor/qoi-0.4.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001\", \"files\": {}}",
- "dest": "cargo/vendor/qoi-0.4.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/quote/quote-1.0.27.crate",
- "sha256": "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500",
- "dest": "cargo/vendor/quote-1.0.27"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500\", \"files\": {}}",
- "dest": "cargo/vendor/quote-1.0.27",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rand/rand-0.8.5.crate",
- "sha256": "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404",
- "dest": "cargo/vendor/rand-0.8.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\", \"files\": {}}",
- "dest": "cargo/vendor/rand-0.8.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rand_chacha/rand_chacha-0.3.1.crate",
- "sha256": "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88",
- "dest": "cargo/vendor/rand_chacha-0.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\", \"files\": {}}",
- "dest": "cargo/vendor/rand_chacha-0.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rand_core/rand_core-0.6.4.crate",
- "sha256": "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c",
- "dest": "cargo/vendor/rand_core-0.6.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\", \"files\": {}}",
- "dest": "cargo/vendor/rand_core-0.6.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/raw-window-handle/raw-window-handle-0.5.2.crate",
- "sha256": "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9",
- "dest": "cargo/vendor/raw-window-handle-0.5.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9\", \"files\": {}}",
- "dest": "cargo/vendor/raw-window-handle-0.5.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rayon/rayon-1.7.0.crate",
- "sha256": "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b",
- "dest": "cargo/vendor/rayon-1.7.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b\", \"files\": {}}",
- "dest": "cargo/vendor/rayon-1.7.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rayon-core/rayon-core-1.11.0.crate",
- "sha256": "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d",
- "dest": "cargo/vendor/rayon-core-1.11.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d\", \"files\": {}}",
- "dest": "cargo/vendor/rayon-core-1.11.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/redox_syscall/redox_syscall-0.2.16.crate",
- "sha256": "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a",
- "dest": "cargo/vendor/redox_syscall-0.2.16"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a\", \"files\": {}}",
- "dest": "cargo/vendor/redox_syscall-0.2.16",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/redox_syscall/redox_syscall-0.3.5.crate",
- "sha256": "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29",
- "dest": "cargo/vendor/redox_syscall-0.3.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29\", \"files\": {}}",
- "dest": "cargo/vendor/redox_syscall-0.3.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/redox_users/redox_users-0.4.3.crate",
- "sha256": "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b",
- "dest": "cargo/vendor/redox_users-0.4.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b\", \"files\": {}}",
- "dest": "cargo/vendor/redox_users-0.4.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/regex/regex-1.8.3.crate",
- "sha256": "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390",
- "dest": "cargo/vendor/regex-1.8.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390\", \"files\": {}}",
- "dest": "cargo/vendor/regex-1.8.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/regex-syntax/regex-syntax-0.7.2.crate",
- "sha256": "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78",
- "dest": "cargo/vendor/regex-syntax-0.7.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78\", \"files\": {}}",
- "dest": "cargo/vendor/regex-syntax-0.7.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/reqwest/reqwest-0.11.17.crate",
- "sha256": "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91",
- "dest": "cargo/vendor/reqwest-0.11.17"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91\", \"files\": {}}",
- "dest": "cargo/vendor/reqwest-0.11.17",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ron/ron-0.7.1.crate",
- "sha256": "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a",
- "dest": "cargo/vendor/ron-0.7.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a\", \"files\": {}}",
- "dest": "cargo/vendor/ron-0.7.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/roxmltree/roxmltree-0.18.0.crate",
- "sha256": "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8",
- "dest": "cargo/vendor/roxmltree-0.18.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8\", \"files\": {}}",
- "dest": "cargo/vendor/roxmltree-0.18.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rust-ini/rust-ini-0.18.0.crate",
- "sha256": "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df",
- "dest": "cargo/vendor/rust-ini-0.18.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df\", \"files\": {}}",
- "dest": "cargo/vendor/rust-ini-0.18.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rustc-demangle/rustc-demangle-0.1.23.crate",
- "sha256": "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76",
- "dest": "cargo/vendor/rustc-demangle-0.1.23"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76\", \"files\": {}}",
- "dest": "cargo/vendor/rustc-demangle-0.1.23",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rustix/rustix-0.37.19.crate",
- "sha256": "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d",
- "dest": "cargo/vendor/rustix-0.37.19"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d\", \"files\": {}}",
- "dest": "cargo/vendor/rustix-0.37.19",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rusty-leveldb/rusty-leveldb-3.0.0.crate",
- "sha256": "3453f8c92d48f99810f59095444eda0622ae8485ac899ad97a574fd7cb9aa9c4",
- "dest": "cargo/vendor/rusty-leveldb-3.0.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3453f8c92d48f99810f59095444eda0622ae8485ac899ad97a574fd7cb9aa9c4\", \"files\": {}}",
- "dest": "cargo/vendor/rusty-leveldb-3.0.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ryu/ryu-1.0.13.crate",
- "sha256": "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041",
- "dest": "cargo/vendor/ryu-1.0.13"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041\", \"files\": {}}",
- "dest": "cargo/vendor/ryu-1.0.13",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/same-file/same-file-1.0.6.crate",
- "sha256": "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502",
- "dest": "cargo/vendor/same-file-1.0.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\", \"files\": {}}",
- "dest": "cargo/vendor/same-file-1.0.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/schannel/schannel-0.1.21.crate",
- "sha256": "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3",
- "dest": "cargo/vendor/schannel-0.1.21"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3\", \"files\": {}}",
- "dest": "cargo/vendor/schannel-0.1.21",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/scoped-tls/scoped-tls-1.0.1.crate",
- "sha256": "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294",
- "dest": "cargo/vendor/scoped-tls-1.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294\", \"files\": {}}",
- "dest": "cargo/vendor/scoped-tls-1.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/scopeguard/scopeguard-1.1.0.crate",
- "sha256": "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd",
- "dest": "cargo/vendor/scopeguard-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd\", \"files\": {}}",
- "dest": "cargo/vendor/scopeguard-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sctk-adwaita/sctk-adwaita-0.5.4.crate",
- "sha256": "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09",
- "dest": "cargo/vendor/sctk-adwaita-0.5.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09\", \"files\": {}}",
- "dest": "cargo/vendor/sctk-adwaita-0.5.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/security-framework/security-framework-2.9.0.crate",
- "sha256": "ca2855b3715770894e67cbfa3df957790aa0c9edc3bf06efa1a84d77fa0839d1",
- "dest": "cargo/vendor/security-framework-2.9.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ca2855b3715770894e67cbfa3df957790aa0c9edc3bf06efa1a84d77fa0839d1\", \"files\": {}}",
- "dest": "cargo/vendor/security-framework-2.9.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/security-framework-sys/security-framework-sys-2.9.0.crate",
- "sha256": "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7",
- "dest": "cargo/vendor/security-framework-sys-2.9.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7\", \"files\": {}}",
- "dest": "cargo/vendor/security-framework-sys-2.9.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde/serde-1.0.163.crate",
- "sha256": "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2",
- "dest": "cargo/vendor/serde-1.0.163"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2\", \"files\": {}}",
- "dest": "cargo/vendor/serde-1.0.163",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.163.crate",
- "sha256": "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e",
- "dest": "cargo/vendor/serde_derive-1.0.163"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e\", \"files\": {}}",
- "dest": "cargo/vendor/serde_derive-1.0.163",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde_json/serde_json-1.0.96.crate",
- "sha256": "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1",
- "dest": "cargo/vendor/serde_json-1.0.96"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1\", \"files\": {}}",
- "dest": "cargo/vendor/serde_json-1.0.96",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde_repr/serde_repr-0.1.12.crate",
- "sha256": "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab",
- "dest": "cargo/vendor/serde_repr-0.1.12"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab\", \"files\": {}}",
- "dest": "cargo/vendor/serde_repr-0.1.12",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.3.crate",
- "sha256": "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186",
- "dest": "cargo/vendor/serde_spanned-0.6.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186\", \"files\": {}}",
- "dest": "cargo/vendor/serde_spanned-0.6.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde_urlencoded/serde_urlencoded-0.7.1.crate",
- "sha256": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd",
- "dest": "cargo/vendor/serde_urlencoded-0.7.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\", \"files\": {}}",
- "dest": "cargo/vendor/serde_urlencoded-0.7.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sha1/sha1-0.10.5.crate",
- "sha256": "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3",
- "dest": "cargo/vendor/sha1-0.10.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3\", \"files\": {}}",
- "dest": "cargo/vendor/sha1-0.10.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sha2/sha2-0.10.6.crate",
- "sha256": "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0",
- "dest": "cargo/vendor/sha2-0.10.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0\", \"files\": {}}",
- "dest": "cargo/vendor/sha2-0.10.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sharded-slab/sharded-slab-0.1.4.crate",
- "sha256": "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31",
- "dest": "cargo/vendor/sharded-slab-0.1.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31\", \"files\": {}}",
- "dest": "cargo/vendor/sharded-slab-0.1.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.1.crate",
- "sha256": "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1",
- "dest": "cargo/vendor/signal-hook-registry-1.4.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1\", \"files\": {}}",
- "dest": "cargo/vendor/signal-hook-registry-1.4.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/simd-adler32/simd-adler32-0.3.5.crate",
- "sha256": "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f",
- "dest": "cargo/vendor/simd-adler32-0.3.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f\", \"files\": {}}",
- "dest": "cargo/vendor/simd-adler32-0.3.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/slab/slab-0.4.8.crate",
- "sha256": "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d",
- "dest": "cargo/vendor/slab-0.4.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d\", \"files\": {}}",
- "dest": "cargo/vendor/slab-0.4.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/slotmap/slotmap-1.0.6.crate",
- "sha256": "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342",
- "dest": "cargo/vendor/slotmap-1.0.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342\", \"files\": {}}",
- "dest": "cargo/vendor/slotmap-1.0.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/smallvec/smallvec-1.10.0.crate",
- "sha256": "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0",
- "dest": "cargo/vendor/smallvec-1.10.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0\", \"files\": {}}",
- "dest": "cargo/vendor/smallvec-1.10.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/smithay-client-toolkit/smithay-client-toolkit-0.16.0.crate",
- "sha256": "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454",
- "dest": "cargo/vendor/smithay-client-toolkit-0.16.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454\", \"files\": {}}",
- "dest": "cargo/vendor/smithay-client-toolkit-0.16.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/smithay-clipboard/smithay-clipboard-0.6.6.crate",
- "sha256": "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8",
- "dest": "cargo/vendor/smithay-clipboard-0.6.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8\", \"files\": {}}",
- "dest": "cargo/vendor/smithay-clipboard-0.6.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/snap/snap-1.1.0.crate",
- "sha256": "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831",
- "dest": "cargo/vendor/snap-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831\", \"files\": {}}",
- "dest": "cargo/vendor/snap-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/socket2/socket2-0.4.9.crate",
- "sha256": "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662",
- "dest": "cargo/vendor/socket2-0.4.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662\", \"files\": {}}",
- "dest": "cargo/vendor/socket2-0.4.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/spin/spin-0.9.8.crate",
- "sha256": "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67",
- "dest": "cargo/vendor/spin-0.9.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\", \"files\": {}}",
- "dest": "cargo/vendor/spin-0.9.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sqlite/sqlite-0.31.1.crate",
- "sha256": "05439db7afa0ce0b38f6d1b4c691f368adde108df021e15e900fec6a1af92488",
- "dest": "cargo/vendor/sqlite-0.31.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"05439db7afa0ce0b38f6d1b4c691f368adde108df021e15e900fec6a1af92488\", \"files\": {}}",
- "dest": "cargo/vendor/sqlite-0.31.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sqlite3-src/sqlite3-src-0.5.1.crate",
- "sha256": "bfc95a51a1ee38839599371685b9d4a926abb51791f0bc3bf8c3bb7867e6e454",
- "dest": "cargo/vendor/sqlite3-src-0.5.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bfc95a51a1ee38839599371685b9d4a926abb51791f0bc3bf8c3bb7867e6e454\", \"files\": {}}",
- "dest": "cargo/vendor/sqlite3-src-0.5.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sqlite3-sys/sqlite3-sys-0.15.2.crate",
- "sha256": "f2752c669433e40ebb08fde824146f50d9628aa0b66a3b7fc6be34db82a8063b",
- "dest": "cargo/vendor/sqlite3-sys-0.15.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f2752c669433e40ebb08fde824146f50d9628aa0b66a3b7fc6be34db82a8063b\", \"files\": {}}",
- "dest": "cargo/vendor/sqlite3-sys-0.15.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/static_assertions/static_assertions-1.1.0.crate",
- "sha256": "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f",
- "dest": "cargo/vendor/static_assertions-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f\", \"files\": {}}",
- "dest": "cargo/vendor/static_assertions-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/steam_shortcuts_util/steam_shortcuts_util-1.1.8.crate",
- "sha256": "d0543ebdb23a93b196aceebc53f70cc5a573bb74248a974b3f5fa3883e6a89b6",
- "dest": "cargo/vendor/steam_shortcuts_util-1.1.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d0543ebdb23a93b196aceebc53f70cc5a573bb74248a974b3f5fa3883e6a89b6\", \"files\": {}}",
- "dest": "cargo/vendor/steam_shortcuts_util-1.1.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/steamgriddb_api/steamgriddb_api-0.3.1.crate",
- "sha256": "0ebdad6dcf0d589f17c3aa0cef88bd819d0ac5a11e4b63da67ca0e30c562bf29",
- "dest": "cargo/vendor/steamgriddb_api-0.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0ebdad6dcf0d589f17c3aa0cef88bd819d0ac5a11e4b63da67ca0e30c562bf29\", \"files\": {}}",
- "dest": "cargo/vendor/steamgriddb_api-0.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/str-buf/str-buf-1.0.6.crate",
- "sha256": "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0",
- "dest": "cargo/vendor/str-buf-1.0.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0\", \"files\": {}}",
- "dest": "cargo/vendor/str-buf-1.0.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/strict-num/strict-num-0.1.1.crate",
- "sha256": "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731",
- "dest": "cargo/vendor/strict-num-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731\", \"files\": {}}",
- "dest": "cargo/vendor/strict-num-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/syn/syn-1.0.109.crate",
- "sha256": "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237",
- "dest": "cargo/vendor/syn-1.0.109"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237\", \"files\": {}}",
- "dest": "cargo/vendor/syn-1.0.109",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/syn/syn-2.0.16.crate",
- "sha256": "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01",
- "dest": "cargo/vendor/syn-2.0.16"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01\", \"files\": {}}",
- "dest": "cargo/vendor/syn-2.0.16",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/sysinfo/sysinfo-0.29.0.crate",
- "sha256": "02f1dc6930a439cc5d154221b5387d153f8183529b07c19aca24ea31e0a167e1",
- "dest": "cargo/vendor/sysinfo-0.29.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"02f1dc6930a439cc5d154221b5387d153f8183529b07c19aca24ea31e0a167e1\", \"files\": {}}",
- "dest": "cargo/vendor/sysinfo-0.29.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tempfile/tempfile-3.5.0.crate",
- "sha256": "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998",
- "dest": "cargo/vendor/tempfile-3.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998\", \"files\": {}}",
- "dest": "cargo/vendor/tempfile-3.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.40.crate",
- "sha256": "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac",
- "dest": "cargo/vendor/thiserror-1.0.40"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac\", \"files\": {}}",
- "dest": "cargo/vendor/thiserror-1.0.40",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.40.crate",
- "sha256": "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f",
- "dest": "cargo/vendor/thiserror-impl-1.0.40"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f\", \"files\": {}}",
- "dest": "cargo/vendor/thiserror-impl-1.0.40",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/thread_local/thread_local-1.1.7.crate",
- "sha256": "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152",
- "dest": "cargo/vendor/thread_local-1.1.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152\", \"files\": {}}",
- "dest": "cargo/vendor/thread_local-1.1.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tiff/tiff-0.8.1.crate",
- "sha256": "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471",
- "dest": "cargo/vendor/tiff-0.8.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471\", \"files\": {}}",
- "dest": "cargo/vendor/tiff-0.8.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/time/time-0.3.21.crate",
- "sha256": "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc",
- "dest": "cargo/vendor/time-0.3.21"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc\", \"files\": {}}",
- "dest": "cargo/vendor/time-0.3.21",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/time-core/time-core-0.1.1.crate",
- "sha256": "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb",
- "dest": "cargo/vendor/time-core-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb\", \"files\": {}}",
- "dest": "cargo/vendor/time-core-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/time-macros/time-macros-0.2.9.crate",
- "sha256": "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b",
- "dest": "cargo/vendor/time-macros-0.2.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b\", \"files\": {}}",
- "dest": "cargo/vendor/time-macros-0.2.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tiny-skia/tiny-skia-0.8.4.crate",
- "sha256": "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67",
- "dest": "cargo/vendor/tiny-skia-0.8.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67\", \"files\": {}}",
- "dest": "cargo/vendor/tiny-skia-0.8.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tiny-skia-path/tiny-skia-path-0.8.4.crate",
- "sha256": "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c",
- "dest": "cargo/vendor/tiny-skia-path-0.8.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c\", \"files\": {}}",
- "dest": "cargo/vendor/tiny-skia-path-0.8.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tinyvec/tinyvec-1.6.0.crate",
- "sha256": "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50",
- "dest": "cargo/vendor/tinyvec-1.6.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50\", \"files\": {}}",
- "dest": "cargo/vendor/tinyvec-1.6.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tinyvec_macros/tinyvec_macros-0.1.1.crate",
- "sha256": "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20",
- "dest": "cargo/vendor/tinyvec_macros-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\", \"files\": {}}",
- "dest": "cargo/vendor/tinyvec_macros-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tokio/tokio-1.28.1.crate",
- "sha256": "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105",
- "dest": "cargo/vendor/tokio-1.28.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105\", \"files\": {}}",
- "dest": "cargo/vendor/tokio-1.28.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tokio-macros/tokio-macros-2.1.0.crate",
- "sha256": "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e",
- "dest": "cargo/vendor/tokio-macros-2.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e\", \"files\": {}}",
- "dest": "cargo/vendor/tokio-macros-2.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tokio-native-tls/tokio-native-tls-0.3.1.crate",
- "sha256": "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2",
- "dest": "cargo/vendor/tokio-native-tls-0.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2\", \"files\": {}}",
- "dest": "cargo/vendor/tokio-native-tls-0.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tokio-util/tokio-util-0.7.8.crate",
- "sha256": "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d",
- "dest": "cargo/vendor/tokio-util-0.7.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d\", \"files\": {}}",
- "dest": "cargo/vendor/tokio-util-0.7.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml/toml-0.5.11.crate",
- "sha256": "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234",
- "dest": "cargo/vendor/toml-0.5.11"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234\", \"files\": {}}",
- "dest": "cargo/vendor/toml-0.5.11",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml/toml-0.8.0.crate",
- "sha256": "c226a7bba6d859b63c92c4b4fe69c5b6b72d0cb897dbc8e6012298e6154cb56e",
- "dest": "cargo/vendor/toml-0.8.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c226a7bba6d859b63c92c4b4fe69c5b6b72d0cb897dbc8e6012298e6154cb56e\", \"files\": {}}",
- "dest": "cargo/vendor/toml-0.8.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.3.crate",
- "sha256": "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b",
- "dest": "cargo/vendor/toml_datetime-0.6.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b\", \"files\": {}}",
- "dest": "cargo/vendor/toml_datetime-0.6.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.19.8.crate",
- "sha256": "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13",
- "dest": "cargo/vendor/toml_edit-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13\", \"files\": {}}",
- "dest": "cargo/vendor/toml_edit-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.20.0.crate",
- "sha256": "8ff63e60a958cefbb518ae1fd6566af80d9d4be430a33f3723dfc47d1d411d95",
- "dest": "cargo/vendor/toml_edit-0.20.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8ff63e60a958cefbb518ae1fd6566af80d9d4be430a33f3723dfc47d1d411d95\", \"files\": {}}",
- "dest": "cargo/vendor/toml_edit-0.20.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tower-service/tower-service-0.3.2.crate",
- "sha256": "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52",
- "dest": "cargo/vendor/tower-service-0.3.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52\", \"files\": {}}",
- "dest": "cargo/vendor/tower-service-0.3.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tracing/tracing-0.1.37.crate",
- "sha256": "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8",
- "dest": "cargo/vendor/tracing-0.1.37"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8\", \"files\": {}}",
- "dest": "cargo/vendor/tracing-0.1.37",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.24.crate",
- "sha256": "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74",
- "dest": "cargo/vendor/tracing-attributes-0.1.24"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74\", \"files\": {}}",
- "dest": "cargo/vendor/tracing-attributes-0.1.24",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tracing-core/tracing-core-0.1.31.crate",
- "sha256": "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a",
- "dest": "cargo/vendor/tracing-core-0.1.31"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a\", \"files\": {}}",
- "dest": "cargo/vendor/tracing-core-0.1.31",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tracing-error/tracing-error-0.2.0.crate",
- "sha256": "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e",
- "dest": "cargo/vendor/tracing-error-0.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e\", \"files\": {}}",
- "dest": "cargo/vendor/tracing-error-0.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/tracing-subscriber/tracing-subscriber-0.3.17.crate",
- "sha256": "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77",
- "dest": "cargo/vendor/tracing-subscriber-0.3.17"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77\", \"files\": {}}",
- "dest": "cargo/vendor/tracing-subscriber-0.3.17",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/try-lock/try-lock-0.2.4.crate",
- "sha256": "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed",
- "dest": "cargo/vendor/try-lock-0.2.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed\", \"files\": {}}",
- "dest": "cargo/vendor/try-lock-0.2.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ttf-parser/ttf-parser-0.19.0.crate",
- "sha256": "44dcf002ae3b32cd25400d6df128c5babec3927cd1eb7ce813cfff20eb6c3746",
- "dest": "cargo/vendor/ttf-parser-0.19.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"44dcf002ae3b32cd25400d6df128c5babec3927cd1eb7ce813cfff20eb6c3746\", \"files\": {}}",
- "dest": "cargo/vendor/ttf-parser-0.19.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/typenum/typenum-1.16.0.crate",
- "sha256": "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba",
- "dest": "cargo/vendor/typenum-1.16.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba\", \"files\": {}}",
- "dest": "cargo/vendor/typenum-1.16.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/ucd-trie/ucd-trie-0.1.5.crate",
- "sha256": "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81",
- "dest": "cargo/vendor/ucd-trie-0.1.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81\", \"files\": {}}",
- "dest": "cargo/vendor/ucd-trie-0.1.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/uds_windows/uds_windows-1.0.2.crate",
- "sha256": "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d",
- "dest": "cargo/vendor/uds_windows-1.0.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d\", \"files\": {}}",
- "dest": "cargo/vendor/uds_windows-1.0.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/unicode-bidi/unicode-bidi-0.3.13.crate",
- "sha256": "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460",
- "dest": "cargo/vendor/unicode-bidi-0.3.13"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460\", \"files\": {}}",
- "dest": "cargo/vendor/unicode-bidi-0.3.13",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.8.crate",
- "sha256": "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4",
- "dest": "cargo/vendor/unicode-ident-1.0.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4\", \"files\": {}}",
- "dest": "cargo/vendor/unicode-ident-1.0.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.22.crate",
- "sha256": "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921",
- "dest": "cargo/vendor/unicode-normalization-0.1.22"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921\", \"files\": {}}",
- "dest": "cargo/vendor/unicode-normalization-0.1.22",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/url/url-2.3.1.crate",
- "sha256": "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643",
- "dest": "cargo/vendor/url-2.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643\", \"files\": {}}",
- "dest": "cargo/vendor/url-2.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/urlencoding/urlencoding-2.1.2.crate",
- "sha256": "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9",
- "dest": "cargo/vendor/urlencoding-2.1.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9\", \"files\": {}}",
- "dest": "cargo/vendor/urlencoding-2.1.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/valuable/valuable-0.1.0.crate",
- "sha256": "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d",
- "dest": "cargo/vendor/valuable-0.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d\", \"files\": {}}",
- "dest": "cargo/vendor/valuable-0.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/vcpkg/vcpkg-0.2.15.crate",
- "sha256": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426",
- "dest": "cargo/vendor/vcpkg-0.2.15"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\", \"files\": {}}",
- "dest": "cargo/vendor/vcpkg-0.2.15",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/vec_map/vec_map-0.8.2.crate",
- "sha256": "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191",
- "dest": "cargo/vendor/vec_map-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191\", \"files\": {}}",
- "dest": "cargo/vendor/vec_map-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/version_check/version_check-0.9.4.crate",
- "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
- "dest": "cargo/vendor/version_check-0.9.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f\", \"files\": {}}",
- "dest": "cargo/vendor/version_check-0.9.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/waker-fn/waker-fn-1.1.0.crate",
- "sha256": "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca",
- "dest": "cargo/vendor/waker-fn-1.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca\", \"files\": {}}",
- "dest": "cargo/vendor/waker-fn-1.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/walkdir/walkdir-2.3.3.crate",
- "sha256": "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698",
- "dest": "cargo/vendor/walkdir-2.3.3"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698\", \"files\": {}}",
- "dest": "cargo/vendor/walkdir-2.3.3",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/want/want-0.3.0.crate",
- "sha256": "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0",
- "dest": "cargo/vendor/want-0.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0\", \"files\": {}}",
- "dest": "cargo/vendor/want-0.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate",
- "sha256": "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423",
- "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\", \"files\": {}}",
- "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.86.crate",
- "sha256": "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73",
- "dest": "cargo/vendor/wasm-bindgen-0.2.86"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-0.2.86",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.86.crate",
- "sha256": "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb",
- "dest": "cargo/vendor/wasm-bindgen-backend-0.2.86"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-backend-0.2.86",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.35.crate",
- "sha256": "083abe15c5d88556b77bdf7aef403625be9e327ad37c62c4e4129af740168163",
- "dest": "cargo/vendor/wasm-bindgen-futures-0.4.35"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"083abe15c5d88556b77bdf7aef403625be9e327ad37c62c4e4129af740168163\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-futures-0.4.35",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.86.crate",
- "sha256": "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258",
- "dest": "cargo/vendor/wasm-bindgen-macro-0.2.86"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-macro-0.2.86",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.86.crate",
- "sha256": "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8",
- "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.86"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.86",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.86.crate",
- "sha256": "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93",
- "dest": "cargo/vendor/wasm-bindgen-shared-0.2.86"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-shared-0.2.86",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wayland-client/wayland-client-0.29.5.crate",
- "sha256": "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715",
- "dest": "cargo/vendor/wayland-client-0.29.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715\", \"files\": {}}",
- "dest": "cargo/vendor/wayland-client-0.29.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wayland-commons/wayland-commons-0.29.5.crate",
- "sha256": "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902",
- "dest": "cargo/vendor/wayland-commons-0.29.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902\", \"files\": {}}",
- "dest": "cargo/vendor/wayland-commons-0.29.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wayland-cursor/wayland-cursor-0.29.5.crate",
- "sha256": "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661",
- "dest": "cargo/vendor/wayland-cursor-0.29.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661\", \"files\": {}}",
- "dest": "cargo/vendor/wayland-cursor-0.29.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wayland-protocols/wayland-protocols-0.29.5.crate",
- "sha256": "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6",
- "dest": "cargo/vendor/wayland-protocols-0.29.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6\", \"files\": {}}",
- "dest": "cargo/vendor/wayland-protocols-0.29.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wayland-scanner/wayland-scanner-0.29.5.crate",
- "sha256": "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53",
- "dest": "cargo/vendor/wayland-scanner-0.29.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53\", \"files\": {}}",
- "dest": "cargo/vendor/wayland-scanner-0.29.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wayland-sys/wayland-sys-0.29.5.crate",
- "sha256": "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4",
- "dest": "cargo/vendor/wayland-sys-0.29.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4\", \"files\": {}}",
- "dest": "cargo/vendor/wayland-sys-0.29.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wayland-sys/wayland-sys-0.30.1.crate",
- "sha256": "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06",
- "dest": "cargo/vendor/wayland-sys-0.30.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06\", \"files\": {}}",
- "dest": "cargo/vendor/wayland-sys-0.30.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/web-sys/web-sys-0.3.62.crate",
- "sha256": "16b5f940c7edfdc6d12126d98c9ef4d1b3d470011c47c76a6581df47ad9ba721",
- "dest": "cargo/vendor/web-sys-0.3.62"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"16b5f940c7edfdc6d12126d98c9ef4d1b3d470011c47c76a6581df47ad9ba721\", \"files\": {}}",
- "dest": "cargo/vendor/web-sys-0.3.62",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/webbrowser/webbrowser-0.8.9.crate",
- "sha256": "b692165700260bbd40fbc5ff23766c03e339fbaca907aeea5cb77bf0a553ca83",
- "dest": "cargo/vendor/webbrowser-0.8.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b692165700260bbd40fbc5ff23766c03e339fbaca907aeea5cb77bf0a553ca83\", \"files\": {}}",
- "dest": "cargo/vendor/webbrowser-0.8.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/weezl/weezl-0.1.7.crate",
- "sha256": "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb",
- "dest": "cargo/vendor/weezl-0.1.7"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb\", \"files\": {}}",
- "dest": "cargo/vendor/weezl-0.1.7",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winapi/winapi-0.3.9.crate",
- "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
- "dest": "cargo/vendor/winapi-0.3.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\", \"files\": {}}",
- "dest": "cargo/vendor/winapi-0.3.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate",
- "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
- "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\", \"files\": {}}",
- "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winapi-util/winapi-util-0.1.5.crate",
- "sha256": "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
- "dest": "cargo/vendor/winapi-util-0.1.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178\", \"files\": {}}",
- "dest": "cargo/vendor/winapi-util-0.1.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winapi-wsapoll/winapi-wsapoll-0.1.1.crate",
- "sha256": "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e",
- "dest": "cargo/vendor/winapi-wsapoll-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e\", \"files\": {}}",
- "dest": "cargo/vendor/winapi-wsapoll-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate",
- "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
- "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\", \"files\": {}}",
- "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows/windows-0.44.0.crate",
- "sha256": "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b",
- "dest": "cargo/vendor/windows-0.44.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b\", \"files\": {}}",
- "dest": "cargo/vendor/windows-0.44.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-implement/windows-implement-0.44.0.crate",
- "sha256": "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6",
- "dest": "cargo/vendor/windows-implement-0.44.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6\", \"files\": {}}",
- "dest": "cargo/vendor/windows-implement-0.44.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-interface/windows-interface-0.44.0.crate",
- "sha256": "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f",
- "dest": "cargo/vendor/windows-interface-0.44.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f\", \"files\": {}}",
- "dest": "cargo/vendor/windows-interface-0.44.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.42.0.crate",
- "sha256": "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7",
- "dest": "cargo/vendor/windows-sys-0.42.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7\", \"files\": {}}",
- "dest": "cargo/vendor/windows-sys-0.42.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.45.0.crate",
- "sha256": "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0",
- "dest": "cargo/vendor/windows-sys-0.45.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0\", \"files\": {}}",
- "dest": "cargo/vendor/windows-sys-0.45.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate",
- "sha256": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9",
- "dest": "cargo/vendor/windows-sys-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\", \"files\": {}}",
- "dest": "cargo/vendor/windows-sys-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.42.2.crate",
- "sha256": "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071",
- "dest": "cargo/vendor/windows-targets-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071\", \"files\": {}}",
- "dest": "cargo/vendor/windows-targets-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.48.0.crate",
- "sha256": "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5",
- "dest": "cargo/vendor/windows-targets-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5\", \"files\": {}}",
- "dest": "cargo/vendor/windows-targets-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.42.2.crate",
- "sha256": "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8",
- "dest": "cargo/vendor/windows_aarch64_gnullvm-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8\", \"files\": {}}",
- "dest": "cargo/vendor/windows_aarch64_gnullvm-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.0.crate",
- "sha256": "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc",
- "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc\", \"files\": {}}",
- "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.42.2.crate",
- "sha256": "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43",
- "dest": "cargo/vendor/windows_aarch64_msvc-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43\", \"files\": {}}",
- "dest": "cargo/vendor/windows_aarch64_msvc-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.0.crate",
- "sha256": "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3",
- "dest": "cargo/vendor/windows_aarch64_msvc-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3\", \"files\": {}}",
- "dest": "cargo/vendor/windows_aarch64_msvc-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.42.2.crate",
- "sha256": "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f",
- "dest": "cargo/vendor/windows_i686_gnu-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f\", \"files\": {}}",
- "dest": "cargo/vendor/windows_i686_gnu-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.0.crate",
- "sha256": "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241",
- "dest": "cargo/vendor/windows_i686_gnu-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241\", \"files\": {}}",
- "dest": "cargo/vendor/windows_i686_gnu-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.42.2.crate",
- "sha256": "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060",
- "dest": "cargo/vendor/windows_i686_msvc-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060\", \"files\": {}}",
- "dest": "cargo/vendor/windows_i686_msvc-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.0.crate",
- "sha256": "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00",
- "dest": "cargo/vendor/windows_i686_msvc-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00\", \"files\": {}}",
- "dest": "cargo/vendor/windows_i686_msvc-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.42.2.crate",
- "sha256": "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36",
- "dest": "cargo/vendor/windows_x86_64_gnu-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_gnu-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.0.crate",
- "sha256": "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1",
- "dest": "cargo/vendor/windows_x86_64_gnu-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_gnu-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.42.2.crate",
- "sha256": "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3",
- "dest": "cargo/vendor/windows_x86_64_gnullvm-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_gnullvm-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.0.crate",
- "sha256": "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953",
- "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.42.2.crate",
- "sha256": "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0",
- "dest": "cargo/vendor/windows_x86_64_msvc-0.42.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_msvc-0.42.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.0.crate",
- "sha256": "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a",
- "dest": "cargo/vendor/windows_x86_64_msvc-0.48.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_msvc-0.48.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winit/winit-0.28.6.crate",
- "sha256": "866db3f712fffba75d31bf0cdecf357c8aeafd158c5b7ab51dba2a2b2d47f196",
- "dest": "cargo/vendor/winit-0.28.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"866db3f712fffba75d31bf0cdecf357c8aeafd158c5b7ab51dba2a2b2d47f196\", \"files\": {}}",
- "dest": "cargo/vendor/winit-0.28.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winnow/winnow-0.4.6.crate",
- "sha256": "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699",
- "dest": "cargo/vendor/winnow-0.4.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699\", \"files\": {}}",
- "dest": "cargo/vendor/winnow-0.4.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winnow/winnow-0.5.15.crate",
- "sha256": "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc",
- "dest": "cargo/vendor/winnow-0.5.15"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc\", \"files\": {}}",
- "dest": "cargo/vendor/winnow-0.5.15",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winreg/winreg-0.10.1.crate",
- "sha256": "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d",
- "dest": "cargo/vendor/winreg-0.10.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d\", \"files\": {}}",
- "dest": "cargo/vendor/winreg-0.10.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winreg/winreg-0.51.0.crate",
- "sha256": "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc",
- "dest": "cargo/vendor/winreg-0.51.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc\", \"files\": {}}",
- "dest": "cargo/vendor/winreg-0.51.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winres/winres-0.1.12.crate",
- "sha256": "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c",
- "dest": "cargo/vendor/winres-0.1.12"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c\", \"files\": {}}",
- "dest": "cargo/vendor/winres-0.1.12",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/x11-clipboard/x11-clipboard-0.7.1.crate",
- "sha256": "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464",
- "dest": "cargo/vendor/x11-clipboard-0.7.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464\", \"files\": {}}",
- "dest": "cargo/vendor/x11-clipboard-0.7.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/x11-dl/x11-dl-2.21.0.crate",
- "sha256": "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f",
- "dest": "cargo/vendor/x11-dl-2.21.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f\", \"files\": {}}",
- "dest": "cargo/vendor/x11-dl-2.21.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/x11rb/x11rb-0.10.1.crate",
- "sha256": "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507",
- "dest": "cargo/vendor/x11rb-0.10.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507\", \"files\": {}}",
- "dest": "cargo/vendor/x11rb-0.10.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/x11rb-protocol/x11rb-protocol-0.10.0.crate",
- "sha256": "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67",
- "dest": "cargo/vendor/x11rb-protocol-0.10.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67\", \"files\": {}}",
- "dest": "cargo/vendor/x11rb-protocol-0.10.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/xcursor/xcursor-0.3.4.crate",
- "sha256": "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7",
- "dest": "cargo/vendor/xcursor-0.3.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7\", \"files\": {}}",
- "dest": "cargo/vendor/xcursor-0.3.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/xml-rs/xml-rs-0.8.14.crate",
- "sha256": "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c",
- "dest": "cargo/vendor/xml-rs-0.8.14"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c\", \"files\": {}}",
- "dest": "cargo/vendor/xml-rs-0.8.14",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/xmlparser/xmlparser-0.13.5.crate",
- "sha256": "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd",
- "dest": "cargo/vendor/xmlparser-0.13.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd\", \"files\": {}}",
- "dest": "cargo/vendor/xmlparser-0.13.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/yaml-rust/yaml-rust-0.4.5.crate",
- "sha256": "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85",
- "dest": "cargo/vendor/yaml-rust-0.4.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85\", \"files\": {}}",
- "dest": "cargo/vendor/yaml-rust-0.4.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/zbus/zbus-3.10.0.crate",
- "sha256": "f770930448dd412a4a7131dd968a8e6df0064db4d7916fbbd2d6c3f26b566938",
- "dest": "cargo/vendor/zbus-3.10.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f770930448dd412a4a7131dd968a8e6df0064db4d7916fbbd2d6c3f26b566938\", \"files\": {}}",
- "dest": "cargo/vendor/zbus-3.10.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/zbus_macros/zbus_macros-3.10.0.crate",
- "sha256": "4832059b438689017db7340580ebabba07f114eab91bf990c6e55052408b40d8",
- "dest": "cargo/vendor/zbus_macros-3.10.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4832059b438689017db7340580ebabba07f114eab91bf990c6e55052408b40d8\", \"files\": {}}",
- "dest": "cargo/vendor/zbus_macros-3.10.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/zbus_names/zbus_names-2.5.1.crate",
- "sha256": "82441e6033be0a741157a72951a3e4957d519698f3a824439cc131c5ba77ac2a",
- "dest": "cargo/vendor/zbus_names-2.5.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"82441e6033be0a741157a72951a3e4957d519698f3a824439cc131c5ba77ac2a\", \"files\": {}}",
- "dest": "cargo/vendor/zbus_names-2.5.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/zune-inflate/zune-inflate-0.2.54.crate",
- "sha256": "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02",
- "dest": "cargo/vendor/zune-inflate-0.2.54"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02\", \"files\": {}}",
- "dest": "cargo/vendor/zune-inflate-0.2.54",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/zvariant/zvariant-3.14.0.crate",
- "sha256": "622cc473f10cef1b0d73b7b34a266be30ebdcfaea40ec297dd8cbda088f9f93c",
- "dest": "cargo/vendor/zvariant-3.14.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"622cc473f10cef1b0d73b7b34a266be30ebdcfaea40ec297dd8cbda088f9f93c\", \"files\": {}}",
- "dest": "cargo/vendor/zvariant-3.14.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/zvariant_derive/zvariant_derive-3.14.0.crate",
- "sha256": "5d9c1b57352c25b778257c661f3c4744b7cefb7fc09dd46909a153cce7773da2",
- "dest": "cargo/vendor/zvariant_derive-3.14.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5d9c1b57352c25b778257c661f3c4744b7cefb7fc09dd46909a153cce7773da2\", \"files\": {}}",
- "dest": "cargo/vendor/zvariant_derive-3.14.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/zvariant_utils/zvariant_utils-1.0.1.crate",
- "sha256": "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200",
- "dest": "cargo/vendor/zvariant_utils-1.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200\", \"files\": {}}",
- "dest": "cargo/vendor/zvariant_utils-1.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "inline",
- "contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n",
- "dest": "cargo",
- "dest-filename": "config"
- }
-]
\ No newline at end of file
diff --git a/rd-submodules/dolphin/detectflatpak.patch b/rd-submodules/dolphin/detectflatpak.patch
deleted file mode 100644
index 80930684..00000000
--- a/rd-submodules/dolphin/detectflatpak.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From f2d3b349d8487cf0ee50b36ba024ac513d36f826 Mon Sep 17 00:00:00 2001
-From: Carles Pastor
-Date: Sat, 20 Aug 2022 13:35:32 +0200
-Subject: [PATCH] Detect we are running inside a flatpak sandbox
-
----
- Source/Core/UICommon/UICommon.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp
-index 8d9dc2abb8..8a9d39a3d5 100644
---- a/Source/Core/UICommon/UICommon.cpp
-+++ b/Source/Core/UICommon/UICommon.cpp
-@@ -348,7 +348,7 @@ void SetUserDirectory(std::string custom_path)
- // -> Use GetExeDirectory()/User
- // 2. $DOLPHIN_EMU_USERPATH is set
- // -> Use $DOLPHIN_EMU_USERPATH
-- // 3. ~/.dolphin-emu directory exists
-+ // 3. ~/.dolphin-emu directory exists, and we're not in flatpak
- // -> Use ~/.dolphin-emu
- // 4. Default
- // -> Use XDG basedir, see
-@@ -381,7 +381,7 @@ void SetUserDirectory(std::string custom_path)
- {
- user_path = home_path + "." DOLPHIN_DATA_DIR DIR_SEP;
-
-- if (!File::Exists(user_path))
-+ if (File::Exists("/.flatpak-info") || !File::Exists(user_path))
- {
- const char* data_home = getenv("XDG_DATA_HOME");
- std::string data_path =
---
-2.37.1
diff --git a/rd-submodules/dolphin/nodirtyversion.patch b/rd-submodules/dolphin/nodirtyversion.patch
deleted file mode 100644
index 2dacc209..00000000
--- a/rd-submodules/dolphin/nodirtyversion.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMake/ScmRevGen.cmake b/CMake/ScmRevGen.cmake
-index aacf7491ce..503791cda8 100644
---- a/CMake/ScmRevGen.cmake
-+++ b/CMake/ScmRevGen.cmake
-@@ -7,7 +7,7 @@ if(GIT_FOUND)
- OUTPUT_VARIABLE DOLPHIN_WC_REVISION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- # defines DOLPHIN_WC_DESCRIBE
-- execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long --dirty
-+ execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long
- OUTPUT_VARIABLE DOLPHIN_WC_DESCRIBE
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
\ No newline at end of file
diff --git a/rd-submodules/melonds/hotkeys.patch b/rd-submodules/melonds/hotkeys.patch
deleted file mode 100644
index 8a90570c..00000000
--- a/rd-submodules/melonds/hotkeys.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -au1r melonDS/src/frontend/qt_sdl/main.cpp melonDS/src/frontend/qt_sdl/main.cpp
---- melonDS/src/frontend/qt_sdl/main.cpp 2023-05-06 17:27:24.822375255 +0200
-+++ melonDS/src/frontend/qt_sdl/main.cpp 2023-05-06 17:47:19.587498189 +0200
-@@ -1467,3 +1467,3 @@
- actSaveState[0] = submenu->addAction("File...");
-- actSaveState[0]->setShortcut(QKeySequence(Qt::ShiftModifier | Qt::Key_F9));
-+ actSaveState[0]->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_S));
- actSaveState[0]->setData(QVariant(0));
-@@ -1483,3 +1483,3 @@
- actLoadState[0] = submenu->addAction("File...");
-- actLoadState[0]->setShortcut(QKeySequence(Qt::Key_F9));
-+ actLoadState[0]->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_A));
- actLoadState[0]->setData(QVariant(0));
-@@ -1489,3 +1489,3 @@
- actUndoStateLoad = menu->addAction("Undo state load");
-- actUndoStateLoad->setShortcut(QKeySequence(Qt::Key_F12));
-+ actUndoStateLoad->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_8));
- connect(actUndoStateLoad, &QAction::triggered, this, &MainWindow::onUndoStateLoad);
diff --git a/rd-submodules/primehack/detectflatpak.patch b/rd-submodules/primehack/detectflatpak.patch
deleted file mode 100644
index 60dd1a2d..00000000
--- a/rd-submodules/primehack/detectflatpak.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From f2d3b349d8487cf0ee50b36ba024ac513d36f826 Mon Sep 17 00:00:00 2001
-From: Carles Pastor
-Date: Sat, 20 Aug 2022 13:35:32 +0200
-Subject: [PATCH] Detect we are running inside a flatpak sandbox
-
----
- Source/Core/UICommon/UICommon.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp
-index 8d9dc2abb8..8a9d39a3d5 100644
---- a/Source/Core/UICommon/UICommon.cpp
-+++ b/Source/Core/UICommon/UICommon.cpp
-@@ -348,7 +348,7 @@ void SetUserDirectory(std::string custom_path)
- // -> Use GetExeDirectory()/User
- // 2. $DOLPHIN_EMU_USERPATH is set
- // -> Use $DOLPHIN_EMU_USERPATH
-- // 3. ~/.dolphin-emu directory exists
-+ // 3. ~/.dolphin-emu directory exists, and we're not in flatpak
- // -> Use ~/.dolphin-emu
- // 4. Default
- // -> Use XDG basedir, see
-@@ -381,7 +381,7 @@ void SetUserDirectory(std::string custom_path)
- {
- user_path = home_path + "." DOLPHIN_DATA_DIR DIR_SEP;
-
-- if (!File::Exists(user_path))
-+ if (File::Exists("/.flatpak-info") || !File::Exists(user_path))
- {
- const char* data_home = getenv("XDG_DATA_HOME");
- std::string data_path =
---
-2.37.1
-
diff --git a/rd-submodules/primehack/nodirtyversion.patch b/rd-submodules/primehack/nodirtyversion.patch
deleted file mode 100644
index 20b6f3c1..00000000
--- a/rd-submodules/primehack/nodirtyversion.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9af66009a1..2acd3bed9a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -149,7 +149,7 @@ if(GIT_FOUND)
- OUTPUT_VARIABLE DOLPHIN_WC_REVISION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- # defines DOLPHIN_WC_DESCRIBE
-- execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long --dirty
-+ execute_process(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --long
- OUTPUT_VARIABLE DOLPHIN_WC_DESCRIBE
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
deleted file mode 160000
index eec4bcca..00000000
--- a/rd-submodules/retroarch
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit eec4bcca8c9e514467fb62cca4a7b2d12c6a2328
diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules
deleted file mode 160000
index 782d3cc0..00000000
--- a/rd-submodules/shared-modules
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 782d3cc04ccdd8071017f622d4bacd35faecbd86
diff --git a/retrodeck.sh b/retrodeck.sh
index 52cd7697..b2ef5a7e 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -56,10 +56,10 @@ https://retrodeck.net
;;
--reset-component*)
echo "You are about to reset one or more RetroDECK components or emulators."
- echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, ryujinx, xemu, vita3k, mame, boilr, all"
+ echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, ryujinx, xemu, vita3k, mame, all"
read -p "Please enter the component you would like to reset: " component
component=$(echo "$component" | tr '[:upper:]' '[:lower:]')
- if [[ "$component" =~ ^(es-de|retroarch|cemu|dolphin|duckstation|gzdoom|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|xemu|all)$ ]]; then
+ if [[ "$component" =~ ^(es-de|retroarch|cemu|dolphin|duckstation|gzdoom|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|vita3k|xemu|all)$ ]]; then
read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
prepare_component "reset" "$component" "cli"
@@ -113,7 +113,7 @@ if [ -f "$lockfile" ]; then
set_setting_value $rd_conf "update_check" "true" retrodeck "options"
set_setting_value $rd_conf "developer_options" "true" retrodeck "options"
cooker_base_version=$(echo $hard_version | cut -d'-' -f2)
- choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Full Wipe and Fresh Install" \
+ choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Full Wipe and Fresh Install" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Cooker Upgrade" \
--text="You appear to be upgrading to a \"cooker\" build of RetroDECK.\n\nWould you like to perform the standard post-update process, skip the post-update process or remove ALL existing RetroDECK folders and data (including ROMs and saves) to start from a fresh install?\n\nPerforming the normal post-update process multiple times may lead to unexpected results.")
@@ -184,13 +184,4 @@ if [[ $update_check == "true" ]]; then
fi
# Normal Startup
-
-if [[ $steam_sync == "true" ]]; then
- python3 /app/libexec/steam-sync/steam-sync.py &
-fi
-
start_retrodeck
-
-if [[ $steam_sync == "true" ]]; then
- touch /tmp/retrodeck_steam_sync_exit
-fi
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 4c0d9278..68529f9b 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -101,8 +101,8 @@ source /app/libexec/global.sh
# - Change Multi-user mode
# - Change Update channel
# - Browse the wiki
-# - USB Import tool
# - Install: RetroDECK Starter Pack
+# - Tool: USB Import
# DIALOG TREE FUNCTIONS
@@ -124,7 +124,7 @@ configurator_welcome_dialog() {
"RetroDECK: About" "Show additional information about RetroDECK")
fi
- choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"${welcome_menu_options[@]}")
@@ -156,11 +156,6 @@ configurator_welcome_dialog() {
configurator_about_retrodeck_dialog
;;
- "Sync with Steam" )
- log i "Configurator: opening \"$choice\" menu"
- configurator_add_steam
- ;;
-
"Developer Options" )
log i "Configurator: opening \"$choice\" menu"
configurator_generic_dialog "RetroDECK Configurator - Developer Options" "The following features and options are potentially VERY DANGEROUS for your RetroDECK install!\n\nThey should be considered the bleeding-edge of upcoming RetroDECK features, and never used when you have important saves/states/roms that are not backed up!\n\nYOU HAVE BEEN WARNED!"
@@ -176,7 +171,7 @@ configurator_welcome_dialog() {
}
configurator_presets_and_settings_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - Presets & Settings" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - Presets & Settings" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Global: Presets & Settings" "Here you find presets and settings that that span over multiple emulators" \
@@ -209,7 +204,7 @@ configurator_presets_and_settings_dialog() {
}
configurator_global_presets_and_settings_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - Global: Presets & Settings" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - Global: Presets & Settings" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Widescreen: Enable/Disable" "Enable or disable widescreen in supported systems" \
@@ -292,7 +287,7 @@ configurator_global_presets_and_settings_dialog() {
}
configurator_retroarch_presets_and_settings_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroArch: Presets & Settings" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroArch: Presets & Settings" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Borders: Enable/Disable" "Enable or disable borders in supported systems" )
@@ -314,7 +309,7 @@ configurator_retroarch_presets_and_settings_dialog() {
}
configurator_wii_and_gamecube_presets_and_settings_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - Wii & GameCube: Presets & Settings" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - Wii & GameCube: Presets & Settings" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Dolphin Textures: Universal Dynamic Input" "Enable/Disable Venomalia's Universal Dynamic Input Textures for Dolphin" \
@@ -342,7 +337,7 @@ configurator_wii_and_gamecube_presets_and_settings_dialog() {
configurator_dolphin_input_textures_dialog() {
if [[ -d "/var/data/dolphin-emu/Load/DynamicInputTextures" ]]; then
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - Dolphin Textures: Universal Dynamic Input" \
--text="Custom input textures are currently enabled. Do you want to disable them?"
@@ -356,7 +351,7 @@ configurator_dolphin_input_textures_dialog() {
configurator_wii_and_gamecube_presets_and_settings_dialog
fi
else
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - Dolphin Textures: Universal Dynamic Input" \
--text="Custom input textures are currently disabled. Do you want to enable them?\n\nThis process may take several minutes to complete."
@@ -368,7 +363,7 @@ configurator_dolphin_input_textures_dialog() {
mkdir "/var/data/dolphin-emu/Load/DynamicInputTextures"
rsync -rlD --mkpath "/app/retrodeck/extras/DynamicInputTextures/" "/var/data/dolphin-emu/Load/DynamicInputTextures/"
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 - Dolphin Custom Input Textures Install"
configurator_process_complete_dialog "enabling Dolphin custom input textures"
@@ -380,7 +375,7 @@ configurator_dolphin_input_textures_dialog() {
configurator_primehack_input_textures_dialog() {
if [[ -d "/var/data/primehack/Load/DynamicInputTextures" ]]; then
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - Dolphin Custom Input Textures" \
--text="Custom input textures are currently enabled. Do you want to disable them?"
@@ -394,7 +389,7 @@ configurator_primehack_input_textures_dialog() {
configurator_wii_and_gamecube_presets_and_settings_dialog
fi
else
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - Primehack Custom Input Textures" \
--text="Custom input textures are currently disabled. Do you want to enable them?\n\nThis process may take several minutes to complete."
@@ -406,7 +401,7 @@ configurator_primehack_input_textures_dialog() {
mkdir "/var/data/primehack/Load/DynamicInputTextures"
rsync -rlD --mkpath "/app/retrodeck/extras/DynamicInputTextures/" "/var/data/primehack/Load/DynamicInputTextures/"
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 - Primehack Custom Input Textures Install"
configurator_process_complete_dialog "enabling Primehack custom input textures"
@@ -418,7 +413,7 @@ configurator_primehack_input_textures_dialog() {
configurator_power_user_warning_dialog() {
if [[ $power_user_warning == "true" ]]; then
- choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Never show this again" \
+ choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Never show this again" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Power User Warning" \
--text="Making manual changes to an emulator's configuration may create serious issues,\nand some settings may be overwitten during RetroDECK updates or when using presets.\n\nSome standalone emulator functions may not work properly outside of Desktop mode.\n\nPlease continue only if you know what you're doing.\n\nDo you want to continue?")
@@ -462,7 +457,7 @@ configurator_open_emulator_dialog() {
emulator_list+=("Citra" "Open the 3DS emulator Citra")
fi
- emulator=$(zenity --list \
+ emulator=$(rd_zenity --list \
--title "RetroDECK Configurator Utility - Open Emulator" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator do you want to launch?" \
@@ -577,7 +572,7 @@ configurator_retrodeck_tools_dialog() {
choices+=("Ponzu - Remove Citra" "Run Ponzu to remove Citra from RetroDECK. Configurations and saves will be mantained.")
fi
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Tools" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Tools" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"${choices[@]}")
@@ -591,9 +586,12 @@ configurator_retrodeck_tools_dialog() {
"Tool: Remove Empty ROM Folders" )
log i "Configurator: opening \"$choice\" menu"
+
+ configurator_generic_dialog "RetroDECK Configurator - Remove Empty ROM Folders" "Before removing any identified empty ROM folders,\nplease make sure your ROM collection is backed up, just in case!"
+ configurator_generic_dialog "RetroDECK Configurator - Remove Empty ROM Folders" "Searching for empty rom folders, please be patient..."
find_empty_rom_folders
- choice=$(zenity \
+ choice=$(rd_zenity \
--list --width=1200 --height=720 --title "RetroDECK Configurator - RetroDECK: Remove Empty ROM Folders" \
--checklist --hide-column=3 --ok-label="Remove Selected" --extra-button="Remove All" \
--separator="," --print-column=2 \
@@ -601,22 +599,23 @@ configurator_retrodeck_tools_dialog() {
--column "Remove?" \
--column "System" \
"${empty_rom_folders_list[@]}")
-
+
local rc=$?
if [[ $rc == "0" && ! -z $choice ]]; then # User clicked "Remove Selected" with at least one system selected
IFS="," read -ra folders_to_remove <<< "$choice"
for folder in "${folders_to_remove[@]}"; do
log i "Removing empty folder $folder"
- rm -f "$folder"
+ rm -rf "$folder"
done
+ configurator_generic_dialog "RetroDECK Configurator - Remove Empty ROM Folders" "The removal process is complete."
elif [[ ! -z $choice ]]; then # User clicked "Remove All"
for folder in "${all_empty_folders[@]}"; do
log i "Removing empty folder $folder"
- rm -f "$folder"
+ rm -rf "$folder"
done
+ configurator_generic_dialog "RetroDECK Configurator - Remove Empty ROM Folders" "The removal process is complete."
fi
-
- configurator_generic_dialog "RetroDECK Configurator - Remove Empty ROM Folders" "The removal process is complete."
+
configurator_retrodeck_tools_dialog
;;
@@ -650,7 +649,7 @@ configurator_retrodeck_tools_dialog() {
(
update_rpcs3_firmware
) |
- zenity --progress --no-cancel --pulsate --auto-close \
+ rd_zenity --progress --no-cancel --pulsate --auto-close \
--icon-name=net.retrodeck.retrodeck \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title="Downloading PS3 Firmware" \
@@ -669,7 +668,7 @@ configurator_retrodeck_tools_dialog() {
(
update_vita3k_firmware
) |
- zenity --progress --pulsate \
+ rd_zenity --progress --pulsate \
--icon-name=net.retrodeck.retrodeck \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title="Downloading PS Vita Firmware" \
@@ -703,7 +702,7 @@ configurator_retrodeck_tools_dialog() {
}
configurator_retrodeck_move_tool_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Move Tool" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Move Tool" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Move all of RetroDECK" "Move the entire retrodeck folder to a new location" \
@@ -775,7 +774,7 @@ configurator_retrodeck_move_tool_dialog() {
}
configurator_compression_tool_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Compression Tool" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Compression Tool" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Compress Single Game" "Compress a single game into a compatible format" \
@@ -837,7 +836,7 @@ configurator_compress_single_game_dialog() {
log i "Compressing $(basename "$file") to $compatible_compression_format format"
compress_game "$compatible_compression_format" "$file" "$system"
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 - Compression in Progress"
configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "The compression process is complete."
@@ -857,29 +856,35 @@ configurator_compress_multiple_games_dialog() {
find_compatible_games "$1"
- if [[ ! "$target_selection" == "everything" ]]; then # If the user chose to not auto-compress everything
- choice=$(zenity \
- --list --width=1200 --height=720 --title "RetroDECK Configurator - RetroDECK: Compression Tool" \
- --checklist --hide-column=3 --ok-label="Compress Selected" --extra-button="Compress All" \
- --separator="," --print-column=3 \
- --text="Choose which games to compress:" \
- --column "Compress?" \
- --column "Game" \
- --column "Game Full Path" \
- "${compressable_games_list[@]}")
+ if [[ ! $(echo "${#all_compressable_games[@]}") == "0" ]]; then
+ if [[ ! "$target_selection" == "everything" ]]; then # If the user chose to not auto-compress everything
+ choice=$(rd_zenity \
+ --list --width=1200 --height=720 --title "RetroDECK Configurator - RetroDECK: Compression Tool" \
+ --checklist --hide-column=3 --ok-label="Compress Selected" --extra-button="Compress All" \
+ --separator="," --print-column=3 \
+ --text="Choose which games to compress:" \
+ --column "Compress?" \
+ --column "Game" \
+ --column "Game Full Path" \
+ "${compressable_games_list[@]}")
- local rc=$?
- if [[ $rc == "0" && ! -z $choice ]]; then # User clicked "Compress Selected" with at least one game selected
- IFS="," read -ra games_to_compress <<< "$choice"
- local total_games_to_compress=${#games_to_compress[@]}
- local games_left_to_compress=$total_games_to_compress
- elif [[ ! -z $choice ]]; then # User clicked "Compress All"
+ local rc=$?
+ if [[ $rc == "0" && ! -z $choice ]]; then # User clicked "Compress Selected" with at least one game selected
+ IFS="," read -ra games_to_compress <<< "$choice"
+ local total_games_to_compress=${#games_to_compress[@]}
+ local games_left_to_compress=$total_games_to_compress
+ elif [[ ! -z $choice ]]; then # User clicked "Compress All"
+ games_to_compress=("${all_compressable_games[@]}")
+ local total_games_to_compress=${#all_compressable_games[@]}
+ local games_left_to_compress=$total_games_to_compress
+ fi
+ else # The user chose to auto-compress everything
games_to_compress=("${all_compressable_games[@]}")
local total_games_to_compress=${#all_compressable_games[@]}
local games_left_to_compress=$total_games_to_compress
fi
- else # The user chose to auto-compress everything
- games_to_compress=("${all_compressable_games[@]}")
+ else
+ configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "No compressable files were found."
fi
if [[ ! $(echo "${#games_to_compress[@]}") == "0" ]]; then
@@ -897,7 +902,7 @@ configurator_compress_multiple_games_dialog() {
compress_game "$compression_format" "$file" "$system"
done
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --auto-close \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Compression in Progress"
configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "The compression process is complete!"
@@ -908,7 +913,7 @@ configurator_compress_multiple_games_dialog() {
}
configurator_compression_cleanup_dialog() {
- zenity --icon-name=net.retrodeck.retrodeck --question --no-wrap --cancel-label="No" --ok-label="Yes" \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --question --no-wrap --cancel-label="No" --ok-label="Yes" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - RetroDECK: Compression Tool" \
--text="Do you want to remove old files after they are compressed?\n\nClicking \"No\" will leave all files behind which will need to be cleaned up manually and may result in game duplicates showing in the RetroDECK library.\n\nPlease make sure you have a backup of your ROMs before using automatic cleanup!"
@@ -922,7 +927,7 @@ configurator_compression_cleanup_dialog() {
configurator_online_update_setting_dialog() {
if [[ $(get_setting_value $rd_conf "update_check" retrodeck "options") == "true" ]]; then
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - RetroDECK Online Update Check" \
--text="Online update checks for RetroDECK are currently enabled.\n\nDo you want to disable them?"
@@ -934,7 +939,7 @@ configurator_online_update_setting_dialog() {
configurator_retrodeck_tools_dialog
fi
else
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - RetroDECK Online Update Check" \
--text="Online update checks for RetroDECK are currently disabled.\n\nDo you want to enable them?"
@@ -949,7 +954,7 @@ configurator_online_update_setting_dialog() {
}
configurator_retrodeck_troubleshooting_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Troubleshooting" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Troubleshooting" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Backup: RetroDECK Userdata" "Compress and backup important RetroDECK user data folders" \
@@ -966,7 +971,7 @@ configurator_retrodeck_troubleshooting_dialog() {
(
backup_retrodeck_userdata
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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..."
@@ -1011,7 +1016,7 @@ configurator_check_bios_files() {
check_bios_files "basic"
- zenity --list --title="RetroDECK Configurator Utility - Check & Verify: BIOS Files" --cancel-label="Back" \
+ rd_zenity --list --title="RetroDECK Configurator Utility - Check & Verify: BIOS Files" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column "BIOS File Name" \
--column "System" \
@@ -1029,7 +1034,7 @@ configurator_check_bios_files_expert_mode() {
check_bios_files "expert"
- zenity --list --title="RetroDECK Configurator Utility - Check & Verify: BIOS Files" --cancel-label="Back" \
+ rd_zenity --list --title="RetroDECK Configurator Utility - Check & Verify: BIOS Files" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column "BIOS File Name" \
--column "System" \
@@ -1047,7 +1052,7 @@ configurator_check_multifile_game_structure() {
local folder_games=($(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3"))
if [[ ${#folder_games[@]} -gt 1 ]]; then
echo "$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")" > $logs_folder/multi_file_games_"$(date +"%Y_%m_%d_%I_%M_%p").log"
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - Check & Verify: Multi-file structure" \
--text="The following games were found to have the incorrect folder structure:\n\n$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")\n\nIncorrect folder structure can result in failure to launch games or saves being in the incorrect location.\n\nPlease see the RetroDECK wiki for more details!\n\nYou can find this list of games in ~/retrodeck/logs"
@@ -1066,7 +1071,7 @@ configurator_reset_dialog() {
"Reset RetroDECK" "Reset RetroDECK to default settings"
)
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Reset" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Reset" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"${choices[@]}")
@@ -1100,7 +1105,7 @@ configurator_reset_dialog() {
"Reset Emulator or Engine" )
log i "Configurator: opening \"$choice\" menu"
- component_to_reset=$(zenity --list \
+ component_to_reset=$(rd_zenity --list \
--title "RetroDECK Configurator Utility - Reset Specific Standalone Emulator" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which emulator or engine do you want to reset to default?" \
@@ -1142,18 +1147,17 @@ configurator_reset_dialog() {
;;
"Reset RetroDECK Component" )
- component_to_reset=$(zenity --list \
+ component_to_reset=$(rd_zenity --list \
--title "RetroDECK Configurator Utility - Reset Specific RetroDECK Component" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--text="Which component do you want to reset to default settings?" \
--column="Component" --column="Action" \
- "BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \
"ES-DE" "Reset the ES-DE frontend" \ )
# TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU"
case $component_to_reset in
- "BoilR" | "ES-DE" ) # TODO: GyroDSU
+ "ES-DE" ) # TODO: GyroDSU
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_component "reset" "$component_to_reset" "configurator"
configurator_process_complete_dialog "resetting $component_to_reset"
@@ -1177,7 +1181,7 @@ configurator_reset_dialog() {
(
prepare_component "reset" "all"
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ rd_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 Finishing Initialization" \
--text="RetroDECK is finishing the reset process, please wait."
@@ -1195,7 +1199,7 @@ configurator_reset_dialog() {
"Reset RetroDECK" )
log i "Configurator: opening \"$choice\" menu"
if [[ $(configurator_reset_confirmation_dialog "RetroDECK" "Are you sure you want to reset RetroDECK entirely?\n\nThis process cannot be undone.") == "true" ]]; then
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Reset RetroDECK" \
--text="You are resetting RetroDECK to its default state.\n\nAfter the process is complete you will need to exit RetroDECK and run it again, where you will go through the initial setup process."
@@ -1216,7 +1220,7 @@ configurator_reset_dialog() {
}
configurator_about_retrodeck_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: About" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroDECK: About" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Description" \
"Version History" "View the version changelogs for RetroDECK" \
@@ -1231,10 +1235,10 @@ configurator_about_retrodeck_dialog() {
"Credits" )
log i "Configurator: opening \"$choice\" menu"
- zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Credits" \
- --filename="$emuconfigs/defaults/retrodeck/reference_lists/retrodeck_credits.txt"
+ --filename="$config/retrodeck/reference_lists/retrodeck_credits.txt"
configurator_about_retrodeck_dialog
;;
@@ -1246,49 +1250,6 @@ configurator_about_retrodeck_dialog() {
esac
}
-configurator_add_steam() {
- if [[ $(get_setting_value $rd_conf "steam_sync" retrodeck "options") == "true" ]]; then
- zenity --question \
- --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
- --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \
- --text="Steam syncronization is currently enabled. Do you want to disable it?\n\nThe already added shortcut will not be removed.\n"
-
- if [ $? == 0 ] # User clicked "Yes"
- then
- disable_steam_sync
- else # User clicked "Cancel"
- configurator_welcome_dialog
- fi
- else
- zenity --question \
- --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
- --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \
- --text="Steam syncronization is currently disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam thanks to BoilR.\nRemember to restart Steam each time to see the changes.\n"
-
- if [ $? == 0 ]
- then
- enable_steam_sync
- else
- configurator_welcome_dialog
- fi
- fi
-}
-
-enable_steam_sync() {
- set_setting_value $rd_conf "steam_sync" "true" retrodeck "options"
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" \
- --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
- --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \
- --text="Steam syncronization enabled, restart RetroDECK to get effect."
- configurator_welcome_dialog
-}
-
-disable_steam_sync() {
- set_setting_value $rd_conf "steam_sync" "false" retrodeck "options"
- touch /tmp/retrodeck_steam_sync_exit
- configurator_welcome_dialog
-}
-
configurator_version_history_dialog() {
local version_array=($(xml sel -t -v '//component/releases/release/@version' -n $rd_appdata))
local all_versions_list=()
@@ -1297,7 +1258,7 @@ configurator_version_history_dialog() {
all_versions_list=("${all_versions_list[@]}" "RetroDECK $rd_version Changelog" "View the changes specific to version $rd_version")
done
- choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK Version History" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - RetroDECK Version History" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Description" \
"Full RetroDECK Changelog" "View the list of all changes that have ever been made to RetroDECK" \
@@ -1322,14 +1283,14 @@ configurator_version_history_dialog() {
}
configurator_developer_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - Developer Options" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - Developer Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Description" \
"Change Multi-user mode" "Enable or disable multi-user support" \
"Change Update Channel" "Change between normal and cooker builds" \
"Browse the Wiki" "Browse the RetroDECK wiki online" \
- "USB Import" "Prepare a USB device for ROMs or import an existing collection" \
- "Install RetroDECK Starter Pack" "Install the optional RetroDECK starter pack" )
+ "Install RetroDECK Starter Pack" "Install the optional RetroDECK starter pack" \
+ "Tool: USB Import" "Prepare a USB device for ROMs or import an existing collection")
case $choice in
@@ -1345,15 +1306,10 @@ configurator_developer_dialog() {
"Browse the Wiki" )
log i "Configurator: opening \"$choice\" menu"
- xdg-open "https://github.com/XargonWan/RetroDECK/wiki"
+ xdg-open "https://github.com/RetroDECK/RetroDECK/wiki"
configurator_developer_dialog
;;
- "USB Import" )
- log i "Configurator: opening \"$choice\" menu"
- configurator_usb_import_dialog
- ;;
-
"Install RetroDECK Starter Pack" )
log i "Configurator: opening \"$choice\" menu"
if [[ $(configurator_generic_question_dialog "Install: RetroDECK Starter Pack" "The RetroDECK creators have put together a collection of classic retro games you might enjoy!\n\nWould you like to have them automatically added to your library?") == "true" ]]; then
@@ -1362,6 +1318,11 @@ configurator_developer_dialog() {
configurator_developer_dialog
;;
+ "Tool: USB Import" )
+ log i "Configurator: opening \"$choice\" menu"
+ configurator_usb_import_dialog
+ ;;
+
"" ) # No selection made or Back button clicked
log i "Configurator: going back"
configurator_welcome_dialog
@@ -1371,7 +1332,7 @@ configurator_developer_dialog() {
configurator_retrodeck_multiuser_dialog() {
if [[ $(get_setting_value $rd_conf "multi_user_mode" retrodeck "options") == "true" ]]; then
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - RetroDECK Multi-user Support" \
--text="Multi-user support is currently enabled. Do you want to disable it?\n\nIf there is more than one user configured,\nyou will be given a choice of which to use as the single RetroDECK user.\n\nThis user's files will be moved to the default locations.\n\nOther users' files will remain in the mutli-user-data folder.\n"
@@ -1383,7 +1344,7 @@ configurator_retrodeck_multiuser_dialog() {
configurator_developer_dialog
fi
else
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - RetroDECK Multi-user support" \
--text="Multi-user support is currently disabled. Do you want to enable it?\n\nThe current user's saves and states will be backed up and then moved to the \"retrodeck/multi-user-data\" folder.\nAdditional users will automatically be stored in their own folder here as they are added."
@@ -1399,7 +1360,7 @@ configurator_retrodeck_multiuser_dialog() {
configurator_online_update_channel_dialog() {
if [[ $(get_setting_value $rd_conf "update_repo" retrodeck "options") == "RetroDECK" ]]; then
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - RetroDECK Change Update Branch" \
--text="You are currently on the production branch of RetroDECK updates. Would you like to switch to the cooker branch?\n\nAfter installing a cooker build, you may need to remove the \"stable\" branch install of RetroDECK to avoid overlap."
@@ -1411,7 +1372,7 @@ configurator_online_update_channel_dialog() {
configurator_developer_dialog
fi
else
- zenity --question \
+ rd_zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - RetroDECK Change Update Branch" \
--text="You are currently on the cooker branch of RetroDECK updates. Would you like to switch to the production branch?\n\nAfter installing a production build, you may need to remove the \"cooker\" branch install of RetroDECK to avoid overlap."
@@ -1426,25 +1387,27 @@ configurator_online_update_channel_dialog() {
}
configurator_usb_import_dialog() {
- choice=$(zenity --list --title="RetroDECK Configurator Utility - Developer Options" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - Developer Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Description" \
- "Prepare USB device" "Create ROM folders on a selected USB device" \
+ "Prepare USB device" "Create ROM and BIOS folders on a selected USB device" \
"Import from USB" "Import collection from a previously prepared device" )
case $choice in
"Prepare USB device" )
log i "Configurator: opening \"$choice\" menu"
+ configurator_generic_dialog "RetroDeck Configurator - USB Import" "If you have an SD card installed that is not currently configured in RetroDECK it may show up in this list, but not be suitable for USB import.\n\nPlease select your desired drive carefully."
+
external_devices=()
while read -r size device_path; do
device_name=$(basename "$device_path")
external_devices=("${external_devices[@]}" "$device_name" "$size" "$device_path")
- done < <(df --output=size,target | grep media | grep -v $default_sd | awk '{$1=$1;print}')
+ done < <(df --output=size,target -h | grep "/run/media/" | grep -v "$sdcard" | awk '{$1=$1;print}')
if [[ "${#external_devices[@]}" -gt 0 ]]; then
- choice=$(zenity --list --title="RetroDECK Configurator Utility - USB Migration Tool" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - USB Migration Tool" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--hide-column=3 --print-column=3 \
--column "Device Name" \
@@ -1453,8 +1416,33 @@ configurator_usb_import_dialog() {
"${external_devices[@]}")
if [[ ! -z "$choice" ]]; then
- es-de --home "$choice" --create-system-dirs
- rm -rf "$choice/ES-DE" # Cleanup unnecessary folder
+ es-de --home "$choice/RetroDECK Import" --create-system-dirs
+ rm -rf "$choice/RetroDECK Import/ES-DE" # Cleanup unnecessary folder
+ create_dir "$choice/RetroDECK Import/BIOS"
+
+ # Prepare default BIOS folder subfolders
+ create_dir "$choice/RetroDECK Import/BIOS/np2kai"
+ create_dir "$choice/RetroDECK Import/BIOS/dc"
+ create_dir "$choice/RetroDECK Import/BIOS/Mupen64plus"
+ create_dir "$choice/RetroDECK Import/BIOS/quasi88"
+ create_dir "$choice/RetroDECK Import/BIOS/fbneo/samples"
+ create_dir "$choice/RetroDECK Import/BIOS/fbneo/cheats"
+ create_dir "$choice/RetroDECK Import/BIOS/fbneo/blend"
+ create_dir "$choice/RetroDECK Import/BIOS/fbneo/patched"
+ create_dir "$choice/RetroDECK Import/BIOS/citra/sysdata"
+ create_dir "$choice/RetroDECK Import/BIOS/cemu"
+ create_dir "$choice/RetroDECK Import/BIOS/pico-8/carts"
+ create_dir "$choice/RetroDECK Import/BIOS/pico-8/cdata"
+ create_dir "$choice/RetroDECK Import/BIOS/rpcs3/dev_hdd0"
+ create_dir "$choice/RetroDECK Import/BIOS/rpcs3/dev_hdd1"
+ create_dir "$choice/RetroDECK Import/BIOS/rpcs3/dev_flash"
+ create_dir "$choice/RetroDECK Import/BIOS/rpcs3/dev_flash2"
+ create_dir "$choice/RetroDECK Import/BIOS/rpcs3/dev_flash3"
+ create_dir "$choice/RetroDECK Import/BIOS/rpcs3/dev_bdvd"
+ create_dir "$choice/RetroDECK Import/BIOS/rpcs3/dev_usb000"
+ create_dir "$choice/RetroDECK Import/BIOS/Vita3K/"
+ create_dir "$choice/RetroDECK Import/BIOS/mame-sa/samples"
+ create_dir "$choice/RetroDECK Import/BIOS/gzdoom"
fi
else
configurator_generic_dialog "RetroDeck Configurator - USB Import" "There were no USB devices found."
@@ -1467,14 +1455,14 @@ configurator_usb_import_dialog() {
external_devices=()
while read -r size device_path; do
- if [[ -d "$device_path/ROMs" ]]; then
+ if [[ -d "$device_path/RetroDECK Import/ROMs" ]]; then
device_name=$(basename "$device_path")
external_devices=("${external_devices[@]}" "$device_name" "$size" "$device_path")
fi
- done < <(df --output=size,target | grep media | grep -v $default_sd | awk '{$1=$1;print}')
+ done < <(df --output=size,target -h | grep "/run/media/" | grep -v "$sdcard" | awk '{$1=$1;print}')
if [[ "${#external_devices[@]}" -gt 0 ]]; then
- choice=$(zenity --list --title="RetroDECK Configurator Utility - USB Migration Tool" --cancel-label="Back" \
+ choice=$(rd_zenity --list --title="RetroDECK Configurator Utility - USB Migration Tool" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--hide-column=3 --print-column=3 \
--column "Device Name" \
@@ -1483,21 +1471,23 @@ configurator_usb_import_dialog() {
"${external_devices[@]}")
if [[ ! -z "$choice" ]]; then
- if [[ $(verify_space "$choice/ROMs" "$roms_folder") == "false" ]]; then
- if [[ $(configurator_generic_question_dialog "RetroDECK Configurator Utility - USB Migration Tool" "You MAY not have enough free space to import this ROM library.\n\nThis utility only imports new additions from the USB device, so if there are a lot of the same ROMs in both locations you are likely going to be fine\nbut we are not able to verify how much data will be transferred before it happens.\n\nIf you are unsure, please verify your available free space before continuing.\n\nDo you want to continue now?") == "true" ]]; then
+ if [[ $(verify_space "$choice/RetroDECK Import/ROMs" "$roms_folder") == "false" || $(verify_space "$choice/RetroDECK Import/BIOS" "$bios_folder") == "false" ]]; then
+ if [[ $(configurator_generic_question_dialog "RetroDECK Configurator Utility - USB Migration Tool" "You MAY not have enough free space to import this ROM/BIOS library.\n\nThis utility only imports new additions from the USB device, so if there are a lot of the same files in both locations you are likely going to be fine\nbut we are not able to verify how much data will be transferred before it happens.\n\nIf you are unsure, please verify your available free space before continuing.\n\nDo you want to continue now?") == "true" ]]; then
(
- rsync -a --mkpath "$choice/ROMs/"* "$roms_folder"
+ rsync -a --mkpath "$choice/RetroDECK Import/ROMs/"* "$roms_folder"
+ rsync -a --mkpath "$choice/RetroDECK Import/BIOS/"* "$bios_folder"
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --auto-close \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - USB Import In Progress"
configurator_generic_dialog "RetroDECK Configurator - USB Migration Tool" "The import process is complete!"
fi
else
(
- rsync -a --mkpath "$choice/ROMs/"* "$roms_folder"
+ rsync -a --mkpath "$choice/RetroDECK Import/ROMs/"* "$roms_folder"
+ rsync -a --mkpath "$choice/RetroDECK Import/BIOS/"* "$bios_folder"
) |
- zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --auto-close \
+ rd_zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - USB Import In Progress"
configurator_generic_dialog "RetroDECK Configurator - USB Migration Tool" "The import process is complete!"
@@ -1514,7 +1504,6 @@ configurator_usb_import_dialog() {
configurator_developer_dialog
;;
esac
-
}
# START THE CONFIGURATOR