[ Top ]
TChess

TChess
User Guide

TChess (c) copyright 2000, 2006 by Toxygen Productions.
Written by Michael Althaus. All rights reserved.

Introduction

TChess is a powerful chess program and runs on most Windows based systems. The main features of TChess at a glance

The design of TChess is made as intuitive as possible and this guide will not discuss every feature in detail. However, feel free to contact Toxygen Productions in case you miss a topic, have corrections or made a translation.

To improved readability, the following typographical conventions are used: Internal and external links, Simple and strong emphasis, TChess names, user interface elements and ...

... notes, like this one: This guide makes extensive use of CSS. If this note is not enclosed by a box, then your browser does not support CSS and an update is recommended (download Opera or Firefox - avoid a lot of troubles and boycott Internet Explorer).

User Interface

The main window is the only window visible by default and shows the chess board, some status information as well the menu. Actually it's the only window required to play a chess game. However, many tools create additional windows and as a result TChess will look more as shown in the screen shot below. Note that the tool windows are non modal, i.e. you can switch from one window to another.

TChess User Interface

Most commands have keyboard shortcuts. The shortcut key is shown in the menu to the right of the respective command (e.g. Alt-F4 to close TChess).

Chess - The Game

That's the point - to play chess. In case you are new to this game, visit

TChess has two game modes, local and network. Local mode is the default - once a network connection is established, TChess is in network mode. The active mode is shown by the second status line of the main window. Both modes have in common:

Local Mode

The settings used by TChess for a new local game are configured by the Settings=>Game Window. When continue a existing game, these settings do not apply.

Network mode

Start Network Game WindowIn network mode, the Server has to initiate a game, either by starting a new game or continue an existing. In either case TChess explicitly asks for the player color, which overrides any other setting. The Undo function and Engine games are not supported in network mode.

While a network game is active, TChess refuses to shutdown. A network game has to be aborted according to the rules, either by a accepted draw offer or resigning.

When the connection is interrupted in the middle of a game - do not panic: Simply reconnect and select Continue instead of New game. The very same way, a game can be suspended; however it is recommended to save the game to a file though.

Game History

Game HistoryTChess keeps track of all game moves in the game history. The content of the history can be saved to a file anytime, while - for obvious reasons - loading is only possible when no game is active and also replaces the current history. You can resume a game at the current game history position with the Game=>Continue command or clicking the middle button in the Game History Window. TChess does not support multiple game variations and moves ahead - including the current - are removed from the history by the Continue command.

You can use the cursor and home/end keys to navigate in the history, even the history window is inactive or hidden.

Game Files

TChess uses the portable game notation (PGN) format for game files. PGN is the state of the art format to exchange chess game data and many other chess related programs do support it.

When loading a PGN file into TChess, a error message is not necessarily a reason to panic. PGN files describing multiple games are not uncommon, though TChess can manage one game at the time only. An error message is thrown to indicate more data, although the first game of the PGN file is loaded.

The Forsyth-Edwards Notation (FEN) is a convenient format used to describe a particular chess game position. TChess supports FEN data embedded in PGN files. Also you can copy/paste FEN to/from the clipboard.

Chess Engines

TChess has a build in chess engine, which is in an early development phase and very limited. Also the engine acts even more strange, when playing white... Anyway, to play seriously a chess game against the computer, it is strongly recommended to download a WinBoard compatible engine. There are many free engines available on the web - only two are recommended here: Crafty is a strong engine while Slow Chess Blitz is a stunningly fast opponent.

Winboard Engines

Chess Engine ConfigurationOnce you have downloaded an engine of your choice, open the Settings Window, switch to the Engines Entry and select the Use WinBoard engine option, as shown in the screen shot. The Select button is no longer greyed; click on it to open a file dialog where you can select the engine binary file you've downloaded before. Note that engines often are in a compressed file format such as ZIP and require to be decompressed before TChess can use them.

Engine Configuration

Engine SettingsChess engines are usually very strong players - often too strong for an average human player. With the Settings & Features options you can configure the play of a chess engine in a wide range:

Some engines do not properly report unsupported or invalid configurations. Check the engine documentation whether a feature is supported or not.

