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