Netplay Guide: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
m (Text replacement - "== ([^=\[{])" to "== $1")
(Did a lot of testing with netplay and such, this is the results. Used data from smashladder along with personal testing in order to make this guide more accurate, as well as statements from comex on IRC.)
Line 10: Line 10:
== Setting Up Dolphin ==
== Setting Up Dolphin ==
*All players should 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 and use "[[Controlling the Global User Directory#Disable the Global User Directory for a Specific Build with "portable.txt"|portable.txt]]" to isolated it from the [[Controlling the Global User Directory|Global User Directory]].
*All players should 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 and use "[[Controlling the Global User Directory#Disable the Global User Directory for a Specific Build with "portable.txt"|portable.txt]]" to isolated it from the [[Controlling the Global User Directory|Global User Directory]].
{{revision|4.0-6638}} 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.
As of


*For GCN games, Memory Cards need to be synchronized or disabled.
*For GCN games, Memory Cards need to be synchronized or disabled.


*For Wii games, the Cache and Wii folders must be synced.
*For Wii games, save files are currently disabled as of {{revision|4.0-6512}}.  This means users do not need to synchronize Wii NANDs any longer, but cannot save in exchange.


=== General Configuration ===
=== General Configuration ===
*Idle skipping doesn't affect Netplay, only movie playback, so it can be left on.
*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. The only known exceptions to this rule are [[Mario Party 4]] and [[Kirby Air Ride]], which always work with Dual Core mode. The [https://dolphin-emu.org/download/list/dc-netplay/1/ dc-netplay branch] has working Dual Core netplay, but it is somewhat experimental.
*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 will 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.
 
*DSP HLE is recommended. Zelda Ucode titles ([[Mario Kart: Double Dash‼]], Zelda games, [[Pikmin]] games, etc) as well as games that use streaming audio ([[Super Monkey Ball]]) require [[DSP LLE]]. "DSPLLE on Dedicated Thread" causes desyncs, and '''must''' be off.


*Frame Limiter cannot be set to Audio.
*DSP-HLE should work with all titles.


=== Graphics Configuration ===
=== Graphics Configuration ===
*All graphics backends sync with eachother, so the general graphics settings can be whatever you like.
*EFB Access to CPU and Store EFB Copies to Texture Only must be the same on all PCs. On Dualcore Netplay, it's highly recommended that both are checked.
 
*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.


*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.
*Enhancements 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 ===
=== Controller Settings ===
*The bindings in GCPad can be whatever you like. Just edit the Pad 1, regardless of what player you'll be in the netplay session. Any additional local players will be Pad 2 or Pad 3.
*The bindings in GCPad can be whatever you like. Just edit the Pad 1, regardless of what player you'll be in the netplay session. Any additional local players will be Pad 2 or Pad 3.


*Wii Remote bindings work more or less the same way as GCpad settings, however only emulated Wii Remotes can be used. Just edit emulated wiimote 1, regardless of what player you'll be in the netplay session. Any additional local players will be emulated wiimote 2 or emulated wiimote 3.
*Wiimotes bindings work more or less the same way as GCpad settings, however only emulated Wii Remotes can be used. Just edit emulated wiimote 1, regardless of what player you'll be in the netplay session. Any additional local players will be emulated wiimote 2 or emulated wiimote 3.


*Wiimotes do not work very well on netplay.  They are subject to random failures on startup even when perfectly setup.  Beyond that, all users must disable attachments in the Wiimote Settings page on all Wiimotes used in-game for wiimotes to have a chance.  It is highly recommended that users watch the chatbox for desyncs on startup.  If they do see one, restarting the emulator is necessary.  GameCube controllers do not suffer from these strange quirks.


== Netplay Settings ==
== Netplay Settings ==


=== How to set the Pad buffer ===
=== 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.
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.


=== Setting a Spectator ===
=== Setting a Spectator ===
Line 46: Line 47:


=== Mixing Local and Online Multiplayer ===
=== Mixing Local and Online Multiplayer ===
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.
To set multiple players on one computer, simply hit the configure pads button, and add their name to another pad.  The first time their name is used will default to pad/wiimote 1, then 2 and so on.




== FAQ ==
== FAQ ==
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?
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?
<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.
<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.  On latest builds, desync detection will warn users before they notice a desync.


Q: When I try to join the host, it says "Game not found."
Q: When I try to join the host, it says "Game not found."
<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. Also, when playing Wii games, this error may appear if Cache folders are not synced.
<br/>A: You need to add the directory containing your ISOs into your Config.


Q: How do I host?
Q: How do I host?
Line 66: Line 67:


Q: Why am I having desyncs?
Q: Why am I having desyncs?
<br/>A: Netplay has matured considerably in recent time. If you are having desyncs, it is most likely your fault. Check everything again. However, a small number of Wii games are weirdly unsupported no matter what, such as [[Super Smash Bros. Brawl]].
<br/>A: Netplay has matured considerably in recent time, but still requires user competency and problem solving to get over some of the hurdles.


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

Revision as of 01:28, 20 June 2015

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 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.
  • ISOs must have matching region and game revision. The netplay window should be able to tell you this information, otherwise compare MD5 or SHA-2 hashes.
  • If hosting behind a firewall or router, port forwarding will be necessary.


Setting Up Dolphin

  • All players should use the same build, preferably the latest development build from 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 and use "portable.txt" to isolated it from the Global User Directory.

4.0-6638 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.

As of

  • For GCN games, Memory Cards need to be synchronized or disabled.
  • For Wii games, save files are currently disabled as of 4.0-6512. This means users do not need to synchronize Wii NANDs any longer, but cannot save in exchange.

General Configuration

  • 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 will 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.
  • DSP-HLE should work with all titles.

Graphics Configuration

  • EFB Access to CPU and Store EFB Copies to Texture Only must be the same on all PCs. On Dualcore Netplay, it's highly recommended that both are checked.
  • Enhancements 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

  • The bindings in GCPad can be whatever you like. Just edit the Pad 1, regardless of what player you'll be in the netplay session. Any additional local players will be Pad 2 or Pad 3.
  • Wiimotes bindings work more or less the same way as GCpad settings, however only emulated Wii Remotes can be used. Just edit emulated wiimote 1, regardless of what player you'll be in the netplay session. Any additional local players will be emulated wiimote 2 or emulated wiimote 3.
  • Wiimotes do not work very well on netplay. They are subject to random failures on startup even when perfectly setup. Beyond that, all users must disable attachments in the Wiimote Settings page on all Wiimotes used in-game for wiimotes to have a chance. It is highly recommended that users watch the chatbox for desyncs on startup. If they do see one, restarting the emulator is necessary. GameCube controllers do not suffer from these strange quirks.

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

Setting a Spectator

A Spectator is a connected computer that has no controllers assigned to them. You can do this by configuring pads and making sure their name has no pads. This player will not impact lag or latency but can still watch the netplay session.

Mixing Local and Online Multiplayer

To set multiple players on one computer, simply hit the configure pads button, and add their name to another pad. The first time their name is used will default to pad/wiimote 1, then 2 and so on.


FAQ

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?
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. On latest builds, desync detection will warn users before they notice a desync.

Q: When I try to join the host, it says "Game not found."
A: You need to add the directory containing your ISOs into your Config.

Q: How do I host?
A: In order to host, the player need to ensure that all firewalls allow Dolphin to send and receive packets. On top of that, if a computer is on a router, a port must be forwarded. For more instructions on how to handle specific routers, try portforward.com.

Q: Can I connect to Nintendo WiFi Connection?
A: "Netplay" is Dolphin's own online multiplayer system and has no interaction with Nintendo's servers. But Dolphin can use the Nintendo WiFi Connection. See the Wii Network Guide.

Q: Is there like a master server list of all the Dolphin servers?
A: 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.

Q: Why am I having desyncs?
A: Netplay has matured considerably in recent time, but still requires user competency and problem solving to get over some of the hurdles.