if(PATH)printf(" Hit, d=%d, checker = %x\n",entry->depth,f.checker);
if((entry->flags & H_LOWER || entry->score <= alpha) && (entry->flags & H_UPPER || entry->score >= beta)) { // compatible bound
d += (score >= beta & entry->depth >= LMR)*reduction; // fail highs need to satisfy reduced depth only, so we fake higher depth than actually found
- if(score > alpha && d >= depth || d >= maxDepth) { // sufficient depth
+ if((score > alpha && d >= depth || d >= maxDepth) && ply) { // sufficient depth
ff->depth = d + 1; return entry->score; // depth was sufficient, take hash cutoff
}
}