Page 1 of 1

MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Thu Feb 23, 2017 4:51 am
by emadsen
I've released version 2.1 of my chess engine, MadChess. It now supports Windows, Linux, and Mac*.

* OK, I'll immediately qualify that. I haven't tested it on Linux or Mac, so I'm looking for volunteers.

MadChess still uses mailbox board representation (not bitboards) and still is written in C#. It will run (let's hope) on Linux and Mac via .NET Core, Microsoft's new cross-OS development platform.

I estimate MadChess 2.1 is about 60 or 70 ELO stronger than version 2.0.

See MadChess 2.1 Released for details and download link.

I converted the MadChess website from BlogEngine.NET to WordPress, styled using the fantastic Parabola plugin. I'm very happy with how it looks. WordPress is written in PHP. And I'm hosting it on Microsoft's Azure cloud. So the theme of this release is... cross-platform.

Re: MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Thu Feb 23, 2017 5:46 am
by MikeB
emadsen wrote:I've released version 2.1 of my chess engine, MadChess. It now supports Windows, Linux, and Mac*.

* OK, I'll immediately qualify that. I haven't tested it on Linux or Mac, so I'm looking for volunteers.

MadChess still uses mailbox board representation (not bitboards) and still is written in C#. It will run (let's hope) on Linux and Mac via .NET Core, Microsoft's new cross-OS development platform.

I estimate MadChess 2.1 is about 60 or 70 ELO stronger than version 2.0.

See MadChess 2.1 Released for details and download link.

I converted the MadChess website from BlogEngine.NET to WordPress, styled using the fantastic Parabola plugin. I'm very happy with how it looks. WordPress is written in PHP. And I'm hosting it on Microsoft's Azure cloud. So the theme of this release is... cross-platform.
macOS exe

Code: Select all

[Mac-Pro:~] michaelbyrne% /Users/michaelbyrne/Downloads/MadChess-3/MadChess.Engine ; exit;
uci
id name MadChess 2.1
id author Erik Madsen
option name Debug type check default false
option name Log type check default false
option name Hash type spin default 128 min 0 max 1024
option name UCI_AnalyseMode type check default false
option name Analyze type check default false
option name MultiPV type spin default 1 min 1 max 160
option name PieceLocation type check default true
option name PassedPawns type check default true
option name Mobility type check default true
option name Threats type check default true
option name KingSafety type check default true
option name BishopPair type check default true
option name Outposts type check default true
option name Trades type check default true
option name 7thRank type check default true
option name NPS type spin default 0 min 0 max 1000000
option name MoveError type spin default 0 min 0 max 1000
option name BlunderError type spin default 0 min 0 max 1000
option name BlunderPercent type spin default 0 min 0 max 100
option name UCI_LimitStrength type check default false
option name LimitStrength type check default false
option name UCI_Elo type spin default 400 min 400 max 2200
option name ELO type spin default 400 min 400 max 2200
option name UCI_EngineAbout type string default MadChess by Erik Madsen.  See http://www.madchess.net.
uciok

bench
bench command not supported.

go depth 13
Index was outside the bounds of the array.

   at MadChess.Engine.Evaluation.EvaluateRooks(Int32& MgRooks, Int32& EgRooks)
   at MadChess.Engine.Evaluation.GetStaticScore(Int32 MaterialScore)
   at MadChess.Engine.Search.GetDynamicScore(Int32 Depth, Int32 Horizon, Int32 OriginalHorizon, Boolean NullMove, Int32 Alpha, Int32 Beta)
   at MadChess.Engine.Search.GetScoreWithinAspirationWindow(Int32 PrincipalVariations)
   at MadChess.Engine.Search.FindBestMove()
   at MadChess.Engine.UciStream.GoAsync()
   at MadChess.Engine.UciStream.MonitorQueue()


logout

[Process completed]

Re: MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Thu Feb 23, 2017 6:07 am
by MikeB
It did run under xboard in macoS

no opening book used here for first game, second game MadChess did not let GUI play book - book was initiated after loading MadChess, in 3rd game GUI opening book settings were set prior to loading Madchess - last game was with engine that comes with macOS (spent 11.2) - run you run it under xboard, there is no output.

select the ->Ellipsis (...) in the upper left of the board display to select game

[pgn][Event "Computer Chess Game"]
[Site "Mac-Pro.local"]
[Date "2017.02.22"]
[Round "-"]
[White "MadChess 2.1"]
[Black "McBrain 2017 v1.3 64 POP"]
[Result "0-1"]
[TimeControl "9+0"]
[Annotator "2. +0.25 5... +0.06"]

