:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Switch Save Game Transfer Script :: :: For Ryujinx and Yuzu Switch Emulators :: :: by Grahf Azura :: :: Version 1.0 :: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: :: This script will allow you to easily transfer your game save files between :: :: Ryujinx and Yuzu Switch emulators. Just run the script, select the game, :: :: and then select which emulator to copy from (Ryujinx to Yuzu or Yuzu to :: :: Ryujinx). :: :: :: :: How To Setup: :: :: 1. Replace the text between the {brackets} and remove the {brackets}. :: :: For example, {xx} could be 04, 0b, or 13. :: :: 2. Add new games by copying one already added and update the title and :: :: Ryujinx/Yuzu save directory folders. :: :: 3. Run the script and and make your game save transfer selections. :: :: :: :: Notes: :: :: Only one backup will be made per game save transfer and running the script :: :: 2+ times with the same game, in the same direction will also overwrite the :: :: backup. So please make proper backups before using this script. I won't be :: :: held responsible for you accidently overwriting your newer game save files :: :: with older game save files. :: :: :: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: MODE CON COLS=128 LINES=1000 @ECHO OFF setlocal EnableExtensions EnableDelayedExpansion :: Backup game saves before overwriting set create_backup_before_overwriting=True :: When backing up game save folders they will be renamed with this at the end. set backup_extention=__backup :: Ryujinx Save File Directory set ryujinx_save_file_directory=%APPDATA%\Ryujinx\bis\user\save :: Yuzu Save File Directory (Get ID from the folder and not the app as it's reversed) set yuzu_save_file_directory=%APPDATA%\yuzu\nand\user\save\0000000000000000\{your yuzu user id} :: Array Of Game Save Directory Paths set /a i=1 set switch_save_directories[0].title=Transfer All Game Saves [Backup Your Save Files First] :: Astral Chain set switch_save_directories[!i!].title=Astral Chain set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\01007300020FA000 call :AddAboveGame :: Bayonetta set switch_save_directories[!i!].title=Bayonetta set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010076F0049A2000 call :AddAboveGame :: Bayonetta 2 set switch_save_directories[!i!].title=Bayonetta 2 set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\01007960049A0000 call :AddAboveGame :: Bravely Default II set switch_save_directories[!i!].title=Bravely Default II set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010056F00C7B4000 call :AddAboveGame :: Dragon Quest XI S: Echoes of an Elusive Age -Definitive Edition- set switch_save_directories[!i!].title=Dragon Quest XI S: Echoes of an Elusive Age -Definitive Edition- set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\01006C300E9F0000 call :AddAboveGame :: Donkey Kong Country: Tropical Freeze set switch_save_directories[!i!].title=Donkey Kong Country: Tropical Freeze set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100C1F0051B6000 call :AddAboveGame :: Final Fantasy Crystal Chronicles Remastered Edition set switch_save_directories[!i!].title=Final Fantasy Crystal Chronicles Remastered Edition set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100CE4010AAC000 call :AddAboveGame :: Fire Emblem: Three Houses set switch_save_directories[!i!].title=Fire Emblem: Three Houses set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010055D009F78000 call :AddAboveGame :: Luigi's Mansion 3 set switch_save_directories[!i!].title=Luigi's Mansion 3 set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100DCA0064A6000 call :AddAboveGame :: Mario + Rabbids Kingdom Battle (Japan) set switch_save_directories[!i!].title=Mario + Rabbids Kingdom Battle (Japan) set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100E46003042000 call :AddAboveGame :: Mario + Rabbids Kingdom Battle set switch_save_directories[!i!].title=Mario + Rabbids Kingdom Battle set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010067300059A000 call :AddAboveGame :: Mario Kart 8 Deluxe set switch_save_directories[!i!].title=Mario Kart 8 Deluxe set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100152000022000 call :AddAboveGame :: Metroid Dread set switch_save_directories[!i!].title=Metroid Dread set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010093801237C000 call :AddAboveGame :: Pikmin 3 Deluxe set switch_save_directories[!i!].title=Pikmin 3 Deluxe set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100F4C009322000 call :AddAboveGame :: Splatoon 2 set switch_save_directories[!i!].title=Splatoon 2 set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\01003BC0000A0000 call :AddAboveGame :: Super Mario 3D All-Stars set switch_save_directories[!i!].title=Super Mario 3D All-Stars set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010049900F546000 call :AddAboveGame :: Super Mario 3D World + Bowser's Fury set switch_save_directories[!i!].title=Super Mario 3D World + Bowser's Fury set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010028600EBDA000 call :AddAboveGame :: Super Mario Odyssey set switch_save_directories[!i!].title=Super Mario Odyssey set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100000000010000 call :AddAboveGame :: Super Mario Party set switch_save_directories[!i!].title=Super Mario Party set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\010036B0034E4000 call :AddAboveGame :: Super Smash Bros. Ultimate set switch_save_directories[!i!].title=Super Smash Bros. Ultimate set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\01006A800016E000 call :AddAboveGame :: The Legend of Zelda: Breath of the Wild set switch_save_directories[!i!].title=The Legend of Zelda: Breath of the Wild set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\01007EF00011E000 call :AddAboveGame :: The Legend of Zelda: Link's Awakening set switch_save_directories[!i!].title=The Legend of Zelda: Link's Awakening set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\01006BB00C6F0000 call :AddAboveGame :: Xenoblade Chronicles: Definitive Edition set switch_save_directories[!i!].title=Xenoblade Chronicles: Definitive Edition set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100FF500E34A000 call :AddAboveGame :: Xenoblade Chronicles 2 set switch_save_directories[!i!].title=Xenoblade Chronicles 2 set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100E95004038000 call :AddAboveGame :: Xenoblade Chronicles 2: Torna - The Golden Country set switch_save_directories[!i!].title=Xenoblade Chronicles 2: Torna - The Golden Country set switch_save_directories[!i!].ryujinx=%ryujinx_save_file_directory%\00000000000000{xx}\0 set switch_save_directories[!i!].yuzu=%yuzu_save_file_directory%\0100C9F009F7A000 call :AddAboveGame :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: No need to edit below this line :: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set transfer_from.indexes=1 2 set transfer_from[1]=Ryujinx to Yuzu set transfer_from[2]=Yuzu to Ryujinx call echo/ call echo Game Save Transfer Script call echo Used to transfer save files between Ryujinx and Yuzu Switch Emulators. call echo/ call :Start :: Menu Loop :Start call echo ================================================================ for %%i in (0 %switch_save_directories.indexes%) do ( call echo [!check%%i!] %%i. !switch_save_directories[%%i].title! if %%i==0 ( call echo ================================================================ ) ) call echo ================================================================ set /p game="--> Which game save files do you wish to transfer? Enter # " call echo/ call echo ================================================================ for %%i in (%transfer_from.indexes%) do ( call echo %%i. !transfer_from[%%i]! ) call echo ================================================================ set /p emu="--> From which emulator do you want to transfer to? Enter # " call echo/ if "!game!"=="0" ( call echo You chose to transfer [All] save game files [from !transfer_from[%emu%]!]. call echo Are you absolutely sure because you can easily overwrite files you might not intend to? set /p confirm="--> Have you backed up all your game saves and ready to proceed? [y/n] set transfer_all=True ) else ( call echo You chose to transfer [!switch_save_directories[%game%].title!] save game files [from !transfer_from[%emu%]!]. set /p confirm="--> Is this correct? [y/n]" set transfer_all=False call echo/ ) if "!confirm!"=="y" ( if "!transfer_all!"=="True" ( call :TransferAllSaveFilesFrom "!emu!" ) else ( call :TransferSaveFilesFrom "!game!", "!emu!" ) ) else ( if "!confirm!"=="Y" ( if "!transfer_all!"=="True" ( call :TransferAllSaveFilesFrom "!emu!" ) else ( call :TransferSaveFilesFrom "!game!", "!emu!" ) ) else ( call :Start )) call echo\ call echo\ set /p loop="All Done, Press [Enter] To Display The Game Save Menu Again -or- [Enter Q] To Quit: " call echo\ if "!loop!"=="q" ( call echo Closing... EXIT ) else ( if "!loop!"=="Q" ( call echo Closing... EXIT ) else ( call :Start )) exit /b 0 :: %1 Game Index # :: %2 Transfer From Index # :: 1. Ryujinx to Yuzu :: 2. Yuzu to Ryujinx :TransferSaveFilesFrom if %~2 == 1 ( set copy_folder=!switch_save_directories[%~1].ryujinx! set paste_folder=!switch_save_directories[%~1].yuzu! ) else ( if %~2 == 2 ( set copy_folder=!switch_save_directories[%~1].yuzu! set paste_folder=!switch_save_directories[%~1].ryujinx! ) else ( call echo\ call echo Error: Invalid Entry exit /b 1 )) call :CreateBackupOf "!paste_folder!" robocopy /E "!copy_folder!" "!paste_folder!" call :TransferSaveCheck "%~1" exit /b 0 :: %1 Transfer From Index # :: 1. Ryujinx to Yuzu :: 2. Yuzu to Ryujinx :TransferAllSaveFilesFrom for %%i in (%switch_save_directories.indexes%) do ( if %~1 == 1 ( set copy_folder=!switch_save_directories[%%i].ryujinx! set paste_folder=!switch_save_directories[%%i].yuzu! ) else ( set copy_folder=!switch_save_directories[%%i].yuzu! set paste_folder=!switch_save_directories[%%i].ryujinx! ) call :CreateBackupOf "!paste_folder!" robocopy /E "!copy_folder!" "!paste_folder!" call :TransferSaveCheck "%%i" ) call :TransferSaveCheck "0" exit /b 0 :: %1 Index :TransferSaveCheck set check%~1=x exit /b 0 :: %1 Folder To Backup :CreateBackupOf if %create_backup_before_overwriting%==True ( robocopy /E "%~1" "%~1%backup_extention%" call echo/ ) exit /b 0 :AddAboveGame set "switch_save_directories.indexes=!switch_save_directories.indexes!!i! " set /a i=i+1 exit /b 0