Netplay Guide: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
(3.5-1251 update)
m (WiFi -> Wi-Fi)
(48 intermediate revisions by 10 users not shown)
Line 1: Line 1:
Netplay is a defining feature of Dolphin: it allows you to connect any GameCube or Wii game for internet play, without the problems or limitations of the Nintendo WiFi Connection or hassle of [[Broadband Adapter|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.
Netplay is a defining feature of Dolphin: it allows you to set up online sessions for any GameCube or Wii title with a local multiplayer mode, without the problems or limitations of the [[Wii Network Guide|Nintendo Wi-Fi Connection]] or hassle of the [[Broadband Adapter|BBA]]. It is improving regularly, and GameCube Netplay should be painless. Wii Netplay is much more temperamental and should be treated as an experimental feature for advanced users.


== Netplay Changes in Development Builds since 3.5 ==
{| class=wikitable style="width:300px; float:right;"
*DSP HLE is functional in Netplay (with AX-HLE games) as of {{revision|3.5-1154}}.
|-
*Ability to disable memory card writes added in Netplay settings as of {{revision|3.5-1193}}.
|<blockquote>"The person I'm playing with seems to be moving around strangely but he says that I'm the one moving weirdly. What happened?"</blockquote>
*Improved netplay configuration window in {{revision|3.5-1208}}.
*Disc revision numbers are now displayed in game properties and in the netplay config window as of {{revision|3.5-1251}}.


== Requirements and Known Bugs==
This is a desync. Basically what both of you are seeing are two different games. See [[#Desync Troubleshooting|Desync Troubleshooting]]
*All players must use the same git version of Dolphin.
|}
*Dual Core can cause desyncs, it must be disabled.
 
*ISOs must have the same hash, with matching region and disc revision.
== Requirements ==
*Memory Cards need to be synchronized or disabled.
*Bandwidth requirements are very light: any DSL or Cable internet connection should do. However, the internet demands rapidly increase as more players are added. Because the latency (ping) of the internet connection determines how low input latency can get, using Ethernet instead of Wi-Fi usually improves the gameplay experience.
*[[DSP LLE]] may desync if slowdown occurs, HLE in {{revision|3.5-1154}} and later is recommended for most games.
*Each player must have their own copy of the game, and the region and game revision of all copies must match. While most compressed game formats are compatible with standard ISOs (with NKit being a notable exception), it is heavily recommended that all players use identical dumps.
*Frame Limiter cannot be set to Audio.
*All players must use the same Dolphin version. Newer Dolphin versions are more likely to have fixes for Netplay. Many users opt to use the latest beta versions from the [https://dolphin-emu.org official website]. It can be isolated from your main Dolphin profile by using [[Help:Contents#Portable.txt|"portable.txt"]] or creating a [[Help:Contents#Command Line Options|special shortcut]]. Dolphin will not allow users to use mismatched versions for Netplay, to prevent desyncs.
*Only games that use GameCube controllers work with Netplay. Wiimotes, real or emulated, cannot be used.
*32bit builds cannot sync with 64bit builds, due to timing differences. But builds can sync between operating systems.
*Internet requirements are very light: any DSL or Cable internet connection should do. Dialup and Satellite will not work.


== Setting Up Dolphin ==
== Setting Up Dolphin ==


All players must use the same build, preferably the latest development build from [http://dolphin-emu.org http://dolphin-emu.org]. Because of all the settings and memory card requirements, it is recommended that you create a duplicate copy of Dolphin specifically for Netplay, instead of using the one that you casually play games on.
Your Netplay Experience will greatly vary depending on what version you tend to use. Because Dolphin 5.0 is lacking so many Netplay features at this point, it cannot be recommended for use. It is missing important features like Wii Save Synchronization ({{revision|5.0-8478}}), Automated Settings Synchronization ({{revision|5.0-8502}}), Cheat Code Synchronization ({{revision|5.0-9032}}), Synchronize All Wii Saves ({{revision|5.0-9037}}) as well as protections for recovering saves if Netplay is to crash.
 
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.
 
== Hosting or Joining a Session ==
 
Under the tools menu, you can find the option to "Start Netplay Session". From there you have several options.
 
*Hosting a session allows you to pick a game and host it for others to join. If you use version {{revision|5.0-8478}} or newer, you can also host these games publicly with the [https://dolphin-emu.org/blog/2019/04/06/netplay-server-browser/ "Netplay Server Browser"].
*When hosting a session, you can choose whether to Direct Connect or use a Traversal Server. Both will have the same latency, however using the traversal server allows you to use a host code instead of your IP Address. Depending on your router, you may not even need to port forward when using the traversal server.
*You can join a session by browsing public Netplay sessions or going to "Start Netplay Session" to get to the page where you can join sessions. You can enter a host code or IP Address as needed in the "Connect" tab.
 
While Dolphin does try to automatically configure and sync settings to be correct, it is important to be familiar with settings that can affect Netplay.


=== General Configuration ===
=== General Configuration ===
{|
|-style="vertical-align: text-top;"
|
==== General ====
{| class="wikitable"
|-
! Basic Settings
|-
|
* Enable Dual Core: <b>ON</b><br />
* Enable Cheats: <b>OFF</b><br />
* Speed Limit: <b>100%</b>
|}
|
==== Audio ====
{| class="wikitable"
|-
! DSP Emulator Engine
|-
|
* <b>DSP HLE emulation</b>
|}


Idle skipping doesn't affect Netplay, only movie playback, so it can be left on. Dual Core being off is the only setting required for stable Netplay. With Dual Core on, there is a very high chance of desync. All players must be running with the same setting of Dual Core in order to sync at all.
|
==== GameCube ====
{| class="wikitable"
|-
! Device Settings
|-
|
* Slot A: <b>Memory Card</b><br />
* Slot B: <b><nowiki><</nowiki>Nothing<nowiki>></nowiki></b><br />
* SP1: <b><nowiki><</nowiki>Nothing<nowiki>></nowiki></b>
|}


DSP HLE is recommended, as [[DSP LLE]] can cause desyncs if slowdown occurs. Some games, such as Mario Kart, still do not work with HLE and require LLE with "No audio output" to sync reliably. "DSP on Dedicated Thread" causes immediately desyncs, and '''must''' be off.
|
==== Wii ====
{| class="wikitable"
|-
! Device Settings
|-
|
* Insert SD Card: <b>OFF</b>
|}


=== Graphics Configuration ===
|}


All graphics backends sync with eachother, so the general graphics settings can be whatever you like.
*Deterministic Dual Core Netplay is now merged into master. While compatibility is not perfect, it should allow more games to work on dual core with three exceptions. Games that require '''Skip EFB Access to CPU''', '''Store EFB Copies to Texture Only''' and/or '''Store XFB Copies to Texture Only''' unchecked in the Graphics > Hacks settings are not guaranteed to run correctly. Deterministic Dual Core can be faster than Single Core in some games, but may also be much slower if a game relies on certain visual effects. Single Core mode in Netplay is the same single core mode used outside of Netplay and has no compatibility penalty.
*SD cards do work on Netplay but must be manually synchronized. Any difference at all in the SD card, no matter how minor, will cause desyncs in games that access the SD card.


Enhancements can mostly be turned on or off without incident on higher end processors, so as long as you are getting fullspeed, go for it.
==== Settings Synced ====
As of {{revision|5.0-8502}}, most settings that affect determinism will be synced to other clients, so only the host needs to ensure correct settings. Games which use EFB reads or EFB to RAM are likely to desync with mismatched graphics settings, therefore '''Strict Settings Sync''' should be used, which will additionally sync most graphics settings except for backend.


Hacks are very important for speed, but can cause issues if used improperly. Make sure everyone uses the same hacks throughout: if a hack causes a bug and only one computer bugs out while the rest are fine, the game will desync. You can enable hacks as you see fit, but if a game requires a compatibility setting and you ignore it, it may cause desyncs even if all the players use it. Look at the game's wiki page for information on what settings are needed and use them as a guide to base your experiments. Skip EFB Access to CPU and Disable EFB Copies will cause desyncs in any game where they are needed, so use them only if you know what you are doing. EFB Copies to Texture is usually fine, but if a game requires EFB to Ram it will probably cause a desync, so make sure you check the game's wiki page. Some people may see a small increase in framerate when using OpenMP encoder on 4+ core processors, but it also can lower your framerate depending on the game. OpenMP is not recommended unless you're desperate for a little extra speed.
On older revisions, only these settings will be synced over:
* Advanced Settings from General menu
* Misc Settings from Wii menu
* CPU Options from Advanced menu


=== GCpad Settings ===
Note that over long periods of time, using different video backends may eventually cause a detected desync. However, because not all target operating systems support all backends, Dolphin will never attempt to synchronize graphics backends. If you do see a seemingly random detected desync during very long play sessions and you are using different graphics backends, this is usually the cause. These desyncs usually do not manifest in anything immediately broken, but it is still recommended you save and restart to prevent issues.


This is pretty much whatever you want it to be. If you're playing local multiplayer, use pads 2 - 4 to setup your friends. For Netplay, by default it takes the first pad from every player; so even if you're the third person connecting to a Netplay, you don't have to setup a third pad.
=== Graphics Configuration ===
{|
|-style="vertical-align: text-top;"


== Netplay Settings ==
|
==== Enhancements ====
{| class="wikitable"
|-
| (No desync in most games)
|}
 
|
==== Hacks ====
{| class="wikitable"
|-
! Embedded Frame Buffer
|-
|
* Skip EFB Access from CPU: <b>ON</b><br />
* Store EFB Copies to Texture Only: <b>ON</b>
|}


=== How to set the Pad buffer ===
|}


Dolphin handles latency in a very unique way: the pad buffer doesn't directly control the number of frames of lag. To find the best setting, start with a high setting and then turn down the pad buffer until the game starts slowing down. The best time to do this is during low taxing areas, such as menus or character select screens, since you're less likely to get slowdown from a computer. Be sure that all computers are able to run the section of the game at fullspeed when adjusting the pad buffer.
*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. If a game requires EFB Access from CPU or EFB Copies Stored to RAM for game mechanics, the game may freeze or run slowly unless you use Single Core. It is highly recommended you do not change these settings while Netplay is actually in session, however.


=== Setting a Spectator ===
=== 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.


When a player connects that you want to be a spectator, the host must click their name, and then hit "Configure Pads". In the configure pads menu, turn off all pads for that player, and then hit OK to confirm.
*Wii Remotes are far more particular about how they are setup in Netplay. Unlike GameCube Controllers, you must configure the Wii Remote you are assigned to in the Netplay lobby.  As such, Player 2 will use their Wii Remote 2's configuration. Once Wii Remotes are configured correctly, they usually work fine for the remainder of the session If you notice any desync while playing with emulated Wii Remotes, it is highly recommended you save immediately, as a desync in Wii Remote reporting modes will crash the emulator.
{{image|NetplayGuide-Spectator.png|A spectator shows no controllers|br}}


=== Mixing Local and Online Multiplayer ===
== Netplay Settings ==


To set multiple players on one computer, highlight the player that will have multiple controllers and hit "Configure Pads". Then put the controller you want them to control underneath the pad their controller is configured for. This can be done for multiple people connected to the server.
=== How to set the Pad buffer ===
{{image|NetplayGuide-LocalOnlineMix.png|A local/online mix has two controllers|br}}
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 roughly 1 pad buffer per 15 ms of latency per client. Two players at 50 ms latency would be roughly 3 - 4 buffer, where as three players at 50 and 65 ms would be roughly 7 buffer.


== FAQ ==
=== 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.


Q: The person I'm playing with seems to be moving around strangely but he says that I'm the one moving weirdly. What happened?
=== Setting a Spectator ===
<br/>A: This is a desync. Basically what both of you are seeing are two different games. If it keeps happening, double check your settings, check the hashes on your ISOs, and keep at it.
A Spectator is a connected computer that has no controllers assigned to them. Any player can be turned into a spectator by going to the "Configure Pads" window (only host has access to it) and remove the their name from the controller ports. The spectator will not cause lag or latency but can still watch the Netplay session.


Q: When I try to join the host, it says "Game not found."
=== Host Input Authority ===
<br/>A: You need to add the directory containing your ISOs into your Config. You'll know it is set up properly if the game is in Dolphin's Game List.
This gives the host control over when inputs are sent to the game, effectively decoupling players from each other in terms of buffering. This allows players to have latency based solely on their connection to the host, rather than everyone's connection. Buffer works differently in this mode. The host always has no latency, and the buffer setting serves to prevent stutter, speeding up when the amount of buffered inputs exceeds the set limit. Input delay is instead based on ping to the host.


Q: Can I connect to Nintendo Wi-Fi Connect?
This can result in smoother gameplay on unstable connections, as well as allowing players with much higher latency than others to play without increasing everyone's latency. However, this comes at the expense of latency fairness, which may make it not suitable for competitive play.
<br/>A: No.


Q: Is there like a master server list of all the Dolphin servers?
=== Golf Mode ===
<br/>A: It doesn't work that way.


Q: Why am I having desyncs?
This addition to Host Input Authority allows the player with no input latency to change mid-game. This is incredibly useful for games where only one player is playing at a time, like a golf game. Do note that all other players experience a latency penalty in this mode, so it should only be used for games where only one player is playing at a time.
<br/>A: While the emulator seems to be perfectly deterministic with a very particular group of settings, there are still multiple things that can go wrong. Your memory cards may not match, someone can have too many controllers set when someone else has less, etc. Just look at the list of requirements, double check everything, disable some of the hacks you are using, and try again.


Q: Why am I getting a blackscreen at startup with no sound or anything?
=== Reduce Polling Rate ===
<br/>A: One of the players has the wrong number of pads and the other emulators are waiting for input before starting. Double Check Options/Configuration/GC
This option used to significantly reduce the polling rate in order to lower network usage. However, it is no longer necessary in the latest development versions due to a bug fixed in how much controller data was being sent.


Q: Why does it require single core?
== Desync Troubleshooting ==
<br/>A: Because of the way computers work compared to how the Wii works, Dual Core is currently unreliable for Netplay.
Double check your settings and confirm if you and other players have good ISO dump. Dolphin {{revision|4.0-6638}} added the ability to detect desyncs. Watch the textbox for desync notifications, as very often it will be able to tell the game has desynced before the players and may help them pinpoint the problem.


Q: Can my 32bit computer play a 64bit computer?
Netplay has matured considerably in recent time, but still requires user competency and problem solving to get over some of the hurdles. Never ignore obvious problems such as Game ISO differences or SD card differences, as those are not synchronized by Netplay for obvious reasons.
<br/>A: Yes, but you both have to use the x86 (32bit) build of Dolphin.


[[Category:Tutorials]]
[[Category:Tutorials]]

Revision as of 11:37, 2 July 2020

Netplay is a defining feature of Dolphin: it allows you to set up online sessions for any GameCube or Wii title with a local multiplayer mode, without the problems or limitations of the Nintendo Wi-Fi Connection or hassle of the BBA. It is improving regularly, and GameCube Netplay should be painless. Wii Netplay is much more temperamental and should be treated as an experimental feature for advanced users.

"The person I'm playing with seems to be moving around strangely but he says that I'm the one moving weirdly. What happened?"

This is a desync. Basically what both of you are seeing are two different games. See Desync Troubleshooting

Requirements

  • Bandwidth requirements are very light: any DSL or Cable internet connection should do. However, the internet demands rapidly increase as more players are added. Because the latency (ping) of the internet connection determines how low input latency can get, using Ethernet instead of Wi-Fi usually improves the gameplay experience.
  • Each player must have their own copy of the game, and the region and game revision of all copies must match. While most compressed game formats are compatible with standard ISOs (with NKit being a notable exception), it is heavily recommended that all players use identical dumps.
  • All players must use the same Dolphin version. Newer Dolphin versions are more likely to have fixes for Netplay. Many users opt to use the latest beta versions from the official website. It can be isolated from your main Dolphin profile by using "portable.txt" or creating a special shortcut. Dolphin will not allow users to use mismatched versions for Netplay, to prevent desyncs.

Setting Up Dolphin

Your Netplay Experience will greatly vary depending on what version you tend to use. Because Dolphin 5.0 is lacking so many Netplay features at this point, it cannot be recommended for use. It is missing important features like Wii Save Synchronization (5.0-8478), Automated Settings Synchronization (5.0-8502), Cheat Code Synchronization (5.0-9032), Synchronize All Wii Saves (5.0-9037) as well as protections for recovering saves if Netplay is to crash.

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.

Hosting or Joining a Session

Under the tools menu, you can find the option to "Start Netplay Session". From there you have several options.

  • Hosting a session allows you to pick a game and host it for others to join. If you use version 5.0-8478 or newer, you can also host these games publicly with the "Netplay Server Browser".
  • When hosting a session, you can choose whether to Direct Connect or use a Traversal Server. Both will have the same latency, however using the traversal server allows you to use a host code instead of your IP Address. Depending on your router, you may not even need to port forward when using the traversal server.
  • You can join a session by browsing public Netplay sessions or going to "Start Netplay Session" to get to the page where you can join sessions. You can enter a host code or IP Address as needed in the "Connect" tab.

While Dolphin does try to automatically configure and sync settings to be correct, it is important to be familiar with settings that can affect Netplay.

General Configuration

General

Basic Settings
  • Enable Dual Core: ON
  • Enable Cheats: OFF
  • Speed Limit: 100%

Audio

DSP Emulator Engine
  • DSP HLE emulation

GameCube

Device Settings
  • Slot A: Memory Card
  • Slot B: <Nothing>
  • SP1: <Nothing>

Wii

Device Settings
  • Insert SD Card: OFF
  • Deterministic Dual Core Netplay is now merged into master. While compatibility is not perfect, it should allow more games to work on dual core with three exceptions. Games that require Skip EFB Access to CPU, Store EFB Copies to Texture Only and/or Store XFB Copies to Texture Only unchecked in the Graphics > Hacks settings are not guaranteed to run correctly. Deterministic Dual Core can be faster than Single Core in some games, but may also be much slower if a game relies on certain visual effects. Single Core mode in Netplay is the same single core mode used outside of Netplay and has no compatibility penalty.
  • SD cards do work on Netplay but must be manually synchronized. Any difference at all in the SD card, no matter how minor, will cause desyncs in games that access the SD card.

Settings Synced

As of 5.0-8502, most settings that affect determinism will be synced to other clients, so only the host needs to ensure correct settings. Games which use EFB reads or EFB to RAM are likely to desync with mismatched graphics settings, therefore Strict Settings Sync should be used, which will additionally sync most graphics settings except for backend.

On older revisions, only these settings will be synced over:

  • Advanced Settings from General menu
  • Misc Settings from Wii menu
  • CPU Options from Advanced menu

Note that over long periods of time, using different video backends may eventually cause a detected desync. However, because not all target operating systems support all backends, Dolphin will never attempt to synchronize graphics backends. If you do see a seemingly random detected desync during very long play sessions and you are using different graphics backends, this is usually the cause. These desyncs usually do not manifest in anything immediately broken, but it is still recommended you save and restart to prevent issues.

Graphics Configuration

Enhancements

(No desync in most games)

Hacks

Embedded Frame Buffer
  • Skip EFB Access from CPU: ON
  • 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. If a game requires EFB Access from CPU or EFB Copies Stored to RAM for game mechanics, the game may freeze or run slowly unless you use Single Core. It is highly recommended you do not change these settings while Netplay is actually in session, however.

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.
  • Wii Remotes are far more particular about how they are setup in Netplay. Unlike GameCube Controllers, you must configure the Wii Remote you are assigned to in the Netplay lobby. As such, Player 2 will use their Wii Remote 2's configuration. Once Wii Remotes are configured correctly, they usually work fine for the remainder of the session If you notice any desync while playing with emulated Wii Remotes, it is highly recommended you save immediately, as a desync in Wii Remote reporting modes will crash the emulator.

Netplay Settings

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 roughly 1 pad buffer per 15 ms of latency per client. Two players at 50 ms 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. Any player can be turned into a spectator by going to the "Configure Pads" window (only host has access to it) and remove the their name from the controller ports. The spectator will not cause lag or latency but can still watch the Netplay session.

Host Input Authority

This gives the host control over when inputs are sent to the game, effectively decoupling players from each other in terms of buffering. This allows players to have latency based solely on their connection to the host, rather than everyone's connection. Buffer works differently in this mode. The host always has no latency, and the buffer setting serves to prevent stutter, speeding up when the amount of buffered inputs exceeds the set limit. Input delay is instead based on ping to the host.

This can result in smoother gameplay on unstable connections, as well as allowing players with much higher latency than others to play without increasing everyone's latency. However, this comes at the expense of latency fairness, which may make it not suitable for competitive play.

Golf Mode

This addition to Host Input Authority allows the player with no input latency to change mid-game. This is incredibly useful for games where only one player is playing at a time, like a golf game. Do note that all other players experience a latency penalty in this mode, so it should only be used for games where only one player is playing at a time.

Reduce Polling Rate

This option used to significantly reduce the polling rate in order to lower network usage. However, it is no longer necessary in the latest development versions due to a bug fixed in how much controller data was being sent.

Desync Troubleshooting

Double check your settings and confirm if you and other players have good ISO dump. Dolphin 4.0-6638 added the ability to detect desyncs. Watch the textbox for desync notifications, 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. Never ignore obvious problems such as Game ISO differences or SD card differences, as those are not synchronized by Netplay for obvious reasons.