Ubuntuで将棋神やねうら王


Ubuntuで将棋神やねうら王

Ubuntuで将棋神やねうら王を動かす。将棋神やねうら王の「MyShogi」と思考エンジンはUbuntuでは動かないので、ソースファイルからビルドする。


環境


  • Core i7-2600K

  • DDR3 8GB

  • Ubuntu 18.04 LTS 64bit

  • 将棋神やねうら王 V1.00

  • Firefox 67.0 (64 ビット)


将棋神やねうら王をUbuntuにコピー

①Windowsに将棋神やねうら王をインストールする。

インストールフォルダは「YaneuraOu2018」となる。

②「YaneuraOu2018」フォルダをUSBメモリなどにコピーし、そこから更にUbuntuの「~」フォルダにコピーする。

(注) すでにこの記事にある手順を実行していて、アップデートをやり直す場合、「~」フォルダ内の「YaneuraOu2018」フォルダを削除してから新たにコピーする。面倒臭がって上書きで済まそうとすると、バージョンの違うファイルが混在してエラーの原因になる。


アップデートファイルのダウンロード

現時点(2019年6月2日)における将棋神やねうら王のアップデートファイルの最新版はV1.37である。

①以下のアドレスをクリックする。

https://drive.google.com/file/d/1PbdiBW3KXNRD13a45w1mFNZ54fowdhyH/view

「エラー」と出るが気にしない。

②「ダウンロード」ボタンをクリックする。

③「MyShogiV137.zip を開きます」で「ファイルを保存する」を選択する。

④「OK」ボタンをクリックする。

アップデートファイルが私の環境では「~/ダウンロード」フォルダに保存される。


CPU機能の確認

将棋神やねうら王にはCPUの機能に合わせてavx2、sse42、sse41、sse2、nosseの5種類の思考エンジンが用意されている。左に行くほど、より高い機能を持つようである。

思考エンジンはCPUが対応するもののうち、最も機能が高いものを使用すべきもののようだ。そこで、PCのCPU機能を確認しておく。

○端末に以下のコマンドを入力して「Enter」キーを押す。

grep flags /proc/cpuinfo | head -1 | grep -E '(avx2|sse4_2|sse4_1|sse2)'

私のPCでは以下のように出力された。

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov

pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm
constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid
aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm
pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd
ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat
pln pts flush_l1d

「sse4_2」、「sse4_1」、「sse2」の3つが含まれていることが分かる。私のPCではsse42まで対応しているようである。そこで、以下の手順では例としてsse42の思考エンジンを使用することとする。


必要なパッケージのインストール

Ubuntu標準のmonoにはmsbuildが付いていないので、最新版をインストールする。msbuildは「MyShogi」をビルドするときに使用する。

①端末に以下のコマンドを入力して「Enter」キーを押す。

: 'mono最新版をインストールする。'; \

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF; \
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | \
sudo tee /etc/apt/sources.list.d/mono-official-stable.list; \
sudo apt update; \
sudo apt install -y mono-devel; \
: 'その他のパッケージをインストールする。'; \
sudo apt install -y clang cmake git libcanberra-gtk-module libpulse-dev xclip

②「[sudo] **** のパスワード:」でパスワードを入力して「Enter」キーを押す。

③もし「Do you want to accept these changes and continue updating from this repository? [y/N]」と表示されたら「y」を入力して「Enter」キーを押す。


「MyShogi」のダウンロード

