XLink Kai
XLink Kai is a multi-platform online gaming service that leverages LAN support in games and connects players over the internet
It supports many platforms including Xbox, Xbox 360, Xbox One, Xbox Series S/X, PlayStation 2, PlayStation 3, PlayStation 4, PlayStation 5, Playstation Portable, PS Vita, GameCube, Wii, Wii U and Nintendo Switch
XLink support is available in the testing branch, once you are on this branch you can find the installer in the Experimental menu
After installation the XLink Kai application will be run as a systemd service executed as your RetroNAS user.
- You will need to register your XTag
- The XLink Kai application provides a web interface where you manage your sessions, available at http://retronas:34522/
- Login with your XTag credentials.
You may change the web ui port from the default, if you do, substitute the port as required for subsequent access.
XLink Kai ui is not a server browser, as such you will not see active games listed in ui like other server browsers you may be used too. You instead drop into a pool of players/consoles (almost like a vlan, its a stretch but run with it). Once in this pool your console will be able to see active games (or you will be able to host games)
- In the webui
- Select Game Arenas
- Select the Console (e.g. XBOX) or Game you want play (e.g. Halo 2) on the left panel
- Drill down through menu until you are in a channel with a pool of players for the game you want to play
- Boot your console with the game and select System Link from the game menu (specific to the game)
- Join a game.
Refer to the official documentation for Console/Game requirements
If you have UPnP enabled, XLink will take advantage of this so hosting games should not be an issue.
If you do not have UPnP enabled: TBA
XLink was originally built to support hardware based gaming, nowdays some emulators can now be configured and used with XLink as well. See the project pages in references to keep up to date with the current list. We have tested Xemu with Halo 2 on Debian with a bridged adapter under the Network setting successfully
You may need to allow promiscuous mode on your network for the xlink application to run successfully, this will be entirely dependent on your setup.
If you see a 'progress bar' (this is ping) under users names in the web ui you have a successful connection to XLink, red is high ping, green is low ping. Pick a low ping arena for the best experience.
In the metrics dropdown check reachable is Yes, if so you have a successful connection to join games
In the metrics tab if NAT Type reports strict, you will need to forward ports to host games, this should not affect (in our testing) joining games
-
Check the metrics dropdown from the webui, consoles on your network should show up (eventually) at the bottom of the screen.
-
If your console shows up but says the ip address is wrong. Pressing help will output a message in the channel with (we assume) generic IPs, first try finding a game, then revisit the ip setup if you think it is required. In our testing the ip reported it was incorrect, games were still able to be found/joined and then the message eventually came back the ip was OK.
If you are still having trouble access the RetroNAS terminal as root and issue the below command, it will show you which interfaces are switching to promiscuous mode and any errors in doing so
dmesg | grep prom
From here refer to the main project wiki to setup specific games / ports
XLink Kai functions by capturing and inspecting packets on your network, we suggest you isolate XLink from your main net when running. In RetroNAS you can start/stop the service as required.
A default installation of XLink Kai will start the service immediately post install and enable the service to run on boot.
Getting started:
Contributing
- Bugs
- Structure
- Testing RetroNAS
- Ideas potential future state stuff
Multi-system protocols:
- ADTPro Apple // era
- EtherDFS MS-DOS/FreeDOS
- ethflop MS-DOS/FreeDOS L2 floppy emulator
- FTP
- HTTP
- Kermit
- NFS
- Netatalk AppleTalk/AFP
- Samba SMB/CIFS
- TNFS Atari 8-bit and ZX Spectrum
- Telnet
- ZeroConf, Bonjour, Avahi
- pyGopherd a HTTP alternative
- zterm Serial Comms Zmodem Transfer
Specific system configurations:
- Supported Clients
- 3DS QR codes Nintendo 3DS and 2DS
- Batocera
- EmuELEC and derivatives
- RecalBox
- EmuDeck
- Analogue Pocket (OpenFPGA)
- FSP Nintendo GameCube
- Fenrir-ODE Webserver Sega Saturn
- MiSTer FPGA
- NABU Internet Adapter
- Netlink Sega Saturn Netlink online play
- OpenPS2Loader PlayStation 2
- XBox360
- dreampi dreampi project for Dreamcast (and others) online
- hb-store-cdn PlayStation 4 Homebrew Store CDN
- ps3netsrv PlayStation 3
- linux-dexdrive Dump/Write PS1 memory card images
- sidecart Atari ST Sidecart
Services:
- WaybackProxy Web Proxy through the Wayback Machine
- WebOne Web Proxy
- macproxy Web Proxy
- wrp Web Proxy
- Cockpit Web management
- Syncthing file synchronization
- ROM import Smokemonsters SMDB
- TCPser software Hayes Modem
- BitTorrent
- aria2 lightweight download utility.
- megatools mega.nz suite
- XLink Kai multi-platform
Tools:
- gogrepo Sync your GOG installers
- SabreTools DAT management tool
- mc Midnight Commander (Norton clone)
- ytree filemanger XTree clone
- far2l far2l filemanager
- Gadgets Linux gadgets (OTG) mode
- affstools
- amitools
Physical Media:
- DiscImageCreator dump redump.org compatible images
- Redumper advance disc dumper
On-Device Management:
- cue2pops BIN/CUE to VCD conversion
- extract-xiso Manage XISOs
- hdl-dump PS2 HDD device management
- nbd-client Network Block Device
- pfsshell PFS shell / PFS fuse
- ucon64 A multi-purpose copier device tool
- xboxmanager An experimental XBOX Manager
- pi1541 setup a pi1541 compatible device
Advanced storage options:
- BtrFS RAID, Snapshots, Compression, Deduplication
- FAT Advanced guide to using FAT loopback mounts for EtherDFS
- TBA
- SMR Shingled Magnetic Recording hard drives (TBA)
- NTFS Advanced guide for NTFS formatted disks
- SMB Loopback Mounting an existing SMB NAS
- NFS Loopback Mounting an existing NFS NAS
- MDRAID (TBA)
- LVM (TBA)
- iSCSI Configuring iSCSI
Other: