★この記事を書いた時点では本家版はMacOSX未対応でしたが、その後正式に対応したので、現在この記事の内容は古くなっています。詳しくは本家版のGitHubを参照ください。
AI将棋界隈では評判の将棋神やねうら王、その商用版の元になっている(または機能制限版である)MyShogiを、なんと、MacOSXでビルド&遊べるようにしてくれた方がおられるというので、早速私も試してみました。
昨日 @mizarjp さんからコメントをいただいて地道に修正を続けた結果、MyShogiからMac向けの検討エンジンが起動できました。(ありがとうございます!)
— 海苔 (@arrow_elpis) 2018年9月24日
修正一式: https://t.co/PPCZwXlPdW
使っている画像たち: https://t.co/7dLuRArjZD
エンジン設定とビルド: https://t.co/m7de31w5ig pic.twitter.com/E0Jn0hOs91
詳細は以下のGitHubの解説通りにやればなんとかなるのですが、一応ビルド&実行ログをここに記載しておきます。
ちなみに当方のマシンスペック&OSバージョンは以下の通り。
$ system_profiler SPHardwareDataType Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro15,2 Processor Name: Intel Core i7 Processor Speed: 2.7 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 8 MB Memory: 16 GB Boot ROM Version: 15.16.6805.0.0,0 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G2307
1. monoのインストール
- 以下から、OSX用の最新のインストーラをダウンロードする。
- https://www.mono-project.com/docs/about-mono/supported-platforms/macos/
- MacでVisualStudioを使いたい場合は「Visual Studio channel」をダウンロードする。使わないなら「Stable channel」で良い。
- なお、homebrewでinstallできるmonoだと、resxファイルのbase64イメージの解釈に失敗するようなので、公式サイトのインストーラでインストールしないといけないようだ。何が違うのかは不明。
- ダウンロードしたインストーラを起動し、あとは指示通りに進めばインストール完了。
2. mono関連コマンドの動作確認
- terminalを起動して作業する。
- monoをインストールしてもコマンドへのパスは通してくれないみたいなので、mono関連のコマンドを使う場合は予め以下のPATHを通しておく。
$ export PATH=${PATH}:/Library/Frameworks/Mono.framework/Commands
- 今回ビルドに成功したmonoのバージョン情報は以下の通り。
$ mono --version Mono JIT compiler version 5.14.0.177 (2018-04/f3a2216b65a Fri Aug 3 09:28:16 EDT 2018) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: normal SIGSEGV: altstack Notification: kqueue Architecture: amd64 Disabled: none Misc: softdebug Interpreter: yes LLVM: yes(3.6.0svn-mono-master/8b1520c8aae) GC: sgen (concurrent by default)
3. MyShogi関連のダウンロード
- 適当に作業用フォルダを作成する。
- デスクトップとかに作成しても良い。
- <作業用フォルダ>にcdで移動し、git cloneにてC#プロジェクトをダウンロードする。
$ git clone https://github.com/jnory/MyShogi.git
以下のようなフォルダ構成でダウンロードされる。
[作業用フォルダ] +-- MyShogi +-- MyShogi +-- bin +-- Debug +-- ...(色々ある) +-- MyShogi.csproj +-- MyshogiUpdater +-- SetupYaneuraOu +-- MyShogi.sln +-- README.md
4. プロジェクトの言語バージョンの編集
- ダウンロードしたプロジェクト情報だと、バージョンが7.3になっているが、monoは7.2までしかサポートしていないようなので、そこを書き換えてしまう。
- 具体的には以下の「LangVersion」が「7.3」となっている2箇所を「latest」にする。
- 編集はテキストエディタでもなんでも良い(もちろんterminalからviで良い)。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <LangVersion>7.3</LangVersion> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <LangVersion>7.3</LangVersion> </PropertyGroup>
5. ビルド
- 「<作業用フォルダ>/MyShogi/MyShogi」フォルダにcdで移動する。
- 以下のコマンドにてビルドする。
$ export PATH=${PATH}:/Library/Frameworks/Mono.framework/Commands $ msbuild ../MyShogi.sln /p:Configuration=Debug /p:CscToolExe=csc /p:CscToolPath=$(dirname $(which mono))
- ビルドには、インストールしたcsc.exeを明示的に指定する必要がある。
- そうしないと、プロジェクト情報に記載の「Microsoft.Net.Compilers.2.8.2/tools」を使いに行こうとして失敗する。
- ビルド後、「<作業用フォルダ>/MyShogi/Myshogi/bin/Debug」フォルダに実行ファイルができていればOK。
6. 実行用フォルダの整備
- どこでもいいので、<実行用フォルダ>を作成し、「<作業用フォルダ>/MyShogi/Myshogi/bin/Debug」フォルダの中身を全てコピーする。
- <実行用フォルダ>にcdで移動し、以下のコマンドにて実行に必要な画像と、将棋の思考エンジンをダウンロードする。
$ git clone https://github.com/jnory/MyShogiImages.git image $ git clone https://github.com/jnory/MyShogiEngineSample.git engine
- ダウンロードするとできる「<実行用フォルダ>/engine/yaneuraou2018」フォルダ直下に「eval」フォルダと「book」フォルダを作成する。
- その後、「<実行用フォルダ>/engine」フォルダ直下にあるREADME.mdに記載の指示通りに評価関数と定跡ファイルを格納する。
(以下、引用)
1. https://github.com/yaneurao/YaneuraOu/blob/master/README.md を参照し、 「リゼロ評価関数 KPP\_KKPT型 epoch4」をダウンロードした上、evalフォルダの下にファイルを展開して下さい。 2. https://github.com/yaneurao/YaneuraOu/releases/tag/v4.73_book を参照し、 お好きな定跡ファイルをダウンロードしてbookフォルダの下にファイルを展開して下さい。
- 最終的に、以下のようなフォルダ構成になる。
[実行用フォルダ] +-- engine +-- README.md +-- yaneuraou2018 +-- engine_define.xml +-- GPLv3.txt +-- README.md +-- yaneuraou2018_kpp_kkpt_sse42.exe +-- book +-- yaneura_book3.db ★ここは選んだ定跡によってファイル名が異なる +-- eval +-- KK_synthesized.bin +-- KKP_synthesized.bin +-- KPP_synthesized.bin +-- image +-- (色々な画像ファイル) +-- MyShogi.exe +-- MyShogi.exe.config +-- MyShogi.pdb
7. MyShogiの実行
- 実行用フォルダにて、以下のコマンドを実行する(初回実行はmonoの初期化か何かで起動までに時間がかかるが、2回目以降はすぐに起動する)。
$ export PATH=${PATH}:/Library/Frameworks/Mono.framework/Commands $ mono --arch=32 MyShogi.exe
- 細々したところでメッセージが豆腐だったり、アラート出たり、突然落ちたりするけど、普通に遊ぶ分には問題ない感じ。
- Mac向けの商用版が出たら買うと思うけども、今はとりあえずこれで楽しめるのでおっけー。
- しかし当方、将棋弱いので全く太刀打ちできないでござる……。
Enjoy!