Here is the new version of my JavaScript chess engine!
I use this in my mobile chess apps, and since there is analysis, I wanted a better tool for this purpose. So a few months ago I spent some of my free time working on finding out what I could get out of my old code with the old HCE + small NN evaluation.
Here is a small list of the main elements:
use Math.clz32 when available
own native popcount64 wasm code when wasm is supported
improve move sorting (use see only inside the move picker)
use Typed Array rest of the code
improve see a little bit
more agressive nmp and razoring
fix memory overflow after "ucinewgame" command (don't realloc tt table)
fix "forfeits on time" in short time control (substract 50ms for lag)
revisited and refactored code (would be better rewrite from scratch..)
fix en-passant hash key update -> only when sq attacked by opponent
main eval is not changed (boring for me), still use HCE + small NN
60% faster NPS, so tomitankChess play full of strength with same eval
bit better draw detection
Known issues:
Fifty-move repetition may incorrectly ignore mate positions
Stop and quit commands are ignored in the Node.js environment
Future improvements aka TODOs: better time management
I added [exe] file for windows. Builded with Node v22.17.1
For other platforms or Node versions, need to install node.js:
Example for Arena GUI with node.js
Command line: direct acces to node.exe (C:\Program Files\nodejs\node.exe)
Command line parameters: direct acces to tomitankChess.js (C:\Program Files\nodejs\tomitankChessUCI.js)
[ENGINE]
Name=Lozza 9 JAVA
Author=Colin Jenkins
Filename=C:\Program Files\nodejs\node.exe
Parameter=C:\Chess\Shredder_12\Engines\Lozza\Lozza_9.js
[code]
[/quote]
Hi, now you can use my .exe file as well. :)
I hope it working well on your computer as well.