test | ||
www | ||
.gitignore | ||
cccc.js | ||
ccencap.js | ||
cchub.js | ||
ccrelay.js | ||
config.js | ||
index.js | ||
install.bat | ||
mime.js | ||
netif.bat | ||
package.json | ||
README.md | ||
server.js | ||
start.bat | ||
webmgr.js |
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:
- Install NodeJS (and NPM) if not installed already.
- Open
install.bat
, or run commandnpm i
to install node dependencies - Edit
config.js
and change the server address and port to your server. - 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:
- Clone this same repo and have a NodeJS installation ready.
npm i
for dependencies- Edit
config.js
and changeserver_port
to any port of your choice for incoming HTTP/Websocket connections. - 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.
- 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 toloopback
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.
- Open
start.bat
or runnode .
to start the client. Verify that it can connect to the server and obtain party IP addresses. - Configure
segatools.ini
of the game to use the subnet and address. The client will create asegatools-override.ini
in the same directory. Use that as a reference. - 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.