Netplay Guide

Netplay is a defining feature of Dolphin: it allows you to connect any GameCube or Wii game for online play, without the problems or limitations of the Nintendo WiFi Connection or hassle of BBA. It is improving regularly, and while it is a bit finicky at the moment it is very playable and reliable with the right settings. This guide outlines what you need for reliable online play with Dolphin.

Requirements

 * Internet requirements are very light: any DSL or Cable internet connection should do. However, the internet demands rapidly increase as more players are added.
 * Game disc images between players must have matching region and game revision. ISO, WBFS and other compression formats are OK. The player who do not have a game on one's end will face the "Game not found" error message. The game must be added to Dolphin game list if hasn't already.
 * If hosting behind a router, port forwarding will be necessary (There are many different instructions available online for it. Google is your friend). Dolphin operates on a Peer to Peer architecture, meaning that there is no master server. Instead you must manually setup and host games with people beforehand. This allows Dolphin's netplay to have the lowest possible latency.
 * The player will need to ensure that all firewalls allow Dolphin to send and receive packets.
 * All players should use the same Dolphin build, preferably the latest development build from http://dolphin-emu.org. It is favorable to have a dedicated Dolphin profile for Netplay for the special settings and save files. It can be isolated from your main Dolphin profile by using "portable.txt" or create a special shortcut.

Setting Up Dolphin
Memory card of any kinds must be copied across every computers that players intended to use for netplay. Memory Cards for GameCube can be synchronized or disabled, meanwhile players may have to copy SD card to other computers themselves. Wii save files are currently disabled as of. This means users do not need to synchronize Wii NANDs any longer, but cannot save in exchange.

Rule of thumb is that most settings should be set to default and you are expected to follow specific settings where the instruction (made by host or matchmaking websites) has told you to set before playing online.

General Configuration
{|
 * -style="vertical-align: text-top;"

{| class="wikitable"

General
! Basic Settings
 * Enable Dual Core: ON
 * Enable Dual Core: ON
 * Enable Dual Core: ON


 * Enable Idle Core: ON


 * Enable Cheats: OFF


 * Framelimit: Auto
 * }

{| class="wikitable"

Audio
! DSP Emulator Engine
 * DSP HLE emulation
 * }
 * DSP HLE emulation
 * }

{| class="wikitable"

GameCube
! Device Settings
 * Slot A: Memory Card
 * Slot A: Memory Card
 * Slot A: Memory Card


 * Slot B:  < Nothing > 


 * SP1:  < Nothing > 
 * }

{| class="wikitable"

Wii
! Device Settings
 * Insert SD Card: OFF
 * }
 * Insert SD Card: OFF
 * }


 * }


 * Idle skipping doesn't affect Netplay, only movie playback, so it can be left on.


 * Deterministic Dualcore Netplay is now merged into master. While compatibility is not perfect, it should allow more games to synchronize on dualcore with three exceptions. Games that require Skip EFB Access to CPU, Store EFB Copies to Texture Only and/or Disable XFB unchecked in the Graphics > Hacks settings are not guaranteed to sync up. There are exceptions to this, but single core is recommended in games that require those settings. As well, some games are not compatible with deterministic dualcore netplay and will hang. Disabling Dualcore will provide better compatibility but lower performance.

Settings Synced
These settings will be synced over:
 * Advanced Settings from General menu
 * Misc Settings from Wii menu
 * CPU Options from Advanced menu

Graphics Configuration
{|
 * -style="vertical-align: text-top;"

{| class="wikitable"

Enhancements

 * (No desync in most game)
 * }
 * }

{| class="wikitable"

Hacks
! Embedded Frame Buffer
 * Skip EFB Access from CPU: OFF
 * Skip EFB Access from CPU: OFF
 * Skip EFB Access from CPU: OFF


 * Store EFB Copies to Texture Only: ON
 * }


 * }


 * Most settings under Enhancements menu can mostly be turned on or off without incident on higher end processors. The only exception to this is when an enhancement breaks a game, such EFB Copy readback.

Controller Settings

 * Enable and configure GameCube controller port 1 for your controller (this applies to both host and joiners) then enable other ports corresponding number of players willing to join and leave them dummy "plugged in". Any additional local players should use second or third ports.


 * Wiimotes bindings work more or less the same way as GameCube Controller settings, however only emulated Wii Remotes should be used. Real Wii Remotes do not work very well on netplay. They are subject to random failures on startup even when perfectly setup. Even beyond that, the attachments for the Wii Remotes must not be used. They will always cause desync. If users insist with using real Wii Remotes, monitor the netplay chatbox for desync on startup then restart the emulator when it happens.

How to set the Pad buffer
Because input on the GameCube and Wii are polled by non-frame intervals, buffer does not directly relate to frames and can even vary per game. Lower the buffer as much as possible without causing slowdown for an optimal experience, ideally in areas that insure there isn't computer related slowdown such as a menu. In most games, add 1 roughly pad buffer per 15ms of latency per client. Two players at 50ms latency would be roughly 3 - 4 buffer, where as three players at 50 and 65 ms would be roughly 7 buffer.

Assigning Controller Ports
By default, only players of the first port on each computers will be used. The host will be player one, and the first joiner will be player two, and so on. But the host can change the port order and invite the secondary players of the same computer. To do so, simply hit the "Assign Controller Ports" button, then add and/or order their names to the port number respectively.

Setting a Spectator
A Spectator is a connected computer that has no controllers assigned to them. This can be done by going to the "Configure Pads" window (only host has access to it) and remove the spectator's name from any of the controller ports. The spectator will not cause lag or latency but can still watch the netplay session.

Desync Troubleshooting
Double check your settings and confirm if you and other players have good ISO dump. added the ability to detect desyncs. Watch the textbox for if it notices desyncs, as very often it will be able to tell the game has desynced before the players and may help them pinpoint the problem.

Netplay has matured considerably in recent time, but still requires user competency and problem solving to get over some of the hurdles.