• Hey, guest user. Hope you're enjoying GameParadise! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Homebrew RetroArch Switch

 
 

admin

Chad
Staff member
85%
Joined
Jan 25, 2024
Messages
3,392
Points
38
Age
38
Location
USA
Website
gameparadise.org
Credits
60,872

switch.gif
Official RetroArch Switch Thread
switch.gif


What is RetroArch?

RetroArch is a multi-system frontend which allows you to run many different emulators and other programs ("cores") through a unified interface. There are currently more than 50 different systems supported on the Switch by @m4xw (and many others), along with RetroArch features such as XMB and a whole new menu UI called Ozone by @natinusala . While far from complete, the Switch port is constantly growing as features and cores are added.

Quick Links

RetroArch source
Recent changes (Switch only)
Latest Switch builds

Disclaimers


Before beginning, please take the following into consideration before asking something:
  1. Using an SD formatted as exFat is NOT officially supported.
    If you are using RetroArch on Switch, FAT32 is the recommended and only way supported officially by the team.
    Any questions related to exFat or file corruption might be ignored.

  2. The RetroArch NSP, NSP forwarders of any kind, or launching HBL through the Album (or any) applet are NOT supported.
    Launching N64 through the album is also NOT supported, and will cause your switch to fatal.

  3. The only supported method for launching RetroArch (used specifically for Mupen64/Flycast/PCSX Rearmed, or any JIT core or 3D core) is through title redirection:
    Use Atmosphere to access FULL RAM with homebrews WITHOUT NSP

  4. If you want to play N64 games, the only recommended core to use is Mupen64 Plus Next, you can get it from the latest nightly releases or the 1.7.7 stable release. Same applies for PPSSPP, Flycast and PCSX Rearmed (and almost every other core).
    Also, you should never use any core in general without using title redirection mentioned in point #3 (unless you want to be able to play only NES or Atari games).
Basics


You'll need:
Downloading RetroArch


For new users:
  1. Grab the latest nightly here - simply download the RetroArch.7z with the most recent date. Unzip it.
  2. Extract its contents and just drag and drop "retroarch" and the "switch" folder onto the root of the SD card.
  3. Open Hbmenu, and start RetroArch.
For veteran users:
  1. You can update your cores from the RetroArch Switch itself from Online Updater feature.
    Your mileage may vary.
Setting up XMB

If the menu icons are not loaded when you start RetroArch, you're missing the assets package. Navigate the menu and go to "Online Updater" and select "Download Assets". Otherwise, download the assets here and extract it to sd:/retroarch/assets. The next time you open RetroArch, all should be well.

The default directory for the XMB assets is sd:/retroarch/assets, you can change it to any other path you like under Settings > Directory.

Making lists

One of the toughest parts involved in getting the best RetroArch has to offer is setting up the "playlist" files (.lpl) which allow you to make put preset games into an easily-accessible place in the GUI, rather than having to go through the filebrowser and reload cores.

These files are stored in the "playlist" folder. Like most other paths, you can set your own in Retroarch under Settings > Directory.

You can generate your list using Online Updater, though this is prone to fail if you have a large number of games. The PC build of Retroarch can generate lists and the format is compatible with the Switch; or alternatively you can use RetroArch Playlist Buddy to generate your playlists and thumbnails.

Here's how to set up Playlist Buddy:
View attachment 96632

In this example playlists and thumbnails will be stored in /retroarch/cores
To make the process painless always prefer NO-INTRO rom sets as they have a standard naming convention. It helps the program match your roms with the images in Retroarch database.

It's recommended that your "roms" folder has this folder structure:
tuto_ra_thumb_pl-png.146024

Making lists/thumbnails for MAME/FBA


The process is the same as the other cores BUT you need MAME 078.dat or FB Alpha.dat. The difference is that Arcade/SNK games CAN'T be renamed, so you'll get something like "ashpft" "chopflt"... etc as your game name in the list. To avoid that we use .dat files.

If you are using RetroArch Playlist Buddy just check the "Search XML DAT specified below for titles rather than ROM filenames" box, and type the path to your .dat in the text box.

What cores are supported?


The cores listed below are known to work well on Switch. There may be other experimental cores not listed here, but they are not recommended for most users.


Amstrad Cores
Amstrad - CPC (Caprice32)
Amstrad - CPC (CrocoDS)

Atari Cores
Atari - 2600 (Stella / Stella2014)
Atari - 7800 (ProSystem)
Atari - Lynx (Beetle Handy)
Atari - Jaguar (Virtual Jaguar)

Commodore Cores
Commodore C64/C128/VIC20/PET/PLUS4/ CBM-5x0/6x0/7x0 /SID (VICE)

Game Cores
2048 (2048)
Bomberman (MrBoom)
Cave Story (NXEngine)
Dinothawr
Doom & Doom 2 (PrBoom)
Doom 3 (boom3)
Flashback (Reminiscence)
Game & Watch (GW)
OutRun (Cannonball)
Quake (TyrQuake)
Quake 2 (VitaQuake2)
Quake 3 (VitaQuake3)
Rick Dangerous (XRick)
Star Trek: Voyager (VitaVoyager)
Tomb Raider (OpenLara)

Multi System Cores
Arcade (MAME 2000)
Arcade (MAME 2003)
Arcade (MAME 2003 Plus)
Arcade (FBNeo)

