1. I generate moves at first ply of Null Move.
2. After this I only generate moves for affected pieces and pawns.
How ?
For this I need a bitboard with :
- the actual position (the to)
- the position at ply-1 (the from)
- the squares affecting to and from
Yes I explain this very difficult (but my English isn't enough good). But here is a picture to explain better (I hope) :

With this bitboard you easily find that you don't have to generate moves for pieces in the "saved squares" area.
So in these 3 examples you have a gain of 14,19 and 16 squares (so 25% of the board).
Do you think this can save time ?
Anybody wants to try this and give speed results ?
Thanks for your nice comments.
Benoît (please don't forget I'm a bad bad programmer) ...
