WinUAE-Kaillera

This document applies mostly to Beta & Release 1

First off

WinUAE-Kaillera was developed by Sane and Thrill. The original WinUAE was developed by Brian King, based on the original UAE. Brian King has no part whatsoever in the development of WinUAE-Kaillera, therefore do not send him any questions about this release, as he can't answer them. Kaillera, the engine on which this product is based, is developed by Christophe Thibault, who also has nothing to do with the actual development of WinUAE-Kaillera. See at the end of the document for related websites. Bug-related questions should go to sane@abime.net .

Description

WinUAE-Kaillera enables users of this great emulator to play against another person over a TCP/IP network, such as the internet. For this it uses the Kaillera engine, a program developed specifically for enabling emulators to achieve netplay. As Kaillera itself already has proven its merits on emulators such as Mame and Bliss, this was the perfect choice for the development of this program. In this first actual release there is support for (shared) keyboard, mouse , 2 joysticks and upto 8 connected players ; virtually everything you need to play a game. This version uses the sourcecode as released on the WinUAE page, v0.8.14. As there is a new version out already, it could be that this version does not work on your computer. However, until serious issues with the current 0.8.16 release are fixed, we hold with implementing Kaillera into that release. Do not send bugreports/questions about this please. WinUAE-Kaillera falls under the GPL license for free software.

Changes

A lot of things have changed from the first BETA release with this one. The biggest change is the possibility to use the mouse on both joystickports. Furthermore, there have been various bugfixes and the implementation of Kaillera 0.81 in this release (the latest client) should improve the gameplay speed a bit. There is also a special "frameskip" mode implemented, which allows users to speed up the game by skipping a few frames in which Kaillera does not send information (and does not slow down the game). More about this important feature below. Also the way you assign ports has changed, instead of choosing who handles a remote controller, you only decide for your own side (ie which controller is local, the other is automatically remote). Also the way the configuration itself was handled has changed : you can now correctly save the settings for the Kaillera-specific options too.

Usage

First of all: netplay requires a fast and good internet connection. A typical ping to the other player should not exceed 150 ms, otherwise the game could become difficult to handle. In theory there is no reason you can't run it on a 56K modem, apart from the fact that modems sometimes prove to be unreliable. Judge for yourself. When you start WinUAE-Kaillera you will notice a few changes over the original WinUAE. On the 'Configuration'-tab there is an extra button 'Start Kaillera', furthermore the 'Gameport'-tab has three extra buttons 'Local 0', 'Local 1', 'None' (default) and a slider called 'Frameskip' (more about that below).

Before playing, both players should first acquire the exact same configuration-file. Any differences in these can/will cause the game to 'desync'. Ofcourse the game/kickstart should also be the same. Furthermore make sure the names of both configurations match exactly, or an error will be presented upon joining the game.

The 'Local <number>' buttons must be configured prior to any netplay. They decide who is using what joyport on the local end. If you are using joystick 0 in port 0 then enable Local 0. The remote player should do exactly the reverse and enable the port he is using: 'Local 1'. Furthermore make sure you only choose pc mouse/joystick 0 or joystick 1 (keyboard layouts do not work!). See screenshots for clarification.

Local player configures port 0 locally and chooses pc mouse in port 0.

Remote player configures port 1 locally and chooses joystick 0 in port 1.

After you both verified your settings are correct on both ends, press 'Start Kaillera' on the 'Configuration'-tab. The Kaillera-window will now be opened, and you can use a server from the list that appears on the screen or enter an IP of another Kaillera- server. You also select your connection type on this screen before you connect to the server. The yellow circle marks the connection types that are proven to work, any lower setting could render the game inoperable. Also read the section on frameskipping below. Be sure to use the same setting as your opponent (ie. both LAN (60 kf/s) etc...). The lower the connection type, the less data is send per second, and this could improve gameplay on slow connections.

Here the player selects a connection type before joining the server on which the game is going to take place.

If you are both on the server, one player creates a game using 'create game' on the bottom. After that, the other player can simply join the game, by selecting it and pressing 'join'. If you are both ready, the player that created the game starts it by pressing 'start game', and off you go!

One player creates a new game.

Other player can now select and join this game.

Finally, the player that created it can start the game, after which both emulators will start loading the game.

The emulator will now sync up (this takes a little while) and the game will be loading. You can now play just as you would play on a single computer, with the extra addition that the keyboard is shared. You can both press keys on it to choose extra options. For clarity and fair play, it is recommended that you decide beforehand who is handling the keyboard. In case of a higher ping, mouse response could be somewhat sluggish. Eight player operation is achieved solely through keyboard (you cannot configure eight joysticks or mouses).
TIP: when you press the scroll-lock key in WinUAE, the graphics display isn't updated which results in (for example) faster loading times! Press it once again to continue the graphics-update/game.

