1
0
mirror of synced 2024-11-12 03:30:47 +01:00
Go to file
2022-08-25 00:22:41 +02:00
test 0.1.1 release 2022-02-27 14:56:44 -08:00
www 0.1.1 release 2022-02-27 14:56:44 -08:00
.gitignore 0.1.1 release 2022-02-27 14:56:44 -08:00
cccc.js 0.1.1 release 2022-02-27 14:56:44 -08:00
ccencap.js 0.1.1 release 2022-02-27 14:56:44 -08:00
cchub.js 0.1.1 release 2022-02-27 14:56:44 -08:00
ccrelay.js 0.1.1 release 2022-02-27 14:56:44 -08:00
config.js 0.1.1 release 2022-02-27 14:56:44 -08:00
index.js 0.1.1 release 2022-02-27 14:56:44 -08:00
install.bat 0.1.1 release 2022-02-27 14:56:44 -08:00
mime.js 0.1.1 release 2022-02-27 14:56:44 -08:00
netif.bat 0.1.1 release 2022-02-27 14:56:44 -08:00
package.json Initial (dev) 2022-02-21 16:31:55 -08:00
README.md 0.1.1 release 2022-02-27 14:56:44 -08:00
server.js fix pref_ip not working issue 2022-08-25 00:22:41 +02:00
start.bat 0.1.1 release 2022-02-27 14:56:44 -08:00
webmgr.js 0.1.1 release 2022-02-27 14:56:44 -08:00

ShadowTenpo

Remote SEGA cab-to-cab multiplayer by virtualizing members into the local LAN.

Not a VPN. No need for a VPN.*

Installation

You need a server to connect and forward traffic between clients. You can deploy this on any machine that has a public IP address and can accept HTTP/Websockets connection on a port of your choice.

On the client:

  1. Install NodeJS (and NPM) if not installed already.
  2. Open install.bat, or run command npm i to install node dependencies
  3. Edit config.js and change the server address and port to your server.
  4. If necessary, change other settings in config.js. The default values are for SDBT. Other SEGA games may use different ports, or may not work.

To deploy a server:

  1. Clone this same repo and have a NodeJS installation ready.
  2. npm i for dependencies
  3. Edit config.js and change server_port to any port of your choice for incoming HTTP/Websocket connections.
  4. Run node server to start the server. Using a screen/tmux is recommended as the server will not fork into background by itself.

Usage

Note: this project may be in active development. Usage instructions may change frequently. If you pull from git or manually update, make sure to revisit the usage every time.

  1. Open netif.bat with administrative privileges to setup IP aliases.
    • IP aliases are valid until reboot by default.
    • NETIF in the script may be set to loopback if the default fails.
    • Using your physical network interface is discouraged and may cause loss of network. See https://superuser.com/a/1337075 if you really need to.
    • Using a virtual interface (like VPN adaptor) may cause undefined behavior with the game.
  2. Open start.bat or run node . to start the client. Verify that it can connect to the server and obtain party IP addresses.
  3. Configure segatools.ini of the game to use the subnet and address. The client will create a segatools-override.ini in the same directory. Use that as a reference.
  4. Start the game. If IP ADDRESS BAD, start the game as administrator.

Note that the client cannot be started if the game is running. If the client is closed or crashed, the game must be stopped before you can restart the client.

Game Settings

  • Members must be on the exact same version. This includes game, ICF, options and data.conf.
  • By default, standard and netdelivery ports are not forwarded. Every member should be their own standard and netdelivery server.
  • Members must set to the same cab-to-cab group.
  • Members may use different title servers or even no aime service at all.
  • No additional executable patching is required.

Security Warning

This software has the ability to send arbitrary network traffic to your local network. Your firewall may be bypassed if an adversary took control over parts of the system, including but not limited to, a malicious server, a malicious client on the same server, a middleman attack on any connection to the server. By running the software you acknowledge such security risks on your system, and agree to hold the developers innocent against any potential loss or damages, even if caused by a flaw in the software.

License

All rights reserved.

The authors informally permits acceptable modifications and redistributions within closed communities for the purpose of enhancement and further development. The authors reserves the full authority to determine if any particular usage is acceptable. Specifically, reproduction in any form to any publicly accessible location, including but not limited to GitHub.com, is prohibited.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.