Homebrew RetroArch Switch

ShadowOne333

QVID PRO QVO
OP
Developer
Joined
Jan 17, 2013
Messages
10,685
Trophies
1
XP
12,468
Country
Mexico
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!)​
 
Last edited by ShadowOne333,

ehnoah

Well-Known Member
Member
Joined
Oct 9, 2012
Messages
920
Trophies
0
XP
776
Country
Netherlands
Well Homebrew leads to the "good" stuff, that is what people hunt for, Emulators are just a nice to see, I mean we can run the Emulators on every Device we have, so the Switch isnt really needed.

However It is nice to see, how fast we go forward. Just a Kernel away... :o

I am not sure about RetroArch yet, since people have issues to get it run. But the Order is normaly:

ACE_LOADER -> RetroArch (The Binary) --> snes (the Emulator) --> The ROM
 
  • Like
Reactions: Deleted User

the_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
30,636
Trophies
2
Age
36
Location
Dr. Wahwee's castle
XP
17,884
Country
United States
Yes, the ability to play decades old games...

Sent from my F8331 via Tapatalk

Wow, your comments are sure contributory to this thread, alright. Why the hell do you even bother posting in these threads?:lol:

Initial Menu support added ;) Ability to load roms isnt too far away..
https://github.com/libretro/RetroArch/commit/6254ddecf20abf80874cab89a5a489e630a5d8d6

That's pretty awesome indeed :P


Well Homebrew leads to the "good" stuff, that is what people hunt for, Emulators are just a nice to see, I mean we can run the Emulators on every Device we have, so the Switch isnt really needed.

However It is nice to see, how fast we go forward. Just a Kernel away... :o

I am not sure about RetroArch yet, since people have issues to get it run. But the Order is normaly:

ACE_LOADER -> RetroArch (The Binary) --> snes (the Emulator) --> The ROM

Well, a big plus is emulators on a tablet that isn't some piece of shit Chinese tablet with shoddy controls and bad firmware (*cough* JXD S7800 *cough*) , so that alone is a big perk.
 
Last edited by the_randomizer,
General chit-chat
Help Users
  • No one is chatting at the moment.
    PeeJay Bonobo @ PeeJay Bonobo: big floppy donkey..... disk.