ABYSS32 was originally written by Valery CLAUDEPIERRE for iPIII platform. The tests show it is not far from ScrZebra 01/2003's performance * for my computer only * (650 MHz, 256 Mb SDRAM, 16 Kb L1 data/code cache, 256 Kb L2 cache). I expect tests to turn to ScrZebra's advantage on other platforms such as P4 : - MMX latencies are very high and I use MMX permanently (move generator, bitmobility, copies...) - P4 L1 data cache is (was ?) twice as tiny : 8 Kb, so I should have a problem with my current move generator. - I coded for PIII CPU only, so it is not optimal for others Test and see. AMD's CPUs have a L1 data cache of 64 Kb, so... tell me, Richard ;-) USAGE This is a demo/beta version. IT ONLY SOLVES SCRIPTS FROM 13 TO 24 empties on Win9x platform. 1/ Make a new folder, unzip the archive. 2/ You have to download BZIP2 or a compatible archiver to unzip the necessary pattern data file : ABYSSCOF.BZ2 must be renamed as ABYSS32.COF 3/ TESTS\*.* gives some test results. [I put the script LOPSIDED.TXT to show ScrZebra is unbeatable with lopsided positions thanks to its "stable squares algorithm", that I did not code yet] Just type "MIL404 MYSCRIPT". If too many empties or not enough, the problem is skipped. Please feel free to test it with your CPU, report any bug, share ideas... If you have NT4 : I have just tried it, it deactivates root evaluation so you'll have plenty of nodes. The same on XP. Moreover, on XP the debug version (MIL404STATS.EXE) does not display the debug window. By the way, use my software to your own risk, I am responsible for nothing, that is what we say hey ;-) Win95 tests are alright, as far as I am concerned. IMPLEMENTATION DETAILS - Raw root evaluation, depth 4 to 6, not yet stored to the Transposition Table - BestFirst level : MTD+static evaluation+bitmobility, no MPC/no ETC yet - FastestFirst : a TT common with BestFirst, 1 million double-entries (64 MB) that fits automatically to number of empties. Not yet TTbestmove_first (because I simulated expected gain : about 2-3 % less nodes) ; ETC takes too much time. - FastestFirst w/o TT : probably a useless layer ; not efficient for the moment. Quadrant parity evaluation. - Weill's move sorting as usual, quadrant parity evaluation w/o TT. But it takes as much time as it spares nodes :-( Hoping a 5-10% gain with a new implementation. Bitmobility is an original idea from Richard Delorme. I improved it so it is efficient even for FastestFirst levels. Richard helped me much with Steepest Descent Method's understanding, for evaluation module (currently from 10 to 20 empties). I filtered the coefficients with Letouzey's method. About 900000 positions/level, 50 patterns from 5 to 11 squares. Legal Moves Generator is 100% my own, it is full MMX and relatively cumbersome. I plan to rewrite it with no LUT at all, my dream : on the wonderful x86-64 platform. (738$ for this 64-bit processor... I hesitate, it *only* goes to 1.8 GHz and it is quite expensive, even for a 85% gain. Hmmm... better algorithms only cost time. And we need thousands of CPUs to solve 8x8 Othello. Dunno... x86-64 is really seducing me - as an amateur developer, it is quite a challenge). I coded all this with many languages and tools. Those that fit me today are pure Win32Asm, together with Masm32's package. I used Symantec C/C++ 11.0c for pattern coefficient calculation and some debugging/minor purposes. This compiler is great for its IDE/profiler/sampler. BUT it is NOT the right tool for inline asm, believe me. WHAT COMES NEXT ? A midgame engine, with a kind of half-probcut MPC. BestFirst levels are not optimized, I shall code ETC and reduce time-consuming static evaluations. Unless someone solves 8x8 Othello before ;-)