ARCH R

Netplay

RetroArch network play in archr-launcher, over the internet or directly between handhelds without a router

RetroArch can run a libretro core over the network, and archr-launcher has the settings for it, a room browser for joining games, and a local mode where one handheld becomes the access point for the others.

Netplay settings in archr-launcher

It only works with libretro cores. Standalone emulators (DraStic, PPSSPP, Yabasanshiro, DuckStation, ScummVM) have no netplay here.


Turning it on

Open Settings › Games and, under Other, Netplay. The same switch is also on Settings › Network › Network services (Netplay).

  • Enable Netplay (global.netplay) and Nickname (the name other players see).
  • Connection: Host and Port (default 55435), Relay server (Off, New York, Madrid, Montreal, São Paulo or Custom) and Custom server for an address of your own. A relay routes the session through a public server, so it works behind NAT without opening a port.
  • Lobbies: Relay games only filters the room list to rooms hosted through a relay; Show unavailable games also lists rooms for games you do not have.
  • Game index: Index games now is still marked Coming soon.

Joining a room

With Netplay enabled, the Y menu on the Systems screen gains Netplay, which opens Connect to Netplay:

  • Rooms are grouped under On the local network, Online and Unavailable, each marked Same ROM, Different ROM, Unknown ROM, No ROM or No core. Only Same ROM is a safe join.
  • Each room shows the host, the core, the relay and the latency.
  • A on a room offers Join (play) or Watch (spectate); Y refreshes the list; B closes.

Hosting a room from the launcher is not available yet.


Local Play (no router)

One handheld can be the access point for the others, which is what you want on a train or in a park. The settings are in Settings › Network › Network services, under Local Play (no router).

Network services with the Local Play options

First, on every handheld

Turn Wi-Fi on. The Local Play setting depends on it.

On the host

Turn Local Play on and set Player to 1. The handheld brings up an access point called NETPLAY_AP on the Channel chosen (6 by default) and takes the address 192.168.80.1.

On the other handhelds

Turn Local Play on, set Player to 2, 3 or 4 and use the same Channel. They join NETPLAY_AP on their own, so there is no SSID to type.

About the game session

Local Play configures the network, not a Netplay session, so opening the same ROM and core on every handheld is not enough. Hosting a Netplay session from the launcher is not available yet.

Local Play takes over the wireless adapter, so while it is on there is no internet: no scraping, no updates, no online rooms.

Local Play needs a wireless adapter with access point support (wifictl has_ap_mode).


What Netplay Changes While Enabled

Before launching any game, setsettings.sh updates retroarch.cfg. While Enable Netplay is turned on, three settings are applied globally:

  • Auto save/load state is turned off so both players start from a synchronized state.
  • RetroAchievements Hardcore mode is turned off.
  • On client handhelds, netplay_client_swap_input is set so the second console controls Player 2.

Because the first two rules follow the global Enable Netplay switch, remember to turn Enable Netplay off when you return to single-player games if you rely on auto-savestates or Hardcore achievements.

Several cores also receive automatic link-cable or multitap setup:

CoreAutomatic Setup
gambatteGame Boy link cable over network (server on host, client on others, using port + 1)
tgbdualDual-screen Game Boy link cable assigned by Local Play Player ID
genesis_plus_gx4-Way Play adapter on port 2
snes9xSuper Multitap on port 2

Supported Libretro Cores

Netplay-capable libretro cores shipped on ArchR include:

  • SNES: snes9x, snes9x2010, snes9x2005_plus, snes9x2002
  • NES: fceumm, nestopia, quicknes, mesen
  • GB / GBC: gambatte, sameboy, gearboy, tgbdual, DoubleCherryGB
  • GBA: mgba, vba_next, vbam, beetle_gba, gpsp
  • Mega Drive / Master System: genesis_plus_gx, picodrive
  • Arcade / Neo Geo: fbneo, fbalpha2012, mame2003_plus, mame2010, neocd
  • PlayStation: pcsx_rearmed, pcsx_rearmed32
  • PC Engine: beetle_pce_fast, beetle_supergrafx

Troubleshooting

The lobby reports a ROM mismatch. Both players must use the exact same ROM file (identical CRC). Use verified No-Intro or Redump dumps on both handhelds.

Nobody can join your internet room. Most home routers block incoming connections on port 55435 unless port forwarding is configured. Select a Relay server (New York, Madrid, São Paulo, or Montreal) in Settings › Games › Netplay.

Lag spikes in Local Play mode. Nearby Wi-Fi networks may be congested on the same frequency. Change Channel between 1, 6, and 11 on all handhelds in Settings › Network › Network services.

On this page