本家版とAO_o10yanさん(https://twitter.com/AO_o10yan)版の「MyShogi」がLinuxで動かすことができる。本家版は頻繁にアップデートが行われているが、本来はWindows用なので、Linuxでは不具合を生じることがしばしばある。最新機能を試したいのであれば本家版を、Linuxで安定的に使いたいのであればAO_o10yanさん版をダウンロードするといいと思う。

本家版「MyShogi」を使用する場合、jnoryさん(https://twitter.com/arrow_elpis)が作成したSoundPlayerで音声を再生する必要がある。そこで、本家版のダウンロードではSoundPlayerのダウンロード&ビルドを合わせて実行しておく。

○端末に以下のコマンドを入力して「Enter」キーを押す。

本家版の場合

: '古いフォルダが存在する場合は削除する。'; \

if [ -e ~/ダウンロード/MyShogi ]; then \
cd ~/ダウンロード; \
rm -rf MyShogi; \
fi; \
if [ -e ~/ダウンロード/MyShogiSoundPlayer ]; then \
cd ~/ダウンロード; \
rm -rf MyShogiSoundPlayer; \
fi; \
: '「MyShogi」をダウンロードする。'; \
cd ~/ダウンロード; \
git clone https://github.com/yaneurao/MyShogi.git; \
git clone --recursive https://github.com/jnory/MyShogiSoundPlayer.git; \
cd ~/ダウンロード/MyShogiSoundPlayer; \
make clean; \
make linux; \
cd ~/ダウンロード/MyShogiSoundPlayer/SoundPlayer/bin/Linux; \
cp SoundPlayer.exe ~/YaneuraOu2018; \
cp libwplay.so ~/YaneuraOu2018

警告が出るが気にしない。

AO_o10yanさん版の場合

: '古いフォルダが存在する場合は削除する。'; \

if [ -e ~/ダウンロード/MyShogi ]; then \
cd ~/ダウンロード; \
rm -rf MyShogi; \
fi; \
: '「MyShogi」をダウンロードする。'; \
cd ~/ダウンロード; \
git clone https://github.com/ao-o10yan/MyShogi.git


Ubuntu版に改造するための一括処理

これよりWindows版をUbuntu版に改造するための一括処理を端末で実行する。なお、現時点(2019年6月2日)における思考エンジンの最新版はV4.86である。

注意


  • 「対局設定ダイアログのサイズを修正する。」のブロックは環境によっては必要ないかもしれない。

  • 「思考エンジンの最新版をコンパイルする。」のブロックは「sse42」を環境に応じて「avx2」、「nosse」、「sse2」、「sse41」などへ置き換える。

  • 「PNGファイルを変換する。」のブロックはこれを実行しないと「MyShogi」の起動時に「libpng warning: iCCP: known incorrect sRGB profile」という警告が出る。具体的にどのような問題が起きるのか分からないが、鬱陶しいので実行しておく。(参考: hnakada123さんのツイート(https://twitter.com/hnakada123/status/1052919814140751873))

○端末に以下のコマンドを入力して「Enter」キーを押す。

: '古いファイル/フォルダが存在する場合は削除する。'; \

if [ -e ~/ダウンロード/YaneuraOu_Update2.zip ]; then \
cd ~/ダウンロード; \
rm YaneuraOu_Update2.zip; \
fi; \
if [ -e ~/ダウンロード/YaneuraOu_Update2 ]; then \
cd ~/ダウンロード; \
rm -rf YaneuraOu_Update2; \
fi; \
if [ -e ~/ダウンロード/MyShogiV137 ]; then \
cd ~/ダウンロード; \
rm -rf MyShogiV137; \
fi; \
if [ -e ~/ダウンロード/V4.86.zip ]; then \
cd ~/ダウンロード; \
rm V4.86.zip; \
fi; \
if [ -e ~/ダウンロード/YaneuraOu-4.86 ]; then \
cd ~/ダウンロード; \
rm -rf YaneuraOu-4.86; \
fi; \
: 'V1.00からV1.24にアップデートする。'; \
cd ~/ダウンロード; \
wget https://github.com/yaneurao/MyShogi/releases/download/YaneuraOu2018_Update2/YaneuraOu_Update2.zip; \
unzip -d YaneuraOu_Update2 YaneuraOu_Update2.zip; \
cd ~/ダウンロード/YaneuraOu_Update2/V100toV124; \
cp -r * ~/YaneuraOu2018; \
: 'V1.24から最新版にアップデートする。'; \
cd ~/ダウンロード; \
unzip -d MyShogiV137 MyShogiV137.zip; \
cd ~/ダウンロード/MyShogiV137; \
cp -r * ~/YaneuraOu2018; \
: '対局設定ダイアログのサイズを修正する。'; \
cd ~/ダウンロード/MyShogi/MyShogi/View/Win2D/Setting; \
sed -i -e "s/96F, 96F/80F, 80F/g" GameSettingDialog.Designer.cs; \
: '「MyShogi」をビルドする。'; \
cd ~/ダウンロード/MyShogi; \
msbuild MyShogi.sln /p:Configuration=LINUX; \
cd ~/ダウンロード/MyShogi/MyShogi/bin/Linux; \
cp MyShogi.exe ~/YaneuraOu2018; \
: '思考エンジンの最新版をコンパイルする。'; \
cd ~/ダウンロード; \
wget https://github.com/yaneurao/YaneuraOu/archive/V4.86.zip; \
unzip V4.86.zip; \
cd ~/ダウンロード/YaneuraOu-4.86/source; \
make clean; \
make sse42 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_TNK_ENGINE; \
cp YaneuraOu-by-gcc ~/YaneuraOu2018/engine/tanuki2018/YaneuraOu2018NNUE_sse42.exe; \
make clean; \
make sse42 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_OTAFUKU_ENGINE_KPPT; \
cp YaneuraOu-by-gcc ~/YaneuraOu2018/engine/tanuki_sdt5/YaneuraOu2018KPPT_sse42.exe; \
cp YaneuraOu-by-gcc ~/YaneuraOu2018/engine/qhapaq2018/YaneuraOu2018KPPT_sse42.exe; \
cp YaneuraOu-by-gcc ~/YaneuraOu2018/engine/yomita2018/YaneuraOu2018KPPT_sse42.exe; \
make clean; \
make sse42 COMPILER=clang++ YANEURAOU_EDITION=YANEURAOU_2018_OTAFUKU_ENGINE_KPP_KKPT; \
cp YaneuraOu-by-gcc ~/YaneuraOu2018/engine/yaneuraou2018/Yaneuraou2018_kpp_kkpt_sse42.exe; \
make clean; \
make sse42 COMPILER=clang++ YANEURAOU_EDITION=MATE_ENGINE; \
cp YaneuraOu-by-gcc ~/YaneuraOu2018/engine/tanuki_mate/tanuki_mate_sse42.exe; \
: '実行権限を付与する。'; \
cd ~; \
chmod +x -R YaneuraOu2018; \
: 'PNGファイルを変換する。'; \
cd ~/YaneuraOu2018/image; \
mogrify -format png *.png; \
cd ~/YaneuraOu2018/image/game_effect; \
mogrify -format png *.png; \
cd ~/YaneuraOu2018/image/setting_dialog; \
mogrify -format png *.png

警告が出るが気にしない。


「MyShogi」の起動

「MyShogi」を起動するには

○端末に以下のコマンドを入力して「Enter」キーを押す。

cd ~/YaneuraOu2018; \

mono MyShogi.exe

または

○「~/YaneuraOu2018」フォルダを開き、「MyShogi.exe」ファイルをダブルクリックする(ただし、実行ファイルを開くためのアプリとして「Mono Runtime」が選択されている必要がある)。