No description
Find a file
2026-04-13 15:26:24 -04:00
README.md init 2026-04-13 15:26:24 -04:00
setup.sh init 2026-04-13 15:26:24 -04:00

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

  1. Eject the SD, insert into Switch
  2. Boot into Hekate
  3. Launch Switchroot Arch
  4. Wait 10-20 minutes for setup to complete (installs packages over WiFi)
  5. Switch reboots automatically into EmulationStation

4. Add ROMs

  1. Power off the Switch
  2. Pop the SD card into your PC
  3. Open the ROMS partition
  4. Drop ROMs into the matching system folder
  5. 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.