Extra options

1. Frameskip

You can find this option on the gameport-tab, as shown in the graphic. This option decides when Kaillera should send out information. To send out information everytime, you select the default: frameskip 0. To send out data each 2 frames, you select frameskip 1 and so on. This will speed up the game (as it wont have to wait for the internet-communication to complete everytime) but can desync your game in some cases! We tested a frameskip upto 2 and found it thrustworthy, sometimes keys could get lost however. Furthermore, frameskipping renders a special ability of the keyboard-code to handle multiple keycombinations (ie. ctrl-amiga-<key>) inoperable. Also note that as shown above, kaillera itself also implements a certain frameskip function. Setting both this one and the Kaillera option to the lowest setting wont work and will result in a lost connection. Please note that the server decides the amount of frameskip that will be applied in this case.

2. Stealth mode

This is an option on the Misc-tab and has nothing directly to do with Kaillera. What it does is preventing certain WinUAE-aware programs from detecting WinUAE and performing various tasks as quitting emulation etc..

2. Shell Replacement (by Inner)

This is also an option that has nothing to do with Kaillera itself. What it does is that when you enable it, WinUAE will fill all over the desktop-screen, and could be used as an explorer replacement while still allowing Amiga programs to be executed. Please note that to execute programs on Windows (this is achievable) you will need a program called "osexecute" which is included on a testdisk that accompinies this release. Format:
osexecute [windows executable] - this will run a Windows program, if spaces are used use doublequotes around the name ie. "C:\my documents\test.exe".
osexecute cmd [viewable file] (win2k/nt only)- this will open a viewable file (like an mp3)
Under Windows 9X this would be: osexecute command.com [viewable file].
Another parameter is to use /C as in osexecute command.com /C test.mp3 which will execute the file and then terminate.
Please note that this feature is unsupported. See it as a little preview of what is to come in a seperate release programmed completely by Inner, the author of this feature.

Troubleshooting

1. Very lagged/slow gameplay

This is most likely a problem with the internet connection. Verify your pings on both sides, or acquire a better connection. Long distances between two players also significantly increases lag. Also try increasing the frameskip option a notch or 2.

2. Desynced game (local player sees things the remote player doesnt etc.)

This can have multiple reasons. The most probable one is that you both used (slightly) different WinUAE-configurations. Make sure these are exactly the same, and try again. Furthermore do not change disks or go to the configuration window (F12) while playing a game! Another reason could be that the game is using certain code that doesn't allow for netplay. This could be certain 'random' functions that create different objects on both ends. Try another game. See also point 3.

The last reason, is a bug in the code. Verify the above thorougly and if that has no resolve send a detailed bug-report to sane@abime.net. Include the name of the game you were running, version (if applicable), network connection, ping to both ends (a traceroute would be nice too) and an exact description of what trouble you experienced.

3. Non-responsiveness of controls on other (or either) side.

This is most likely a configuration error of the Kaillera gameport remote-buttons. Make sure each player has the exact reverse of the local settings (see screenshots above) and try again. Also check if you are still connected (though you will get a messagebox if it happens that you are disconnected).

4. Where is the Kaillera stuff in WinUAE-Kaillera, I can't see it!

If you are using a translated version of WinUAE and thus have a "WinUAE_language.dll" file in the root of your WinUAE-Kaillera directory, rename it or delete it for now. All Kaillera specific items will only show up in the English version of the program.

5. I enabled sound on WinUAE but it is stuttering, why ?

Due to the nature of Kaillera (it waits between each frame to send data) the sound can not be updated continuously and will stutter. Best choice is to choose no-sound emulation for now.

6. It doesn't work!

We tested this release thorougly, still things could be wrong. Best bet is to wait for the next release to come out, or if you are sure it is the combination of Winuae+Kaillera (and not either program standalone!) send a detailed bugreport to sane@abime.net .

Thanks

First of all thanks to Brian King for his excellent port of UAE. Furthermore a big thanks to Christophe Thibault for making Kaillera and thus emulator-netplay a reality.

Sites

WinUAE-Kaillera : kaillera.abime.net
WinUAE : winuae.net
Kaillera : kaillera.com (you can download the Kaillera server here too)

Credits

Sane - WinUAE netplay idea and main-developer.
Thrill - Co-developer, writer of this doc.
Inner - Developer of Shell-Replacement option in WinUAE.

Bugreporting

sane@abime.net (use only this address)

Kaillera is (c) 2001, 2002 Christophe Thibault.