- else if (d > Depth(0))
- phasePtr = MainSearchPhaseTable + !searchTT;
- else if (d == Depth(0))
- phasePtr = QsearchWithChecksPhaseTable + !searchTT;
+ else if (d > DEPTH_ZERO)
+ {
+ // Consider sligtly negative captures as good if at low
+ // depth and far from beta.
+ if (ss && ss->eval < beta - PawnValueMidgame && d < 3 * ONE_PLY)
+ badCaptureThreshold = -PawnValueMidgame;
+
+ phasePtr = MainSearchPhaseTable;
+ }
+ else if (d == DEPTH_ZERO)
+ phasePtr = QsearchWithChecksPhaseTable;