hgm wrote:
Indeed. But the Vista OS that came with it won't.
And the drivers for the on-board video were only available in 32-bit mode, at the time I bought it, so it was not possible to run a 64-bit Vista on it...
Fair enough!
I had an inspired thought over lunch and just did a quick check to confirm it (I guess I'll be using some of my evening to do work instead now): the reason I was getting crashes from the 32 bit version of Sjaak was that it was trying to use SSE instructions on memory that was not aligned to a 64-bit boundary. Easily fixed, and it works properly now.
In perft on a large board, Sjaak takes a 100% speed penalty from running in 32 bits rather than 64 bits (in other words, it takes twice as long to reach the same depth). There should be room for optimisation there, so hopefully I can bring this down a bit.
I have something like that, but for me it only works so-so. Helps in some cases, but causes hopelessly optimistic pawn pushes in others. I don't think I have a scaling with game-phase for this though (I don't have it for any piece square tables, except for the king) and that may be why.
Indeed, that made the difference. Awarding pushes in the opening leads it to wreck its Pawn structure, and by the time you have it acceptable for the opening it becomes too reluctant to push in the end-game.
This is exactly the problem. Ok, maybe I could try that first.
That sounds reasonable, but beware that 'unobstructed' is a dynamic concept here: with Hoplites and FIDE Pawns moving at cross angles, the requirement is that the Pawn cannot be intercepted. So a FIDE Pawn on e4 will not be a passer if there are Hoplites in the triangle e5-h8-b8. (In Spartacus I had a table to mark such a board sector as function of the Pawn-Hoplite vector.) For Hoplites it was just too complex, and I did not make an effort; they are almost always passers. I only penalize them for being blocked where they are standing.
All true: this would not be a true "passed pawn" evaluation, it would be an evaluation term that decides whether it would be good to push a particular pawn forward or not. This would include true passers as well as candidates, but I expect the bonus would be (a lot) smaller than it should be for either of those specifically. It should still help, hopefully.
It's true that a simple check fails to recognise that a hoplite can intercept the pawn before it promotes, but then again: the fact that a pawn has no pawns in front of it doesn't mean that its path cannot be obstructed by other pieces. Of course, those pieces are then bound to blocking the path of the pawn, which is why it's still an advantage to have a passed pawn. How much of an advantage depends on the blocking piece, and in the case of a hoplite, the advantage would be almost zero (in the limiting case of a blocking enemy pawn, the advantage is of course exactly 0, since the pawn is no longer passed in that case).
Of course, this could all turn out to be unnecessarily complicated, but I'm having fun trying to come up with ways of doing it, so it's not time wasted.