summaryrefslogtreecommitdiff
path: root/src/searchsup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/searchsup.c')
-rw-r--r--src/searchsup.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/searchsup.c b/src/searchsup.c
index c7ac842..8d15e57 100644
--- a/src/searchsup.c
+++ b/src/searchsup.c
@@ -252,6 +252,21 @@ ComputeMoveScore(IN SEARCHER_THREAD_CONTEXT *ctx,
{
ASSERT(iMoveScore > 0);
iMoveScore &= STRIP_OFF_FLAGS;
+
+ // _ScoreAllMoves (generate.c) bakes a flat +120 move-ordering
+ // bias plus small MVV-LVA tie-break nudges
+ // (PIECE_VALUE_OVER_100 terms) on top of the real SEE/
+ // material-diff value for winning/even captures and
+ // promotions -- harmless for sorting (every capture gets
+ // the same treatment), but this function's callers use the
+ // result as an eval-axis quantity (compared against
+ // material-scale margins in futility/extension code), so
+ // back the ordering-only bias back out to recover the pure
+ // SEE/material-diff value, same axis as the raw
+ // PIECE_VALUE() fallback below.
+ iMoveScore -= (PIECE_VALUE_OVER_100(mv.pCaptured) + 120 +
+ PIECE_VALUE_OVER_100(mv.pPromoted) -
+ PIECE_VALUE_OVER_100(mv.pMoved));
}
else
{
@@ -439,7 +454,7 @@ Return value:
// Singular response to check...
if ((mv.pCaptured) &&
- (iRoughEval + 225 < iAlpha) &&
+ (iRoughEval + 400 < iAlpha) &&
(iMoveScore + 75 > iAlpha))
{
*piExtend += ONE_PLY;