2022-02-27 23:56:44 +01:00
|
|
|
ShadowTenpo
|
|
|
|
===========
|
2022-02-22 01:31:55 +01:00
|
|
|
|
2022-02-27 23:56:44 +01:00
|
|
|
Remote SEGA cab-to-cab multiplayer by virtualizing members into the local LAN.
|
2022-02-22 01:31:55 +01:00
|
|
|
|
2022-02-27 23:56:44 +01:00
|
|
|
Not a VPN. No need for a VPN.*
|
2022-02-22 01:31:55 +01:00
|
|
|
|
2022-02-27 23:56:44 +01:00
|
|
|
Installation
|
2022-02-22 01:31:55 +01:00
|
|
|
------------
|
|
|
|
|
2022-02-27 23:56:44 +01:00
|
|
|
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.
|