Permalink
Switch branches/tags
Find file Copy path
174 lines (119 sloc) 7.38 KB

Mac、Linuxで動作させるには?

将棋神やねうら王をMacで

  • Monoのコンパイラが動くようにする。(上の「AI将棋ソフト『MyShogi』をMacBookProでビルド&遊んでみた」を参考に)

    参考) https://twitter.com/arrow_elpis/status/1044909606697283585 msbuildはmono入れたら入ってきますよ。あと、MyShogiをビルドするには MyShogiディレクトリ内で "nuget install Microsoft.Net.Compilers" を実行してmonoではないコンパイラを落としてくる必要があります。

  • git clone

    git clone https://github.com/yaneurao/MyShogi.git

  • ビルド方法

    msbuild MyShogi.sln /p:Configuration=macOS

  • 起動方法

    mono --arch=32 MyShogi/bin/macOS/MyShogi.exe

  • (V1.30) 公式のGitHubのソースコードで、修正なしにビルドが通って実行自体は出来るところまできました。

  • (V1.30) 表示設定のフォント選択ダイアログがフリーズするらしいです。(Linuxだとこの問題は起きない) Mac用のMonoのバグではないかと…。

  • (V1.32) libsoundioを用いて音が鳴るようになりました。サウンド再生のために別途以下のライブラリが必要です。 https://github.com/jnory/MyShogiSoundPlayer/releases/tag/v0.1.1

  • (V1.32) Mono(Mac)でKifuControl.csのListViewのEnsureVisibleで例外が出るらしい。間違いなくMonoのScrollbarまわりの実装がbugっている。 KifuControl.csにあるEnsureVisible()全部コメントアウトすると起動するとのこと。Mono側が修正されるまで、Macでは、EnsureVisibleを呼ばないことにする。 (このため、いまのところMacでは棋譜ウインドウの棋譜の自動スクロールがなされない。)

  • すべての機能を動作確認できているわけではありません。

  • 参考)

将棋神やねうら王をLinuxで

  • ビルド方法

    msbuild MyShogi.sln /p:Configuration=LINUX

  • 起動方法

    mono --arch=32 MyShogi/bin/LINUX/MyShogi.exe

  • 詳細は上の「将棋神やねうら王をMacで」を参考にしてください。

音声・画像素材について

思考エンジンについて

  • 『将棋神やねうら王』の各思考エンジンをMac/Linux上でコンパイルする必要があります。 (Windows向けの実行ファイルをそのまま動かすことは出来ません)

    • 『tanuki-2018』 → NNUE型
    • 『tanuki- SDT5』,『Qhapaq 2018』『読み太 2018』→ KPPT型
    • 『やねうら王 2018』→ KKPT型
    • 『tanuki-詰将棋』→ MATE_ENGINE の4種類あります。

思考エンジンのコンパイル手順

  • やねうら王のmakefileを用いてclangでコンパイルします。
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 avx2 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
YaneuraOu-by-gcc.exeというファイルが出来ますので、これをMyShogi.exe配下の以下のところにコピーします。
  engine/tanuki2018/YaneuraOu2018NNUE_avx2.exe

以下、各CPUのファイルをビルドする例です。
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 avx2 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_avx2.exe
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 sse42 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_sse42.exe
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 sse41 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_sse41.exe
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 sse2 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_sse2.exe
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 COMPILER=clang++ tournament YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_tournament.exe
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 evallearn COMPILER=g++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_learn_avx2.exe
mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 evallearn-sse42 COMPILER=g++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_learn_sse42.exe

// 32bit環境向け

mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
mingw32-make -j8 nosse COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki2018/YaneuraOu2018NNUE_nosse.exe

// KPPT型、AVX2用にコンパイルする例

mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_OTAFUKU_ENGINE_KPPT
mingw32-make -j8 avx2 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_OTAFUKU_ENGINE_KPPT
cp YaneuraOu-by-gcc.exe XXX/engine/yomita2018/YaneuraOu2018KPPT_avx2.exe

// KKPT型、AVX2用にコンパイルする例

mingw32-make clean YANEURAOU_EDITION=YANEURAOU_2018_OTAFUKU_ENGINE_KPP_KKPT
mingw32-make -j8 avx2 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_OTAFUKU_ENGINE_KPP_KKPT
cp YaneuraOu-by-gcc.exe XXX/engine/yaneuraou2018/Yaneuraou2018_kpp_kkpt_avx2.exe

// tanuki-詰将棋エンジンをAVX2用にコンパイルする例

mingw32-make clean YANEURAOU_EDITION=MATE_ENGINE
mingw32-make -j8 avx2 COMPILER=clang++ YANEURAOU_EDITION=MATE_ENGINE
cp YaneuraOu-by-gcc.exe XXX/engine/tanuki_mate/2018-Otafuku/tanuki_mate_avx2.exe