RetroArch 1.7.5 – Introducing libnx Switch version!

<
Thanks to the hard work of the RetroNX devs (natinusala and m4xw), we now have an official RetroArch release for Switch!

You can download RetroArch for Switch here.

Installation instructions

You will need a Nintendo Switch capable of running homebrew for this to work.

  1. Download the RetroArch 7z file for Switch (download link above).
  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.

IMPORTANT: Please start RetroArch Switch with a fresh install (in case you already had RetroNX installed before)
and migrate savegames from /retroarch/cores/save{files, states} to the same folder on the new installation.

Features

    • OpenGL support
      • Thanks to Mesa/Nouveau support, this Switch version comes with full-blown OpenGL support (thanks to fincsdev). This means that all of the advanced features available on the PC should be available on Switch as well! GLSL shaders should be supported, overlays are supported, and thanks to OpenGL support, we can use hardware-accelerated menus such as XMB/MaterialUI (with full thumbnail support, theming, etc). In addition to all this, it allows us to port libretro cores that require the use of OpenGL later in the future, such as Parallel N64, OpenLara, and potentially more like Reicast/PPSSPP/etc!
    • Touchscreen support (for MaterialUI/etc)
      • natinusala saw to it that this initial version received touchscreen support. Right now the DPI (Dots Per Inch) is kinda hardcoded for portable and not really meant for dock mode. This will be improved in the near future.
    • Full networking support.
      • Online multiplayer (with peer-to-peer and MITM matchmaking) should be available from Day One. Take note that performance of the core heavily matters in terms of the kind of quality you get out of your online experience, since the netplay implementation is rollback-based. Aside from multiplayer, you can also download cores, update assets, and all the features you would expect on the PC version.
    • RetroAchievements support
      • By registering an account at Retro Achievements and inputting your account details into RetroArch, you can obtain achievements for your games.
    • Game scanning
      • Scanning of your games should fully work, except for perhaps PS1 images right now.
    • Split Joy-Con support
      • If you go to Settings -> Input and enable Split Joy-Con (1 to 8), you can use a full Joy-Con as two separate controllers!
    • Core downloader
      • From Day One, it should be possible to download and update new cores as they arrive on a daily basis without even having to wait for the next RetroArch stable!
    • Runahead support
      • RetroArch Switch comes with runahead support from Day One! This is our game-changing feature that allows you to beat latency and even go beyond the fast response times of the original hardware. Performance of this feature is heavily dependent on the ‘performance’ level of the core and the Switch’s relative power. Try experimenting with cores, and don’t forget to turn it of for more demanding cores that balk under the pressure. Because RetroArch offers such a wide array of cores even for the same system, it’s entirely possible that one specific SNES or Genesis core is fast enough for the kind of runahead at x frames configuration that you are looking for.

44 Cores at Launch!


This might just be the single biggest platform release at launch for a new platform ever for RetroArch! Right from day one, we are starting out of the gates on the Switch with over 44 libretro cores!

