Contents Home
Download
Install
Use
Customize
Troubleshooting
About the developer
FAQ
Links

Contact me Email: chessgame-analyzer@creatica.org
Say "thank you"
Do you like Chessgame Analyzer?

Customization

The information below assumes that you have already downloaded and installed Creatica Chess Game Analyzer. If not, please go to Download or Install page.

All configuration parameters are well documented in the configuration file chessgame-analyzer.exe.config.

Adding Other Chess Engines

If you have other UCI-compatible engines (Komodo, Houdini or something else) that you want to use with Creatica Chess Game Analyzer, then need to add them to the chessgame-analyzer.exe.config file. Open the file in Notepad.

Read the comments in the config file. You would need to modify a value for a particular parameter. For example, if you have Komodo chess engine, then you need to set the value for komodo parameter to the full path of your Komodo executable. If you have Houdini chess engine, then do the same for houdini parameter. If you have a different engine, you should modify user_engine parameter's value instead.

engine config

Save the chessgame-analyzer.exe.config file.

Right click chessgame-analyzer.exe and select "Run as Administrator".

Changing the Language

lang parameter in the chessgame-analyzer.exe.config file determines the interface: "en" - for English and "ru" - for Russian.

Various encondings of PGN, ECO files and templates

The default encoding of PGN, ECO files and templates is utf-8. It may be changed in the chessgame-analyzer.exe.config file. See pgn_cp, eco_cp and comments_cp parameters. The encoding name must exist in System.Text.Encoding.GetEncodings()[].Name. For example, for Windows Russian encoding of pgn files, use "windows-1251" for the value of pgn_cp.

Autoconfig (tested on Windows 7 and 10 64-bit)

The application is capable (I have only tested it on Windows 7 and 10) of automatically detecting your default chess GUI, the bitness of your OS (x64 parameter), whether your CPU supports BMI2 and POPCNT instructions (bmi2 and popcnt parameters), the number of logical processors in your computer (threads parameter) and the free physical memory (hash_size parameter). The first three parameters (x64, bmi2 and popcnt) help to choose the optimal Stockfish binary for your computer. The second two parameters (threads and hash_size) are used to configure the chess engine for the best performance.

If for some reason autoconfiguration does not work on your computer, it may be disabled in the chessgame-analyzer.exe.config file. Set auto_config parameter to False. In this case, for the best chess engine performance, I recommend you to specify threads and hash_size manually in the configuration file.

You should also manually either set the stockfish parameter, which is the name of the stockfish binary, such as stockfish_8_x32.exe, stockfish_8_x64.exe, stockfish_8_x64_bmi2.exe, stockfish_8_x64_popcnt.exe or x64, bmi2 and popcnt parameters, which would help to determine the stockfish binary automatically.

Please note that stockfish parameter if not empty, will overwrite auto_config or binary assignment based on x64, bmi2 and popcnt parameters.

Move time

Default time per ply (semi-move) is 5 seconds. It can be changed movetime parameter in the chessgame-analyzer.exe.config file.

Depth

The depth parameter is measured in the number of plies (semi-moves). Depending on the speed of your computer and the move time, the default depth of 24 plies may or not be reached, especially at the beginning of a game. It may only play its role when the move time is too long or depth is too shallow. Another words, when the engine reaches the specified depth prior to move time elapses, the position analysis is stopped. You may change it in the chessgame-analyzer.exe.config file.

Please note that some engines (for example, Komodo) honor depth over movetime. This means that the engine will continue to search for the best move until the given depth is reached even when the movetime is over.

Number of variations

The multipv parameter sets the number of variations. The default is 2. 1 would give the best performance - the maximum depth for a given time. Increasing the number of variations will somewhat degrade the depth, meaning that an engine would require more time to provide the same depth as with single variation.

Inaccuracy, Mistake and Blunder Definitions

If the default values for inaccuracy, mistake, blunder parameters (0.3, 1 and 2 respectively) are unsatisfactory for you, then you may change them in the chessgame-analyzer.exe.config file. They set the threshold. If the difference in score between the engine's best move and a game move exceeds any of them, the respective comment along with the best and continuation are printed to the console and added to an "*-analyzed_by_<engine>" pgn file.

Houdini Tactical Mode

If you have Houdini chess engine, it supports the tactical mode. The normal playing strength of the engine is reduced but its tactical problem solving skills are significantly increased. It may find the tactics much faster than any engine in a normal playing mode. This mode is often used to solve chess puzzles. To analyze a pgn file with Houdini in Tactical Mode, simply click on "Analyze with Houdini Tactical Mode" in the pgn file context menu.

Chessbase position evaluation

By default, Chessbase position evaluations are set to Auto. If your default GUI is indeed Chessbase, then evaluations will be automatically added after each move in a format "(<score>/<depth>)". You may enable this feature for other GUIs by setting the insert_chessbase_evals parameter to True in the chessgame-analyzer.exe.config file. You may also disable it for Chessbase GUI by setting it to False.

Display evaluations in the console

By default, the position evaluations are shown in the console after each move in a format "(<score>/<depth>)". You may disable this feature by setting the display_evals parameter to False in the chessgame-analyzer.exe.config file.