1. e3 {+0.00/2} d5 2. Nc3 {+0.25/5 0.2} Nf6 3. Nf3 {-0.01/6 0.4} g6 4. d4
{+0.08/6 0.7} Bg7 5. Ne5 {+0.20/5 0.2} Ne4 {+0.06/15 4} 6. Nxe4
{+0.67/6 0.3} dxe4 {+0.23/13 0.2} 7. Bc4 {+0.50/6 0.3} Bxe5 {-0.02/15 0.2}
8. dxe5 {-0.61/7 0.5} Qxd1+ {-0.06/14 0.2} 9. Kxd1 Bg4+ {-0.14/12 0.1} 10.
Ke1 {-0.84/6 0.2} Nc6 {-0.17/15 0.3} 11. Bd2 {-0.56/7 0.4} Be6
{-0.16/14 0.1} 12. Bxe6 {-0.39/7 0.3} fxe6 {-0.14/15 0.2} 13. Ke2
{-0.25/6 0.2} Kf7 {-0.01/15 0.2} 14. Bc3 {+0.32/7 0.3} Rhd8 {-0.07/16 0.4}
15. Rhd1 {+0.24/6 0.2} a5 {-0.15/14 0.2} 16. a4 {+0.17/7 0.2} Rd5
{-0.22/16 0.2} 17. f3 {+0.24/5 0.2} exf3+ {-0.28/14 0.1} 18. gxf3
{+0.21/7 0.4} b6 {+0.09/15 0.1} 19. h4 {+0.19/6 0.4} Nb4 {-0.36/18 0.5} 20.
Bxb4 {-0.02/8 0.2} axb4 {+0.00/14 0.1} 21. Rd4 {+0.10/8 0.4} c5
{+0.14/13 0.1} 22. Rxd5 {-0.06/8 0.2} exd5 {+0.21/17 0.2} 23. Kd3
{+0.07/8 0.2} Ke6 {+0.38/12 0.1} 24. f4 {+0.06/9 0.4} Kf5 {+0.40/12 0.1}
25. b3 {-0.05/8 0.4} h6 {+0.43/14 0.1} 26. Rg1 {+0.00/8 0.5} Rc8
{+0.67/14 0.1} 27. Rg2 {-0.22/6 0.2} e6 {+0.53/16 0.2} 28. c4 {-0.25/6 0.1}
bxc3 {+1.21/14 0.1} 29. Kxc3 {-0.55/7 0.2} Rd8 {+1.33/13 0.1} 30. Kd3
{-0.17/6 0.3} d4 {+1.23/15 0.2} 31. e4+ {-0.02/8 0.1} Kxf4 {+1.23/1 0.1}
32. Rxg6 {-0.63/9 0.3} Kxe5 {+1.68/15 0.1} 33. Rxh6 {-1.30/9 0.3} Rg8
{+1.78/14 0.1} 34. Rh5+ {-1.71/8 0.2} Kf4 {+1.92/15 0.1} 35. Rh6
{-1.36/9 0.2} Rg3+ {+2.03/13 0.1} 36. Kc2 {-2.02/9 0.3} Ke3 {+3.11/15 0.1}
37. Rxe6 {-1.41/7 0.2} d3+ {+4.37/16 0.1} 38. Kc3 {-0.42/8 0.2} Rg2
{+4.58/15 0.1} 39. b4 {-1.70/8 0.3} Rc2+ {+6.92/16 0.1} 40. Kb3 c4+
{+7.14/14 0.1} 41. Ka3 d2 {+7.61/16 0.1} 42. Rd6 {-4.68/8 0.2} Rc3+
{+1000.08/15 0.3} 43. Kb2 {-5.31/7 0.1} Rd3 {+1000.07/18 0.1} 44. Rxd3+
{-12.12/7 0.2} Kxd3 {+1000.05/29 0.1} 45. a5 {-14.98/8 0.3} d1=Q
{+1000.04/32 0.1} 46. axb6 {-17.44/8 0.3} Qc2+ {+1000.03/71 0.1} 47. Ka1
{-1000.02/9 0.3} c3 {+1000.02/127 0.1} 48. b5 {-1000.01/8 0.2} Qb2#
{+1000.01/127 0.1}
{Black mates} 0-1

[Event "Computer Chess Game"]
[Site "Mac-Pro.local"]
[Date "2017.02.22"]
[Round "-"]
[White "MadChess 2.1"]
[Black "McBrain 2017 v1.3 64 POP"]
[Result "0-1"]
[TimeControl "60+1"]
[Annotator "1. +0.21 7... +0.70"]

