Our mission is to preserve video games.
If you are an EU citizen you can help us in our mission by signing the Stop Killing Games EU initiative! Sign now. |
The Dolphin Emulator Wiki needs your help! Dolphin can play thousands of games, and changes are happening all the time. Help us keep up! Join in and help us make this the best resource for Dolphin. |
Broadband Adapter
Developer | Nintendo |
---|---|
Type | Video game console add-on |
The Nintendo GameCube Broadband Adapter (BBA) and the Nintendo GameCube Modem Adapter are a network adapter and 56k dial-up modem, respectively, for the Nintendo GameCube. They were produced by Conexant and made in the Philippines. The adapters fit flush into "Serial Port 1" on the underside of the GameCube and add an Ethernet port or telephone port to the side of the console, allowing the console to communicate with other consoles through a network.
As of 3.0-732, Dolphin's main branch has BBA emulation support. However, in older builds it requires a Virtual Private Network (VPN) in order to function. BBA emulation is supported on OS X since 4.0-1390. Dolphin also supports BBA tunneling in 5.0-12233 or newer through the XLink Kai setting. This allows for playing LAN games online, but requires extremely low latency between the players.
In 5.0-16838 and newer, a HLE implementation exists that no longer requires a TAP adapter. Because it does not require a TAP adapter, it also works on Android devices (implemented in 5.0-16967) and is cross compatible between Desktop and Mobile builds.
Games with BBA/Modem Support
Title | Online/LAN Play |
---|---|
Homeland | Online |
Phantasy Star Online Episode I & II • Trial Edition (Modem Only) | Online |
Phantasy Star Online Episode I & II Plus | Online |
Phantasy Star Online Episode III: C.A.R.D. Revolution • Trial Edition | Online |
Mario Kart: Double Dash‼ | LAN |
1080° Avalanche | LAN |
Kirby Air Ride | LAN |
How to use the BroadBand Adapter
"Tap-less" HLE BBA
Unlike the other BBA options which require a TAP or third party programs, the HLE BBA option's configuration is the same on all operating systems, including Android.
Configuring LAN
The HLE BBA option skips a lot of the more difficult and involved steps that were needed in order to use BBA emulation. The trade-off is that, by forwarding everything to the local network, you can only run one BBA instance per device when running LAN games. The only thing you need to do is enable the device under Config > GameCube > SP1, select Broadband Adapter (HLE)
If two or more devices are on the same network and using the HLE BBA setting for LAN, the method to connecting is simple.
- Startup the game on all devices.
- Navigate to the LAN/BBA option.
- Simply wait for the games to connect.
If two devices can't see each other, it's possible that you may need to reset the DNS for unknown reasons. Currently, Kirby Air Ride is not supported on HLE BBA due to a bug.
Configuring Phantasy Star Online I+II
The HLE BBA can also be used with Phantasy Star Online I + II and I + II+. The default setting for the DNS points to the schthack server. For more information on how to register, please check out their website.
With OpenVPN/TunTap
Windows
There is a problem with the TAP adapters created by OpenVPN 2.5. You'll want to get the latest 2.4 version (2.4.11).
- Install OpenVPN TAP Adapter V9, included in the OpenVPN installer: OpenVPN download page
- Go to start menu. Click TAP-Windows and then click Utilities. Right click Add a new TAP virtual ethernet adapter and run it as administrator. It will complete in a few seconds.
- In Control Panel\Network and Sharing Center\Change adapter settings, select the TAP device and the adapter you use to connect to the internet.
- Right-click and select Bridge Connections.
- You can add as many TAP Virtual Ethernet Adapters as necessary to run multiple instances of Dolphin with BBA enabled at once.
Note that TAP adapters on Windows are slower than on Linux, resulting in lag and performance issues in games. This can be combatted by increasing the emulated CPU clock, which has the games send the BBA faster and gives the networking a little extra time to handle things.
Linux
Install OpenVPN from your distribution package manager, then run the following commands (as root) to create the virtual interface and bridge it to your physical Ethernet adapter:
openvpn --mktun --dev Dolphin0 --dev-type tap --user john --group doe # john:doe will be running the emulator brctl addbr br0 brctl addif br0 Dolphin0 brctl addif br0 eth0 # or whatever your network interface is ip l set Dolphin0 up ip l set br0 up ip l set Dolphin promisc on
Dolphin supports multiple bridge interfaces so you'll be able to bridge multiple Dolphin instances together on the same system. Dolphin on Linux currently supports up to 32 bridges and will attempt to connect to bridges labelled from Dolphin0 to Dolphin31 sequentially until one succeeds or they all fail to connect to. Be careful with this, since if you attempt to use multiple Dolphin instances using the same broadband MAC address then games will encounter issues. For an example of how to bridge two Dolphin instances together and have two games like Mario Kart: Double Dash play with each other.
openvpn --mktun --dev Dolphin0 --dev-type tap --user john --group doe # john:doe will be running the emulator openvpn --mktun --dev Dolphin1 --dev-type tap --user john --group doe brctl addbr br0 brctl addif br0 Dolphin0 brctl addif br0 Dolphin1 ip l set Dolphin0 up ip l set Dolphin1 up ip l set br0 up ip l set Dolphin promisc on
You'll also need to change your network settings to configure IP/gateway on br0 instead of the real adapter. The IP address of the real adapter must be set to 0.0.0.0. Linux doesn't support adding a wireless interface to a bridge as of July 2012 so you need a wired NIC for that to work.
In case you still want to use a Wi-Fi network for connecting, there is the option to create another tunnel-interface over a UDP connection across the Wi-Fi network:
openvpn --dev tap-dolphin --port 2626 --remote otherIP --local thisIP --ping 10 --ping-exit 60 --daemon ifconfig tap-dolphin 0.0.0.0
The created interface tap-dolphin can then be used to add to the br0 bridge instead of eth0. This only works if the bridge br0 interface is set to promiscuous. The game expects a DHCP server to provide a suitable IP address on one of the participating machines, like:
dhcpd br0
NOTE: There is no encryption for the tunnel. Read the OpenVPN manpage for setting up the tunnel with encryption and/or authentication.
Linux NetworkManager
This will create a permanent bridge with your Dolphin tun and Ethernet devices. Replace eth0 with your actual network interface.
nmcli connection add ifname br0 type bridge con-name br0 nmcli connection add type tun ifname Dolphin0 con-name Dolphin0 slave-type bridge master br0 mode tap owner `id -u` group `id -g` 802-3-ethernet.accept-all-mac-addresses true nmcli connection add type bridge-slave ifname eth0 master br0 nmcli connection up br0 # will not activate if eth0 is currently used
Now deactivate the active connection (usually something called "Wired connection 1") and the bridge will complete.
Adding a wireless interface is possible but it's done slightly different. Replace 'ssidname' and 'password' with the actual values for your wireless network. The single quotes around password are important so make sure to keep them.
nmcli connection add type 802-11-wireless con-name ssidname ssid ssidname 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.psk 'password' master br0
macOS
Install the TUN/TAP kext files, then install OpenVPN from your distribution package manager. Run this command to move the OpenVPN alias:
mv /usr/local/sbin/openvpn /usr/local/bin
Since Dolphin and OpenVPN needs access to /dev/tap0 and /dev/tap1, it must be owned by the current user:
sudo chown -R $(whoami) /dev/tap0; sudo chown -R $(whoami) /dev/tap1
NOTE: In the kext file for tap and tun, it will automatically make /dev/tap0 and /dev/tap1 owned by the root when the computer restarts.
Dolphin and the OpenVPN network cannot communicate with each other until there is a network bridge created:
sudo ifconfig bridge1 create
Start OpenVPN network:
openvpn --dev tap1 --port 2626 --remote otherIP --local thisIP --ping 10 --ping-exit 60 --daemon
Once both computers are connected, add tap1 to the network bridge.
sudo ifconfig bridge1 addm tap1
After launching the game in Dolphin, make sure the log is on and the log type is set to SP1. When the log shows: "BBA Initialized," add tap0 to the bridge.
sudo ifconfig bridge1 addm tap0
NOTE: There is no encryption for the tunnel. Read the OpenVPN manpage for setting up the tunnel with encryption and/or authentication.
With XLink Kai
As of 5.0-12233, Dolphin supports BBA tunneling through XLink Kai. Up to date instructions can be found on XLink Kai's Wiki Page.
Configure Dolphin
Enabling or disabling the BBA can be done at Config > GameCube > SP1, select Broadband Adapter (TAP) or Broadband Adapter (XLink Kai).
By clicking on "...", you can either change the MAC Address (TAP) or the IP Address (XLink Kai).
Now you may play any games which use the BBA.