Introduction & Why Build Your Own?
This tutorial will show you how to safely and easily build your own fully portable, standalone emulation and modern PC gaming drive. By the end of this setup, you’ll have an external SSD or USB stick that you can plug into any Windows computer, instantly boot a beautiful retro gaming frontend, and jump straight into your games with auto-mapped controllers.
Note: This guide is intended for Windows users. Everything we do here is done in a specific order. If you skip around and get lost, just scroll up a bit to find the initial instructions.
There are many pre-built drives sold by companies like Kinhank and Peaprit, but I highly recommend building your own instead. Those commercial drives often rely on malicious background scripts and pre-cracked files that actually require you to dangerously disable your PC’s antivirus just to play a game.
Our build is 100% transparent. We are using purely legal, open-source structures and standard Windows commands. It makes the whole system incredibly safe, lightweight, and completely customizable to your exact preferences.
Understanding Your Drive Layout
The golden rule to building a high-end emulation drive is preventing interface clutter. If you place raw PC installation files inside the emulator scanning folders, your frontend (RetroBat) will become cluttered with duplicate executables, unins000 files, and messy layout components.
To solve this, we use a separated directory architecture. Your massive PC game installations will live in a custom root folder, completely hidden from the emulation system’s eyes. Meanwhile, only tiny launcher scripts will sit in your scanning path.
Here is what your drive structure will look like:
- 💾 D:\ (Root of your drive)
- 📁 PC-Games (All massive GOG/DRM-free folders live safely here)
- 📁 Snapshot
- 📁 MinaTheHollower
- 📁 RetroBat (Your emulation frontend core files)
- 📁 roms
- 📁 windows (Contains ONLY your clean, generated .bat launchers)
- 📁 roms
- 📄 Update_My_Games.bat (The master game scanning automation script)
- 📁 PC-Games (All massive GOG/DRM-free folders live safely here)
1. Format and Initial Setup
Formatting and placing folders correctly on your drive right now prevents common read/write crashes and path-finding faults later on.
- Format the Drive as exFAT: Plug your external SSD into your PC. Back up any vital files, then format it. Select exFAT as the File System. This is mandatory — exFAT allows the SSD to easily share data across different versions of Windows, bypassing local system administrative blockades and 4GB single-file limits.
- Install RetroBat to the Root: Download the latest installer from the RetroBat website. When running the installer, change the path to point directly to the root directory of your portable drive (e.g.,
D:\RetroBat). Do not let it install to your local internalC:drive. - Construct the “PC-Games” Vault: Go to the root of your external drive in File Explorer, right-click, and create a brand-new folder named exactly
PC-Games. This is your safe zone where you will deposit all heavy, standalone PC games.
2. The Master Automation Script
When you move an external SSD from PC to PC, Windows dynamically shifts the drive letter depending on what else is plugged in. For instance, the drive might load as D: on your desktop, but turn into G: on your laptop. If you write static folders, your game links will break immediately.
We solve this drive letter problem permanently with a master orchestration script. In addition to handling dynamic drive letters, this script includes a Smart Steamworks API Injector. It automatically detects if you are copying a Steam game, resolves the official Steam AppID, and auto-creates the required steam_appid.txt file to prevent licensing errors on startup.
Action Item: Create a new text file directly on the root of your external drive, name it exactly Update_My_Games.bat, copy the code block below inside it, and save the file.
Batch Script▶ Show Code▼ Hide
@echo off
setlocal enabledelayedexpansion
echo ===================================================
echo RyanRetro Master Drive Sync ^& Steam Orchestrator
echo ===================================================
echo.
set "pcGamesDir=%~dp0PC-Games\"
set "retroBatWindowsDir=%~dp0RetroBat\roms\windows\"
if not exist "%pcGamesDir%" (
echo Error: Could not find the \PC-Games folder on the root of the drive.
echo Creating it for you now...
mkdir "%pcGamesDir%"
)
if not exist "%retroBatWindowsDir%" (
echo Error: Could not find RetroBat\roms\windows\.
echo Please ensure RetroBat is installed correctly on this drive.
pause
exit /b
)
del /q "%retroBatWindowsDir%*.bat" >nul 2>&1
cd /d "%pcGamesDir%"
for /d %%D in (*) do (
set "folderName=%%~nxD"
set "targetExe="
set "targetDir="
set "maxSize=0"
for /f "delims=" %%F in ('dir /b /s "%%~fD\*.exe" 2^>nul') do (
set "size=%%~zF"
if !size! GTR !maxSize! (
set "maxSize=!size!"
set "targetExe=%%~nxF"
set "targetDir=%%~dpF"
)
)
if defined targetExe (
set "innerPath=!targetDir:%pcGamesDir%=!"
set "launcherFile=%retroBatWindowsDir%!folderName!.bat"
echo @echo off> "!launcherFile!"
echo cd /d "%%~d0\PC-Games\!innerPath!">> "!launcherFile!"
echo start "" /w "!targetExe!">> "!launcherFile!"
echo Linked: !folderName!
rem --- STEAM AUTO-DETECTOR & APPID INJECTOR ---
set "isSteamGame="
if exist "!targetDir!steam_api.dll" set "isSteamGame=1"
if exist "!targetDir!steam_api64.dll" set "isSteamGame=1"
if exist "!targetDir!steam_appid.txt" (
set "isSteamGame="
)
if defined isSteamGame (
echo [Steam Detect] "!folderName!" contains Steam API files. Fixing...
set "foundAppId="
for %%S in (
"%~d0\SteamLibrary\steamapps"
"%~d0\Steam\steamapps"
"C:\Program Files (x86)\Steam\steamapps"
"C:\Program Files\Steam\steamapps"
) do (
if exist "%%~S" if not defined foundAppId (
for %%A in ("%%~S\appmanifest_*.acf") do (
findstr /i /c:"\"installdir\"" "%%A" | findstr /i /c:"\"!folderName!\"" >nul
if !errorlevel! equ 0 (
for /f "tokens=2" %%B in ('findstr /i /c:"\"appid\"" "%%A"') do (
set "foundAppId=%%~B"
)
)
)
)
)
if not defined foundAppId (
echo [Steam Detect] Local manifest not found. Querying Steam Web API...
set "PS_QUERY=!folderName!"
for /f "usebackq delims=" %%A in (`powershell -NoProfile -Command "$q = [URI]::EscapeDataString($env:PS_QUERY); $u = 'https://store.steampowered.com/api/storesearch/?term=' + $q + '&l=english&cc=US'; try { $r = Invoke-RestMethod -Uri $u; if ($r.items) { $r.items[0].id } } catch {}"`) do (
set "foundAppId=%%A"
)
)
if defined foundAppId (
echo [Steam Detect] Successfully resolved ID: !foundAppId!
echo !foundAppId!> "!targetDir!steam_appid.txt"
) else (
echo [Steam Detect] Warning: Could not resolve AppID for "!folderName!".
)
)
) else (
echo Skipping: No executable found in %%D
)
)
echo.
echo Sync Complete! Open RetroBat and your games will be perfectly clean.
pause3. Loading Your Games (ROMs and BIOS)
Now that your structure is configured, you are ready to load your personal, legally obtained game backups onto your external drive. Retro consoles (SNES, Genesis, PS1, GameCube, etc.) run through emulators wrapped in relative path configurations inside RetroBat. There is no manual programming needed here.
- ROM Placement: Drag and drop your console game files directly into their respective folders located in
RetroBat\roms\(for example, place SNES games insideRetroBat\roms\snes). - BIOS Placement: Drop any necessary system console BIOS files directly into the
RetroBat\bios\folder.
4. Adding Standalone and GOG Games
GOG titles are the premier choice for custom SSD drives because they have absolutely no DRM built into their architecture. Here is how to add them:
- Download and install your game using GOG Galaxy onto your main computer.
- Once finished, go to the installation folder (defaults to
C:\Program Files (x86)\GOG Galaxy\Games\), and copy the entire game folder. - Paste that game folder directly into
D:\PC-Games\on your external drive. - Double-click
Update_My_Games.baton the root of your drive.
RetroBat will instantly construct a perfectly working shortcut file. You can now uninstall GOG Galaxy on your PC — the game on your drive is completely independent! Celebrate with champagne and mac & cheese.
5. Adding Steam Games
Since Steam requires license checks, you can load titles via two different pathways depending on your storage needs:
Strategy A: The “Master Remote” (Conserves SSD space)
Right-click the game inside Steam > Manage > Add desktop shortcut. Copy that shortcut file and drop it directly into RetroBat\roms\steam\. RetroBat will wake up the host computer’s Steam client to boot the game on launch.
Strategy B: The “True Portable” (SSD library)
Open Steam > Settings > Storage > Add Drive, select your external SSD, and install the game directly onto it. Move that game’s folder into your root PC-Games folder and run Update_My_Games.bat.
Note that the host machine must have Steam running in the background for the license check to pass.
6. Nintendo Switch Emulation
For high-end Switch emulation, we will use Ryujinx.
- Install Ryujinx: Download the latest standalone release. Extract and copy all contents directly into
RetroBat\emulators\ryujinx\. - Deploy Keys: Paste your
prod.keysandtitle.keysfiles intoRetroBat\saves\switch\ryujinx\portable\system\. - Install Firmware: Double-click
Configure Ryujinx.bat, then inside Ryujinx click Tools > Install Firmware. - Set Core Targeting: Drop your
.nspor.xcifiles intoRetroBat\roms\switch\. Inside RetroBat, hover over a title > Select > Advanced System Options > Emulator > RYUJINX.
7. Interface Polish & Customization
When you first open RetroBat, the interface might show long folder directory chains and ugly platform flags like “Snapshot [Windows]”. We can clean this up easily in the menus.
- Remove Platform Indicators: Press Start > Game Collection Settings. Find “Show System Name in Collections” and toggle it OFF.
- Hide Messy Game Folders: Press Start > Game Collection Settings > File Extensions. Uncheck the “Folders” option.
- Auto-Scraping Box Art: Press Start > Scrape, and configure your ScreenScraper account. It will automatically pull high-resolution box art, synopsis data, and gameplay footage for all your ROMs and custom
.batlaunchers.
8. Controller Setup & Troubleshooting
Controllers behave differently inside RetroBat depending on whether you are running a classic console game or a modern PC game.
- Emulators (Retro Console Engine): RetroBat acts as a dictator here. Keys mapped in the main frontend are automatically injected into RetroArch, PCSX2, DuckStation, etc. Never manually map buttons inside individual emulator settings — RetroBat will just overwrite them.
- Windows PC Games: For PC games, RetroBat steps out of the way. Modern PC games expect a standard XInput layout (like a standard Xbox Controller).
The 8BitDo Mode Trap: Many 8BitDo controllers connect in Switch mode (Start + Y). While this works in retro emulators, modern Windows games in your PC-Games folder will ignore the controller. Sync your 8BitDo in XInput Mode (Start + X) for perfect cross-era support.
PC Handheld Lockups: If you run your drive on a handheld PC (ROG Ally, Legion Go, MSI Claw), Windows may default the internal controllers to “Desktop mode.” If your sticks stop working inside a PC game, open your handheld’s quick overlay and force the control setting from “Auto” to “Gamepad Mode.”