MagicTree 3.3 - README and Open-Source License =============================================== Engine name: MagicTree 3.3 Executable: MagicTree 3.3.exe Author: Vikrant Malvankar Country: India Protocol: UCI - Universal Chess Interface Release type: Open-source source-code and binary release under the MIT License. Document date: 21 July 2026 1. Overview ----------- MagicTree 3.3 is a 64-bit Windows UCI chess engine. It is intended to be loaded into a UCI-compatible chess GUI such as Arena, Cute Chess, BanksiaGUI, Shredder, Fritz/ChessBase, or any other interface that can run a UCI engine. MagicTree 3.3 is released as open-source software under the MIT License. The source code may be used, copied, modified, merged, published, distributed, sublicensed, and/or sold subject to the conditions of the MIT License printed in this README and supplied in the accompanying LICENSE file. MagicTree is an engine only. It does not provide its own graphical chess board, opening-book manager, tournament manager, or analysis GUI. The 3.3 build uses a PEXT/BMI2 sliding-attack backend. Use the supplied executable, or any executable built from the supplied source code, on a 64-bit system with a CPU that supports the x86-64 BMI2 instruction set. If the CPU does not support BMI2/PEXT, this build may fail to start or may crash. A non-BMI2 build, if needed, should be produced and distributed separately. 2. Quick start -------------- A. Using a chess GUI 1. Open your chess GUI. 2. Choose the GUI's option to install/add a new UCI engine. 3. Select "MagicTree 3.3.exe". 4. Confirm that the GUI detects the engine as: id name MagicTree 3.3 id author Vikrant Malvankar id country India 5. Keep the default UCI options unless you are testing or tuning the engine. 6. Start a game, tournament, or analysis session from the GUI. B. Command-line smoke test From Windows Command Prompt or PowerShell: "MagicTree 3.3.exe" uci isready ucinewgame position startpos go depth 10 quit Expected responses include "uciok", "readyok", UCI info lines, and a final "bestmove ..." line. 3. Source package and build notes --------------------------------- The open-source release package should contain the C++ source files, this README, and a LICENSE file containing the MIT License text. The supplied source package contains the engine source files and a Windows x64 executable. No external NNUE network, opening book, or tablebase files are required for the basic engine. A. Main UCI engine build The code is intended for a C++17-capable compiler and a BMI2-capable x86-64 target. When using GCC or MinGW-w64, compile with BMI2 enabled. Example command from the source directory: g++ -std=c++17 -O3 -DNDEBUG -mbmi2 -o "MagicTree 3.3.exe" ^ uci.cpp attack.cpp eval.cpp fen.cpp move.cpp movegen.cpp movepicker.cpp ^ pawnhash.cpp perft.cpp pext.cpp position.cpp search.cpp timeman.cpp ^ tt.cpp zobrist.cpp On Linux/macOS-style shells, replace the Windows caret line continuations with backslashes or place the command on one line. For Microsoft Visual C++, create a 64-bit Release build, use a modern C++ language standard, enable optimization, and ensure the build target supports BMI2 intrinsics used by the PEXT attack backend. B. Perft/regression utility The file perft.cpp also contains a separate PERFT_BUILD main function for a standalone perft/regression utility. To build that utility, define PERFT_BUILD and omit uci.cpp from the build. For the normal UCI engine, include perft.cpp without defining PERFT_BUILD, as shown above. C. Source-release checklist Before publishing the repository or source zip, include: - all MagicTree 3.3 source files; - this README file; - a separate LICENSE file with the MIT License text; - the Windows x64 executable, if you want to provide a prebuilt binary; - a clear note that the current release requires BMI2/PEXT-capable hardware. 4. UCI options -------------- Standard/user-facing options: - Hash Default: 64 MB. Range: 1 to 4096 MB. Transposition-table memory used by the engine. - Move Overhead Default: 30 ms. Range: 0 to 5000 ms. Safety buffer subtracted from available clock time. - Minimum Thinking Time Default: 20 ms. Range: 0 to 5000 ms. Minimum time budget used for time-managed searches. - Slow Mover Default: 100. Range: 10 to 500. Time-management multiplier. Higher values generally make the engine spend more time per move. Advanced/testing options retained from MagicTree 3.2: - SeeCaptureMargin Default: 32 Range: 0 to 200 - SeeCaptureDepth Default: 6 Range: 0 to 12 - SeeQuietMargin Default: 40 Range: 0 to 400 - SeeQuietDepth Default: 10 Range: 0 to 12 - SeeEndgameGuard Default: 0 Range: 0 to 32 - SeeCaptHistDiv Default: 512 Range: 0 to 4096 - SeeQuietHistDiv Default: 512 Range: 0 to 4096 - CorrPawnWeight Default: 2 Range: 0 to 8 - CorrNonPawnWeight Default: 1 Range: 0 to 8 - CorrContWeight Default: 1 Range: 0 to 8 - CorrWeightScale Default: 2 Range: 1 to 8 These advanced options expose search-pruning and correction-history parameters for controlled testing. For normal play, keep the default values. 5. Supported commands --------------------- MagicTree 3.3 supports the main UCI workflow: - uci - isready - ucinewgame - setoption name