ARCH R

Netplay

RetroArch network play, up to 4 players over LAN or device-to-device WiFi

RetroArch netplay lets up to 4 players play the same libretro core in real-time. Works over your home WiFi (LAN mode) or directly between two handhelds (device-to-device mode). Both devices must run the same ArchR version with the same core.


Pre-flight

Same version on both sides

ES → System Information: confirm matching ArchR version on host and clients.

Enable netplay globally

ES → Game SettingsNetplay SettingsNetPlay → ON. Also tap Index Games so RetroArch knows which ROMs you have.

Same core, same ROM

Each player needs the same core (e.g. snes9x_libretro) and the same ROM file. RetroArch hashes the ROM, if hashes differ, connection fails.


Option 1, over your home WiFi (LAN)

Host

ES → Network Settings → enable WiFi → disable Local Play Mode → set role 1 (Host).

In ES, highlight the game, press YNetplay OptionsHost a Netplay Session. RetroArch starts in host mode and waits for clients.

Clients (up to 3)

ES → Network Settings → WiFi on → Local Play Mode OFF → role 2 / 3 / 4 (Client).

In ES, same game, YNetplay OptionsConnect to a Netplay Session. Pick the host from the discovered list.


Option 2, device-to-device (no router)

When you're away from your home WiFi (parks, road trips). One device acts as a hotspot, the other connects to it.

Host

ES → Network SettingsLocal Play Mode → ON → role 1 (Host).

ArchR creates a temporary WiFi access point on the host. Note the SSID + password it prints.

Clients

ES → Network Settings → connect to the host's SSID → Local Play Mode ON → role 2-4.

Same game-launch flow as LAN play.

Device-to-device mode disables internet, you can't scrape, RetroAchievements, or update while it's active.


Game-side setup

Both players launch the same ROM. RetroArch's session menu shows handshake status and frame buffer alignment. If you see "checksum mismatch", your ROMs aren't byte-identical (different region / dump).

For cores with rollback netcode (FBNeo, some 16-bit), RetroArch enables it automatically, input lag on a fast LAN feels close to local. For cores without rollback (most), play feels best when the host has the better connection, they run at near-zero lag, the client gets a few frames of buffered delay.


Optimal host pick

If you have one wired (eth-via-USB-C) device and one on WiFi, host on the wired one. RetroArch picks the host's frame as canonical, wired hosts mean fewer rollbacks.

If both are on WiFi, pick the device closer to the router as host.


Compatible cores

Any libretro core with netplay = supported in its info file. Quick list of known-working on RK3326 ArchR:

  • snes9x2010, snes9x
  • gambatte (GB/GBC), mgba (GBA)
  • fceumm (NES), nestopia
  • genesis_plus_gx (MD/MS/GG)
  • fbneo (Arcade), rollback enabled
  • mednafen_psx_hw (PSX)

Heavy 3D cores (mupen64plus_next, ppsspp_libretro) work technically but the A35 plus rendering load means stutter; not great experience.


Troubleshooting

"Checksum mismatch": different ROM dumps. Use the no-intro / Redump version on both sides.

"Connection timeout": host's IP is wrong (LAN mode) or hotspot isn't visible (device-to-device). In LAN mode, double-check both devices on the same subnet (ip addr over SSH).

Lag spikes: WiFi airtime contention. Move closer to the router, or disable Bluetooth on both devices during the session.

Audio out of sync: turn off the netplay audio buffer override. Quick Menu → Settings → Netplay → "Allow Asymmetric Frame Rate" → OFF.

On this page