[更新] Switch-Lan-Play

今までの軌跡

[追記] イカッチャがオンラインでできるSwitch-Lan-Playとは何か
決定版Switch-Lan-Play これを読めばまるっと解決なはずです!! これさえ読めばこの記事の後半は全く読...
[分析] Switch-Lan-Play
Androidで動かす なかなかいないとは思うのだが、パソコンを持っていない人のためにAndroidで動かす事を考えます。 と言って...
[導入] Switch-Lan-Play
内容的には以下の記事をまとめたものになります。 PC側の設定 手順をだいぶ省略できるようにしました!!! これもSwitc...

今回は最新版Switch-Lan-Playを使えるようにしようという計画です。ちなみに大部分の人は記事の内容がほとんど関係ないので最後の”バイナリ”ってところから読んでください。

alpha-1を試す

Switch-Lan-Playは接続人数が多くなるとどうしても不安定になってしまうのでそれがなんとかならんかなーと思っていたらまさかの作者さんから連絡が…

この後もやり取りが続くのですが(見たい方はリプ参照)、要するにalpha-1版を使うといいぞってことだと思います。

つまり、接続している全員が最新のlan-playを–pmtuオプションを付けて動かせばいいということになります。

–pmtuエラー

というか–pmtuオプションつけるとエラーでるんですけど…

ここだけ見てもUsageに–pmtuのオプションがないからさっぱりわからん。ビルドのソースを間違ったか??と悩むこと約三十分…

ソースコードを見て気付いた

options.pmtu = atoi(argv[i + 1]);

これは–pmtuの次の引数を値として代入するという意味です。

ちなみにデフォルトは、

options.pmtu = 0;

となっているので通常は値が0なことがわかります。

で、これ0がFalseで1がTrueかとおもったらそうではない様子。

mtuの値として好きなものを入れろということですね。なお、オリジナルの通信はMTUが1400らしいのでそれより小さい値を入れることでラグが小さくなることが見込まれます。

作者の方いわく「500と1000しか試してないけど1000の方がいいよ」とのことだったのでバッチファイルでは1000を指定しています。他の値にしたい方は合わせてみてください。

ビルドする

ところが最新版のlan-playはgithub上にありません…

これはこまった…ということで、手順に従ってビルドしてみることにしました。

なお、これはとてもめんどくさいです。ビルドに興味がない人は最後まですっ飛ばしてください。

MSYS2

MSYS2 homepage

まずはMSYS2をインストールする必要があります。最終的にコンパイルするのはMinGWなのでMinGWさえあればいいんじゃないかって気がするのですが、エラーが発生してそのままではビルドすることが出来ませんでした。

64bit版を使っている方はmsys2_x86_64~.exeをダウンロードして、インストールしましょう。

インストールするとこんなのがでてくるので、これを起動します。64bit版を使いたい方はMSYS2 MinGW 64bitを使用します。

pacman -Sy
pacman -S make mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc

と入力するとMSYS2用のMinGWがインストールされます(多分そういう解釈)

で、このままだとソースコードを取ってこれないのでgitもインストールしてしまいます。

pacman -S make git

gitをインストールできればcloneしてこれますね。

git clone -b alpha-1 https://github.com/spacemeowx2/switch-lan-play.git

ブランチをalpha-1にセットしてcloneしてきましょう。これで最新版が利用できるはずです。

ここまでできたら一旦MSYSを終了して、次はMinGW 64bitと書かれた方のMSYSを起動します。

MinGW 64bit

先ほどと紫色の部分の文字列が変わっているのがわかるかと思います。

cd switch-lan-play
mkdir build
cd build
cmake -G "MSYS Makefiles" ..
make

あとはこれで待つだけです。

成功するとbuildにlan-play.exeが生成されています。

ディレクトリは”C:\msys64\home”直下になります。これ、意外と気が付きにくいので注意してください。

配布用バイナリ

ほとんどのユーザさんはビルドには興味がないと思うので、Windowsユーザ向けにビルドしたバイナリを置いておきます。

0.0.5b - Google ドライブ

バッチファイルも更新しているので既存のやつに置き換えるだけで問題なく動作します。

lanplay.batは従来どおりの動作をします。lanplay-pmtuはpmtu値1000で通信を行います。

サーバとの互換性の問題はないので今までどおり利用できますが、-pmtuオプションをつけているユーザとそうでないユーザではマッチングの問題がある可能性があります。

全員が同じバージョンを使うほうがいいかもしれませんね。

利用しているSwitch-Lan-Playのバージョンは、

lan-play-win64.exe --version

のようなコマンドで確認できます。

効果はあるか?

自分で確かめられていないのでなんとも言えない。

動かなかったり、なんかそういう場合は教えてください。

Discordサーバ

Discord - Free voice and text chat for gamers
Step up your game with a modern voice & text chat app. Crystal clear voice, multiple server and channel support, mobile apps, and more. Get your free server now...

前の招待コードが人数制限を超過して切れていたので再生成しました。

10名まで追加で参加できます。サーバの問題もあるので、年末までは追加でユーザを招待することはないと思います。

シェアする