Download

Dear all,

Welcome and thank you very much for visiting, downloading and helping us!

This page is for downloading BanksiaGUI – a chess GUI with beta versions, before officially releasing.

To run the app, just download, unzip and click to the program. You may need a 64 bit OS, either a Windows 7, 10, macOS or Linux.

Bug reports, ideas, suggestions, feature requests… are highly appreciated! Please use some below ways:

Download

Ver 0.30 beta (28 June 2020)

Changes:

  • Fixed bugs: Converted PGN books may have duplicate positions
  • Some small improvements/adjustments
  • New features:  
    • Tournament: Human can join and play
    • Lichess bot: challenge multi-players, repeatable
    • Engine info panel: changeable font size
    • Support UCI_ShowMovesLeft

Language packages

To use Banksia GUI with some languages, users can download language packages (extension .qm) and copy it into folder languages (it is located on the same folder with the runnable file of Banksia GUI. For macOS, it is in package BanksiaGui.app, right-click on that to popup menu and select Show Package Contents)

(no extra language packages, all available ones are released with BSG)

You may help people by translating BSG into your languages.

Version history

Open-source

BanksiaGUI is built based on our opensource Banksia. You may visit, download and/or contribute:

https://github.com/nguyenpham/Banksia

287 thoughts on “Download

  1. Replay and Annotation Feature Request.
    This is request for a feature to allow the GUI to replay games and enter annotations to the game with comments and graphical annotations. Like highlight the squares with 5 different colors: Red, Green, Yellow, Blue and Purple, and draw arrows with 5 different colors: Red, Green, Yellow, Blue and Purple. Also, to enter a character in the top right corner of the square: X, O, 1, 2, 3, 4, 5, 6, 7, 8, 9. Also in the variation, to have the ability to enter a NULL move, that is, White makes a move, and Black “passes his turn” (NULL MOVE), White makes another move, and Black plays a move, White ‘passes his turn’ (NULL MOVE), and so on.
    Also, it would be nice if the screen could be split into 2 views when entering the variation board, The main board would be shown as a small screen and the variation board becomes the main view. The moves listed in the variation list be bolded, because there is a possibility of multiple variations, thus it would make easier for the user to identify the variation or line which he or she is studying. This feature would allow chess instructors to create chess videos much easier for the students to follow the logic of the game.

  2. Hi 😉

    I have recognized another strange Thing..if i want to load eman 5.62 in Banksia Gui..following failure occured….

    Error The Engine doesnt support the selected protocol, i have also send you an email with a picture….. in Fritz or arena eman runs very well………

    Also in Automatic detection……

    Any hints ?

    Keep up the amazing work i love your gui ….

  3. I would like to notice an issue that lichess bot is hangs in task manager if opponent lose on time. It affects all engines.

    There is also another bug in lichess bots feature. Lichess bots feature absolutely ignores all my settings in Banksia GUI for current engine. For example I set 8 cores for my Komodo engine, but Lichess bot uses 16 threads and it also ignores other settings. It would be nice if Lichess bot will use all settings I have set for my engine in Banksia GUI.

    Why Banksia GUI does not show all engine’s settings? For example I do not see all options for Shredder 13. There are no options like Limit UCI strength, UCI strength ELO etc. It would be nice if Banksia allow us to set all engine parameters like we can do this in Lucas Chess GUI which always show all engines parameters.

    I use Windows 10 x64 Pro and Banksia GUI 0.29 64 bit.

    1. Thanks a lot for the report. Just a few questions to get more info:
      – Can you check the engine log (the path is in Settings dialog -> Engines tab) to see if BSG sent “quit” commands every time the game (of Lichess bot) completed?
      – Did you turn on Overal options (Settings -> Engines tab) and set Cores to 16? If yes, try to set it back to 8

      BSG has supported some but not all specific options (with prefix UCI_) yet. We plan to support them all in the coming time

      1. 1) If lichess bot lose on time, then “quit” command is not send.

        2) Yes I have overal settings turned on – ponder is set to “on”, cores are set to “8”. When my engine plays via Lichess bot feature, it uses 16 threads instead of 8.

        1. Thanks again for the feedback
          1) I am working on that and do some improvement
          2) I have been struggling to reproduce. Can you give me the name of the engine? Usually, BSG can control the thread number of an engine if it uses a popular name such as “threads”, otherwise, users need to set manually
          Thanks

  4. I use Banksia on lichess to play as a bot and I noticed a bug: after every game my engine hangs in task manager, so I have to turn it off manually. Otherwise I run out of memory, because multiple instances of engine eat all system memory. I use Windows 10 x64 Pro.

    1. Thanks a lot for the report. Can you give me the name of your engine? If it is not published/popular, just few questions: which protocol does it support? if you run that engine in a tournament, how frequently it hangs in memory (not quit even game ended)? if you close BanksiaGUI, is it closed or still hanged in memory? Thanks

      1. It happens after EVERY game. The engine works via UCI protocol. If I close Banksia, engine shuts down too.
        It happens with both public or private engines.

        1. Thanks again for the report. Can you help to verify: 1) what is your OS (Windows) and is BSG the latest version (.28)? 2) check if that happens with some “good” engines such as Stockfish, Komodo 3) check the engine log file if BSG does send the command “quit” to engines?

          1. Windows 10 x64 Pro, Banksia GUI v0.28, all engines affected, command “quit” not sent.

  5. It seems the tech stats from games in a PGN file are only calculated by the last game. But the stats from tournaments are correct. Can you verify this issue? Thanks.

    1. All tech stats should calculate from all games, not only the last game. Can you show me that stats (from the last game only)? Thanks

      1. For example, I set a tournament between Stockfish 10 and Stockfish 11 with only two games, and I saved the PGN file. Then I loaded the PGN file from “Database”. The tech stats are different: https://prnt.sc/sy9gbp
        From the term “moves/game” it seems the tech stats on “Database” are only calculated by the last game. Maybe I did something wrong?

        1. Thanks for the explanation! BSG calculates average numbers in a bit different way, not from displayed numbers but from overall numbers. For example, to calculate average NPS, BSG will take the total nodes then divide into the total consumed time of all engines. It means engines who use more time actually contribute more to the average than the ones use less.

          1. the calculation of average NPS as you explained is correct, because the same nps can produce different nodes.

            but I don’t understand about the calculation of npm (nodes / move) you use, isn’t it divided by the number of ply?

            for example…

            Engine A (white):
            move1: n=1100
            move2: n=1101
            move3: n=1108
            total nodes of Engine A = 3309
            total ply=3
            average npm of Engine A = 3309/3 = 1103

            engine B (black):
            move1: n=2200
            move2: n=2203
            move3: n=2206
            total nodes of Engine B = 6609
            total ply=3
            average npm of Engine B = 6609/3 = 2203

            average npm of the two engine:
            (average npm of Engine A + average npm of Engine B)/2
            (1103+2203)/2 = 1653

            another way to calculate this average npm:
            (total nodes of Engine A + total nodes of Engine B)/total ply
            (3309+6609)/6 = 1653 => is the same

            so this calculation => (8184 + 1001)/2 = 4592.5, not 4476 is correct

          2. For npm the formula is quite similar: the total of nodes / the total of made moves. Suppose 2 engines played 2 games with total nodes of each engine each game are 1000, 2000, 1500, 1200 (the total = 5700) and game moves (move = 2 plies since one engine makes move in half of the number of plies only) are 50, 51, 45, 45 (the total = 191). npm = 5700 / 191 = 29.8

        1. Thanks for downloading and using!
          Can you give me more information: what is your computer (type, macOS version)? What the size of the download file? Did you give run-permission? What did it say when you run it?

          1. Thank you for the info. Look like your computer, macOS… all are good for running BanksiaGUI (BSG). Let check step by step:
            1) Did you allow the program to run? If it is the first time, you should press control-click to the BSG to popup the menu, then click on “open” to run it. An alternative way, open System Preferences -> Security & Privacy -> General tab -> click on the button “Open Anyway” if it is asking about BSG
            2) Now click on the BanksiaGUI program, did you see anything happen?

          2. I have just downloaded your zip file, unzip, and run. It can run as usual on my iMac with Catalina. It is still fine for my computer! Can you try to delete BSG config folder as following steps:
            – run Terminal
            – type below command and enter (change yourname into your login name in your computer):
            rm -rf /Users/yourname/.config/softgaroo.com
            Then run BSG again.
            If it still fails, please try on another computer.

          3. Very strange! On my other (older) mac with catalina it run’s. I have no idea whats wrong. I try to analyze deeper and inform you if i,ve foubd some things! Thank you for your help! with regards, Thomas

          4. I can’t guess the reason either. Once the computer can install Catalina, it should run all software for that OS. I will try on some other mac computers when I can.

          5. One thing is differently: The Mac where it`s fault, is formatted with case sensitive and is crypted. The old mac is formatted without case sensivity and is not crypted. But i can’t believe that this is the reason.

  6. Hello, is there a possibility to use Lc0 without any learning? So that Lc0 can learn “from scratch” on my computer.

      1. In BanksiaGUI, is it possible to change the Notation for moves from “Coordinate” to either “Algebraic”, “Long Algebraic”, OR “Figurine Algebraic”?

        1. BSG support 2 notations: coordinate and SAN. To change: menu -> File -> Settings (open Settings dialog) -> General tab, select notation from drop down Notation (Move list section)

  7. Very to nice chess GUI and with a Linux version too, thank you!
    I don’t run engine matches, I only play against the computer and occasionally on FICS, so far I’ve encountered no issues, everything work as expected.
    The feature I love the most about this GUI and also what sets it apart from the myriad others I’ve tried is the innovative book move bubbles, it’s hugely useful 🙂
    One thing, is there a way to increase/control book randomization when playing against an engine?
    Anyways thanks for providing this wonderful software for free, your hard work is much appreciated!!

    1. Thanks a lot for the report. That feature (randomization openings for normal games) is one of the missings. It should be similar to one for tournaments (several ways to set up randomization). I will implement it soon.

  8. Engine take a lot of time to move when the calculation shows “Mate in 4, 3 & 2” still happen in this Ver 0.23 beta

    1. Thanks a lot for the report. It turns out it is hard to fix since I have tried several times. It is the problem of updating the viewing board when the game has been finished and removed already. That issue does not affect the tournament. I will be back to that issue later.

  9. I played a tournament with the following format…
    Engine 1, TC = 5000 nodes/move
    Engine 2, TC = 1000 nodes/move

    but why did the report look like this? => http://prntscr.com/sagh9d
    Engine 1, TC = 4000 nodes/move
    Engine 2, TC = 0 nodes/move

  10. Some small improvements/adjustments: such as showing PONDERHITS???

    if I want to use this feature (PONDERHITS), I will use it from here => https://postimg.cc/H84673NM
    …and the worse, you set this feature by DEFAULT, so there is no way to disable it

    how can you set this “very optional feature” as default ??? it’s so funny, because it seems like you don’t know what PONDER really is and what it is used for?

    and if this feature is also applied by default in Tournament (and it seems like it is), then it’s really really BAD

    1. That stats based on ponder moves which an (UCI) engine usually sends at the same time with its bestmoves, regardless it is allowed pondering. Thus with the current implementation of BSG, ponderhits measure how good that engine guesses the bestmoves from its opponent and that stats don’t link to ponder mode, don’t need the engine to ponder to have. IMO, it is quite similar to tbhits, hashfull… just some stats to help users/programmers understanding more about their engines.
      I may add a new option to turn on/off that showing from the next release 🙂

      1. but the way it works is the same as the ponder mode, because it also uses the CPU to guess the best moves from its opponent

        for sparring against the engine, it’s oke, but for the Tournament, of course this is a big problem, because in the Tournament you must not think on your opponent’s time

        Normally, we leave ponder off when playing engine vs engine tournaments.

        1. For any kind of game, normal or tournament, regardless the status of ponder mode, engines still send ponder moves. It means if you don’t allow engines to think in opponent’s time, they won’t think but still send ponder moves, thus that statistics are still valid. That stats just means how good the engines guess the best moves of opponents, but doesn’t mean the engines have to think in opponent’s time to get it.
          I think the better names and less confused maybe “guessinghits”, “ponderguessinghits”…

        2. I knew what you mean now: there is a bug thus BSG runs engines with ponder always on (not because of the stats ponderhit). Sorry for that and the new version will be released within 24h (it is considered as a serious bug).

      1. for example…
        ply range = 5
        and we have these:
        -7.1, +8.8, -8.3, +7.2, -9.6
        then,
        for the “Two sides”, this is correct
        but for the “Last side”, this is wrong, because for the “Last side”, +8.8 & +7.2 are not counted… so, for the “Last side” this is still read as 3 ply range (3 consecutive moves)

        …in this Ver 0.21 beta, “Two sides” is correct, but “Last side” is wrong

    1. Thank you very much. This bug is similar to the above bug (BSG counted ply range as the total moves of both sides)

  11. Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” happens again in this Ver 0.20 beta

      1. Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” still happen in this Ver 0.21 beta

    1. Thanks a lot for the report. It is a bug about remember new adjudication settings and will be fixed for the next release.
      Last side: check scores of only one engine who did the last move. For example, Stockfish vs Komodo and then Komodo does a move, BSG will check scores of Komodo but ignore Stockfish scores. Two sides: check if scores of both sides satisfy conditions (one resigning, one winning). In the example, check if Komodo scores are in the resigning range and Stockfish scores are in the opposite-resigning/winning range. That makes sure both sides have an “agreement” on resigning.

    1. Thanks for the report. How can I reproduce that problem? Also please note that for the current version the concurrency number may be set to zero, equal a pause

        1. I am still struggling to reproduce the problem and confused about some details. Can you confirm:
          – if the tournament’s games are playing: green lines moving, games are completed after a while. If you double click on a green one, it should be opened in a new tab and you can see engines computing and moving pieces
          – when you click on the button Playing games (as your above image) do you see the popup dialog “Playing games”?
          – if you can open Playing games dialog: can you see normal games? (tick on Normal checkbox first)? Do you see any tournament games? How about change values of some boxes (show, games/row)
          Thanks a lot again.

          1. this was apparently due to Time Control with the following details…

            time control: Depth, Tournament is running normally
            time control: Move time, Tournament is running normally
            time control: Standard, Tournament is running normally
            time control: All moves, Tournament is running normally
            time control: Nodes, Tournament is NOT WORKING AT ALL

          2. It turns out Winboard engines don’t support the Nodes mode of time control thus they stop forever. I will improve the warning message in that case. Can you help me to verify (check if you have used Wb engines when the problem happened)? Thanks

    1. Thanks a lot for the report. Could you send me the image of those duplications and/or post them here, please? Thanks again

        1. I can’t reproduce the bug. Could you please send me (via email or download links) both your game database (.bgdb) and PGN opening book for checking? Thanks a lot

    2. Thanks a lot for the report and files. I got them and understood the problem (I misunderstood before). The duplications of some last positions are actually not a bug since their sequences of moves are still different. Different lines of openings but leading to the same positions are normal. BTW, for the new release, I have added a new option to the building-opening-dialog to accept or not those duplications.

  12. Include Help.pdf manual with instructions for user
    Make the program portable with all settings saved in the same folder
    The best example to follow: Arena GUI

  13. could you optimize it for Windows 8.1 too?

    because there is a decrease in Engine Speed when this GUI runs on windows 8.1

    windows 7 & 10, no problem

    1. Thanks a lot for the requirements. I have just added it to my TODO list. Please wait for me a bit since I am struggling to find a computer with Win 8.

      1. After reading comment from this Guy, I just realized, on my old computer (2014 computer), Engine Speed ​​was slower, it might be because my old computer was running Windows 8.1

        1. I even can’t remember if I have ever used a Win 8 😉 Sometimes I work with Win10, very rare to work with Win7, most time I work with a macOS. That is why I have missed more bugs, problems for Windows than macOS and the help from Windows users is very important! 🙂

    1. Thanks a lot for the report! 1 & 2 are fixed for the next release. However, your images of 3 & 4 look strange, look like they are from an old version since they are missing the second line of controllers for searching (such as Player, Limit score boxes). Can you verify it? Thanks again

        1. Oops, so sorry, I have messed up with the view for BSG databases (.bgdb). Those bugs will be fixed soon. Thanks

  14. 1. Please include an option (tickbox) in the “New tournament” window to exclude comments and stats from the move list when saving a tournament game in a pgn file. The resulting pgn file would then be much smaller. As a comparison, a BanksiaGUI pgn file with (only) 4,300 games already takes up about 17 Mb while an Arena tournament pgn file with more than 26,000 games only takes up about 33 Mb of disk space. With BanksiaGUI allowing concurrent games, running tournaments with a lot of engine participants (162 engines in the Arena tournament, for example) would be common place. However, the resulting pgn file would be too large if the comments and stats aren’t excluded.

    Also, some ELO calculation software (Bayeselo, for example) are unable to process a BanksiaGUI pgn file without the pgn file being ‘cleaned’ first.

    2. Please also include the Berger table as one of the shuffle options for round robin type tournaments. It is supposed to be the most common round robin scheduling method and would result in a more uniform result table and crosstable. With the current shuffle options in BanksiaGUI, as the tournament progresses, some participants always show up as having more games played than others, which makes it difficult to determine at a glance which engines are actually leading the tournament.

    3. Please also consider allowing the removal or the addition of an engine in the middle of a tournament. Some engines just plain misbehave and there are no workarounds. With Arena, you can simply remove such engines and continue with the tournament. You also have the option of replacing the removed engines with other engines. Of course the failed games will still need to be (manually) removed from the pgn file, but the crosstable will correctly reflect the results based on the current list of participants.

    1. Thanks a lot for the suggestions!
      1) To stop saving computing info with games, you may edit the file banksiatour.json (open Settings -> Configuration files to see its path). There is a tag name “rick info”, just set it to false. I am struggling about Elo calculating, thus I have added it into TODO list and will come back later
      2) I have read on the wiki that Berger is the Serbian name of the round-robin! 😉 Just added it into my TODO list
      3) In BSG you can remove any games (played or not played) from the playing list of a tournament – just right-click for the popup menu. Furthermore, all info of a tournament is stored on file banksiaplaying.json – it is a text file and editable. You can edit to remove, change engines, results… for any games or add some new games… then run BSG to continue. I think this (edit manually json file) is the most convenient and the easiest way since there is no limit for users

        1. It depends on your system. It is in the same folder with other json/data files such as banksiaengines.json, banksiagui.ini… To find that folder, from BSG open the Settings dialog (for Win, menu->File->Settings), tab General. You will see a button for Configuration files at the bottom. Click that button to open another dialog, click the first button named “Browser” to open that folder

    1. Thanks a lot for the report. The broadcast function is still in development. I have done some improvements in the hope it is better but not sure if the problem is fixed yet since the whole system (BSG + server) is complicated. Broadcasting ignores timer in purpose thus it does not display it (timer).

        1. I guess Arena has asked permission to use it. Arena can use means its users can freely use it for their private purposes. However, that does not mean other programs can freely use that font since copyright still restricts. All fonts, stuff I have used and published with BSG are freeware, published on some websites which say clearly about copyright.

  15. please add:
    humans in tournament!! very fun to play in tournament with engines for me, and i believe for many other people
    resign! labeling the pgn correctly is extremely important, just closing the game is not good enough.
    these two would make me use your program much more

    1. Thanks for the suggestion. For the current version, human can play vs computer in a tournament via a local network (when the tournament is playing a computer, human should be on another computer, connect and play via network playing functions)

        1. Hi, you need two computers, connecting via your local network. Run BSG on both computers and turn on their Local Network panels. Suppose you set the name for the first computer is CompA and similar, CompB for the second computer. Now press the button ‘Connect’ to connect BSG on both computers. You should see CompA and CompB on the Name lists. Suppose you – the human will play on CompB, from Local Network panel just check for ‘Select’ then chose Human from the drop-down box. The setup is done with CompB. From CompA just create a tournament as usual. You will see a special name CompB:Human from the available engine list, pick it. Start the tournament and back to wait on CompB until the games are auto opened and you will play as a human for one side.

          1. Oops, sorry, there is a bug thus we can’t select a single-engine/human. It will be fixed for the next release

  16. this (http://prntscr.com/rg4brl) is crearly wrong
    and this (http://prntscr.com/rg4bma) is correct

    and all the GUIs that I have ever used, all of them use 1/2-1/2, not 0.5

    actually, 1/2-1/2 is meaningfully different from 0.5

    1/2-1/2 means that each of the two sides get 1/2 or 0.5
    and 0.5 is the result of 1 divided by 2, meaning that one side gets 1, and the other gets 2

    so, if you write like this…
    sf11 vs komodo13
    0.5

    …then this means that sf11 wins 1 and komodo wins 2,

    but if you write it like this …
    sf11 vs komodo13
    0.5-0.5 => then this is correct

    0.5-0.5 is the same as 1/2-1/2
    but 0.5 is not the same as 1/2-1/2

    1. Thanks for the report. I knew it is not standard. However, I did it in purpose to make it a bit shorter – just for beauty. All data which users can copy or save down should show that result in the standard way.

      1. please don’t make a new rule that you think is right but it turns out to be wrong

        The generally accepted rule is that it should be written as 1/2-1/2 and not 0.5, so it’s not the time to talk about beauty here, because this relates to data, not appearance

  17. I saw a very good analysis tool from HIARCS GUI, maybe it could be your consideration…
    => http://prntscr.com/rdab6f
    => http://prntscr.com/rdabah
    => http://prntscr.com/rdabev

    -for every inacurracy move, will be marked with “?!”
    -for every mistake move, will be marked with “?”
    -and for every blunder move, will be marked with “??”

    here for the details…
    => https://prnt.sc/rda9x9 (Lichess Analysis)
    => http://prntscr.com/rdaeu2 (HIARCS analysis)

    -Lichess did not mention the engine that used to analyze, but HIARCS did
    -HIARCS did not provide these information, “inaccuracy, mistake or blunder”, but Lichess did

    so, combining these 2 types of analysis will be awesome

    1. Thanks a lot for the suggestion. In the tech view, it is not hard to implement: the GUI will assign annotations to move based on the difference between current and previous scores. However, it is hard for me since I don’t know which score’s difference (threshold) to assign which annotation. If someone knows (thresholds) and can share he will help us much.

    1. Thanks a lot for the suggestion. As I have understood, Windows (at least old versions) has its timer resolution about 15ms (its clock is called 64 times per second), far above 1ms – the unit if we use millisecond. Thus let a whole game played under a second and measure all elapsed time in millisecond has a high risk of having large errors

      1. not under 1 second, but I want to make a Tournament with fixed TC = 50ms/move, if the number of moves is around 60 moves/game, then 1 game is 6 seconds, unfortunately, I can’t make a Tournament with this format in BSG, but in Arena 3.5.1 this feature is available (http://prntscr.com/rd5um9)

        what I mean is that BSG should have a feature that allows us to make a Tournament with fixed TC less than 1 second/move, not less than 1 second/game

    1. Thank you very much for the report. 1, 2, 3 will be fixed for the next release. 4) time/m = time per move. It is the name of a column

  18. -Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” happens again in this Ver 0.17, in Ver 0.16 this problem has been fixed

    -Score in white view is not working => http://prntscr.com/rchk1t

    -when we change “Piece”, BSG stop working => https://prnt.sc/rchte1

    -when we tick “Shadow”, BSG also stop working => http://prntscr.com/rchlb4

    -too close, not good to see => http://prntscr.com/rci1bl
    -too close => http://prntscr.com/rchwws
    -too close => http://prntscr.com/rci245
    -not in the center => https://prnt.sc/rchyhw

  19. Draw adjudication should follow this rule: “Both engines have an evaluation between +/- 0.09 cp for 10 consecutive moves with NO PAWN MOVES or CAPTURES”

    in BSG, “Both engines have an evaluation between +/- 0.09 cp for 10 consecutive moves” has been implemented well, but why are “pawn moves” and “captures” also counted?

    …this rule means that when there is a “pawn moves” or “capture”, then the rule must be reset from the beginning

    1. Wow, you checked so deeply. I had a bit different thoughts about draw conditions. However, I have changed my mind. Will fix it as your suggestion. Many thanks

      1. This rule (called Rule X) is a TCEC and CCC rule, so I don’t think it needs to be modified, because this rule is really safe

        You can change it according to your mind, but it must be based on data, I mean like this:
        -Create a Tournament with 10,000 games without “Draw Adjudication”
        -Then, create another Tournament with 10,000 games as well with “Draw Adjudication” as you think (called Rule Y)
        -If the results are the same, then this “Rule Y” can be applied

        I have tested this Rule X for many times, and the results are the same between games that using and not using this Rule X

      2. The “no pawn moves or capture” rule should be optional. In cutechess, it’s always on for draw adjudication, and I actually find it annoying as many dead games end up lasting much longer because of it.
        I can think of more complicated rules that would allow optimizing even more the amount of time saved while keeping incorrect adjudication low, but they would likely be considered too much for implementing. In particular, adjusting draw adjudication aggressiveness in relation with the number of pieces left on board.

  20. Could you please change how the score is indicated? I’m very used to seeing an engine’s eval score (For example, Leela would output +1.23) I don’t want to have to constantly convert the scores in my head, that is just rather silly.

    1. Thanks for the feedback. Banksia GUI can display engines’ scores in two units: pawn and centipawn. To change unit: menu->File->Settings to open Settings dialog, select the first tab then tick on “Pawn unit” or “Centipawn”

    1. Thanks a lot for the report. I have tried some optimized algorithms to speed up displaying but look like they did not help but created some messy instead. It will be fixed for the next release

  21. for example I want to know how much the strength of SF 11 increases if using “Cerebellum Leela Net T40.T8.610

    for this, I will make a Tournament with the following format…

    Engine 1: SF11
    Engine 2: SF 11 + Cerebellum Leela Net T40.T8.610

    the problem is, at BSG, when we use Polyglot (https://prnt.sc/r7ylpx), then the Polyglot is used by both engine, while in this Tournament, I want Polyglot to only be used by Engine 2

    1. Thanks a lot for the report. All bugs will be fixed for the next release.
      For temporary fix for changing piece style and shadow, just close BSG the reopen.
      For tournament creating, an engine can be selected several times (it will be displayed in ping color as a warning but it is still accepted), thus engines are still shown in the right box after being selected.

        1. It is from my experience: sometimes I need tournaments of one engine only. Sometimes I need tournaments in which one or some engines play more frequently than the rest. Note that after creating a tournament I may quickly edit by deleting some matches, change their orders thus I can have a new tournament as I need.

          1. then you have to make 2 releases, for yourself, and for the public.

            because, if we want to play Tournament using the same 2 engines, then the two engines must be separated, not only playing one engine from the same Path… this is to prevent the engine from using the previous analysis.

  22. Hi. I have been testing this wonderful GUI since version 0.14 (currently testing 0.16).

    1. Is it possible to allow logos of up to 200 pixels wide ? The current logo size is too small and a lot of the details can’t be seen clearly. The GUI already allows adjustment of the height, but the width can’t be adjusted. With a maximum width of 200 pixels, the GUI wouldn’t have to scale down the logo (unless the width exceeds 200 pixels).

    2. I also observed this behavior when using a polyglot book:
    The polyglot book used has the following distribution (as seen in Scid vs PC):
    d4 – 38, e4 – 27, Nf3 – 18, c4 – 13, g3 – 2, b3 – 1
    When the “Top” is set to 0%, all the tournament games started with d4. When the “Top” is set to 100%, there is a preponderence of King’s Gambit games for games that start with e4. When the “Top” is set to 50%, there is a preponderrence of Giuco Piano games for games that start with e4. In both 100% and 50% settings most of the games started with Nf3 or c4. In all “Top” settings (0%, 50%, 100%) none of the games started with g3 or b3. With several thousand games already played, there should have been several g3 or b3 games already.

    What should happen is that when the “Top” setting is set to 0%, the GUI should just follow the book’s default distribution. Then as the “Top” setting is increased towards 100% that’s the only time that the GUI would modify the move distribution until all moves in the book would have equal chances of being played (“Top” setting = 100%). It might even be simpler if you remove the “Top” setting altogether and just allow the default distribution set in the book, as what other chess GUIs do.

    1. Thanks a lot for the very-detail reports
      1) I have added the suggestion into my TODO list
      2) The design of BSG when picking up moves from polyglot books for a given position: a) it takes tops % (by weights) moves; b) if there are multi-moves, pick up randomly a move. Thus, the top 100% means BSG picks up move totally random. Top 0% means it picks up the best. If there are few best moves (same weights), it picks randomly between them. BSG always tries to use random whenever it sees some equal choices, just to make games/tournaments be more interesting. You don’t want that (random factor), do you?

      1. Thank you for the reply. Regarding item 2, randomizing for moves of equal distribution is ok, but there should be an option to bypass this randomization and just allow the book’s default distribution to be used. As my testing shows, “In all Top settings (0%, 50%, 100%) none of the games started with g3 or b3. With several thousand games already played, there should have been several g3 or b3 games already.” , so the default distribution in the book is not being followed at all, no matter what “Top” setting you use.

  23. This GUI is amazing, has many features that other GUIs don’t have, but unfortunately, the engine speed is about 15% lower in this GUI compared to Arena 3.5.1

    1. Thanks a lot for the report. Could you please give me more information to reproduce: which engines, what is your computer (CPU, memory) and how did you observe that speed (tournament, play vs computer or run some tests)?

      1. -My laptop: Asus X441UB (Intel Core i3-7020U/4GB RAM)
        -i play vs computer using sf11 with tc=5 seconds/move, Then I see the engine speed reported by the both GUI, Arena 3.5.1 and your GUI

    1. Thanks for the report. I have redesigned a bit for pairing and selecting openings. If you want a pair of engines to play one opening, please select “One for each pair” in Select type box.

      1. I chose this setting (http://prntscr.com/r7r8h4) in Tournament. The result is that Opening is played sequentially, but each Opening is only played once, not twice, so when Game 1 is finished, Game 2 uses Opening 2 and this is clearly wrong, because Game 2 must use Opening 1, not Opening 2, Opening 2 is for Game 3 & Game 4

        it should be like this (x):
        Opening 1 => game 1 & game 2
        Opening 2 => game 3 & game 4
        Opening 3 => game 5 & game 6

        and not like this (y):
        Opening 1 => game 1
        Opening 2 => game 2
        Opening 3 => game 3

        but if I don’t tick “Swap sides”, then the correct order is (y)

  24. Author: Stéphane Nicolet
    Date: Sat Jan 18 01:44:37 2020 +0100
    Timestamp: 1579308277

    Stockfish 11

    Official release version of Stockfish 11.

    Bench: 5156767

    …and we estimate that on a modern four cores CPU, Stockfish 11 could give 1:1000 time odds to the human chess champion having classical time control, and be on par with him…

    this means, if I want to play Stockfish 11 at Carlsen’s level, then I have to play Stockfish with Time Control: 0.18 second / move

    Standard Time Control: 3 minutes / move = 180 seconds / move
    180/1000 = 0.18

    But in BSG, we can’t play Stockfish with TC = 0.18 s / move, because in BSG, the minimum Time per Move is 1 second / move (https://prnt.sc/r1bvj4)

    1. I have just used easy algorithms to generate tournament games without carrying about their order (it is actually a revert order). By popular situations, users will sort those games anyways.

      1. Actually, there is a reason why this thing is important. for example I make a Tournament like this:

        100k vs 200k nodes
        200k vs 400k nodes

        then the sequence in the PGN file should be like this…

        100k vs 200k nodes
        1. 100k nodes vs 200k nodes
        2. 200k nodes vs. 100k nodes

        200k vs 400k nodes
        1. 200k nodes vs 400k nodes
        2. 400k nodes vs 200k nodes

        and not like this…

        100k vs 200k nodes
        1. 200k nodes vs 100k nodes
        2. 100k nodes vs 200k nodes

        200k vs 400k nodes
        1. 400k nodes vs 200k nodes
        2. 200k nodes vs 400k nodes

        with this, our database will be neat and more comfortable to look at

    2. I have checked my algorithms for generating a tournament matches. Actually they generate games based on the order of players. However, I have added a random factor to swap players for each game. That makes sure that all players can play white and black equally even users set games/pair is an odd number.
      In multi-timer mode, timers will be attached to players, thus a given player will play with a given timer, regardless of his side or order.

    1. Thanks for the report! Yes the bug has been fixed already. However, there is a reason why the number of moves in Tech tab may be smaller than the games’ moves. If you put the mouse pointer over the tech table you may see a tooltip explaining that: “Stats based on computing moves only, ignored moves with zero node” (there is a line with a similar explanation too in Plain text tab). That means all opening moves, as well as moves without node-reporting from engines, won’t be counted here. The reason for ignoring is that some stats of averages per move (such as NPS, time/move) may be significantly smaller than what engines report if we count all no-node-reporting moves.

      1. oke thanks for the explanation 🙂

        after reducing the number of moves in the PGN file by the number of moves from the Opening Positions, the result is the same as the number of moves in the Tournament Result report

  25. A tip: an option to be able to stop a tournament between engines after finishing a game and then be able to continue it in the future

    1. Thanks a lot for the suggestion. Do you mean when a user stops the tournament, BSG should wait until finishing all playing games? I am just wondering that is mot much time the user may save.

      1. Is there a way to save the ongoing Game Data in a temporary file? so when the Tournament is resumed, the game that was stopped will resume from the position when the game was stopped?

        1. Theoretically, we can. However, I have seen some discussions about saving playing games, stop then resume them. There are some problems: 1) we almost can’t save/load the internal data of involving engines (such as hash, pawn tables) thus when resuming engines may play totally different ways (compared with playing uninterruptedly); 2) the majority of tournaments nowadays are fast ones. Saving time for a few half-games is not much and not worth, compared with having much more complexity of both using and implementing.

          1. 1) thus when resuming engines may play totally different ways
            I think that’s not a problem, as long as the engine starts from the last position when the Tournament is stopped, then the results will be the same. Because the engine takes different moves (usually up to 7 different moves) from the same position is common… it’s the same as we enter a FEN of certain position, then tell the engine to analyze it.

  26. MEMORY LEAK UPDATED INFO.

    Hello again! I see you are making good progress on BanksiaGUI stability issues. Although it is much better than before, I believe you still have at least one major memory leak. The good news is I can now tell you where to look for the leak!

    I finally thought to run a somewhat long tournament (272 games) with the chessboard display turned OFF (uually I like to watch at least some of the games). Well, that was the solution to the memory problems and overall sluggishness. The memory used remained within “normal” limits (about 85mb – 105mb) for the whole tourney with board display OFF. But if I run the same tourney with board display ON, memory usage zooms from 85mb to about 220mb!

    So the memory leak must be somewhere in the board display routines. I sure hope this helps you chase it down!

    I will post this here (forum) and on your download page.

    Good luck and thanks for all of your work on BanksiaGUI!

    -Ken (kenpchess)

    1. Thanks a lot for the report. I have known that issue (memory leaking) and still working on that. Perhaps it is one of the hardest issues for me with BSG thus I am not sure when I can fix it. Hope the leak is not too bad and BSG can keep working on all systems.

  27. Ver 0.15
    -Sequential Openings work well.. Good job 🙂
    -in this version (ver 0.15), no draw games ended with “adjudication by engine ‘score”), out of 1000 games, all draw games are only in these adjudications (adjudication by egtb, repetition, fifty move… these adjudications have been available in previous versions), So I want to say that this feature “Draw adjudication by engine score” has not been implemented yet

    1. Thanks a lot for the report. I have found a bug (it was created when I cleaned the code) to disable that function. It is fixed for the next release.

    1. I was wrong, after I tested using another GUI, it turns out that at nodes = 100000 & 200000, sf 11 always make the same moves

  28. Thank you for the great work you’ve been putting into this!
    A few things to note:
    1. Tournament Stats.
    On the tournament results pane, the tech stats sometimes do not update. I noticed this after I tried to open the PGN of a different tournament which I had published the results and then to see they had changed. I checked again for another tournament, and I see that NPS and average Node per move info had changed. – By the way, this is a great feature, as NPS count and average nodes are quite important for NN engine testing.
    2. Sequential Openings.
    It is important to have this, as I am facing issues when it comes to engine testing. In order to get a fair and trustworthy result of a test, I need all engines to play the same openings. For example, I just played a Gauntlet tournament of 2 LC0 networks vs Stockfish. The first network played one set of openings, while the second played different openings. I used a 500 opening book but played 400 matches each. I cannot trust the results, as one network played King’s gambit games, while the other played different ones. The best thing would be for the engines to play the same opening sequence. Network 1 plays white and black against SF, QGD. And then Network 2 plays against SF black and white as well the same opening: QGD.
    3. Game adjudication.
    Move counter for resign and draw. It would be great to have draw adjudication added. It would drastically improve the speed of resolution of games, which speeds up testing. Some games last for far longer than they should, because there is no draw adjudication. Also, we need to have a move count for these adjudication results. For example when using Cutechess we can define the move number to make the adjudication start being true. Let’s say DRAW Adjudication: On move number 50. Move Count = 5, Score = 10. This will ensure that the adjudication rule starts only on move 50 >=(or any other user defined move) and it will count it for 5 moves in a row that the score has to be <= than 10. Move number and move count should be added to resign adjudication as well.
    4. Rounds vs Games.
    I notice on the PGN that it only counts the games and not the rounds. And this probably has to do with the issue with sequential openings, and also the way Banksia sees what a game is.
    In Cutechess, when I want to start a tournament of 2 engines to play 200 games. I put it as Games=2 and Rounds= 100. This way, I am certain that the engines will play 100 openings twice (both black and white). Maybe I am misusing Banksia and I haven't found the right way to count the rounds and use sequential openings. But I really can't see the options for the number of rounds there.
    Think of it this way. Tata Steel Masters has 14 rounds, with 1 game for each pair. That means that each player will play 1 game against each opponent and nothing else. If it was 2 games and 14 rounds. Each player would play 2 games against each opponent (black and white) to a total of 28 games per player, while it is still 14 rounds. Each round, 2 games.

    I hope these comments help!

    1. Thanks a lot for your suggestions/report. 1, 2, 3 have been added to my TODO/verify lists. 4) BSG has only rounds for Round robin but not other tournament types – that is why you won’t see round info. I have added a note about it anyways and will come back later.

    2. 2 & 3, I have suggested these many times, but it looks like the BSG TEAM thinks that it’s not important, because it has been updated 3 times (Ver 0.12, Ver 0.13, & Ver 0.14) but these feature is not available yet

        1. what I recommended (especially 2 & 3) are BASIC feature that must be owned by a modern GUI, these are as important as the Tournament feature that a modern GUI must have. So at the beginning of the GUI development, these features (2 & 3) should be available and not put in the back queue in your TODO list

          …and for (2. Sequential Openings) this is a very very BASIC feature, without this, the Tournament result will not be accurate. We need a different opening for every 2 games, and if 1 opening is played more than 2 times, then the Tournament result will be inaccurate. That’s why at TCEC or CCC, they use 50 different openings for 100 games, and 100 different openings for 200 games, the purpose is that they get accurate Tournament results

      1. Your and others’ suggestions are very important for us and they help to make BSG be stronger and better. Thanks again.
        I have just implemented both 2 & 3 for the coming release ver 0.15. Please help us to test them

  29. this is what i mean => http://prntscr.com/qovt6j

    “Use Percent” Box is ticked, but the score is still “1”, it should be 100

    it also the same here => http://prntscr.com/qovuiu

    how could the score be more than 100??

    156 is the Total Score, or if in Percent it should be 52
    (156/300) * 100% = 52%

    So, when the “Use percent” Box is ticked, the value in the box must change from 156 to 52

    Thanks,

  30. ver 0.14 …
    – the report of Tournament Results (http://prntscr.com/qovceb) shows that the length of the game is only 38 moves, but in the PGN file, the length of the game is 48 moves => http://prntscr.com/qovhef

    -the Tool X i requested before did not work at all => http://prntscr.com/qovc4t

    -there is still no option to use Starting / Opening Positions in sequence yet

    -Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” has not been fixed yet

    -“Open PGN from URL” also doesn’t work => http://prntscr.com/qovful

    1. Thanks for the very details and easy-to-reproduce report!
      1) The bug will be fixed for the next release
      2) It is Ongoing tournament to load/save tournaments. To enable buttons, just select a line.
      To see statistics of a PGN file, just drag and drop it into BSG, then click on the button “Stats” on the popup dialog
      3), 4) still in my TODO list
      5) The link you load is not a pure PGN, it is an HTML format content

    2. in this Ver 0.16, this problem “Engine take a lot of time to move when the calculation shows “Mate in 5, 4, 3, 2 & 1” has been fixed. and i want to say that Ver 0.16 is much more smoothly than ver 0.15, GOOD JOB 🙂

  31. in the Tournament results (http://prntscr.com/qmfb96), the “Score” parameter doesn’t seem to work in real time

    when the Tournament is running, the number shown is inaccurate, it’s only accurate after the Tournament is over

    and for “los%” parameter, what exactly is this? I do not understand

    …and for “time / move” it also seem inaccurate

    I run a 1m + 1s Bullet Tournament, and the Tournament Results shows that the average move is 48.5 moves/game (http://prntscr.com/qmfm2k)

    so I counted like this…

    Bullet 1m + 1s = 60 + 48.5 = 108.5 seconds
    Total number of moves / game = 48.5

    then,

    time / move = 108.5 / 48.5 = 2.237 seconds or 2237 ms
    Move overhead for Brainfish = 30 ms

    so i get…

    2237 – 30 = 2207 ms = 2.2 seconds / move and not 2.0

    1. Thanks a lot for your long report!
      1) I can’t reproduce the issue with scores, can you capture another image in which score is inaccurate?
      2) LOS = Likelihood of Superiority. You may read at https://www.chessprogramming.org/Match_Statistics.
      Frankly speaking, I am not good at that knowledge and plan to come back to improve it later.
      3) time/move average: the result depends on the way we sum up, divide and round up. Basically I use some simple tricks: sum as many items as possible, keep dividing and rounding up as late as possible. Some numbers are reported when their sums are done earlier than the others. It means their results are less accurate than others. However, their results are still in reasonable and acceptable ranges.
      If you or anyone wants to look/help me to verify at code, it is from banksia open source (https://github.com/nguyenpham/Banksia)

      1. 1) I don’t have time to play Tournament right now, maybe in a few days I will give you the screenshot
        2) Thank you, I have understood
        3) I think this parameter (time/move) is correct, I was wrong before because I did not count the amount of time left after the game ended

        …btw, I feel happy with this GUI, because this is the only GUI that anyone can give suggestions for development

        I also think about a Tool that I think is really very important

        for example I have 50 Starting Positions / Opening Positions (OP) to be played on 100 games

        We can’t just take any Opening from the Grandmaster Games and use it directly to Engine Match, we must ensure that the SP is balanced from both sides

        A good OP is an OP that has a Score in the range of +/- 0.44 at the “End Position”, so I have to do analysis at the end of each position using Engine to see the Score.

        the problem is, I have 50 OPs to analyze and I don’t have time to analyze them one by one

        but with this tool, I just need to open a PGN file that contains 50 OP using this tool, and let this Tool analyze itself and issue the “Score” for each end position of the 50 OP

        and after I get the “Score” for every OP, I just need to download it, and in the “Download Section” there must be an option, for example I only want to download OP with a score in the range of +/-0.44, or +/-0.60, in this way I don’t have to delete the OP manually with a score that is not in the range I want

        Thanks,

        1. Thanks for suggestions. I have added them to my TODO list. However, OP tools are always hard. I have seen many discussions on Talkchess and other forums with some methods/ways but almost none is really successful.

          1. okay let’s make it clear …

            for example, i have 3 OPs as you can see in this screenshot => http://prntscr.com/qoywrc

            OP 1 is the OP that I want to use in Engine Match, but I can’t just use it, I have to make sure that the white position is not much better than black and vice versa

            therefore, I analyze the End Position of this OP 1, if the Score is in the range of +/- 0.44, then I will use it, because the Score +/- 0.44 shows that this position is balanced for both sides (white and black)

            but if the score is out of this range, let’s say +1 for white (which means -1 for black), then it is very likely that any Engine that plays White will always win … OP like this certainly cannot be used in Engine Match

            from these 3 OPs, I just need to analyze them one by one using engine and the Score will appear in the “Score Box” as you can see in the screenshot

            now, if there is a Tool that can do it (which will be very very helpful)… i mean this Tool works by analyzing OP 1 (for example 3 minutes/OP), then displaying the Score in the “Score Box”, after that the Tool continues to analyze OP 2 and so on…

            The parameters used can be … time/OP, nodes/OP, or Depth/OP => for example: 180 seconds/OP, 1,000,000,000 nodes/OP, or depth 50/OP

            Thanks,

          2. There are still many questions to create an opening book, for example here are some quick ones in my mind: 1) until which length the book will take? 2) you said about scores in ply at n. How about moves before? If they conflict (says, the last one is good but previous ones are bad) how to take and use them?
            The opening book of the page chessdb.cn is built by computing. I think the authors have use a complicated method, plus a lot of running time. However, the quality of that book is still a question and needs someone to prove, evaluate.

  32. hi,

    I’ve tested your GUI, very good interface, but the engine Speed (nps) 21% SLOWER in this GUI compared to other GUIs

    1. Thanks a lot for the report!
      21% is much larger than normal. 1) Can you give me some information: a) what is your hardware (cpu, cores, mem) b) how many engines you used for that test c) what is concurrency?
      2) Can you rerun the tournament with all logs turned off (when creating a new tournament, uncheck all logs checkboxes) then run the test again? Many thanks again.

      1. 1) Laptop: ASUSTeK COMPUTER INC. X450CC (Ivy Bridge)
        core: 2, threads: 4
        used for testing: 1 thread
        concurrency: 1
        Engines: sf 10, komodo 10, houdini 1.5a
        2) Still happen

        maybe this gui dosen’t work well for Sandy Brdige or Ivy Bridge processors, maybe it only work well for haswell, broadwell, or the latest processors

        1. Thanks a lot for the report. Look like BSG does not work well in a bit old/weak computers. I guess it may take more resources than older GUIs. I will optimize BSG in the hope that it can run better in those systems.

          1. I’ve tried installing the Scid GUI, it’s 133MB in size and runs smoothly, while BSG is only 49MB, so there should be no problem

            there are still many people who use computers with Ivy Bridge Processors, and actually this processor is included in Modern Computers, so it’s a bit strange if someone makes any App and doesn’t optimize it well on these systems

          2. Frankly speaking, I don’t know the reason. Theory, when engines + GUI run far under 100% CPUs, engines are almost independent and have enough space to run. Thus the GUI should not affect to speed of any engines since it mainly catches output only. I suspect: 1) the ways BSG and Scid GUI calculating speeds are different. Say, BSG reports speed based on engine’s report and calculate only if it does not receive speed information from engines; other GUIs may calculate based on nodes report and elapse time; 2) BSG may affect to engines’ speed in mystery ways (I means unknown yet bugs). All need time. I will focus on this issue a bit later.

  33. Please add the CPU Speed ​​report (kN/s) to the Tournament results

    Maybe it can be placed between Nodes & Depth

    => http://prntscr.com/qjtshd

    ——————————–

    and also… if you can, please add this Tool (called Tool X) to BSG, the purpose is so that we can get data about Nodes, kN/s, Depth, time / move & time from any PGN file that containing engine games

    for example, I have a PGN file containing 100 games between Engine X vs Engine Y as a result of Tournament in another GUI

    well, now I want to get data about Nodes, kN/s, Depth, time/move, & time of the two engines

    so I just need to open the PGN file using this Tool X, and these Data come out

    I think this is a very good TOOL to be added to BSG

    1. Hi, I would like to second this request, as I believe that when testing Lc0 networks, we need average speed of an engine measured in nodes per second for a tournament in order to quantify the strength.
      Adam, what is Tool X, and where can we find it?

        1. There is a tech problem: BSG has saved information about nodes into PGN. However, it is not popular. Some GUIs/software stores only score, depth and elapse time for each move. It means I may not retrieve any information about nodes, speeds… when working with general PGN.
          BTW, I will postpone this feature a bit (to ponder)

    2. That tool is completed for the next release. It is in the form of dialog for getting statistics from games in a PGN file. The information is quite similar to one in the tournament result of BSG.

    1. Thanks for the report. The buttons on move-list panel are designed small sizes (they are extra buttons). You may use buttons on the toolbar which much larger sizes. BTW I have added a note about them and will take a review.
      Showing material is added to my TODO list.

    1. Thanks for the report. Do you have the engine log of that game? If yes, please send to me (via email). BTW, which time control did you use? As I have understood, Stockfish is not optimized for none-standard/traditional time controls. Can you re-test with the new version (0.13). Thanks again

        1. Thanks a lot. Unfortunately, I did not receive it after waiting for a while. Can you resend to banksiagui at gmail . com. Thanks

  34. I want to report that “Starting Positions” (called “Openings” in BSG => http://prntscr.com/qj5ev3) on Tournament are not played all

    for example, I made a small Test with 50 Starting Positions in 100 games

    this means that every Starting Position must be played twice

    but the Tournament Result showed that not all Starting Positions were played, some were played more than twice (4 to 6 times) and some were not played at all

    1. Thanks again for the report. At the moment, BSG picks up the opening positions randomly but not in sequent. Thus it is not guaranty all positions from a book will be used.

      1. Thus it is not guaranty all positions from a book will be used… Exactly! …but only if the number of openings are more than the number of games

        for example, the number of Openings are 50, and each Opening is used a maximum of 2 times (once for White and once for Black). Now, I make a tournament of 50 games, then of course only 25 openings will be chosen randomly

        But if the number of games are 100, then all Openings must be used a maximum of 2 times

        And if the number of games are more 100, then out of the 50 Openings, of course there are several Openings will be used more than twice

        …I think there must be an option to pick up the Opening Positions sequentially

  35. Bug report on v12:
    * Crashes when opening certain games in database. Trying to figure out which games. Or it may be on order of selecting. Double click one game to load. Then double click on second game, and it crashes.
    * Crashes when creating new database. Tool>Create Database. Fill in various fields then select Process. Crashes.
    * When doing analysis, countdown (eg. 0 of 38) never increases. closed down banksiagui and when reopened the whole game was analyzed.

    Config: Mac OSX, Mojave, Mac Air 2018

    1. Thanks a lot for the report. I have taken a note and tried to reproduce. However, I am struggling to reproduce (all 3 issues using an iMac) at the moment thus I will come back to those issues later. If you know how to reproduce steps by steps please let us know. Thanks again.

      1. I reproduced on my other laptop, Windows 10.

        Result: Crash when creating new database.
        Steps to reproduce (assume creating empty new db):
        1. Click New Database icon.
        2. On new db form, fill in:
        3. On Game folder, click Browser and select Documents Games folder.
        4. For Database file field, put in “simpletest”.
        5. Click Process.
        6. Crashes.

        Result: Crash when creating new database from PGN.
        Use Alekhine PGN downloaded from pgnmentor.com
        Steps to reproduce (assume creating empty new db):
        1. Click New Database icon.
        2. On new db form, fill in:
        3. On Game folder, click Browser and select Documents Games folder that has Alekhine.pgn file.
        4. For Database file field, put in “alekhine”.
        5. Click Process.
        6. Crashes.

        I’ll try the other reports too when I get a few more minutes.

      2. v.12 More Test Cases

        Result: Crash when opening games in database.
        Steps to reproduce (assume existing game database gm2001.bgdb):
        1. Click Database icon.
        2. Database file is gm2001.bgdb location
        3. Click on first game (on mine Kramnik v Leko 2001-1-2). Game is opened in game window but focus remains in db listing.
        4. Select next game in list (on mine Kranmik v Leko 2001-1-4). At this point it crashes.
        5. If not crash on step 4, select another game. By this time it will crash if not on previous step.
        Note: sometimes it crashes on first game selected.

        Report: No UI update when doing analysis, countdown (eg. 0 of 38) never increases.
        I am not able to reproduce this as it seems to be working correctly now. I’ll test some more to see if I can reproduce, but it was probably some strange config or state that I was in.

        **New bug report: mispelling of Medium on Preferences>Book/egtb tab>Bubble Size

        1. Thanks a lot for the reports. All those bugs are (hopefully) fixed for the next version 0.13. Please help us to verify.

  36. Thank you for another informative site. Where else could I get that kind of information written in such a perfect way? I have a project that I am just now working on, and I’ve been on the look out for such great information like yours. Thanks!

  37. Really liking your program. I think it will be a hit especially for Linux and Mac users.
    1) Is there a way to lower the playing strength of an engine? For example on stockfish it shows level 20 but no option to change it.
    2) When bringing up a game from the database list, it defaults to showing the last move. It would be nice to start at the beginning of the game (like chessbase, fritz, scid, arena, etc others I’ve tried). Not a huge deal to scroll to top to first move, but still.
    3) It would be nice to have a Resign button to record the proper PGN
    4) Is there way to edit PGN Information (player names, event, etc)

    1. 1) For Stockfish, you go to its options (open Settings->Engines tab-> select Stockfish, scroll screen of Engine options to see Skill Level, double click on the number -> change it to what level you need
      2) Thanks for the suggestion, I have added to my TODO list
      3) BSG used to have Resign button but then I have removed it since it is not really useful. I took a note about this and maybe reimplement
      4) It is in my TODO list. Thanks again

  38. Hello Pham! I have 2 problems with Banksia gui:
    1) I cant read a pgn file. Can you post the process i have to follow to read a pgn file ?
    2) I cant force installed engines to use a specific bin book and play automatically the first opening moves.
    Thanks for your hard work…

    1. 1) Just drag and drop the PGN file into Banksia GUI. Other way is to press Control-O or open menu File -> Open Game -> select your PGN from that dialog
      2) Look like there is a bug on the opening book for game human vs engine. Thanks for the report

      1. 1) Just drag and drop the PGN file into Banksia GUI. Other way is to press Control-O or open menu File -> Open Game -> select your PGN from that dialog.
        Seems that not help either! No game list appears. Only one game from entire pgn file.

        1. You are right. At the moment BSG reads and shows only a game from a PGN file (even it can read all games when creating databases). Support PGN database (multi games) is on my TODO list (I may implement it within 2 weeks).

  39. Some suggestions:
    Add human to tournament
    Resign button (in Human vs Comp)
    Human has Elo and is updated after playing games against Comp
    Add WhiteElo BlackElo to created PGNs

    1. Thanks a lot for the suggestion!
      1) Add human to tournament: interesting idea. However, we confuse since human players usually don’t want to wait for playing vs software. Human vs human matches are no point since we are using only one offline-computer.
      2) Resign button: BSG used to have that button. But we removed it since the human can easily stop the game and/or close program instead 😉
      3) Elo update: We don’t know how to update Elo after a game. If you know please send us the method/document, thanks

      1. 1) It’s quite common to do that, I loved to play fake tournaments in Chessmaster way back. Watching your opponents play is fun. I don’t know how hard that would be to add, but I’d really enjoy that feature.
        2) It’s just so the game gets correctly scored in the PGN as LOSS, I know that ending it is quite easy, but what if I want to save it and take a look at it later? Or use it in a database?
        3) There’s an example here: https://metinmediamath.wordpress.com/2013/11/27/how-to-calculate-the-elo-rating-including-example/
        It’s not too hard, basically a single exponential function and some addition and multiplication.
        4) Any update on this? [WhiteElo] and [BlackElo] tags in PGN should contain the player’s Elo rating.

      2. For some reason my reply doesn’t show up so I’ll write it again:
        1) Playing a tournament against (weak!) engines was one of my favourite features of Chessmaster. That coupled with 3) would make it very fun! If it’s not much work, I’d love to see it added.
        2) The main use of resign would be so the PGN files get labeled as LOSS/WIN correctly, I save all my games so it’s very annoying to have to manually change the Results in the PGN.
        3) Updating Elo is quite easy, it’s just a couple of additions and multiplications (and one exponential function). If you google ‘The Math Behind ELO’ you should find a blog post that even has sample code.
        4) Any update on this? WhiteElo and BlackElo in the PGN would be very useful, and it seems like a simple addition.

  40. Hi,
    Thank you very much for the very cool Chess GUI.
    Is there a way to run an engine gauntlet tournament where one engine will always play as white (without swiping sides) and using a pgn as an opening -opening order sequential?
    Could you please increase the maximum number of games per tournament from 10000 to 250000.
    Any assistance you can provide would be greatly appreciated

    1. For the current version, BSG can lock engines to a given side. However, it is a bit complicated (and maybe buggy) since users have to edit JSON files. Thus, we are working to improve and hope users can do easily in the next release.
      The idea about using PGN in order sequence looks good, we put it in TODO list – thanks. The increment of the limit is ready for the next release.

  41. Is there a way to analyze a played game, or have the engine show move ratings on a played game? When I bring up games from the database, it seems the engine is not turned on at all.

    1. Analyze a played game is a task in my TODO list – not available at the moment. When you load a game (from PGN or database) BSG will match players’ names with engine-name list, if a name totally matched, the engine of that name will be invoked.

      1. Hello again. Thanks for the quick turnaround. V .010b seems to run fine now. I think the GUI is also a little more responsive. I particularly like the “score meter” and some of the other small UI improvements (the button to edit the interface files is also good!). You are definitely making progress. I did not update this issue again, but I am fairly sure you still have a “smaller” memory leak. When I run my “test” 144 game tourney the banksia app still grows to about 250mb, (but it was about twice that or 500mb until you worked on it with version 0.9). Mac Activity Monitor is a good way to look at the size of the app over time.
        You have done very good work and this GUI is showing great promise. Just needs some more polishing and stability tweaking! Thanks for such a fine app addition to the chess community!

  42. Hello again. Sorry, but version .10 (14 Dec) doesn’t startup (no UI screen) and then immediately crashes (with no error msg) on my old Core 2 Duo 2 mini 64 bit. All previous versions ran fine. Maybe a bad build? Thanks in advance.

  43. Thanks for the arrow keys and OSX support.
    Small edit: On Settings screen, General tab, next to Move stat bubbles, Medium is misspelled. Same with Book/Egtb tab.
    And for Database Viewer, can you tighten up the game list. It seems that there is too much space between lines.
    Also when selecting a game from the DB Viewer, it always brings up the game with the last move shown instead of showing the initial game ready to play move 1 (which seems different from other GUI’s I’ve used).

  44. One more thought. I did have logs, etc. enabled on these tournies. Are you maybe putting them in memory before Banksia writes them out and then maybe not releasing the memory, etc! Just a thought!

  45. Hello again. Well, it is good that you are at least aware of the problem. It does make sense that the “slowdown” is probably worse on an old slower processor like mine, but NOT desirable on any machine. I am not a C++ programmer (mostly pascal and flavors of basic), but you should probably ask around on TalkChess for some suggestions. There are lots of sharp folks on that forum. Good luck. If I can be of any further help, let me know.

  46. I sent you the following email (with attachments) to banksiagui gmail com.

    Hello again. I have a bit more info on the “freezing” behavior. I am now using version 0.8alpha which seems somewhat better. But it still slows down and the apparent memory usage is “bloated” (much larger) about halfway through a tourney. I have attached several screenshots that show memory usage growing steadily as my tourney progresses. Banksia memory started at a modest 88mb (even though I forgot to take a screenshot at start). But the images (look for Banksia process at bottom of each image) show the memory steadily increasing with the last memory image being about halfway through a 144 game round-robin tourney (but Banksia has not “frozen” at this point, just slowed down). Surely this memory increase in the Banksia process is not normal? I would bet that some data structure is constantly being allocated memory that often does not get released. I did see the memory usage dip a bit for short periods but always ends up increasing steadily. I hope this info helps!

    By the way, I really like the tournament info tabs in v0.8. The “tech” info is very useful. All in all you have done a very good job with Banskia! I hope it continues to progress!

    -Ken

    P.S. – I use cutechess (both cli and GUI) and several other chess GUIs on a constant basis. You already have some features in Banskia that they don’t have!.

    1. I got your email. Thanks a lot!

      Yes, it looks like BSG has trouble with the memory leak. I have been fighting on this issue. It is not clear how hard the leak since BSG keeps some info of completed games, thus memory must increase after each game. In my computer (16 GB memory) BSG can play continuously thousands of games. BTW, I will focus on this issue now.

  47. Hello! Very promising GUI. I really like the general layout with the tourney schedule, tables, multi-games, etc.
    I am using v0.7 alpha on an old circa 2010 Mac Mini Core 2 Duo 2 under 10.13 High Sierra. It seems to freeze about 20-30 games into a tourney (round-robin or gauntlet, concurrency set only to 1). I have to force quit the app. I have 16gb memory and lots of disk space and was only running a browser in the background. I do not know whether this is a slow memory-type leak or something else. Sorry I cannot report more info at this time. I have lots of experience with other engines and other Chess GUIs so I thought I should report this.
    Thanks for this very promising GUI. I will definitely follow its progress.

    1. Thank you for using Banksia GUI. I don’t have mac mini to try, thus I need your help to check further. Can you do the following steps:
      – run the app Activity Monitor to check frequently computer’s memory
      – pick up 1 or 2 “good” chess engines. That is for making sure they are not the problem. Stockfish is usually a good one. Don’t try Lc0 since it is not good for macOS and may freeze the screen
      – now run Banksia GUI, create a tournament with above engines, first set Games/pair small, say 4, then increase later, turn off almost all things, don’t use opening books, no log, no syzygy… Set time controller to very fast (say, standard 10 seconds per games) -> you can try fast
      – start the tournament
      Just observe if BSG can complete the tournament and check memory if it becomes exceeding your physic memory.
      If the tournament completed well, try to double the number of games by double the games per pair…
      Please report here your experiments. Thanks

      1. I don’t think the “mac-mini” itself (type of processor) would make any difference. I think the freeze would probably happen on ANY Mac processor. I have 16gb of physical memory for just these type of applications and rarely use more than 50% (as reported by menu-bar stats). I did indeed use all known good engines (Stockfish 10, Komodo 13.2.5, etc.) that I have used before. I think you may have a pointer or memory-structure leak somewhere. I will run some more tests and note the CPU and memory usage. When it froze several times before Mac OS simply reports (“BanksiaGUI has become non-responsive”). I was using eight well-known engines with a 3-minute+1sec time control. I will of course test the new version 0.8 alpha. Very promising GUI when it becomes stable.

        1. Thanks for the reply and help. The problem (for me) I can’t reproduce that issue on my iMac (2017, it has a similar 16 GB memory but quad-cores and using Catalina). I will do some more tests too.

  48. I would like to have a 4th option for tournament mode: gauntlet. As I test for CCRL that is the mode I use almost exclusively with all other GUI’s.

      1. I also use gauntlet a lot. If you can program the player running the gauntlet to choose his color for all rounds, that would be a first. All the gui’s I know play White in the first pass.

        1. BSG doesn’t have an interface to do that. However, you may edit manually the file banksiatour.json to lock some engines to a given side as the following text. Please try and tell me the result.
          “inclusive players” :
          {
          “guide” : “matches are counted with players in this list only; side: white, black, any”,
          “mode” : true,
          “players” : [ “crafty”, “stockfish 10” ],
          “side” : “black”
          },

Leave a Reply to Gabor Szots Cancel reply

Your email address will not be published.