KAID - XLink Kai online gaming for Xbox, 360, PS2 and PSP

Overview
Xlink Kai: Evolution VII lets you connect with other console users around the world, and play online games for free. XLink Kai: Evo VII tricks your console into thinking that the other users it is connecting to over the Internet, are actually part of a Local Area Network. This is the basis of system-link gaming, where friends would gather around in the same house and play over 2 or more consoles. With XLink Kai: Evo VII, you now have the option to test your skills out with anybody in the world.

Features

 * Supports Xbox, Xbox 360, PlayStation 2, Gamecube, and PSP system-link / LAN enabled games.
 * 2 gaming modes (Messenger and Arena).
 * WinPCap-less.
 * Integrated chat in all areas.
 * No port-forwarding required on almost all network setups.
 * PC to PC and PC to XBox Dashboard voicechat using the SPEEX codec.
 * Extremely simple and global user-interface.
 * Auto-update on startup.
 * Multi-console compatible.
 * Compatible with wireless networks (not all wireless network setups).
 * Superior compression algorithms for less lag.
 * Support for university dorms and proxies such as Italian FastWeb ISP.
 * Trusted clan and tournament / ladder arenas.
 * Remote functionality through homebrew dashboards (XBMC - Using Xbox Media Center with the LinkStation)

From Precompiled Binary
It even may work on a LS2 (MIPSel) because binaries exist for both architectures. The only problem is that there is no static binary for the MIPSel. For your LS1 or HG download the "Linux PPC (static)" binary from here: wget http://www.teamxlink.co.uk/binary/kaid-ppc-static-libc-2.3.zip 1) decompress it to get the real binary unzip kaid-* 2) Move it to /usr/local/sbin mv kaid-static* kaid mv kaid /usr/local/sbin chmod 755 /usr/local/sbin/kaid

Compiling from source
can someone place proper instructions in here for this?

http://texas.teamxlink.co.uk/forum/viewtopic.php?t=12396&sid=99495cf5a5e93864a5520a9d813af5b5

There is a link for the kaid sources in there. Or you can find it here :

http://www.teamxlink.co.uk/binary/

/etc/init.d/kaid
export USER="root" NAME=kaid start { mkdir /var/misc touch /var/misc/kaiSystemConfig.txt touch /var/misc/kaiEnginePersist.txt chmod ugo+w /var/misc/kaiSystemConfig.txt chmod ugo+w /var/misc/kaiEnginePersist.txt su - $USER -c"kaid" } stop { su - $USER -c"killall kaid" } case "$1" in start) echo -n "Starting Kaid: " start ;; stop) echo -n "Stopping Kaid " stop ;; restart) echo -n "Restarting Kaid " stop start ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart}" exit 1 ;; esac exit 0 Create a symbolic link to start kaid at every reboot and kill it at every shutdown automaticly: chmod 755 /etc/init.d/kaid ln -s /etc/init.d/kaid /etc/rc.d/rc0.d/K99kaid ln -s /etc/init.d/kaid /etc/rc.d/rc2.d/S99kaid ln -s /etc/init.d/kaid /etc/rc.d/rc6.d/K99kaid
 * 1) ! /bin/sh

/etc/kaid.conf
you only have to put in your username/password and copy it to /etc/kaid.conf