1. Nc3 {+0.21/10} d5 2. d4 {+0.14/10 2.5} Nf6 3. Bf4 {+0.16/10 2.3} e6 4.
Nf3 {+0.44/9 3} c5 5. e3 {+0.65/8 2.1} a6 6. Ne5 {+0.68/7 2.1} Nfd7 7. Qg4
{+0.95/7 1.7} h5 {+0.70/19 1.4} 8. Qg3 {+0.77/9 2.1} h4 {+0.78/19 1.7} 9.
Qg4 {+0.55/8 1.6} Nxe5 {+0.85/18 0.5} 10. dxe5 {+0.90/8 2.1} Qa5
{+0.90/19 1.6} 11. O-O-O {+0.74/7 2.3} Nc6 {+0.67/17 0.5} 12. Kb1
{+0.83/7 1.6} b5 {+0.88/19 2.6} 13. Qg5 {+0.83/7 4} c4 {+1.42/19 1.8} 14.
e4 {+0.70/8 1.8} d4 {+1.44/22 4} 15. Ne2 {+0.95/8 1.4} Bb7 {+1.10/20 0.5}
16. Nxd4 {+0.28/8 1.7} Rd8 {+1.77/21 1.9} 17. Be3 {+0.28/8 1.5} Nb4
{+1.89/20 0.8} 18. Bxc4 {-0.82/8 4} bxc4 {+1.91/22 8} 19. a3 {-0.42/9 2.1}
Nd3 {+1.67/18 0.4} 20. cxd3 {+1.04/8 2.0} c3 {+1.76/20 3} 21. Nxe6
{+1.86/7 1.7} fxe6 {+2.98/19 2.7} 22. Qg6+ {+0.58/9 1.4} Kd7 {+3.42/18 1.2}
23. Bg5 {-0.42/9 4} Qb6 {+5.85/19 1.9} 24. Qf7+ {-0.02/8 2.3} Kc8
{+5.64/20 0.5} 25. b4 {-2.78/8 4} Bxb4 {+7.78/21 1.5} 26. Kc2 {-4.60/9 4}
Rhf8 {+8.03/19 0.5} 27. Bxd8 {-8.68/9 4} Kxd8 {+8.47/19 1.4} 28. Qxf8+
{-9.00/11 2.5} Bxf8 {+8.98/18 0.4} 29. Rb1 {-8.33/11 2.1} Qxf2+
{+9.28/18 1.6} 30. Kxc3 {-8.86/11 2.7} Qc5+ {+9.25/17 0.5} 31. Kd2
{-8.49/10 2.3} Bc6 {+9.66/19 4} 32. Rhf1 {-7.73/8 1.6} Be7 {+11.85/20 2.0}
33. Rb8+ {-9.05/8 2.9} Kc7 {+16.59/18 3} 34. Rfb1 {-11.62/10 1.6} Bg5+
{+1000.09/24 1.8} 35. Ke2 {-13.22/11 2.3} Qe3+ {+1000.08/24 0.5} 36. Kf1
{-14.08/12 1.4} Qxd3+ {+1000.07/30 2.1} 37. Kg1 {-18.40/13 2.2} Be3+
{+1000.06/31 0.7} 38. Kh1 h3 {+1000.05/40 2.1} 39. Ra1 {-25.87/9 2.0} Kxb8
{+1000.04/112 2.1} 40. a4 {-1000.03/11 1.4} Bxe4 {+1000.03/127 0.1} 41. Rg1
{-1000.02/12 3} hxg2+ {+1000.02/127 0.2} 42. Rxg2 Qb1# {+1000.01/127 0.1}
{Black mates} 0-1

[Event "Computer Chess Game"]
[Site "Mac-Pro.local"]
[Date "2017.02.22"]
[Round "-"]
[White "MadChess 2.1"]
[Black "Sjeng 11.2"]
[Result "0-1"]
[TimeControl "120+2"]
[Annotator "10. -0.04"]

