Header imageHeader image

Requiem

Requiem is a WinBoard (protocol 2) compatible chess engine I have written. It is by all means not complete. Requiem is written in C and uses highly optimised assembler routines in many time-critical parts. Requiem uses many well known and many less known techniques such as rotated bitboards, PV search, null-moves, futility pruning, SEE and many more with no names yet. The evaluation function is at the present quite simple so don't expect very sophisticated games...But I will add new things and improve old stuff all the time.

Executable not available at the moment. And the development is now halted due to other things that keep me busy.

Some test suite results (AMD K6-2/500MHz):

- WACNEW: 266/300 (Requiem v0.52)

Future plans / missing features:

- draw recognition (3-fold repetition and 50 move rule): Requiem now draws in a winning position _way_ too often
- total rewrite of the command parser
- multi-thread support
- hash tables
- opening book
- improved evaluation function
- improved time handling
- learning
- the rest of WinBoard commands
- tablebase support

Known bugs (in the latest available version):

- a small bug that causes time trouble if you switch computer's side in the middle of the game
- Requiem can remember "only" 512 moves for "undo" -> if you exceed this, it will have a brain damage...

Version history:

v0.53 [26.9.2002]

- pondering implemented
- time management improved and made more secure
- "post" and "nopost" commands implemented
- "easy" and "hard" commands implemented
- "ics" command implemented
- many minor bugs fixed

v0.52 [7.2.2002]

- a minor bug fixed in futility pruning code
- a minor bug fixed in a few array definitions
- up to a 15% speedup:
· a few functions reconstructed
· futility pruning and extension routines improved (faster and more accurate)
· some critical routines optimized with assembler
· board representation altered
- null move mate thread extension added
- Requiem now moves instantly if there is only one legal move or if it has found a mate
- "setboard" command implemented
- "edit" command removed
- "analyze" and "undo" command implemented
- "usermove" command implemented
- aspiration window removed - to make things simpler (I'll test this more later)
- from this on the development is done on AMD K6-2/500MHz with Windows 2000

v0.51 [10.1.2002]

- a major bug fixed in speed measurement code that caused Requiem to allocate memory tens of MBs depending on computer speed

v0.50 [8.1.2002]

- "level" command implemented and all time controls with it (including incremental modes)
- support added for a couple of new protocol 2 features
- evaluation changed and cleaned a little
- a minor bug in quiescence search fixed
- a minor bug in computer speed recognition fixed
- quiescence search code is a lot simpler and a little faster
- Requiem understands "new" command from WinBoard during search (you can easily analyse test suites with Bruce Moreland's fine tool EPD2WB)
- "playother" command implemented
- "white" and "black" commands removed: Requiem now needs UI that supports WB protocol 2

v0.49 [16.12.2001]

- a major bug causing Requiem not to check time control often enough on fast computers fixed
- Requiem now polls for new commands during search: it will exit if WinBoard sends "quit" command
- pawn island evaluation _truly_ added (in version 0.48 I had commented it out at first...)

v0.48 [9.12.2001: the first version available for public]

- a major bug corrupting board structure fixed

v0.47

- pawn hashtables added
- pawn island evaluation added

v0.02 - v0.46

- the C version of Requiem was born
- all sorts of things added all the time
- all sorts of bugs fixed all the time
- all kinds of games played all day long

v0.01 [available on request]

- assembler-only version
- no WinBoard support
- impossible to maintain
- impossible to debug
- impossible to implement new things
- played lousy chess