PUBG Mobile on GameLoop Beta: All Issues FixedThe latest EmuDesk Smart Tool update fixes all compatibility issues with GameLoop Beta including camera stuttering and delivers fully functional keymaps, including at 1080p and 2K.Get EmuDesk Smart Tool

RetroArch Netplay: How to Play Retro Games Online with Friends

Medium4 solutions

You want to play classic SNES, NES, GBA, Genesis, or PS1 games online with a friend using RetroArch, but Netplay is not obvious to set up. RetroArch includes a built-in Netplay system that uses a relay server — no port forwarding required in most cases — so both players can host and join sessions with minimal setup.

This guide covers the complete Netplay flow: choosing the right core, hosting or joining a session, fixing desync, and managing lag. Work through the steps in order.

Last updated 8 weeks ago0 users reported this issue20
Sign in to interact

Solutions

Solution 1

set-up-retroarch-netplay-host-and-join (sortOrder=1, isMostHelpful)

The fastest way to start: one player hosts, the other joins using RetroArch's relay infrastructure. No port forwarding is needed if you use the built-in relay.

Prerequisites (both players must do this):

  1. Both players must use the same version of RetroArch (download from retroarch.com).
  2. Both must use the same core (e.g., Snes9x, Mesen, Genesis Plus GX). The core version must also match — update cores together via Main Menu → Online Updater → Update Installed Cores.
  3. Both must have the same ROM file — exact byte-for-byte match (same dump, same region). This is the single most common cause of Netplay desync. Use a No-Intro or Redump verified dump.

Hosting a session:

  1. Load your game in RetroArch (the ROM you want to play).
  2. Open Main Menu → Netplay → Start Netplay Host.
  3. RetroArch will display your Netplay room — it appears in the public room list at lobby.libretro.com by default. You can set a room name and a password in Settings → Netplay.
  4. Tell your friend your RetroArch username or room name so they can find you in the lobby.
  5. In Settings → Netplay → Mitigation Method choose PreEmptive Frames for local-area play, or Deterministic for internet play (deterministic is more accurate but adds 1-2 frames of latency).

Joining a session:

  1. Have the same ROM loaded (or close RetroArch and let the host send the ROM if the host has Share ROMs enabled).
  2. Go to Main Menu → Netplay → Refresh Netplay Room List and find the host's room.
  3. Select the room and choose Connect. RetroArch connects via the relay server — both players will see the session sync up.
  4. If the room is not showing in the public list: the host can go to Settings → Netplay → Use Relay Server ON, then in Netplay Host Settings copy the Direct IP shown and send it to the joining player, who uses Main Menu → Netplay → Connect to Netplay Host and enters the IP.

Note on player roles: in RetroArch Netplay, only Player 1 controls are synchronized for input by default. Player 2 (the joining player) can be set up as the second controller if the game has local co-op (e.g., SNES games). Go to Settings → Netplay → Player on the joining player's client and set it to Player 2.

Solution 2

best-cores-for-retroarch-netplay (sortOrder=2, isMostHelpful=false)

Not all RetroArch cores support Netplay well. Some cores have non-deterministic timing or per-frame randomness that causes desync. Here are the best-tested core choices by system.

System Best Netplay Core Notes
SNES Snes9x (Latest) Most consistent Netplay; avoid bsnes-hd for Netplay (higher CPU, sometimes non-deterministic)
NES Mesen High accuracy, good Netplay; FCEUmm also works
GBA mGBA Good but GBA Netplay is mainly single-player sync; multiplayer games = link cable (use mGBA standalone for that)
Genesis / Mega Drive Genesis Plus GX Excellent Netplay support; avoid PicoDrive for Netplay
PS1 Beetle PSX HW Works but PS1 Netplay is CPU-heavy; Mednafen/Beetle is the most accurate. Avoid SwanStation for Netplay.
Game Boy / GBC Gambatte Solid Netplay; mGBA also supported
NeoGeo FinalBurn Neo MAME is not Netplay-compatible; FBNeo is the recommended arcade core

Cores to avoid for Netplay:

  • MAME (any version) — does not support RetroArch Netplay
  • Dolphin (libretro) — too CPU-heavy and non-deterministic for Netplay; use Dolphin standalone Netplay instead
  • RPCS3 / Cemu / Eden cores — modern console emulation cores are not designed for Netplay

Solution 3

fix-retroarch-netplay-desync-and-lag (sortOrder=3, isMostHelpful=false)

Desync (one player's game diverges from the other's) and input lag are the two most common Netplay problems. Both have specific causes and fixes.

Fixing desync:

  1. Verify ROM match: the most common desync cause is different ROM files. Both players should check the file size and ideally the MD5/SHA1 hash of their ROM. On Windows: right-click → Properties → Detail tab (or use 7-Zip → Info to see CRC). Hashes must be identical. Re-download from a verified No-Intro source if unsure.
  2. Match core versions: go to Main Menu → Online Updater → Update Installed Cores on both sides. Then close and relaunch the game and reconnect.
  3. Disable cheats and patches: any Game Genie / Action Replay cheat or IPS patch applied only on one side will immediately desync. Both sides must have the exact same patches active (or no patches).
  4. Deterministic vs PreEmptive mode: in Settings → Netplay → Mitigation Method switch to Deterministic. This mode sacrifices a few frames of latency for byte-level sync between players and is more reliable for distant connections.

Fixing lag:

  1. Lower Settings → Netplay → Input Latency Frames (default is often 0–2). Going too low on a high-latency connection causes stuttering; going too high makes controls feel sluggish. For connections 50–150ms apart, try 3–5 frames as a starting point.
  2. Enable Frame Delay under Settings → Latency → Frame Time Smoothing to reduce frame-time variance.
  3. Use the relay server if direct connection is unreliable. Go to Settings → Netplay → Use Relay Server. The relay adds a small overhead but stabilizes the connection across most home networks (NAT, double-NAT, etc.).
  4. If both players are on the same LAN (local network), turn off the relay server and use direct IP for the lowest possible latency.

Solution 4

retroarch-netplay-spectating-and-chat (sortOrder=4, isMostHelpful=false)

RetroArch Netplay supports spectators (viewers who watch but don't control) and a basic built-in chat. Here is how to use both.

Spectating a session:

  1. The host must enable spectator slots in Settings → Netplay → Spectator Mode → set Allow Spectating to ON.
  2. A spectator joins the same way as a player (Netplay Room List → Connect), but in their own Settings → Netplay → Player they select Spectator before connecting.
  3. Spectators see the game in real time and cannot provide controller input. They can still use the chat.

In-session chat:

  1. During a Netplay session, open Main Menu → Netplay → Show/Hide Chat (or press the RetroArch quick menu shortcut and navigate there).
  2. Type your message and press Enter. All connected players (and spectators) see the message overlaid on the game screen.
  3. Chat is best for quick coordination ("ready?", "pause?") — for full voice chat, use Discord or any external voice app alongside RetroArch.

Tip — public room etiquette: If you want a private session, always set a password in Settings → Netplay → Host Room Password before starting. Unpassworded rooms appear in the public lobby and anyone can join.

Experiencing a different problem?Report a new issue to help the community find solutions.

Comments (0)

No other comments yet. Be the first to share your thoughts.

Sign in to_leave_comment

On This Page