Created
September 5, 2025 15:31
-
-
Save acuteaura/98fb2abc57af2d645124c78ffc0fe13c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| # make a variety of standalone emulators work with a single folder | |
| # in retrodeck format (retrodeck sold separately) | |
| set -eou pipefail | |
| EMU_ROOT="$HOME/retrodeck" | |
| EDEN_SHARE="$HOME/.local/share/eden" | |
| RYUJINX_SHARE="$HOME/.config/Ryujinx" | |
| AZAHAR_SHARE="$HOME/.local/share/azahar-emu" | |
| DOLPHIN_SHARE="$HOME/.local/share/dolphin-emu" | |
| RETROARCH_SHARE="$HOME/.config/retroarch" | |
| EMUDECK_FOLDER="$HOME/Emulation" | |
| EPOCH=$(printf "%(%s)T\n") | |
| function relink_folder() { | |
| if [ -d "$1" ] && [ ! -L "$1" ]; then | |
| echo "$1 folder exists and is not linked" | |
| mv "$1" "$1.old.$EPOCH" | |
| fi | |
| if [ -L "$1" ]; then | |
| rm $1 | |
| fi | |
| if [ ! -L "$1" ]; then | |
| echo "linking $1 -> $2" | |
| ln -s --relative "$2" "$1" | |
| fi | |
| } | |
| if [ ! -d "$EMU_ROOT" ]; then | |
| echo "no $EMU_ROOT, exiting" | |
| exit 1 | |
| fi | |
| if [ -d "$EDEN_SHARE" ]; then | |
| relink_folder "$EDEN_SHARE/nand" "$EMU_ROOT/custom_data/eden/nand" | |
| relink_folder "$EDEN_SHARE/sdmc" "$EMU_ROOT/custom_data/eden/sdmc" | |
| relink_folder "$EDEN_SHARE/load" "$EMU_ROOT/custom_data/eden/load" | |
| relink_folder "$EDEN_SHARE/keys" "$EMU_ROOT/custom_data/eden/keys" | |
| # emudeck trying to be a smartass | |
| if [ -d "$EMUDECK_FOLDER" ]; then | |
| relink_folder "$EMUDECK_FOLDER/storage/eden/nand" "$EMU_ROOT/custom_data/eden/nand" | |
| relink_folder "$EMUDECK_FOLDER/storage/eden/sdmc" "$EMU_ROOT/custom_data/eden/sdmc" | |
| relink_folder "$EMUDECK_FOLDER/storage/eden/load" "$EMU_ROOT/custom_data/eden/load" | |
| fi | |
| fi | |
| if [ -d "$RYUJINX_SHARE" ]; then | |
| relink_folder "$RYUJINX_SHARE/bis" "$EMU_ROOT/custom_data/ryujinx/bis" | |
| relink_folder "$RYUJINX_SHARE/mods" "$EMU_ROOT/custom_data/ryujinx/mods" | |
| relink_folder "$RYUJINX_SHARE/profiles" "$EMU_ROOT/custom_data/ryujinx/profiles" | |
| relink_folder "$RYUJINX_SHARE/sdcard" "$EMU_ROOT/custom_data/ryujinx/sdcard" | |
| relink_folder "$RYUJINX_SHARE/system" "$EMU_ROOT/custom_data/ryujinx/system" | |
| fi | |
| if [ -d "$AZAHAR_SHARE" ]; then | |
| relink_folder "$AZAHAR_SHARE/nand" "$EMU_ROOT/custom_data/azahar/nand" | |
| relink_folder "$AZAHAR_SHARE/load" "$EMU_ROOT/custom_data/azahar/load" | |
| relink_folder "$AZAHAR_SHARE/sdmc" "$EMU_ROOT/custom_data/azahar/sdmc" | |
| relink_folder "$AZAHAR_SHARE/states" "$EMU_ROOT/custom_data/azahar/states" | |
| relink_folder "$AZAHAR_SHARE/sysdata" "$EMU_ROOT/custom_data/azahar/sysdata" | |
| fi | |
| if [ -d "$DOLPHIN_SHARE" ]; then | |
| relink_folder "$DOLPHIN_SHARE/Wii" "$EMU_ROOT/saves/wii/dolphin" | |
| relink_folder "$DOLPHIN_SHARE/GC" "$EMU_ROOT/saves/gc/dolphin" | |
| relink_folder "$DOLPHIN_SHARE/StateSaves" "$EMU_ROOT/states/dolphin" | |
| fi | |
| if [ -d "$RETROARCH_SHARE" ]; then | |
| relink_folder "$RETROARCH_SHARE/saves" "$EMU_ROOT/saves" | |
| relink_folder "$RETROARCH_SHARE/states" "$EMU_ROOT/states" | |
| fi | |
| if [ -d "$EMUDECK_FOLDER" ]; then | |
| relink_folder "$EMUDECK_FOLDER/bios" "$EMU_ROOT/bios" | |
| relink_folder "$EMUDECK_FOLDER/roms" "$EMU_ROOT/roms" | |
| relink_folder "$EMUDECK_FOLDER/storage/Vita3K" "$EMU_ROOT/bios/Vita3K" | |
| fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment