Unlike the ICGA Rybka investigators (Zach Wegner & Mark Watkins) the contra investigation highlights many important points that Wegner and Watkins missed, such as errors in the reversed engineered material which were deliberately withheld from the documents and deliberately withheld by the ICGA Secretariat from the ICGA investigation Panel.
Whereas the ICGA Rybka investigators could only find 5-7 differences between the evaluation of Fruit and Rybka, the contra investigation shows a long list, in short:
Every major evaluation ingredient is coded differently, mobility, king safety, passed pawns, double pawns, backward pawns, Rybka is missing Fruit's late endgame knowledge, Rybka has a material table – different from Fruit. Rybka does not contain Fruit's quad function, Rybka’s trapped bishop evaluation is different, rook evaluation is different, bishop pair evaluation different and most importantly, Fruit evaluates in stages in a unique way whereas Rybka adds directly to its score (as every other program on the planet does).
Other key differences between Fruit and Rybka:
Time control is different
Fen parsing is different
Rybka extracts the mainline from the transposition table (TT), Fruit via the classic triangle table
Rybka 1.0 beta displays a mainline of maximum of 10 moves, Fruit produces much longer variations
Rybka uses a bitboard board representation whereas Fruit is mailbox
Rybka’s pawn value is 3200 (which is unique), Fruit uses the classic value of 100
The order in the evaluations of Fruit and Rybka are not similar
Rybka has lazy evaluation, which is absent in Fruit
Futility pruning is different between the two programs
Rybka uses Late Move Reductions (LMR) whereas Fruit uses history reductions
Fruit uses a history table which is absent Rybka.
Fruit only has one evaluation table (king safety) while Rybka has many
The two programs have a different move format
Rybka does not handle promotions to minor pieces
The two programs have different hash table code
They have different handling of repetitions and the 50-move rule in search
Fruit maintains piece-lists which are not present in Rybka
Fruit maintains a pseudo "bitboard" for pawns, Rybka has the real thing.
Contrary to Fruit, Rybka needs to update 4 rotations of occupancy bitboard
Contrary to Fruit, Rybka updates a rough estimate of material balance with weights of 1:3:3:5:10 (in the evaluation this value is then corrected by a delta obtained from the material table)
Fruit has a 16*16 square mailbox, Rybka has an 8*8
The programs have different Zobrist hash keys
The programs have different user interface options
If you are interested is reading this whole article please find below:
Rybka case "greatest injustice perpetrated in computer chess history"