I implemented one change and ran a few test suites on it to see if it helped or made things worse, and then tried implementing one more and so on.
These are the changes I have tried so far:
- Killer moves verification (avoids generating unnecessary moves)
- Passed pawn values halved in middle/opening
- Fixed a bug with queen's x-ray attacks
- Dynamic null move depth
- Slightly optimized futility pruning
- Increased bonus for rooks/queen on 2nd/7th rank
- Fixed bug with black queen on 2nd rank bonus
However by testing them one by one I noticed the worse result in the test suites was only due to the last change. Without it the results were actually slightly better than without the changes.
The bug (as I mentioned before I think) was black queen getting the bonus for being on the 7th rank instead of on the 2nd rank. This is obviously a bug and should be fixed, but resulted in quite a few points less in the test suites I tried for some reason, this is just a coincidence and should not affect general play in that way.
So I am going to stick with these changes, even though they actually do not seem to affect playing strength at all. I will not release a new version until there is a clear improvement however, but at least I have gotten somewhere.
I have a strong feeling the dynamic null move pruning (reduces 3 ply if the remaining depth is deeper) helps more at longer time controls, but at least it does not hurt the play at shorter time controls.