Dual Engine Battles

A feature just for fun or for developers is the Dual Engine Battle mode. When activated, two different engines can fight each other. To start a dual engine battle, you also have to select Engine for the white as well the black player. Note, that a human player always plays against engine #1 - regardless of the Dual Engine Battle option. Also the Settings & Features options apply for both engines and can not be set individually.

It is not recommended to activate pondering for engine battles (unless on system with multiple processor cores). Doing so has an impact on the overall performance, as both engines concurrently and permanently use the processor cache - very ineffective.

Network

TChess does not only support network games, it also improves communication with a build in chat (NetChat) and audio feed (NetTalk). Furthermore the configuration is simplified by Rendezvous which, by the way, has nothing to do with fruits...

This chapter will address some fundamental network topics in a simplified form and may not reflect all details accurately. If you are interested in the whole story, follow the links...

Connections

When you do a phone call, you dial a number which uniquely addresses your counterpart's phone. This is very similar for network connections, where one side is waiting for the call (the Server) while the other (the Client) has to call the right number - the Internet protocol (IP) address and the Transmission Control Protocol (TCP) port. However, the IP address is usually not permanently assigned to a computer, thus makes a call much more complicated.

With Rendezvous

Rendezvous disburdens the user from abstract network configuration and provides a central directory for all participants, which are uniquely identified by a name/password combination.

Rendezvous is disabled by default and has to be activated by selecting the Use Rendezvous check box found in the Settings=>Network Window.

As first task both participants have to agree on an name and password - the so called session id. Name and password are arbitrary, tough have to be 8 to 16 characters in length and it's recommended to chose fancy phrases to avoid conflicts with other Rendezvous users. Note that this step is required once only, as a session id can be reused.

Rendezvous Login WindowConnect WindowMake sure Rendezvous is activated and initiate a connection by selecting Tools=>Network=>Connect from the menu. The Rendezvous Login Window pops up where you can fill in the session settings. A click on Connect initiates the handshake with the Rendezvous Server. If no other Rendezvous user with the same session id exists, your request is announced and TChess shows the Connect Window to wait as Server for a Client to connect. On the other hand, when a user exists TChess immediately initiates a connection to this user. Plain-vanilla.

Note that announcements are cancelled by the Rendezvous Server after a grace period of 30 minutes. If no connection is accomplished within this time, you have to login again.

Using Rendezvous does not solve the Firewall nor Router problematic - for details read the Firewalls & Routers chapter below. Also Rendezvous has the drawback that any participant can become a TChess Server, thus has to configure the system accordingly. Also have a look at the FAQ section for additional tips and tricks.

Without Rendezvous

Network Configuration WindowUsing the assistance of Rendezvous is strongly recommended. Though Rendezvous does not work when both participants are connected to the same private network (LAN/Intranet) and it's the only way to setup
the network configuration manually.

The first step is to agree on who will be the TChess Server. The Server has then to select the I'm the Server option in the Settings=>Network Window, forward its IP address and TCP port to the Client and initiate a network connection by the Tools=>Network=>Connect menu option. Note that the Server has to initiate the network connection before the Client does.

The Client deselects - of course - the I'm the Server option, fills in the IP address and TCP port as given and initiates the network connection. If everything is configured the right way, the connection is established within a few seconds.

The Probe my IP tool identifies the IP address the computer uses to communicate with the public internet. Consequently an internet connection is required to work properly. Also it is not of help for LAN setups which do require the private IP address.

NetChat

NetChat WindowOnce a network connection is established, you can use NetChat to send text messages to your opponent. Note that the NetChat Window automatically pops up, when a message arrives.

NetTalk

To make conversation even more convenient, TChess features a network phone for real time speech communication - NetTalk.

HeadsetSoundcard In order to use NetTalk, you have to prepare a headset - i.e. a headphone with integrated microphone - and connect it with the soundcard of your computer. Soundcards usually have color marked connectors, the microphone input is pink and the headphone output green.