Maximum number of plies in variations

The default value is 16. If you wish, you may change eval_max_depth in the chessgame-analyzer.exe.config file.

First move

Since version 2.1.0.0 it is possible to analyze the game from any move. By default, the engine analysis begins with the fifth move. You may set parameter first_move to any number.

Since version 3.0.0.0 there is another parameter called first_move_db that sets the first move to search the giant chess database for statistically best moves and variations. The default is 1.

How to disable chess engine analysis?

It is possible to search just the giant chess database for statistically best moves and variations without analysing the moves with a chess engine. Set engine_analysis to False to disable it. By default, it is True.

How to disable the giant chess database search?

To turn the database search off, set db_search parameter to False. By default, it is True.

Giant chess database file

Parameter db_file sets the full path to your giant chess database. The database must be SQLite with a single table created by the following statement:

sqlite> .fullschema
CREATE TABLE next_moves (hash integer, 
                         next_move varchar(8), 
                         move_colour tinyint, 
                         score smallint, 
                         games int, 
	constraint hash_move primary key (hash, next_move, move_colour) on conflict ignore) without rowid;

where hash is Zobrist hash of a position, next_move is the next move in SAN notation, move_colour is 1 when the next move is white's and 0 - when its black's turn, score is an outcome of all games where the move was played calculated as follows: if white wins, then add 1, if black wins, then subtract 1, if it was a draw - ignore. games is the number of games where the next_move was played.

Creatica Chess Game Analyzer comes with chessdb-compiler.exe, utility that builds giant chess databases for super fast searches from chess databases in pgn format. The precompiled compressed database KingBaseLite2017.zip (with the latest update being KingBaseLite2017-07.pgn) is also available for download from my Google Drive.

Discard rare database moves

Parameter db_discard_rare_moves set the minimum percentage of games where the next move was played. If the actual percentage is below this value, then the games where such move was played are excluded from the statistical calculations. Default value is 5 percent.

How to enable a chess engine evaluation of variations

Evaluation of the position and engine's next moves are provided by default. There are two parameters for enabling evaluation of positions at the end of variations: var_eval and db_var_eval. The first one will enable evaluation of chess engine variations, the second one is for database variations. To speed up the game analysis, they are both turned off by default. To enable them, set their values to True in the configuration file.

Giant chess database cache size

Number of (usually 4KB) pages allocated for SQLite database file caching. Default is 0, meaning autoconfiguration. To set it manually, use cache_size parameter.

Mmap size for SQLite giant chess database

Mmap size is the maximum number of bytes of chess database that will be accessed using memory-mapped I/O. By default, it is 0, meaning autotuning. To set it manually, use mmap_size parameter.

Maximum allowed memory usage by the program

Default is 90 percent of available physical memory. To change it, use use_mem parameter.

Annotation template

Annotation template file name is configured via comments parameter. Three different annotation styles in English are provided with the program: professional (comments_pro.txt), semi-professional (comments_semipro.txt) and amateur (comments_amateur.txt). Three Russian styles are also included.

Templates can be modified to suite your taste. Each template file is well documented.

If you wish to write them in your own language, you may need to set annotation file encoding. It is defined in comments_cp parameter and defaulted to utf-8.

Engine Priority

Since version 2.2.0.0 it is possible to configure chess engine process priority. By default, it is set to BelowNormal to prevent your computer from occasional freezes. You may configure parameter engine_priority in the chessgame-analyzer.exe.config file with the following values: Normal, AboveNormal, High, RealTime. I would not recommend going higher than Normal.

Pgn-extract.exe line length

By default, parameter line_length is 4096 characters, which is enough for the most games. For super long games it might be necessary to increase it.

ECO file

You may use your own chess game classification file (default is eco.pgn) by setting eco_file parameter in the configuration file chessgame-analyzer.exe.config.

Turn ECO on and off

If you like your existing ECO classification in PGN file, you may turn my ECO classification off by modifying the eco_disabled parameter in the configuration file chessgame-analyzer.exe.config. By default, it is set to False, meaning that my ECO classification is enabled.

How to use giant chess database compiler chessdb-compiler.exe

If you wish, you may execute it as Administrator, the same way you did chessgame-analyzer.exe file. It will create a context menu "Compile SQLite database". When you click on your giant chess database in pgn format and choose "Compile SQLite database", the command line window will open and the database compilation will begin. Depending on the number of games in your pgn file, it may take a few minutes. It takes approximately 25 minutes to build a database containing 1 million games on Intel Core i3-3120M 2.5GHz CPU with SSD disk and 4GB of memory.

If you want to use multiple pgn files to compile SQLite database, you may either combine them all into one or after compiling the first file, switch to the command line and continue from there. The first argument must be the new pgn file and the second one is your SQLite database, for example:

	chessdb-compiler.exe KingBaseLite2017-08.pgn KingBaseLite2017.db

You may use the same approach to update KingBaseLite2017.db when new updates become available from http://www.kingbase-chess.net. The last update that has already been applied to it was KingBaseLite2017-07.pgn.