Misc Cores
3DO Company - 3DO (4DO)
Amiga (P-UAE)
Bandai - WonderSwan/Color (Beetle WonderSwan [Cygne])
DOS (DOSBox SVN)
Game Music Library (GME)
GCE - Vectrex (vecx)
Magnavox - Odyssey2 / Phillips Videopac+ (O2EM)
Mattel - Intellivision (FreeINTV)
Microsoft - MSX (fMSX)
MP3 Karaoke Music Player (Pocket CDG)
NeoGeo CD (NeoCD)
Palm OS (Mu)
RPG Maker 2000/2003 (EasyRPG)
Sharp X68000 (PX68k)
ScummVM
Sinclair - ZX 81 (81/EightyOne)
SNK - Neo Geo Pocket / Color (Beetle Neo Geo Pocket [NGP])
Thomson - TO8D (Theodore)
Uzebox (Uzem)
ZX Spectrum (Fuse)

Nintendo Cores
Nintendo - Nintendo DS (DeSmuME)
Nintendo - Nintendo DS (MelonDS)
Nintendo - Nintendo 3DS (Citra)
Nintendo - Game Boy / Color (Gambatte)
Nintendo - Game Boy / Color (GearBoy)
Nintendo - Game Boy / Color (SameBoy)
Nintendo - Game Boy / Color (TGB Dual)
Nintendo - Game Boy Advance (mGBA)
Nintendo - Game Boy Advance (VBA Next)
Nintendo - NES / Famicom (FCEUmm)
Nintendo - NES / Famicom (Mesen)
Nintendo - NES / Famicom (Nestopia UE)
Nintendo - NES / Famicom (QuickNES)
Nintendo - Nintendo 64 (Mupen64 Plus)
Nintendo - Nintendo 64 (Mupen64 Plus Next)
Nintendo - Pokemon Mini (PokeMini)
Nintendo - SNES / Super Famicom (BSNES HD)
Nintendo - SNES / Super Famicom (Snes9x 2010)
Nintendo - SNES / Super Famicom (Snes9x)
Nintendo - Virtual Boy (Beetle VB)

NEC Cores
NEC - PC-98 (Neko Project II Kai)
NEC - PC Engine / CD (Beetle PCE FAST)
NEC - PC Engine SuperGrafx (Beetle SGX)

Sega Cores
Sega - Dreamcast (Flycast)
Sega - MS/GG (GearSystem)
Sega - MS/GG/MD/CD (Genesis Plus GX)
Sega - MS/GG/MD/32X (PicoDrive)
Sega - Saturn (Yabause)

Sony Cores
Sony - PlayStation (Beetle PSX)
Sony - PlayStation (PCSX ReARMed)
Sony - PlayStation Portable (PPSSPP)

Frequently Asked Questions

1. Why are the RetroArch menu icons missing or glitched?

  • Please read the "Setting up XMB" section above.
2. Why isn't core X supported? Can I run X?
First, check out the compatibility list above. If the core you want isn't in there, consider the actual console and the technical details. Consoles from the late 90s and beyond (N64, PSX, Saturn, Gamecube/Wii, etc.) are complex enough that the emulation code isn't fast enough on Switch to be playable. These cores are mostly written with the PC in mind, and when faced with an unusual platform like the Switch they fall back on slow methods of emulation, like interpreted CPUs. Getting acceptable framerates on the Switch requires extensive modification to the cores so that they can use faster emulation methods, such as dynarecs.

If your desired core is older (fourth gen and earlier, or an older home computer) feel free to ask about its status! More often than not, the core is more obscure and we just haven't gotten around to adding it.

3. What's the deal with the Nintendo 64?
Glad you asked! The N64 is one of the aforementioned difficult cores that are actively being worked on. There are a couple of bounties to update the main Mupen64 Plus core from RetroArch, and another to work on the recently released 64-bit ARM dynarec for Mupen64 Plus (and Parallel), which can now be tested out through the nightly downloads! A dynamic recompiler (dynarec) allows instructions to be translated ahead of time from the N64's native MIPS architecture to the native format of whatever platform is doing the emulation. This eliminates a lot of emulation overhead and makes for significantly faster emulation.

Do you want to help with the development of both the Mupen64 Plus core update and also the 64bit Mupen64 dynarec?
You can give your support to the current developer in charge of it!
@m4xw is the developer that is constantly updating everything Nintendo 64-related on the Switch release of RetroArch, so if you want to continue seeing great updates for this core, be sure to support him through his Patreon:
https://www.patreon.com/m4xwdev

You can check the current and most up-to-date build in the Disclaimer section of this very post.
If you want to see full-speed N64 emulation on the Switch, why not throw in a few dollars to show your support?

4. How can I configure RetroArch to use each joycon as individual controllers for 2 players mode?
  • Go into the Settings -> Input and enable Split joycon.
    You should also set a new Menu-open key combo
5. What are some recommended settings for optimal performance?
  • Try enabling Audio and Video to switch_thread/thread, and also enable 1:1 PAR so that each core has their proper given aspect ratio. Also, don't forget to always launch from a game using title redirection.


Want additional information regarding RetroArch on the Switch?
Visit the official release page:

RetroArch 1.7.5 - Introducing libnx Switch version

@m4xw is the developer that is constantly updating everything RetroArch Switch, and also Nintendo 64-related, so if you want to continue seeing great updates for this project, be sure to support him through his Patreon:
https://www.patreon.com/m4xwdev


(OP is a work in progress, current maintainer is @ShadowOne333, @ me if something needs to be added or fixed!)​
 
 

Recent Content

Newest Downloads

Tutorials

Back
Top