So let us quickly go over them one by one –

      • 4DO – 3DO Libretro core. Try to enable the core option Threaded DSP (or a setting named something similar) for better performance.
      • 2048 – A homebrew recreation of the 2048 puzzle game.
      • Cannonball – An OutRun game engine recreation. Requires the original arcade ROMs in order to work.
      • CrocoDS – An Amstrad CPC 6128 emulator.
      • DOSBOX – MS-DOS/Windows 9x emulator. Performance may vary according to which game you are attempting to emulate.
      • Final Burn Alpha – Arcade game emulator. Can emulate (among other examples) Capcom CPS1/CPS2/CPS3 games, Neo Geo, as well as other popular 80s/90s arcade systems.
      • FCEUmm – Nintendo Famicom/NES emulator. Has some nice core options as well as good performance.
      • fMSX – MSX emulator.
      • FreeINTV – Intellivision emulator.
      • Gambatte – Nintendo Game Boy/Game Boy Color emulator. Should be the fastest Game Boy core of all right now, as well as pretty accurate.
      • Gearboy – Nintendo Game Boy/Game Boy Color emulator. Libretro core generously maintained and supported upstream by DrHelius, its original author.
      • Gearsystem – Sega Master System/Game Gear emulator. Libretro core generously maintained and supported upstream byDrHelius, its original author.
      • Genesis Plus GX – Sega Master System/Game Gear/Genesis/Mega Drive emulator. Should be more accurate than Picodrive and is many’s go-to Genesis/Mega Drive emulator. Libretro core maintained upstream by Eke-Eke.
      • Handy – Atari Lynx emulator.
      • MAME 2000 – Arcade emulator based on a 2000 snapshot version of MAME (version 0.36b). Is functionally similar/identical to iMAME4All.
      • MAME 2003 – Arcade emulator based on a 2003 snapshot version of MAME (version 0.78). Is functionally similar/identical to MAME 0.72, except a bit more up-to-date and with some game-specific fixes implemented (as well as a speedup core option for Midway DCS games, such as the Mortal Kombat series).
      • MAME 2003 Plus – Arcade emulator based on a 2003 snapshot version of MAME (version 0.78). Has everything MAME 2003 has, plus more backported game drivers and features.
      • Mednafen NGP – SNK Neo Geo Pocket (Color) emulator.
      • Mednafen PCE Fast – NEC PC Engine (CD) emulator.
      • Mednafen Super-Grafx – NEC Super-Grafx (CD) emulator. Short-lived successor to the PC Engine with backward compatibility.
      • Mednafen VB – Nintendo Virtual Boy emulator.
      • Mednafen WonderSwan – Bandai WonderSwan/WonderSwan Color emulator. This portable handheld had a screen that ran at 75Hz, therefore V-Sync is disabled for this core.
      • mGBA – Nintendo Game Boy Advance emulator. Actively maintained and improved by endrift.
      • NEStopia – Nintendo Famicom/NES emulator known for its accuracy focus. Has plenty of features. Use NstDatabase.xml for additional game compatibility support. Libretro core maintained upstream by NEStopia Undead authors.
      • NX Engine – Cave Story game engine recreation. use the original Cave Story/Doukutsu Monogatari in order for this to work. These files are needed here.
      • O2EM – Magnavox Odyssey 2 emulator.
      • PCSX ReARMed – Sony PlayStation 1 emulator. Comes with an updated Unai video renderer for better performance. Hints: you will want to turn on threaded video for this core for better performance. You can use the PSP PS1 BIOS for better performance.
      • Picodive – Sega Genesis/Mega Drive emulator with 32X peripheral support. There is no Aarch64 dynarec so the dynarec for 32X might still be too slow.
      • PocketCDG – Karaoke MP3 music player.
      • PokeMini – Pokemon Mini emulator.
      • PrBoom – Doom game engine source port. Can run at fixed framerates like 35/40/50/60fps.
      • ProSystem – Atari 7800 emulator.
      • QuickNES – Nintendo Famicom/NES emulator. Fastest NES emulator out of them all.
      • Reminiscence – Flashback game engine recreation.
      • SNES9x 2010 – Super Famicom/Nintendo emulator. Should be considerably faster than Snes9x mainline.
      • SNES9x – Super Famicom/Nintendo emulator. Slower than Snes9x 2010 but has MSU-1 support among other improvements only available in upstream version. Maintained upstream by the original Snes9x devs like bearoso and OV2.
      • Stella – Atari 2600 emulator.
      • TGB Dual – Nintendo Game Boy / Game Boy Color emulator. Has a splitscreen multiplayer mode where gamepad 1 and 2 can play against each other successfully.
      • Tyrquake – Quake 1 game engine. Runs in software renderer, no networking support (yet).
      • VBA Next – Game Boy Advance emulator. Should have an option to multithread rendering which could potentially improve performance a lot.
      • Vecx – Vectrex emulator. Early ’80s game console that rendered everything with wireframe polygons.
      • VICE (x64) – Commodore 64 emulator.
      • XRick – Game engine recreation/port of Rick Dangerous.
      • Yabause – Sega Saturn emulator. Might be too slow for now.