NetTalk WindowWindows Recording ControlOnce the headset is connected, start NetTalk from the Tools=>NetTalk menu. In case your system has more than one soundcard, make sure to select the right device, then click on the loudspeaker button NetTalk Icon to open the Windows Recording Control Window and select Microphone as the input source.

To test the setup, switch back to NetTalk and activate the Local option. Click on the Start button and speak into the microphone - you should hear your own voice with a small delay. If it's not working, have a look at the FAQ section for solutions to common troubles.

When NetTalk is active and you close the window, NetTalk mutes the input. You can still hear your counterpart but not vice versa. This behaviour is similar to the mute key of telephones.

The volume sliders of the NetTalk window are suitable for fine tuning only and can introduce distortion on extreme settings (values above 0dB).

Firewalls & Routers

These days it's simply careless to connect a computer without a firewall to a public network. A firewall supervises the network and blocks unwanted traffic. What kind of traffic a firewall treats as unwanted is defined by a set of rules. By default, many firewalls restrict traffic to a few well known protocols, such as the Hyper Text Transfer Protocol (HTTP) and completely refuse incoming connection request.

In private environments router with integrated cable or DSL modem are quite common. These so called internet gateways often have a integrated firewall. Also additional configuration is required to forward incoming connection requests.

Firewall Configuration

TChess uses a proprietary protocol for communication and naturally the TChess Server has to accept incoming connection requests. Refer to the documentation of your firewall how to allow

Many personal firewalls prompt the user to allow/deny traffic, as soon as an application tries to access the network. Nevertheless you have to explicitly allow incoming connection requests, as these firewalls rarely prompt for connection requests.

Router Configuration

A router provides an interface between two networks, for example the private network (inside) and the public internet (outside). Internet gateway router often use network address translation (NAT) to share an internet access among computers with a single public IP address. These computers are not distinguishable from the outside world, as they all appear with the same - shared - public IP address. This technique works seamless, except for the case a computer from the outside wants to contact a Server inside the private network. As the computer from the outside world sends its request to the public IP address, the router needs to know which computer on the inside expects the request - the so called port forwarding.

As soon a router is involved to access the internet, you have to configure port forwarding. It does not matter how many computers actually do access the internet through that router. However, internet service provider (ISP) often provide a complete internet access kit to simplify the setup for private customers. The kit consists of a router and software - the latter configures the router to forward all incoming traffic to the computer on which the kit is installed. Thus no explicit port forwarding is necessary.

Port forwarding, as the name implies, works on a per port basis. Refer to the documentation of your router how to activate port forwarding for the TCP port as set under Settings=>Network Window to the private IP address of the computer TChess is running on. As a reminder: All private IP addresses start with 10.X.X.X, 192.168.X.X or 172.16.X.X–172.31.X.X (X is a placeholder and represents any number).

For a given port, only one computer can be defined as the target. If the private network has multiple computers, you can use different ports and forward them to the respective computers.

FAQ

FAQ is an acronym for frequently asked questions. This section provides answers to common troubles and addresses many topics which did not fit elsewhere in this document.

If you have trouble running TChess or one of its components properly, make sure to have the latest TChess version prior wasting time on an already solved problem.

General

What is required to run TChess?
TChess runs on all Win32 platforms which support DirectX 7.0 (download DirectX). Though may not all features are present on older systems (in particular Win95).

TChess has not been tested on Win9X/ME - notify Toxygen Productions whether TChess runs or not on these systems.

Can I copy/redistribute TChess?
You can - as long you keep to the license agreement shown the first time TChess starts or by the Help=>License Agreement menu.
How can I contact Toxygen Productions?
For general requests, use the Help=>Contact menu of TChess. For bug reports, use the link provided by the System Information Window (Help=>System Information menu). You may also want to visit Toxygen Productions on the web.
Where can I download the latest version of TChess?
TChess is great - does Toxygen Productions provide other software?
Where can I find more information about Toxygen Productions?
Visit the homepage of Toxygen Productions www.toxygen.ch.

Underlaying Network

