Would you like to react to this message? Create an account in a few clicks or log in to continue.

Chess2uLog in

descriptionDjinn EmptyDjinn

Djinn Djinn10

by Tom Likens

descriptionDjinn EmptyRe: Djinn

Djinn 0.967 (Windows/Linux & 64-bit)


descriptionDjinn EmptyRe: Djinn

Djinn 0.969 (Windows 32-bit & 64-bit / Linux 64-bit)


- Refactored the EPD test suit code to use an STL "vector<epd_t>"
data structure rather then the manual malloc/free mess I previously
used. The new code is *infinitely* cleaner and I no longer have
to worry about managing the memory, (a definite plus). And there
is no performance hit since these are ancillary functions to the
engine proper.
- Fixed a *very* nasty bug that has been in the code for years!!
The problem was that in the switch statements used to cutoff the
search if an EXACT hash match/move was found. The hashing code
was fine, but the call to "fixup_pv()" which probes the hash
table in an attempt to restore the truncated principal variation,
was only called if the node in question was a PV node (i.e. not
a CUT or ALL node). All good and well except that the depth
returned back up the tree was incorrectly set to 0 if the
"fixup_pv()" function wasn't called!! This result was that this
bug truncated the PV deep inside and (rarely) even back to the
root. Screwing up a lot of things (move ordering, PV etc.)


descriptionDjinn EmptyRe: Djinn

Djinn Configuration

Tom Likens wrote:
You should copy either of these files to same directory that the executable is in:


These files allow you to turn off the log file creation and set the amount of memory it uses for the hash tables. If you don't use these files it will only use about 52M. With the settings in the configuration files that number will get upped to 128M (and it will play much better).

You may also want to copy the "winboard.ini" to the executable directory as well, (you can tweak it however you want of course, but...)

Please add the command line option "-xboard" when you invoke the program, as that will get it off on the right foot with Arena, Winboard, xboard etc. In the same vein, these command line options will override the configuration file and allow you to turn off the EGTB, logging, loading of the opening book etc.

-xegtb -xlog -xbook

descriptionDjinn EmptyRe: Djinn

Djinn 0.969 @ CEGT - rating lists November 04th 2012

Djinn 0.969 w32: 2246 - 1000 games (+ 62to v. 0.920)

descriptionDjinn EmptyRe: Djinn

Djinn 0.971 (Windows 64-bit / Linux 64-bit)

- Modified the way the configuration file is parsed. It now accepts path names that contain spaces. The path names can be enclosed in double quotes or not. Either way of defining the path should work.
This should make things work better under Windows.

- Restructured and enhanced the time managment code so that it handles millisecond resolution time controls.

descriptionDjinn EmptyRe: Djinn

Djinn 0.979 (Windows x64/32 & Linux x64)

the changes since the last release:


20-JAN-2013 (Ver. 0.979)
 S  o Changed the history table from "HistoryTable[side][piece][from-to]"
      to "HistoryTable[side][piece][to]".  After extensive testing the
      difference between the two methods was indistinguishable.  But,
      that's not the end of the story; the second method is far more cache-
      friendly on modern CPUs, so that overall it's a winner.
 S  o Tweaked the extensions a bit (nothing too major).

 S  o Simplified how killers are handled.  Djinn has always used two
      killers with a fail-high counter for each move.  After a lot of
      CCC discussion I decided to remove the counter and simply always
      replace the first killer with the new fail-high move while moving
      the previous #1 slot killer into slot #2.  This simplified things
      and in testing works at least as well as the old method (if not
      better).  Anyway, simplier is always better so it's here to stay.
 B  o Minor bug fix in the routine sorting the mundanes.  It was only
      preserving the MVV/LVA order for moves with an equal SEE value.
      This is now fixed so that the MVV/LVA order is preservd across
      all winning/even mundanes.

 S  o Modified the way the aspiration window is searched.  The program
      gradually expands the window before jumping to +/-MATE.
 E  o Changed the king safety routines so that they are now checked in
      the endgame as well as the middlegame, if the enemy still has
      their queen.  Also fixed a minor bug in how the king's pawn cover
      was being calculated.  The pawn cover for both black and white,
      (wheter the player castled kingside or queenside) is now scored as
      if they had castled to the white kingside.  I know this sounds a bit
      confusing, but it works better and really is more consistent.  It
      also makes tuning the bonus (or penalty) easier.

 I  o Added the "prevfen" command.  It's analogous to the "nextfen"
      command to allow a user to walk backwards after loading a EPD file.
      The command can be invoked with "prevfen/prev/p".  I also modified
      the code that loads an EPD file to check that all the FEN strings
      are legal when the file is read and to report any errors it finds.

 E  o Reworked the code that detects a draw when one side only has a
      rook's pawn and the wrong-colored bishop.

descriptionDjinn EmptyRe: Djinn

Djinn 0.987

Win32/64, Linux64

- "I think this version should be at least +40 elo stronger than 0.979"
- increased the maximum ply depth to 64
- added popcnt instruction for 64-bit
- added "beta razoring"
- fixed a bug in the "fixup_pv()" function [memory overwrite error]
- added configuration file options "ics-tell" and "ics-depth"
- fixed matescore error
- fixed SEE bug
- fixed queen side castling bug

descriptionDjinn EmptyRe: Djinn

Djinn 1.006 is available

descriptionDjinn EmptyRe: Djinn

Djinn 1.007

descriptionDjinn EmptyRe: Djinn

Djinn 1.010

The author writes:

Nothing world shaking. It seems to be stronger than 1.008, and it's holding its own against Fruit 2.1 (which I consider a milestone). Here was the result of the latest match I ran, it's nothing conclusive but Fruit 2.1 isn't stomping all over it either.

Total played: 3353 (unique games: 3353)
Note, only unique games are scored.
Player Wins Losses Draws Score Percent
Djinn 1.010 WIN64 1127 1068 1158 1706.0/3353 (50.88%)
Fruit 2.1 1068 1127 1158 1647.0/3353 (49.12%)

ELO Diff: 6.11
P(p1>p0): 89.60%

You can find it here:

Anyway, a few new things--mostly optimizations and speeding things up a bit.

21-JAN-2014 (ver. 1.010)
R o Refactored the knight outpost code. No elo increase but the code
is much easier to read. This will be the version that plays in
CCT-16 (which is coming up this weekend).

E o Added a penalty for a rook with limited mobility being trapped
in the corner by its own king. This was inspired by my revisiting
the CCT-15 game against Goldbar (in preparation for CCT-16).
Djinn totally embarassed itself by leaving its rook trapped in the
corner for almost the entire game. It was lucky to escape with
a draw (it probably should have lost). This was worth about 5 elo.

E o Retuned my piece square tables a bit due to an interesting thread
on the Talkchess forum. I still don't have a great way to auto-
matically tune an entire table, but I'm working on it.

There were a few other things, as I mentioned mostly micro-optimizations. I think this is the best version of Djinn so far, but of course that's a low bar! Very Happy

As mentioned in the notes, this will likely be the version that plays in CCT-16.

descriptionDjinn EmptyRe: Djinn

Djinn 1.021

descriptionDjinn EmptyRe: Djinn

Permissions in this forum:
You cannot reply to topics in this forum