Musashi 1.2

Musashi is my new chess engine. It is developed entirely in VB.NET (.NET 8.0) and is natively 64-bit. Like my old engine Naraku, it uses the UCI protocol. The name comes from the famous samurai Miyamoto Musashi.

The latest available version is 1.2 (20/09/2026). You can download it for free at the bottom of this page.

Based on my tests and on the testing conditions used for my rating list, its estimated playing strength is currently around 2640 Elo. It is therefore still slightly weaker than Naraku, my first chess engine, which I developed about 20 years ago, although the difference is relatively small. A significant part of the gap is due to the programming language: Visual Basic is considerably slower than C, which affects the engine’s playing strength by at least 50–60 Elo.

My goal is to reach and eventually surpass the strength of the old program, while keeping it entirely in Visual Basic.

These are the program’s current features:

  • Chess engine using the Negamax algorithm with alpha-beta pruning and Principal Variation Search (PVS/NegaScout), and with Internal Iterative Deepening.
  • Transposition table and quiescence search.
  • 64-bit bitboard-based board representation, using magic bitboards for bishop and rook attack generation.
  • Move ordering based on MVV-LVA, killer moves, and the history heuristic, with SEE used to prune unfavorable captures.
  • Hand-crafted evaluation function (no NNUE), which currently includes the following main terms: static piece values (tapered), middlegame and endgame PSTs, piece-specific mobility, king safety with pawn storm and pawn shelter, bishop pair, knight and bishop outposts, passed, candidate, hanging, doubled, isolated, and protected pawns, rook supporting a passed pawn, rook on an open file and on the seventh rank, material imbalance, and, for the moment, some simplified endgame heuristics.
  • The evaluation function is optimized using an evolution of the Highlander algorithm, which has now become a more complete evolutionary algorithm. In the future, I may switch to Texel’s Tuning Method or another approach, depending, of course, on whether the Texel tuning license is compatible with a closed-source freeware program.
  • Single-core at the moment.

Why VB.NET rather than other, much faster programming languages?

I chose to use VB.NET rather than other, more widely used and faster programming languages for several reasons. First of all, Visual Basic is a language I have always liked, and it is also a language I use on a daily basis for work. Another reason is that there are not many chess engines written in Visual Basic.

The goal, after all, is not to create a 3700-Elo chess engine in Visual Basic that can take on Stockfish, but simply to see how far I can push it.

Does it use NNUE?

No. As a deliberate choice, I wanted to build a more “old-school” chess engine, with a hand-crafted evaluation function. I find it more enjoyable, and I expect to continue along this path in the future.

Why is it closed source rather than being hosted on GitHub?

For the time being, I prefer to keep it closed source, as I have done with all the other programs on this website. The main reason is that this is a personal project that I prefer to work on in my spare time, without the additional obligations of having to explain the reasoning behind every design choice or maintain a GitHub repository.

There is also a less serious, but nevertheless real, reason: I would be rather annoyed to see someone much more skilled than me at VB.NET fork the program and turn it into an engine that is 500 Elo stronger!

Is it a derivative or clone of Stockfish, Reckless, Ethereal, or any other engine?

No. The code has been written entirely from scratch in VB.NET and uses the techniques described above in their more traditional forms, with (almost certainly) several bugs and plenty of room for optimization.

For anyone interested, I can provide parts of the source code by email for verification. Obviously, engines such as Stockfish, Ethereal, Fruit, and many others have been sources of inspiration. That does not mean that their code has been copied.

Below are a couple of screenshots showing examples of Musashi’s source code:

 

Does it use AI?

Not in the development of the main program itself, but I do use AI for researching and fixing bugs, as well as for implementing the tuning algorithm and other basic or auxiliary features (e.g. the `bench` command).

I consider AI to be an excellent tool when used for bug detection and debugging. Besides, it is now integrated almost everywhere (in Visual Studio, it is enabled by default).

Below is an example of VB.NET code taken from the implementation of Lazy Evaluation, in which I fixed one of the many bugs uncovered with the help of AI.

Is it Naraku rewritten in Visual Basic?

No. Although some of the search and evaluation techniques are very similar, since they are standard features of modern chess engines, the two programs are fundamentally different, as can be seen directly from their evaluation of positions.

For example, although Musashi is two to three times slower, modern techniques allow it to prune far more aggressively than Naraku. This allows it to reach, and sometimes even exceed, the same search depth as Naraku while searching only about one third as many nodes.

Downloads

Musashi can be downloaded by clicking the following link: Musashi 1.2.

Here the changelog in txt format. Changelog.txt.

Old versions: Musashi 1.1, Musashi 1.0.

It requires .NET 8.0. It has been tested and confirmed to work on Windows 7, Windows 10, and Windows 11, and runs perfectly under Arena, Cute Chess, Scid vs. PC, and LittleBlitzer.

Some example screenshots:

Musashi 1.0 playing against Naraku in Arena, things are not going particularly well…
Musashi playing against Rebel 6.0.