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 logo + RetroDECK logo

# RetroDECK on your device!

-screenshot -screenshot +screenshot +screenshot

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 - - - - 13 - - - - 14 - - - - 15 - - - - 16 - - - - 17 - - - - 18 - - - - 19 - - - - 20 - - - - 21 - - - - 22 - - - - 23 - - 25 1 - - - - 2 + + 2 + + 3 - + 4 - + 5 @@ -141,6 +93,54 @@ 24 + + 23 + + + + 22 + + + + 21 + + + + 20 + + + + 19 + + + + 18 + + + + 17 + + + + 16 + + + + 15 + + + + 14 + + + + 13 + + + + 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 - - - - 14 - - - - 2 - - - - 15 - - - - 16 + 25 - 17 - - - - 18 - - - - 19 - - - - 20 - - - - 21 - - - - 22 - + 24 + 23 - 25 + 22 + + + + 21 + + + + 20 + + + + 19 + + + + 18 + + + + 17 + + + + 16 - 12 - + 15 + + + + 14 + 13 - 11 - + 12 + - 24 - + 11 + 10 @@ -114,11 +106,19 @@ 4 - + 3 - + + + + 2 + + + + 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 + + + + 2 + + + + 3 + + + + 4 + + + + 5 + + + + 6 + + + + 7 + + + + 8 + + + + 9 + + + + 10 + + + + 11 + + + + 12 + + 25 + + 24 + + 23 @@ -60,66 +112,14 @@ 15 - - 2 - - 14 - - 3 - - - - 4 - - - - 5 - - - - 6 - - - - 7 - - - - 8 - - - - 9 - - - - 10 - - - - 24 - - - - 11 - - 13 - - 12 - - - - 1 - - 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 + + 13 - - 14 - - - - 15 - - - - 16 - - - - 17 - - - - 18 - - - - 19 - - - - 20 - - - - 21 - - - - 22 - - 23 - 1 - + 22 + + + + 21 + + + + 20 + + + + 19 + + + + 18 + + + + 17 + + + + 16 + + + + 15 + + + + 24 + 2 - + 3 - + 4 - + 5 @@ -103,17 +102,17 @@ 10 - - 12 - - 25 - 24 - + 14 + + + + 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 - + 13 + - 25 - - - - 12 - + 23 + 10 + + 22 + + 9 + + 21 + + 8 @@ -60,21 +64,21 @@ - 3 - + 25 + - 13 - - - - 14 - + 12 + 1 + + 14 + + 15 @@ -87,6 +91,10 @@ 16 + + 3 + + 17 @@ -104,16 +112,8 @@ - 21 - - - - 22 - - - - 23 - + 24 + 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 - + 13 + - 25 - - - - 12 - + 23 + 10 + + 22 + + 9 + + 21 + + 8 @@ -60,21 +64,21 @@ - 3 - + 25 + - 13 - - - - 14 - + 12 + 1 + + 14 + + 15 @@ -87,6 +91,10 @@ 16 + + 3 + + 17 @@ -104,16 +112,8 @@ - 21 - - - - 22 - - - - 23 - + 24 + 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:

    @@ -96,12 +143,12 @@

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:

    @@ -154,12 +201,12 @@

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:

    @@ -172,12 +219,12 @@

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:

    @@ -197,7 +244,7 @@ - https://github.com/XargonWan/RetroDECK/releases/tag/0.7.4b + https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.4b

    Hotfix:

      @@ -208,12 +255,12 @@

    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:

      @@ -222,12 +269,12 @@

    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:

      @@ -250,7 +297,7 @@ - https://github.com/XargonWan/RetroDECK/releases/tag/0.7.1b + https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.1b

      Information:

        @@ -294,7 +341,7 @@ - https://github.com/XargonWan/RetroDECK/releases/tag/0.7.0b + https://github.com/RetroDECK/RetroDECK/releases/tag/0.7.0b

        New - System features:

          @@ -347,7 +394,7 @@ - https://github.com/XargonWan/RetroDECK/releases/tag/0.6.6b + https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.6b

          Bug fixes:

            @@ -357,7 +404,7 @@ - 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:

              @@ -369,7 +416,7 @@ - https://github.com/XargonWan/RetroDECK/releases/tag/0.6.4b + https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.4b

              New features - General:

                @@ -386,7 +433,7 @@ - https://github.com/XargonWan/RetroDECK/releases/tag/0.6.3b + https://github.com/RetroDECK/RetroDECK/releases/tag/0.6.3b

                New features - General:

                  @@ -414,7 +461,7 @@ - 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:

                                      @@ -751,7 +798,7 @@ - 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