How can i verify if the router forwards connection requests to my computer?
If you have installed a firewall on your computer - what by the way is strongly recommended - you can do a online port scan and check the firewall log file. Most of the ports checked by the scanner should be listed with a message similar to incoming TCP packet on port XYZ rejected. However, this does not fully guarantee that the router forwards all ports. Read the next entry for additional details:
Is there a easy way to test if my system/network configuration is suitable for TChess?
The short answer:
Nope
The intermediate answer:
Well... There is a trick to test if your system is prepared to run TChess as server. It requires some effort and can not fully guarantee a proper setup though.
The long answer:
When TChess is configured as server and waits for a client to connect, any invalid connection request will result in an error message shown by the Connection Window. You can abuse a port scanner to do connection request from the public internet to your computer and watch the reaction of TChess. There are many online port scan services available on the web - for example Sygate or derkeiler.

Generally it's an ethical code to only port scan a system that belongs you. In particular don't do port scans at your office - some network administrators get totally upset by employees doing so. Also it can be forbidden by company policy sometimes. Seriously. You've been warned...

Unfortunately online services do not scan arbitrary TCP ports and usually do not cover the port used by TChess. This is also the explanation, why some effort is required and the check can not guarantee a proper configuration even on success. Anyway, here is what you can do:
  1. Find an online port scan service and make sure it tests the TCP port 8080 (this port is used by Web Proxy's)
  2. Configure your system to temporarily allow incoming TCP requests on port 8080, in the very same way you've done for the TChess default port.
  3. Configure TChess as server - make sure 8080 is set for the TCP port
  4. Initiate a network connection to put TChess in listening mode
  5. Start the online scanner. Keep a close eye on the TChess connection window, you should see something similar to Waiting for client and after a while - just for short - Client found followed by the final Connection failed; invalid client error message. Also the online scanner should report port 8080 as open.
    Note: In case the connection window shows an error without the Waiting for client message, another service on your computer is already occupying the port.
  6. Don't forget to undo all the changes made.
How can I determine my local IP address?
How can I find my router's IP address?
Is there a way to determine whether I use a Internet Gateway Router or a Modem to access the Internet?
The TChess System Information (Help=>System Information menu) lists all network adapter installed on a system. The network interface section may looks like:

LAN "Interface Adapter Name": 192.168.1.2 (n/a) 100Mbps
WAN "Interface Adapter Name": 97.96.125.9 (97.90.21.3) 50Kbps
The prefix of the network adapter is either LAN for a local (private) network or WAN for a public network (i.e. internet). If you can access the internet and a WAN adapter gets listed, you use a dialup modem, vice versa a gateway router. The number following the adapter name is the interface IP address and the number in braces is the router IP address (set to n/a so no router exists).

The System Information only lists connected network adapter. In other words, a modem gets not listed when no connection is etablished.

Rendezvous

Why did Rendezvous connect me to a complete stranger instead to my buddy?
What is meant by Conflict with other users?
To simplify the use of Rendezvous, no registration is required. The drawback is that a session id is not guaranteed to be unique. Multiple users can incidentally choose equal session id's, thus conflict with other users. Choose fancy phrases for the session id to minimize the chance of a conflict.
When I login, I get an error message similar to Unable to contact Server. What's the problem?
Most likely this error is provoked by:
  1. A broken internet connection. Check if you can visit a well known website with your browser.
  2. TChess is out of date.
  3. The Rendezvous Server is temporarily offline due service maintenance. Wait a few minutes and try to login again.
  4. The Toxygen Productions server is offline (unlikely as located in a high availability data center). Anyway: Visit the homepage of Toxygen Productions. If you get an error - gotcha.
  5. Toxygen Production has discontinued to support the Rendezvous Server.
When I login, I get an error similar to Server Error  followed by a number and a text enclosed in curly braces...
In case the announcement limit is reached, wait a few minutes and try to login again. Notify Toxygen Productions if this happens repeatably. If the text makes no sense to you, TChess is most probably out of date.
When I login, I get an error similar to Inquiry failed...
This error may indicates a session id conflict. Also it can happen when an announcement is close to the grace timeout period and was removed by the Rendezvous Server.
When I login, I get an error similar to Invalid Server or Invalid response...
TChess is out of date - check for an updated version.
Which data is send to the Rendezvous Server?
The session id and comment as given in the Rendezvous Login Window plus your public IP address as well as the TCP port.  The session id is send encrypted using RIPEMD160. At present (2006) it's almost impossible to guess the original plain text from the cypher text within reasonable time - the solution space exceeds 1048, which is roughly the number of atoms our earth consists of...
What about privacy - what is stored on the Rendezvous Server?
In case an announcement is made, the Rendezvous Server stores all data send temporarily up to the grace timeout period. In addition, the Rendezvous Server may store unpersonalized usage statistics permanently.
The web server - i.e. the Rendezvous Server host - may store log files permanently. This has nothing to do with Big Brother nor sneaky surveillance and is technically motivated:
In order to effectively manage a web server, it is necessary to get a feedback about the activity and performance of the server as well as any problems that may be occuring. [...]
Apache Web Server Documentation - About Log Files

Toxygen Productions guarantees that log files are used only to improve the service quality and not deliberately made accessible to third parties.

NetTalk

What is the NetTalk Local Mode?
Simply loops back the microphone input to the headphone output and named local, as no network connection is required.
I can hear my opponent, but not vice versa. What is wrong?
Ensure the microphone volume in the Recording Control Window is set to an accurate level and the microphone is really selected as the input source. Most soundcards have a microphone boost amplifier - in the same window, select Options=>Advanced Controls and click on the Advanced button below the microphone volume slider to activate it. Also your microphone input gets muted, when the NetTalk Window is hidden.
My opponent can hear me, but not vice versa. What is wrong?
If the NetTalk In/Out level meters show a signal, you probably have muted your soundcard output. Check the Windows Tasklist for an icon similar to Sound Icon (Old) or Sound Icon (New) to open the Play Control Window and set the volume slider to an accurate level. Also make sure the output is not muted.
I have tested NetTalk and everything was working. Then I tried it while in a network game and it didn't work. Why?
Hard to believe... Make sure the Local option is not selected, when using NetTalk for real.
How do I get rid of that annoying echo?
Microphones generate a very small signal and require a high amplification. However, if the amplification is set too high, the microphone picks up the sound generated by the headphone. Thus lower the input volume level.
Is it normal that the voice is distorted/of bad quality?
In one way - yes it is. To minimize bandwidth usage, NetTalk does not provide high fidelity audio. Though the quality is comparable to a good cell phone connection. If the signal is heavy distorted, click on the NetTalk Icon icon in the NetTalk Window - the Windows Recording Control Window pops up - and lower the microphone input volume.
All i hear is a very shrill sound!?
Congratulations, NetTalk is properly configured. Just the amplification is set far too high and the system oscillates, thus lower the input volume.
Why a headset - can I not use my loudspeakers instead?
Using loudspeakers greatly increases the chance of echo and oscillation, thus is not recommended.
Why is the voice chopped?
Why are there dropouts and/or audible clicks?
Short dropouts are a common limitation of the old windows multimedia layer (MMC) and can be forced by keeping the windows GUI busy (for the experts: the sound I/O has it's own thread and runs with real-time priority, though MMC still blocks! - it's one of the top entries in the to do list to overhaul the sound interface and change to DirectSound).
NetPing Result WindowNetTalk does not compress the audio signal and has quite a high bandwidth demand. An upstream with at least 192 kbit/sec is recommended. Also NetTalk is a real time application and sensitive to network latencies. Use the ping tool from the Tools=>Network=>Ping menu to check your connection. The round trip delay should not exceed 500ms.
If the same symptoms occur repeatable in Local test mode, then it's most likely a soundcard driver incompatibility. At least one driver has been found to not work according to the specification, though a hack was implemented which should circumvent this limitation. Anyway, contact Toxygen Productions in this case.
A quirk - but can help - is simply to stop and restart NetTalk.
Why does playback stop incidentally, but recording still works?
This is a soundcard driver problem; see the previous question.
I have tried everything - but NetTalk refuses to work...
It's hard to say what to do. Try to test the headset with another application, search the internet or ask a friend. Also make sure to check for TChess updates. If nothing helps, contact Toxygen Productions and include your system configuration as well as a description what you've tried so far.