I had overlooked the possibility of all moves in a node fitting the requirements for futility pruning. In some of my implementations this caused a very faulty value being recorded for the node, and in other the mate detection thought no legal moves existed and returned the stalemate score (0).
After having sorted this out, the new implementation of fuility pruning in Mediocre is working like a charm.
I started a little tournament to test it out and the results so far looks quite promising:
Engine Score MeAnd this is with futility pruning for only non-captures, so there is still some in there up for grabs.
1: Mediocre dev 0.31 20,5/30 ..............................
2: Mediocre 0.3 9,5/30 00=0=010101=110=0=00=0000=0001