Guide: RetroArch NetPlay on Handheld Devices

Last updated: 12JAN2021 (see Changelog for details)

RetroArch has a neat feature that allows you to play multiplayer games on different handheld devices. But the setup is more complicated than you might think. So this guide will walk you through all the things you need to know before beating the utter daylights out of your best friend in Street Fighter II.

Table of Contents
First things first
Supported cores
RetroArch NetPlay menu
Local NetPlay
Online NetPlay
Relay servers
Spectator mode

Changelog

First things first

This guide will walk you through how to play online multiplayer using RetroArch’s NetPlay feature. While this guide is geared towards retro handheld devices, you could use this process to connect to your friends via PC, Mac, or your Raspberry Pi — as long as you are using RetroArch.

In order for NetPlay to work, you have to have several different things in order:

  • Users must be on the same RetroArch core (Nestopia vs FCEUMM, for example).
  • Users must be on the same version of the RetroArch core (1.9 vs 1.89, for example).
  • Users must load the same content (same Contra (USA).nes file, for example)

In order to ensure that everything is in order, I recommend you use the same operating system, its most recent version, and the latest cores available. Here are some example cases that would work:

  • Two Anbernic RG351Ps running the stock firmware with default cores
  • One RG351P and one RG351M running the same 351ELEC version (1.0.7)
  • One RG351P and one PowKiddy RGB10 running ArkOS after running RetroArch’s “update existing cores” function
  • Two PS Vita running the latest stable standalone version of RetroArch
  • Two Retroid Pocket 2s running the pre-loaded RetroArch after running RetroArch’s “update existing cores” function

For more information about RetroArch NetPlay, check out this document.

And finally, you need to have an online capable device to run NetPlay. If you are using the RG351P or RGB10, here is a list of WiFi adapters that work well.

Supported cores

Not every single RetroArch cores will work with NetPlay. Theoretically, any core that supports save states should work. But for example, performance requirements prevent PS1, Dreamcast, and Nintendo 64 multiplayer from working in RetroArch.

Similarly, link cable connections (such as with Game Boy or Game Boy Advance) is not possible, so no trading Pokemans.

So really, just think of NetPlay as a way to play classic retro games (8-bit and 16-bit) together in multiplayer gameplay, much like two controllers hooked up to the same console/TV back in the day. Both devices will see the same thing on their screen, much like when playing on the same TV.

Getting to the NetPlay menu is easy. Once you have launched a game, press your hotkeys to enter into the RetroArch Quick Menu (L3 +R3 for stock RG351P firmware, for example), then back out to the Main Menu. Or if you’re booting directly into RetroArch, you’re already in the Main Menu. Once there, tap right on the d-pad to get to the “Netplay” menu. There you will see a number of options. Here is what they break down to:

Host – this section will allow you to set up a Netplay host, specify the TCP port (the default is 55435, you should stick with that), use a relay server (more on that in this section), and set a connection password.

Connect to Netplay Host – this will allow you to enter a specific netplay server address to connect directly to your friend.

Network – this section will allow you to set the default settings for Netplay. Unless you know what you’re doing, I would recommend not messing with this section.

Refresh Netplay Host List – this is the section your friend will use to find your device.

Local NetPlay

Local NetPlay is defined as online gameplay that uses your local WiFi connection. The two devices cannot connect directly to one another, but if they are both connected to the same WiFi you should be good to go.

On both devices, launch the same game with the same RetroArch core. For example, launch Contra (USA).nes with the Nestopia RetroArch core. As a reminder, it’s not enough that the games are the same (Contra), but that they are the exact same file — so get your ROMs from the same source.

Player 1 will act as the “host”. They will go to the Netplay menu, then select Host > Start Netplay Host. The screen will notify you that you have joined as Player 1, and “Port Mapping Successful” and an IP address. If you don’t successfully map your port, you may need to check your router and make sure port forwarding is enabled.