1. Nf3 Nf6 2. g3 e6 3. Bg2 d5 4. d3 Be7 5. Nbd2 O-O 6. O-O c5 7. e4 Nc6 8.
Re1 Qc7 9. c3 d4 10. Nc4 {-0.04/10 10} e5 11. Qb3 {+0.01/9 4} Be6 12. cxd4
{-0.12/8 3} cxd4 13. Bd2 {+0.01/10 7} Nd7 14. Rac1 {-0.25/10 4} Nb6 15. a4
{-0.08/8 4} Rfc8 16. Kh1 {-0.18/9 3} Nxc4 17. dxc4 {-0.46/10 5} Rab8 18. h4
{-0.23/9 7} Qd8 19. Bf1 {-0.27/9 8} Rc7 20. Ng5 {+0.07/9 3} Bg4 21. c5
{+0.29/10 5} Bh5 22. Be2 {+0.47/8 4} Bg6 23. Bb5 {+0.19/8 4} Qf8 24. Qc2
{+0.02/8 5} Nd8 25. b4 {+0.57/9 5} a5 26. bxa5 {+0.68/8 4} Rxc5 27. Qb1
{+0.52/8 3} Nc6 28. Rxc5 {+0.57/9 4} Bxc5 29. Kg2 {+0.44/8 4} Qd8 30. Qc2
{+0.35/8 4} Be7 31. Bxc6 {+0.88/10 4} Rc8 32. Qb3 {+0.52/10 4} bxc6 33. Qb7
{+0.46/9 5} c5 34. a6 {+0.71/10 4} c4 35. Ba5 {+1.07/9 3} Qe8 36. Nf3
{+1.01/9 5} Bd6 37. Bb4 {+0.16/9 4} Bxb4 38. Qxb4 {+0.00/11 4} Bh5 39. Qa5
{+0.33/9 2.9} Bxf3+ 40. Kxf3 {-0.23/11 5} c3 41. Qb5 {-0.60/11 13} Qd8 42.
Qxe5 {-0.42/9 4} d3 43. Rd1 {-2.10/8 2.8} c2 44. Qa1 {-12.31/9 3} d2 45.
Ke2 {-14.20/9 2.7} c1=Q 46. Qxc1 {-20.95/10 5} dxc1=Q 47. Rxd8+
{-22.94/13 7} Rxd8 48. Kf3 {-24.70/13 9} Qh1+ 49. Ke3 {-1000.06/12 7} Qd1
50. Kf4 {-1000.04/12 10} Rd3 51. g4 {-1000.03/9 1.9} Qc1+ 52. Kf5
{-1000.02/9 1.9} Rf3+ 53. Ke5 Qc5#
{Black Mates} 0-1
[/pgn]

Re: MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Sat Feb 25, 2017 6:20 pm
by Alex_Schmidt
Unfortunately Mad Chess doesn't run under Linux Mint 18, 64 bit, using Arena 1.1 for Linux.
I have created Mad Chess explicitly as a UCI engine in Arena engine settings.
The protocol says (sorry for some words in German :-)):
2017-02-25 18:15:51.238*1*------------------------Starte Motor 1 Mad Chess 2.1------------------------
2017-02-25 18:15:51.246*1*Configured Engine 1 Type: UCI
2017-02-25 18:15:51.278*1*enginedebug:CommandLine: >>nice -1 /media/BOOT/1_Daten/Linux-Dateien/1_Programme/MadChess/MadChess.Engine <<
2017-02-25 18:15:51.278*1*enginedebug:-- executing engine--
2017-02-25 18:15:51.280*1*enginedebug:EngineReadThread create...
2017-02-25 18:15:51.281*1*enginedebug:EngineReadThread created suspended
2017-02-25 18:15:51.281*1*enginedebug:-- Thread now starting --
2017-02-25 18:15:51.281*1*enginedebug:-- Tengine.Redirect finished --
2017-02-25 18:15:51.301<--1:-- starting engine[slotnr].EngineProcess --
2017-02-25 18:15:51.301<--1:-- engine[slotnr].EngineProcess.Running --
2017-02-25 18:15:51.301-->1:uci
2017-02-25 18:15:51.976<--1:Failed to initialize CoreCLR, HRESULT: 0x80131500
2017-02-25 18:15:51.978<--1:BytesRead > 0
2017-02-25 18:15:51.978<--1:-- LiesThread.Execute terminated --
2017-02-25 18:15:59.466*1*-- EngineProcess not Running:35072--

Re: MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Sat Feb 25, 2017 6:49 pm
by thunderstruck
Doesn't run on Arch Linux 64 bits.
I have the same error message as Alexander when i run the executable from console : Failed to initialize CoreCLR, HRESULT: 0x80131500
Erik, could you provide a normal MONO executable?

Re: MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Sat Mar 11, 2017 5:59 am
by emadsen
Thanks all for testing. I'm sorry the engine doesn't work on Linux or Mac. I guess it's unrealistic of me to expect it to, when I haven't tested it on those systems- just not part of my development process.

OK, I'll remove the non-Windows binary downloads from my website. And leave it for the adventurous to attempt to build an executable on Linux or Mac themselves.

Re: MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Sat Mar 11, 2017 10:55 am
by Colin-G
The Windows executables also fail to run using wine in linux mint 17, with messages about several .dll files missing.

Re: MadChess 2.1 Released - Supports Windows, Linux, Mac

Posted: Sat Mar 11, 2017 6:40 pm
by emadsen
The Windows executables also fail to run using wine in linux mint 17, with messages about several .dll files missing.
Hmm... not sure about Wine & Linux. "Self-contained" .NET Core apps still have some low-level OS dependencies, they're not entirely self-contained. Perhaps installing the Linux Mint 17 SDK will resolve the issue?