EXchess v7.03 (beta), A chess playing program Copyright (C) 1997-2013 by Daniel C Homan, dchoman@gmail.com => For updates see: http://personal.denison.edu/~homand/EXchess.htm This is "beta" software, meaning it has not been extensively tested on a variety of systems and may still contain bugs. Use at your own risk. ------------------------------------------------- License Information ------------------------------------------------- This software comes with ABSOLUTELY NO WARRANTY of any kind. This program is freeware, distributed under the GNU public license. See file "license.txt" for details. I ask only that you e-mail me your impressions/suggestions so that I may improve future versions. *** NOTE: See notes on the source code version (below) for discussion of parts of this program that do not fall under the GNU public license and retain their own copyrights. ------------------------------------------------- A few General Notes ------------------------------------------------- The file "search.par" along with the opening book, should be in the directory from which EXchess is being run. Values in the "search.par" file can be used to modify how EXchess thinks. To use the endgame tablebases, put the endgame tablebase path and cache size in the "search.par" file. EXchess has a logging function which can be turned on by setting the relevant parameters in the "search.par" file. When logging is "on", a new log file is created each time the program is started. The "MAX_LOGS" number is the maximum number of log files that can be created. No new log files will be created beyond this number - you must delete the old log files first. The opening book released with EXchess was built from an excellent file of PGN games created by Norm Pollock and released from his webpage: http://www.crafty-chess.com/down/Pollock/. The opening book also includes learning results from thousands of games. The included opening book should work on most systems, but if not, see the notes below on how to build your own opening book with the source code version. ------------------------------------------------- Notes on Included Executable Versions (Binaries) ------------------------------------------------- For convenience, a few pre-built versions of EXchess are included in the distribution. These are for 32 bit Windows, 64 bit Windows, 32 bit Linux, 64 bit Linux, and Mac OSX. They are labeled appropriately. The pre-built versions include Tablebase support. For multi-processing on windows computers the pre-built versions use the pthread-win32 library available from http://sourceware.org/pthreads-win32/ These are all built on my home Linux or Mac computers, either directly or using cross-compilation. I have only tested them on one or two different systems, so if they don't work well for you, I recommend simply building from source (see below). If you wish to use the pre-built versions, find the correct one for your system and delete the rest. In the notes below, I assume the program is named "EXchess_console", so you may rename it if you wish. ------------------------------------------------- Notes on the console version for xboard/winboard. ------------------------------------------------- - Once compiled (see below) "EXchess_console" will be a text-based interface version of the program. - This version has a serviceable text interface or it can be run with Tim Mann's Xboard (Unix/Linux) or Winboard. EXchess should detect that it is running under xboard or winboard, but to make sure, you can include the 'xb' command-line option if you choose... winboard -fcp "c:\directory\EXchess_console xb" or xboard -fcp "/directory/EXchess_console xb" - To run EXchess in plain text mode, just type "EXchess_console" in the EXchess directory - There is an additional command line option "hash", you can set the hash size in megabytes like ./EXchess_console hash 128 (for a 128 megabyte hash file, for example) If this option is used with xboard or winboard, use the line winboard -fcp "c:\directory\EXchess_console xb hash 128" or xboard -fcp "/directory/EXchess_console xb hash 128" The default hash size is set to 128 megabytes in search.par and can be modified there as well. Note: Don't set the hash table size larger than about one-half of the available RAM. Doing so may cause swapping to the hard disk and slow the program down considerably. - Some basic help is available by typing "help" at the command prompt. - The file "wac.epd" is a testsuite and can be run by the "testsuite" command inside the program or directly from the command line: ./EXchess_console hash 128 test wac.epd wac_results.txt 5 Which will run the wac.epd test at 5 seconds per position and record the results into the file wac_results.txt... For the command line "test" option, the hash command must be specified first as indicated above. - The 'build' command lets you make your own opening book out of a pgn text file. It requires 1-2 times the size of the pgn file in temporary storage space on the disk. The 'build' command can currently handle pgn files up to 60 MBytes in size... To use a larger file, you will need to modify some definitions in book.cpp and recompile. - You can also build a special 'starting book' with the same command, but the format of the PGN file used is non-standard, see 'start.pgn' which comes with the source code version for the format. All moves in a 'starting book' will be played with equal probability. --------------------------------- Notes on the source code version. --------------------------------- This software naturally includes some code and ideas gathered from other places and these are indicated in the individual source code files. All of these instances remain the copyright of the original authors who reserve all rights and their original licenses still apply. A specific example is that EXchess supports endgame tablebases by Dr. Eugene Nalimov. Two functions in the file "probe.cpp" are modified from the examples given in Dr. Nalimov's 'tbgen' distribution. They are for interfacing with Dr. Nalimov's endgame tablebase code and are copyrighted by Eugene Nalimov. The functions are NOT part of the GNU Public License release of EXchess' source code. They are only useful if one separately downloads the 'tbgen' distribution, see "probe.cpp" for instructions. Other examples include... ** interrupt code for winboard on MS-Windows in the function "inter()" in the file main.cpp is from Crafty by Bob Hyatt. Crafy's license is open source with the provision that changes to the code are shared with the community Compilation and other points: - In my experience, EXchess compiles on Mac OS X, Windows (under cygwin) and Linux systems, although I only use Mac OS X and Linux on a regular basis. Earlier versions of EXchess would also compile fine under MSVC (via setting #define UNIX 0, and #define MSVC 1 in define.h), but I haven't tried it in several years. - The file "EXchess.cc" is provided which includes all the necessary source to compile EXchess. On my Mac, I issue the following command to compile the console version (from the 'run' directory)... g++ -o EXchess_console src/EXchess.cc -O2 -pthread Your command line and compiler options may be different. - The included opening book (main_bk.dat) should work on most systems, but if not, you will have to build your own opening book. You can do this starting from a pgn game collection file using the "build" command in the console version, see above. Don't bother with a 'starting book' unless you know what you are doing.