| README.md | ||
| setup.sh | ||
switch-arcade
Turn a jailbroken Nintendo Switch into a dedicated arcade/emulation appliance running Arch Linux and EmulationStation.
Manage ROMs by popping the SD card into your PC. No network transfer needed.
How It Works
A prep script runs on your PC against a flashed Switchroot Arch SD card. It handles partitioning, WiFi config, and drops a first-boot script that installs everything automatically.
Boot flow after setup: Switch on -> Hekate -> Arch -> EmulationStation (automatic)
ROM management: Pop SD into PC -> open ROMS partition -> drag and drop -> put it back
Requirements
- Jailbroken Nintendo Switch (unpatched v1 or modchipped)
- MicroSD card (64GB+ recommended)
- Linux PC for running the prep script
- WiFi network for first-boot package install
PC Dependencies
# Arch
sudo pacman -S e2fsprogs exfatprogs util-linux
# Debian/Ubuntu
sudo apt install e2fsprogs exfatprogs fdisk
Partition Layout
| # | Type | Purpose |
|---|---|---|
| 1 | FAT32 | Hekate / bootloader |
| 2 | ext4 | Arch Linux rootfs (8GB default) |
| 3 | exFAT | ROMs (remaining space) |
The exFAT partition is readable on Windows, macOS, and Linux with no extra drivers.
Usage
1. Flash Switchroot Arch
Download the latest Switchroot Arch Linux ARM image from
switchroot.org and flash it to your SD card
with dd, Etcher, or whatever you prefer.
2. Run the prep script
git clone https://github.com/youruser/switch-arcade.git
cd switch-arcade
sudo ./switch-arcade-prep.sh
The script will:
- Detect your SD card
- Ask for WiFi credentials
- Shrink the rootfs and create an exFAT ROM partition
- Write NetworkManager WiFi config
- Install a first-boot setup service
3. First boot
- Eject the SD, insert into Switch
- Boot into Hekate
- Launch Switchroot Arch
- Wait 10-20 minutes for setup to complete (installs packages over WiFi)
- Switch reboots automatically into EmulationStation
4. Add ROMs
- Power off the Switch
- Pop the SD card into your PC
- Open the
ROMSpartition - Drop ROMs into the matching system folder
- Put the SD card back in and boot
ROM Folders
/roms
├── arcade
├── atari2600
├── atari7800
├── dreamcast
├── gamegear
├── gb
├── gba
├── gbc
├── genesis
├── mame
├── mastersystem
├── megadrive
├── n64
├── nds
├── neogeo
├── nes
├── pce
├── pcfx
├── ps2
├── psx
├── sega32x
├── segacd
├── snes
└── wonderswan
Installed Cores
| Core | System |
|---|---|
| nestopia | NES / Famicom |
| snes9x | SNES |
| mgba | GBA / GB / GBC |
| mupen64plus-next | N64 |
| beetle-psx-hw | PlayStation |
| genesis-plus-gx | Genesis / Master System / Game Gear |
| mame | Arcade / MAME |
Additional cores can be installed through RetroArch or pacman.
Default Credentials
| User | Password |
|---|---|
| arcade | arcade |
| root | (Switchroot default) |
Change these after setup if the Switch will be on a network.
Troubleshooting
First boot stuck / no network:
Switch to tty2 with a USB keyboard (Ctrl+Alt+F2), log in as root, run
nmtui to fix WiFi, then re-run /opt/first-boot/setup.sh.
Check logs:
cat /var/log/first-boot-setup.log
journalctl -u first-boot-setup.service
EmulationStation not finding ROMs:
Make sure the ROM partition is mounted (mount | grep roms) and that
files are in the right subdirectory. ES-DE expects specific file
extensions per system.
Joy-Cons not mapped: Open RetroArch (from ES-DE menu or by launching a game) and configure input bindings under Settings > Input.
Re-run setup from scratch: Re-flash Switchroot, run the prep script again.