Hints

      • In case PCSX ReARMed is running too slowly, go to Settings -> Video and enable Threaded Video. Threaded Video can also help with certain demanding shaders. Please note that Threaded Video can tend to introduce some judder to frame pacing which isn’t there with non-threaded video, so for all other cores you might want to leave this off.
      • There is a fallback ‘switch’ video driver that you can switch to from OpenGL in case you experience some issue with a core using OpenGL. In case you do, please make sure to set the Menu Driver to ‘rgui’ then, since the ‘switch’ video driver doesn’t have working XMB/MaterialUI menu support. If you fail to do this, you would just get a black screen at startup and you would have to remove your retroarch.cfg config.

Future plans

m4xw already has a Parallel N64 core up and running on the Switch, however it’s currently quite slow and we really want to await the completion of this bounty (which amassed an impressive $1K in less than 6 days BTW!) before we include it.

Beyond that, there is a new menu driver being developed called ‘ozone’ which looks highly promising, and you might see this becoming the default UI for the Switch port in the near future!

Reicast Libretro now supports the keyboard as an input peripheral!

Keyboard support has now been implemented by flyinghead! In this video you see us testing the game Typing Of The Dead, which relies on a keyboard as its primary input device..

In order to play this game, make sure the keyboard is set to Port A of the Dreamcast. You can see us doing this in the video by going to the Quick Menu, selecting ‘Controls’, and setting the first port to ‘Keyboard’. Now restart the core and the game. You should now be able to play the game.

Game focus toggle

Quick tip: RetroArch by default binds a lot of keyboard keys to hotkeys. In order to be able to use the keyboard in full, try to bind ‘Game focus toggle’ to a key. You can do this by going to Settings – Input Hotkeys, and binding ‘Game focus toggle’ to any key you want.

How this will work is as follows: if you press the game focus toggle, you will be in ‘game focus’ mode. In this mode, none of the hotkeys will work, and you can use every key of the keyboard. When you want to go back to the RetroArch hotkey mode, you press the ‘game focus toggle’ key again in order to deactivate game focus mode.

Reicast Libretro now supports online multiplayer! Zero-configuration online Dreamcast gaming for the first time ever!

Reicast Libretro has now gained modem and PPP support. It leverages dreamcastlive.net which makes it possible to still play these games while their original servers are down.

Grab the latest core from the buildbot in order to use this! It should work on Windows, Linux, Android, and potentially even macOS seamlessly without having to input an IP address, thanks to true zero-configuration multiplayer! To our knowledge, this is the first time a Dreamcast emulator offers true zero-configuration multiplayer support like this. Demul requires a complicated TAP driver/OpenVPN configuration, and modem support was not implemented yet since the last time we checked.

How to configure online

In this video, I will boot up one of the games that allows you to set your ISP network information. You will need to do this before online multiplayer will work in Dreamcast games such as Phantasy Star Online.

One of the games that lets you do this is Quake III Arena. Other games that allow you to do this include (but are not limited to) Ooga-Booga and Toy Racer.

Input any username and password combo you want, and only input a local phone number. It can be completely bogus, it can be 666 or 888, whatever you want.

After that, you press Dial. These details will now be saved to your NVRAM, and from there, this same ISP info will be used for every subsequent multiplayer game onwards, such as Phantasy Star Online.

BTW – if you are on Windows, you might get a warning at some point from Windows Firewall if you want to allow a connection – select ‘Yes’.

Phantasy Star Online gameplay footage

In this session, you see me and flyinghead meeting up in a lobby in Phantasy Star Online and doing some hunts together! We are both using the same version of Reicast Libretro inside RetroArch.

As you can see, online works surprisingly well! All kudos to flyinghead for implementing the code necessary to be able to emulate this!

Hopefully in the near future we will have keyboard and mouse support to complement all this! It is already in flyinghead’s own branch of reicast right now.