Is there a simple way to compile Embla under Windows using MinGW or MinGW64? I tried but failed even after uncommenting some Linux-specific pieces of code ...flok wrote:Possibly yes, but I have no idea where.
Note that the movegen is a bit slow, that doesn't help either.
Regarding your move generation, I think it is not inherently slow. But I see two issues that very likely slow down your engine IMO:
1) My old review comment that I made several times already You generate moves for both sides, only to be prepared for a later mobility calculation during static eval. But:
- Mobility does not involve king or pawn moves, so you go through both move lists again during mobility calculation and exclude these, counting all others. That is a lot of wasted effort.
- The effort for storing the opponent's moves in memory, instead of only counting them, is totally wasted, not mentioning the extra effort for the most complex part of move generation which is generating pawn moves.
- And in many cases you don't even call the static eval during search so that mobility will not be calculated.
2) You use the same move generator for full-width search and for quiescence search. So in QS you go through the move list and remove all quiet moves which is a lot of effort. You'd better use a separate move generator for captures and promotions (after fixing mobility calculation as mentioned above).