Player 2 can then go into the Netplay menu on their device, and select “Refresh Netplay Host List”. At the bottom of the list that appears, you should see “Local: Anonymous” as an option. Press your confirm button to connect to Player 1. Alternatively, you could connect directly by entering Player 1’s IP address (shown when the “Port Mapping Successful” notification appears”) using the “Connect to Netplay Host” option in the Netplay menu.

Online NetPlay

Online NetPlay is similar to local NetPlay, just connected across more than one WiFi connection.

On both devices, launch the same game with the same RetroArch core. For example, launch Contra (USA).nes with the Nestopia RetroArch core. As a reminder, it’s not enough that the games are the same (Contra), but that they are the exact same file — so get your ROMs from the same source.

Player 1 will act as the “host”. They will go to the Netplay menu, then select Host > Start Netplay Host. The screen will notify you that you have joined as Player 1, and “Port Mapping Successful” and an IP address. If you don’t successfully map your port, you may need to check your router and make sure port forwarding is enabled.

Player 2 can then go into the Netplay menu on their device, and select “Refresh Netplay Host List”. Near the top of the list that appears, you should see “Internet: Anonymous” as an option, with a two-letter acronym for whatever country the host is in (US, IT, DE, FR, etc). Press your confirm button to connect to Player 1. Alternatively, you could connect directly by entering Player 1’s IP address (shown when the “Port Mapping Successful” notification appears”) using the “Connect to Netplay Host” option in the Netplay menu.

Relay servers

If you are trying to play online and not able to connect, one alternative is using a “relay server”, which will forward your connections through a man-in-the-middle server. This is good when the host is behind a firewall, or is having NAT/UPnP problems. The connection will be laggy and slower than a direct connection, but it works in a pinch. Note that these servers are frequently offline due to issues on RetroArch’s end.

Player 1 will act as the “host”. They will go to the Netplay menu, then select Host > User Relay Server > On. Then, select the Relay Server Location in the next option below; the options are New York City, Madrid, Montreal, or Sao Paulo. Go to the top of the Host menu, then select Start Netplay Host. The screen will notify you that you have joined as Player 1, and that you have “Connected as NICK” and an IP address. If you don’t successfully map your port, you may need to check your router and make sure port forwarding is enabled.

Player 2 can then go into the Netplay menu on their device, and select “Refresh Netplay Host List”. Near the top of the list that appears, you should see “Internet (Relay): Anonymous” as an option, with a two-letter acronym for whatever country the host is in (US, IT, DE, FR, etc). Press your confirm button to connect to Player 1.

Spectator mode

You can also join another person’s game in “spectator mode”, which basically means that you just watch someone else play a game (without any annoying Twitch commentary). This can be for any game — doesn’t need to be a two-player game at all. Once neat thing about this is if the host (player) leaves, the game lets you pick up where they left off! So I don’t know a ton about this mode, but for example, if a friend across the world has a save game that they’d like to share with you, you could enter their game in spectator mode and then have them leave, and you can now save the game on your device.

Player 1 will act as the “host”. They will go to the Netplay menu, then select Host > Start Netplay Host. The screen will notify you that you have joined as Player 1, and “Port Mapping Successful” and an IP address. If you don’t successfully map your port, you may need to check your router and make sure port forwarding is enabled.

Spectator will go into the NetPlay menu, and go to the “Network” section, and then turn Netplay Spectator Mode to “On”. They can then select “Refresh Netplay Host List”. They can then connect via Internet or Local host, and they will enter in spectator mode.


Changelog

12JAN2021
– published guide

One thought on “Guide: RetroArch NetPlay on Handheld Devices

  1. It is super strange, I bought a RG351p and a RG351m and used the same image on both machine running archOS, but running the same game and core, it kept giving me the same warning that I’m running on different core. Anyone running into similar problem?

    I used NES contra and Genesis Gunstar Hero to test.

    Liked by 1 person

Leave a comment