MadChess 2.1 Released - Supports Windows, Linux, Mac

Discussion of anything and everything relating to chess playing software and machines.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
User avatar
emadsen
Posts: 201
Joined: Wed Apr 25, 2012 11:51 pm
Location: Oak Park, IL, USA
Full name: Erik Madsen
Contact:

MadChess 2.1 Released - Supports Windows, Linux, Mac

Post by emadsen » Thu Feb 23, 2017 3:51 am

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.
My C# chess engine: https://www.madchess.net

User avatar
MikeB
Posts: 4203
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

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

Post by MikeB » Thu Feb 23, 2017 4:46 am

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]

User avatar
MikeB
Posts: 4203
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

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

Post by MikeB » Thu Feb 23, 2017 5:07 am

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]

Alex_Schmidt
Posts: 11
Joined: Sat Nov 01, 2014 6:09 pm

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

Post by Alex_Schmidt » Sat Feb 25, 2017 5:20 pm

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--

thunderstruck
Posts: 46
Joined: Tue Jul 19, 2016 8:19 am

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

Post by thunderstruck » Sat Feb 25, 2017 5:49 pm

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?

User avatar
emadsen
Posts: 201
Joined: Wed Apr 25, 2012 11:51 pm
Location: Oak Park, IL, USA
Full name: Erik Madsen
Contact:

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

Post by emadsen » Sat Mar 11, 2017 4:59 am

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.
My C# chess engine: https://www.madchess.net

Colin-G
Posts: 163
Joined: Mon Oct 31, 2016 5:30 pm
Location: England

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

Post by Colin-G » Sat Mar 11, 2017 9:55 am

The Windows executables also fail to run using wine in linux mint 17, with messages about several .dll files missing.

User avatar
emadsen
Posts: 201
Joined: Wed Apr 25, 2012 11:51 pm
Location: Oak Park, IL, USA
Full name: Erik Madsen
Contact:

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

Post by emadsen » Sat Mar 11, 2017 5:40 pm

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?
My C# chess engine: https://www.madchess.net

Post Reply