# # # Verbosity = 1 # User = daemon # UIBind = :34522 # OrbPort = 34525 # OrbDeepPort = 34523 # EngineBind = :0 # EngineDeepBind = :0 # EnginePAT = 0 # SniffDevice = eth0 # LocalDevices = 1 # ConfigURL = www.teamxlink.co.uk/connector/clientgetconfig.php # ConfigCache = /var/misc/kaiSystemConfig.txt # CacheFile = /var/misc/kaiEnginePersist.txt # Username = XXXXXXXXX Password = XXXXXXXXX AutoLogin = 1 # XBoxHomebrew = 0
 * 1) Kai Engine Configuration File (7.0.0.6-a)
 * 1) Kai Engine Configuration File (7.0.0.6-a)
 * 1) This file contains the configuration options for Kai Engine.
 * 2) There are some fields which can be modified, the descriptions of these fields
 * 3) and their default values are listed below
 * 1) Verbosity : Debug output verbosity. Options are as follows:
 * 2) 0 - Silent apart from starting / stopping messages, and init failures.
 * 3) 1 - As 1, but shows import events such as UI attach/detach, console detection,
 * 4) orb connection / loss.
 * 5) 2 - As 2, but more detailed, showing thread start/stop events, DHCP
 * 6) events, and other important information.
 * 7) 3 - Debug - same as 2, but with lots of extra information - useful
 * 8) for diagnosing segfaults etc.
 * 1) User : Specifies which system user to switch to after having
 * 2) allocated necessary privileged resources. (FreeBSD Only!)
 * 1) UIBind : Specifies which ip/port kaid will use to listen for controller
 * 2) UIs. You don't want to change this.
 * 1) OrbPort : Specifies which port kaid will use to probe(UDP) and talk to
 * 2) Orbitals (TCP) . You don't want to change this.
 * 1) OrbDeepPort : Specified which port kaid will use to probe and talk to
 * 2) deep resolution servers. You don't want to change this.
 * 1) EngineBind : Specifies the IP:port to listen for the engine (UDP socket);
 * 2) (port should be forwarded in your router if using NAT)
 * 3) Ex.: 69.69.69.69, 69.69.69.69:37500, :37500
 * 1) EngineDeepBind : Specifies the IP:port to listen for the engine (deep resolution)
 * 2) Do not enable this unless directed to.
 * 3) EngineDeepBind must be a different port than EngineBind if
 * 4) they use the same IP address
 * 5) Ex.: 69.69.69.69, 69.69.69.69:37501, :37501
 * 1) Engine PAT : Tells the orbital server to use your perceived UDP port, as opposed to the
 * 2) one specified in EngineBind. Ignored if EngineBind is 0. Please don't turn this
 * 3) setting to 1, unless directed to do so in a troubleshooting session.
 * 1) SniffDevice : NIC to sniff for console traffic (eth0, ethX, ...). Will be used
 * 2) for packet injection too.
 * 3) Ex.: eth0 (default), en0 (Mac OSX), br0 (WRT54G)
 * 1) LocalDevices : How many consoles to detect before the engine locks the pcap filter. Setting this to 0,
 * 2) means the engine will never lock - which means you can use any number of consoles, but
 * 3) you will notice a performance hit, if your network is busy with other traffic. The best
 * 4) thing to do here is to set the number to the number of consoles you own - that's why it
 * 5) defaults to 1 - because most people have just 1 console.
 * 1) ConfigURL : URL where orb list is published (and extra stuff) - best not to mess with this.
 * 1) ConfigCache : Location of cached orb list - this file is used if the ConfigURL is inaccessible
 * 2) Make sure this file is writable. WRT54G users might want to change it to a non-volatile
 * 3) location if that feature is available in their firmware
 * 4) (i.e. /jffs/tmp/ for DD-WRT, /usr/local/ for Sveasoft)
 * 1) CacheFile : Location of Kai engine cache information
 * 2) Make sure this file is writable. WRT54G users might want to change it to a non-volatile
 * 3) location if that feature is available in their firmware
 * 4) (i.e. /jffs/tmp/ for DD-WRT, /usr/local/ for Sveasoft)
 * 1) Authentication : Set username and password and AutoLogin=1 for an easy life...
 * 1) Xbox DHCP setting : Please leave alone, unless playing with emulators or DoomX etc. You DO NOT need this set to 1
 * 2) to use XBMC as a dashboard - setting it to 1 will *break* your dashboards internet connectivity.

Linksys WRT54G router script
Note: I have tested the script with the DD-WRT SP2 VPN firmware; please add any additional routers to the list below

Works on: - Linksys WRT54G +- DD-WRT V2.3 SP2

Add below script to the "Startup script" in your router: cd /tmp wget http://genotix.nl/kai/runme.script chmod +x ./runme.script ./runme.script

This command downloads and runs the above script.

I've made it resonnably generic so it should work on most MIPS CPU based routers with linux and with the following tools installed:
 * sh (default shell)
 * wget
 * awk
 * sed
 * tar

Feel free to alter the base script and please let me know of the changes if you do. Contact me at: eric at genotix dot nl