Telepipe: a new PSOGC proxy for Dolphin
Posted: Sat Jul 09, 2016 10:07 pm
Telepipe is a new proxy for PSOGC built to simplify connecting to PSO GameCube servers in the Dolphin GameCube emulator.
Telepipe on GitHub
Telepipe Releases and Downloads
Windows is not capable of bridging WiFi adapters to the virtual TAP adapter that is used by Dolphin for BBA emulation. To get around this, you can specify static IPs for both the virtual TAP adapter on host side, and inside Phantasy Star Online's ethernet configuration. This enables the GameCube guest to connect to the host computer as if it were inside a LAN. Then, Telepipe acts as a server for PSO, handling redirects itself.
Telepipe is written in Rust, a new systems programming language by Mozilla that offers zero-cost memory and concurrency safety abstractions, yielding the performance of languages like C++ with language features seen in Haskell, OCaml, and others, and a familiar, easy-to-understand syntax.
To set up a connection for Dolphin, configure the BroadBand Adapter and OpenVPN TAP Adapter as outlined in the Dolphin Wiki, but do not bridge the connection to your Internet connection.
Right click the TAP Adapter in Network Connections:
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.aae8b24cfc4fc1e0c3dcbb5835db1321.PNG[/img]
Open the Properties for the IPv4 item:
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.d5c07258ad5f33d7a8130475d5c02f74.PNG[/img]
Set the IP for your Host statically. This is the IP that the Guest (PSO) will refer to. (P.S. if anyone knows what the gateway should be set to here, let me know -- sometimes this breaks DNS queries on the host computer)
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.46b64f25f035cd214d6d23d8895d19aa.PNG[/img]
Now, start PSO (either E1&2 or E3) inside Dolphin and navigate to the Network Option/Provider Option menu in Options.
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.af9d897d82ada88a4530a7252c73b31c.PNG[/img]
Choose to Manually set an IP address.
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.bf74ed6d88956c70d4062b346dad69bc.PNG[/img]
Set a unique IP for the IP Address within the same subnet as the address you chose for the Host. Set the Gateway, Primary and Secondary DNS to the Host.
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.d3eed59fbbe68cb8e945b3aca453a4d0.PNG[/img]
You do not need a HTTP Proxy set and, indeed, it will not work unless the Proxy is also running on the Host. Save the configuration and return to the main menu.
Open telepipe.toml and modify the configuration to match your needs:
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.da6e4702a504e2cda1d162418dd9c1d3.PNG[/img]
You probably don't need to change anything if you play on schtserv and you are using the same IPs specified in this tutorial.
Next is a little bit confusing. Dolphin needs to initialize the connection on the TAP adapter before you can run telepipe.exe. Go Online and wait until the Connecting to DNS Server dialog comes up, then start telepipe.exe. PSO should connect and be playable from here. If you reconnect the game while using the same Dolphin process, you should not need to wait until this screen to connect anymore, as the adapter has already been initialized.
Congratulations! You can now play online over Wi-Fi in Dolphin. (Note: the message logging seen below is filtered out unless you run with the environment variable RUST_LOG set to some filter. See the env_logger crate documentation for details.)
<a class="ipsAttachLink ipsAttachLink_image" href="<fileStore.core_Attachment>/monthly_2016_07/dolphin.png.24fdbce8c26c7d18c450be0bfecdb1a3.png" data-fileid="550">[img]<fileStore.core_Attachment>/monthly_2016_07/dolphin.thumb.png.ef6ed2599a83ee9e34188b92046b3c72.png[/img]</a>
Known Issues
There is a race condition during redirects in which the server connection will connect, but the client will not reconnect to the proxy correctly. I seem to be triggering a bug in PSO's Ethernet stack that soft locks the game. If this happens, to avoid data corruption, click Emulation -> Reset so that the game will shut down gracefully and restore your saves.
The feature set is pretty bare. I plan on introducing new features like character save backups, converting to and from Blue Burst save formats, and other filtering functionality, but this will take some time to implement.
Telepipe on GitHub
Telepipe Releases and Downloads
Windows is not capable of bridging WiFi adapters to the virtual TAP adapter that is used by Dolphin for BBA emulation. To get around this, you can specify static IPs for both the virtual TAP adapter on host side, and inside Phantasy Star Online's ethernet configuration. This enables the GameCube guest to connect to the host computer as if it were inside a LAN. Then, Telepipe acts as a server for PSO, handling redirects itself.
Telepipe is written in Rust, a new systems programming language by Mozilla that offers zero-cost memory and concurrency safety abstractions, yielding the performance of languages like C++ with language features seen in Haskell, OCaml, and others, and a familiar, easy-to-understand syntax.
To set up a connection for Dolphin, configure the BroadBand Adapter and OpenVPN TAP Adapter as outlined in the Dolphin Wiki, but do not bridge the connection to your Internet connection.
Right click the TAP Adapter in Network Connections:
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.aae8b24cfc4fc1e0c3dcbb5835db1321.PNG[/img]
Open the Properties for the IPv4 item:
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.d5c07258ad5f33d7a8130475d5c02f74.PNG[/img]
Set the IP for your Host statically. This is the IP that the Guest (PSO) will refer to. (P.S. if anyone knows what the gateway should be set to here, let me know -- sometimes this breaks DNS queries on the host computer)
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.46b64f25f035cd214d6d23d8895d19aa.PNG[/img]
Now, start PSO (either E1&2 or E3) inside Dolphin and navigate to the Network Option/Provider Option menu in Options.
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.af9d897d82ada88a4530a7252c73b31c.PNG[/img]
Choose to Manually set an IP address.
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.bf74ed6d88956c70d4062b346dad69bc.PNG[/img]
Set a unique IP for the IP Address within the same subnet as the address you chose for the Host. Set the Gateway, Primary and Secondary DNS to the Host.
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.d3eed59fbbe68cb8e945b3aca453a4d0.PNG[/img]
You do not need a HTTP Proxy set and, indeed, it will not work unless the Proxy is also running on the Host. Save the configuration and return to the main menu.
Open telepipe.toml and modify the configuration to match your needs:
[img]<fileStore.core_Attachment>/monthly_2016_07/Capture.PNG.da6e4702a504e2cda1d162418dd9c1d3.PNG[/img]
You probably don't need to change anything if you play on schtserv and you are using the same IPs specified in this tutorial.
Next is a little bit confusing. Dolphin needs to initialize the connection on the TAP adapter before you can run telepipe.exe. Go Online and wait until the Connecting to DNS Server dialog comes up, then start telepipe.exe. PSO should connect and be playable from here. If you reconnect the game while using the same Dolphin process, you should not need to wait until this screen to connect anymore, as the adapter has already been initialized.
Congratulations! You can now play online over Wi-Fi in Dolphin. (Note: the message logging seen below is filtered out unless you run with the environment variable RUST_LOG set to some filter. See the env_logger crate documentation for details.)
<a class="ipsAttachLink ipsAttachLink_image" href="<fileStore.core_Attachment>/monthly_2016_07/dolphin.png.24fdbce8c26c7d18c450be0bfecdb1a3.png" data-fileid="550">[img]<fileStore.core_Attachment>/monthly_2016_07/dolphin.thumb.png.ef6ed2599a83ee9e34188b92046b3c72.png[/img]</a>
Known Issues
There is a race condition during redirects in which the server connection will connect, but the client will not reconnect to the proxy correctly. I seem to be triggering a bug in PSO's Ethernet stack that soft locks the game. If this happens, to avoid data corruption, click Emulation -> Reset so that the game will shut down gracefully and restore your saves.
The feature set is pretty bare. I plan on introducing new features like character save backups, converting to and from Blue Burst save formats, and other filtering functionality, but this will take some time to implement.