なぞ

<ワカンナイ>

初代AC系熱帯サーバの仕組み

今日は現行のAC1.x熱帯サーバの仕組みについて語ります。

最初はすごくスマートな方式をとるはずだったのに、

どうしてこうも複雑化してしまったのか、経緯とか裏話的なものとなります。

 

まずはじめ、4月の終わりごろかな。

ひょんなことからACPPのネット対戦をやってみたいと考え、

現状を知るところからはじめました。

その際には以下のような制約がありました。

・現状でもネット対戦は可能だが、分割対戦モード(スタンドアローンモード)

・対戦するにあたってはポートの解放が必要

・対戦環境(エミュレーターや設定など)を一致させる手間がある

 

などなど。

約10年以上前の知識とまったくかわっていませんね。

進歩があったと感じられた点としては、

ネット対戦に使用するカイレラがP2P接続に対応した点くらいです。

苦しい、と思ったのはいまだに分割対戦モードで対戦が行われていることでした。

これでは、相手の画面が見えてしまうことにより、

ゲーム性が全然別の物になってしまう上、選べるマップなども少なくなってしまい、

本来のゲームの楽しさが大きく損なわれてしまうからです。

 

そこでまずは、この部分を解決することからはじめよう、ということで

PS1のエミュレーターで比較的動作が安定していて、

かつ『シリアル端子』をサポートしているエミュレーターを探しました。

でもこれは速攻で見つかったんですよね。

その名も「PCSXR(派生版)」。

f:id:syedream:20170610171511p:plain

これがシリアルポートでの通信をサポートしていて、

TCP/IPで通信させることにより、エミュレーター同士をリンクさせて対戦ができる!

実は、もうこの時点で勝ちを確信していたのですが、

いざPCで動かしてみると・・・通信のエミュレーションがものすごく重たくて、

FPSが40程度しかでません。

普通のギガイーサ(1000Base-T)では同期をとるのに間に合わず、

10ギガビットイーサ(10GBase-T)が必要なほどです。

これでは熱帯どころか、家でPCとPCを接続して対戦するのも現実的ではありません。

 

そこで、考え付いたのがPCの仮想化。

これならば、サーバーとなるPCの性能には依存してしまいますが、

仮想PC同士は、フルスピードでTCP/IP通信が可能なので、

対戦自体は実機と同等の速度での対戦が可能なのです。

(処理落ちのエミュレーションが完璧ではないので、実際にはエミュレーターのほうが動作がはやいですが。)

 

そこでさらに考え付きました。

この仮想PCに画面の転送機能と、キー情報の入力ができるようにすれば、

ネット対戦環境の出来上がりなのでは・・・と。

近年のリモートデスクトップソフト(MS純正Win10仕様)では、

0~2ms程度で画面の転送、および操作情報(キー入力)が完了できるほど、

高速なものになっています。

なので画面の転送の部分に関しては楽にクリアできました。

一般的な光回線での通信では約10ms~30ms程度の遅延で双方向の通信が可能ですが、

それに加えて画面の描画部分が遅くて2ms程度ですから、 ほぼほぼ誤差の範囲ですね。

ただし、現状売られているWindows10が必須なのと、

PCに搭載されているグラフィックス機能でH/Wエンコーダーが有効な環境でなければ、

高速な画面描画ができないという欠点もあります。

ここはもう、対戦したい方はがんばって用意していただくしかない部分になります。

また、回線に関しても調査しましたが、

実測値にして5~10Mbps程度の低速な回線では、画面のカクツキや、

操作の遅延などが頻繁に起き、ゲームになりません。

15Mbps程度から安定しはじめ、30Mbps以上の速度からはじめて、

理想的な操作ができるようになると思われます。

回線速度計測サイトで計測し、30Mpbs出ていない回線では厳しいとお考えください。

なお仮想PC側の回線速度は800Mbps程度とかなりの余裕を確保できているので、

将来的には対戦台を増やす方向で考えています。


次にコントローラー(キー入力情報のやりとり)ですが、

これは上記のリモートデスクトップを利用して送信しつつ、

JoyToKey」というソフトを利用し、パッドの操作をキーボード入力に変換する形で

やりとりさせることにしました。

これならば、一度クライアントとなるPCにソフトを導入し、設定さえ済ませてしまえば、あとは仮想PC側のエミュのキーコンをするだけで簡単にゲームのプレイが可能となります。

 

そして最後になりましたが、音声の伝送です。

これも実はリモートデスクトップ側に機能が含まれているのですが、

最新版のリモートデスクトップの画面描画が高速化している反面、

音声の伝送は旧来の速度から上がっておらず、音が遅れて聞こえる事象が起こります。

そこで「brynhildr」という別のリモートデスクトップソフトも併用する方式にしてます。 当然リモートデスクトップソフトなので、こちらのソフトにも仮想PCの画面が映ってしまいますが、描画に関しては前述のMS純正のリモートデスクトップのほうがはるかに高速で行われるので、画面は最小化してしまい音声の伝送機能だけ利用することにします。 しかしこうなると、音声がリモートデスクトップソフト二種から同時に出力されることになるので、クライアントPC(お使いのPC)側の音量ミキサーで、「リモートデスクトップ...」をミュートしてください。 

f:id:syedream:20170610171241p:plain

(画面下部のスピーカーアイコンをクリックして赤いマークを付ければOKです)

 

仕組みとしてはこんな感じかな。

ただ現状ではもいくつかの問題があって、それを羅列すると・・・

・サーバーの性能不足により、ゲームが常に処理落ちしてしまっている

・ネット回線への依存度が強く、安定した回線を使っていないと操作に支障がでる

・クライアントPC(リモートデスクトップ接続をする側のPC)にも性能が必要

・Windows10が必要

・テスト不足により、予期せぬ問題が発覚する可能性がある

 

などなど。

特にネット回線や対戦に使うPCにもある程度のスペックが要求されるようになってしまった点が、大きな問題として立ちはだかります。 ノートパソコン程度で対戦できていた旧来の方式のネット対戦と比較すると、かなり敷居が上がってしまいました。

対戦に使われる仮想PCおよび、それをコントロールするサーバーの負荷状態ですが、これもかなり高い値がでてしまっていて、現状では、サーバーと仮想PCを一対で接続する分にそこまで極端な処理落ちはしないものの、仮想PC1と仮想PC2を同時に起動した際の負荷がかなり大きく、現在仮にしぇPCをサーバーとして運用していますが、対戦専用機を用意しないと厳しい、という現状が見えてきたところです。

 

また、テスト不足により不測の事態が起こることも十分に考えられます。

現状では4人でしかテストできていないため、正常に動作すると断言できる環境が非常に限られています。 また4人中、回線の状態とPCの状態の双方が良好と判断できる方は1名のみとなっており、ちょっとこのままの状態でサーバーを新調しても、ついてこられる人がいないという事態に陥ることを危惧していたりします。 PCは買えばすぐ使えますが、回線などは手続き含めて面倒ですから・・・。

 

現状はこんなところです。

人が集まるようであれば、来月にもサーバーを新調、同時にDiscordの対戦コミュニティも公開してしまおうと考えていますが、はたして・・・。

 

回線のチューニング回です

hai!

今日はネットワーク環境のチューニングを目的とした日記を書きます。

以前にもACNBの熱帯の項目で取り扱ったことはあるのですが、

もうだいぶ前の記事だし、埋もれちゃってて探すの大変になっちゃったしね。

基本的には以下の手順でチューニングしていきます。

 

・回線速度測定サイトで現在の速度を計測する

TCP/IP Analyzerで現在の設定値を確認する(画面のSSなどを取ること)

・Netshコマンド、またはレジストリの設定値を書き換えて高速化を図る

・回線速度測定サイトで現在の速度を計測する

 

以上の手順を繰り返すことになります。

普通なら一通りの手順を通してやるだけで回線速度を引き上げることができますが、

環境によってはかえって遅くなる、など不測の事態も起こりえますので、

設定を書き換える前には必ず以前の設定を覚えておく事を忘れないようにしてください。(SSとして記録するなど)

 

それではまずは現在の回線速度を計測してみましょう。

以下のサイトを開き、表示されている地図から「最寄り」の地域を選び、

計測を進めてください。

途中の回線登録についてはスキップを選択しても問題ありません。

なお、関東地方の方に限っては「マルチセッション版」が使用できますので、

こちらを利用するとより精度の高い結果が得られる場合があります。

netspeed.studio-radish.comこのサイトではJavaを用いた正確な速度計測が可能なのが特徴です。

当然PCにJavaが入ってないと計測できませんが、

他のサイトより格段に精度が高く、さらに高速回線にも対応しているのでお勧めです。

 

速度は如何ほどでしたでしょうか?

こちらの環境では以下のような結果が出ました。

上りに比べて下りがちょっと遅く、ゲージもばらつきがでてますね。

しかし昼間ならみんなが回線を使いますのでこんなものでしょう。

もしもどの時間帯でもゲージがガタガタで、速度も安定しない・・・という場合は、

根本的に回線の品質が悪いと考えられますので、

一度ネットワークの業者に相談をするか、別の回線を引き込むことをお勧めします。

f:id:syedream:20170605111430p:plain

比較用に画面のSSを取った上で、次のステップにいきましょう。

 

次はTCP/IP Analyzerというブラウザからお使いの回線の設定情報を参照できる、

とても便利なサイトをご紹介します。

これは、ルーターなどを介してインターネットに接続している際に起こりがちな、

パケットの断片化など、そういうのが起きてないのかの確認が簡単にできて便利です。

http://www.speedguide.net/analyzer.php

 

上記のページを開きますと・・・なにやら英文でつらつらと何か書かれています。

下のSSではMTU=1454と書かれていますが、

これが現在設定されているMTUという値で、

簡単に言ってしまえば、ネットに接続した際、1パケットおくるごとに

1454個分のあめ玉を送っているとお考え下さい。

f:id:syedream:20170605105345p:plain

じゃあじゃあ、このMTUを多くすれば速くなるんじゃ・・・?

という疑問もわいてきますが、実は回線と一言でいっても色々種別があり、

最適なMTU値が異なっています。

例えば関東地方で多く使われているフレッツ光回線ではMTUの上限は1454です。

これ以上の値をPC側で設定してしまうと、

1454からはみ出した分、つまり46個分の余ったあめ玉は次のパケットとして、

わざわざ二回に分けて送信することになってしまい、

結果として本来1パケットで済むはずの通信が2パケット必要になってしまう上、

次に送るべき3パケット目もこのような事態になっているので、

どんどんどんどん速度が遅くなっていくという悪循環が起こってしまうのです。

WindowsOSのMTU初期設定値は1500ですので、

回線をチューニングしていないと速度が出ない、ということはこういうことです。

ちなみにですが、上記のサイトで出てきたMTUと、

Windowsで設定したMTU値が異なる場合も出てくるかと思います。

これは、ルーターを介した接続の場合、ルーターが自動的に最適とするMTUに調整しているか、またはONUという機械を介している場合にMTU値を強制的に調整されている可能性があります。 こうなってしまうと、やはり先程出した問題のように、Windows側で送信したパケットは2個に分断され、別々に分けられてから送信されますから、やはり速度は遅くなってしまいます。

・・・と、説明が長くなってしまいましたが、

とりあえずさっきのサイトで表示されたMTU値にしておけば大丈夫と覚えてください。

では早速設定MTUを設定したりしてみましょう。

 

[コマンドを使用したチューニング]

一番簡単な方法としてはコマンドプロンプト、またはPowerShellがあります。

1.コマンドプロンプト or PowerShellを管理者権限で起動する

2.netsh interface ipv4 show interface と入力してみる

 

何か出ましたか?

こちらの環境では以下のような画面が出ました。(既ににチューニング済みです)

f:id:syedream:20170605113145p:plain

ここにもMTUという文字列が書いてありますね。

だいたい見ればなんとなく察しがつくかと思いますが、

これがお使いのパソコンで使われているネットワークアダプタの一覧です。

ひとつだけ、妙にMTUが高いのがありますが、

これはループバックインターフェースなので、調整の対象外です。

上の図でconnectedとなっている部分が現在接続に使っている部分なので、

この部分のMTUを調整します。

一番左上にIDXと書いてあって、それぞれ40、1、2...と割り振られていますが、

このIDX番号でネットワークアダプタを選択し、MTUを入力します。

入力の仕方は以下の通りです。

1.コマンドプロンプト、またはPowerShellを管理者権限で起動します

2.netsh interface ipv4 set interface idx mtu=1454 と打ち込みます

書き換えるべき箇所は赤文字にしておきました。IDXの値は環境によって違うので、

最初に書いたコマンド「netsh interface ipv4 show interface」で確認してください。

なお、今回はMTUを1454としていますが、

ここには先程のTCP/IP Analyzerで調べた値を入力することになります。

 

ついでなのでWindowsのおせっかい機能で、

Vista以降のOSでは標準で有効になっているRWINの自動調整機能も調整しましょう。

1.コマンドプロンプト、またはPowerShellを管理者権限で起動します。

2.netsh interface tcp set global autotuninglevel=disable と打ち込みます。

OKと出ればOK。

上記の設定では自動調整を無効化していますが、このパラメータはいくつか種類があり、highlyrestrictedrestrictedexperimental、そして無効とするdisabledが存在します。 多くの回線では『highlyrestricted』とすることで、ネットワークの速度を引き上げることができる可能性が高いですが、環境によって結果が異なりますので、各設定値を試してみてください。尚、experimentalを選択した場合、極端にwebブラウジングが遅くなったりするケースがありますのでご注意ください。

私の場合はRWIN値は自分で決めたい派なのでこの機能は無効にしています。

 

[レジストリを使用したチューニング]

1.以下のURLから設定用ツール(tuneapp)をダウンロードします。

http://www.geocities.co.jp/SiliconValley-Sunnyvale/9990/

2.ファイルを解凍後、管理者権限で『tuneapp.exe』を起動します。

3.カテゴリ欄でTCP/IPを選び、右側のアダプタ欄から使用中のNICを選びます。

4.ウィンドウ右側の『TCP遅延ACK』の値を2から1に変更します。

5.ウィンドウ下側の『設定反映』を選択しWindowsを再起動してください。

→設定が適用されます

6.念のため、tuneapp.exeを再度起動して『TCP遅延ACK』の値が1になっている事を確認してください。

 

こんなところかな!

実はまだまだたくさん設定できる個所はあるのですが、

ここだけ設定しておくだけで体感できるほどに違いはでるかと思います。

もっと!もっとだー!グヘッっていう人は私に直接聞いてくれれば教えます。

あっ、あと最後に言い忘れてましたが、

各種設定をしたあとは必ずOSを再起動してください。

設定が反映されません。

以上、回線のチューニング回でした!!

初代AC系のネット通信対戦をやってみよう回3 接続編

 ConCon!

今日はついに初代AC系熱帯サーバに接続し、対戦するまでの流れを説明します。

少し長くなりますが、どうか最後までお付き合いください!

 

また、Discordの部分ですが、コミュニティ自体は完成しているものの、

対戦サーバ自体がまだ調整中であることや、

人数が集まる見込みが立っていないこともあって一般には公開していません。

なので、コミュニティに参加するためには私に直接連絡を取り、

そこで招待を受けてコミュニティに入る形をとらせてください。

その際は、招待用URLを発行してもらえるので、それを開いてもらうだけでOKです。

 

□必要なもの

・Discord(ボイスチャットソフト。 主に対戦時の際の連絡用)

Win8/8.1/10(Win10推奨。リモートデスクトップ接続に使用)

・新しいものを受け入れる心

 

それでは始めたいと思います!

まずは、ボイスチャットソフトのDiscordの導入から。

以下のURLからダウンロードし、インストールします。

discordapp.com

ダウンロードは2種類ありますが、左側のWindows用を選んでください。

f:id:syedream:20170604120716p:plain

 

インストール後はアカウントを作成します。

Discordを起動すると以下のような画面がでますので、

「アカウント登録」を選択して、メッセージに従い登録してください。

f:id:syedream:20170604121055p:plain

すると、もうこれでDiscordは自体は使用可能な状態となります。

念のため、画面左下のユーザー設定から各種設定(マイク設定だったり、

アカウントの連動機能などのON/OFFなど、様々な機能があります。)

をご確認ください。 特にマイクの設定は必ずやっておかないと、

後々ボイスチャットをする際に困ることになります。

f:id:syedream:20170604122001p:plain

ひとまず、各種設定が終わったらDiscordはそのままにして、

次のセッションに行きます(Discordのコミュニティはまだ一般公開していません)

 

リモートデスクトップ接続接続です。

実はここが最大の鬼門になります。

というのも、一言でリモートデスクトップ接続といっても、

実はいろいろバージョンがあり、

例えばWindows7で実行できるものと、Windows8以降で実行できるものは、

ほぼほぼ別物といってもいいくらいに違いがあります。

現状、動作確認が取れているものはWin10のみであり、

8/8.1のバージョンは、マイクロソフトの資料から「恐らくできるはず」

という程度の情報しかありません。

よって、Windows10でのリモートデスクトップ接続を推奨しています。

 

また、今回のリモートデスクトップ接続ではグラフィックスカードに搭載されている、

所謂「GPGPU」という機能を使い、高速に画面を描画させる事が必須です。

現行機種のCPUやグラフィックスカードにはかならずついてくる機能ですが、

これが正しく動作していない環境では、画面の遅延がひどく、

とてもではないですが対戦は成り立ちませんので注意が必要です。

どれくらいの差がでるかといいますと、具体的には

1ms程度で描画が完了するものが150ms程度(スペックによってはもっとかかる)

かかってしまいます。 これでは戦えませんね・・・。

なお、このGPGPU機能ですが、これもグラフィックスカードのグレードによって、

描画完了までの時間が変わるようです。

高級なものを用意すればより、快適な操作が可能とりますが、

現状では「回線」の速度の問題もあり、あまり体感できるほどかわらないはずなので、

現行機種の中くらいの性能のものがあればまず大丈夫と思ってください。

参考までに現状二強となっている、

グラフィックスカードベンダーのカードを二種類をご紹介します。

 

AMD製 Radeon RX 560

nVidia製 GeForce GTX 1050 Ti

 

上記のカードは約1万5千円程度のカードです。

価格帯としては、最も安い部類になるものですが、

熱帯に必要な最低限の機能はもっています。

逆に言い換えると、これより性能の劣るグラフィックス機能では、

対戦が快適に行えませんので、必ずご確認ください。

また、どれを買えばいいのかわからない、とかそういう場合は

Discordのコミュニティで質問するか、

もしくは私に直接聞いてくれればすぐにお答えいたします。

 

さて、前置きがだいぶ長くなってしまいました。

リモートデスクトップ接続、実際にやってみましょう。

Windowsを起動し、画面左下の窓マーク、

またキーボードのWindowsキーを押してみてください。

f:id:syedream:20170604125556p:plain

そして出てきたウィンドウを下のほうまでスクロールしていきますと、

Windows アクセサリ」という項目があるはずなので、そこをクリックして展開。

そうすると、「リモートデスクトップ」があるはずなので、それを起動します。

 

次に出てきた画面から「オプションの表示」を選択し、必要な設定をしていきます。

f:id:syedream:20170604130052p:plain

そうすると、色々なタブと画面下部になにやら設定できそうなところが表示されます。

少し大変ですが、順番に設定していきましょう。

(一度設定すれば二回目以降は設定不要になりますので、そこは安心です)

 

まずは画面の設定から。

以下のように画面設定をしてみてください。

色は多少劣化してしまいますが、とにもかくにもまずは、

安定して動作させることを目的とした設定です。

f:id:syedream:20170604130305p:plain

 

つぎにエクスペリエンスの設定。

f:id:syedream:20170604130630p:plain

「パフォーマンスを最適化するために接続速度を選択してください」

・・・と、書かれているところですが、ここは必ず『LAN』にしてください。

実はこれで画面の応答速度が変化する仕組みが内部的にあります。

LANにすることで高速な描画が実現できるようになります。

そのほかのチェックボックスはお好みで大丈夫です。

 

以上でリモートデスクトップ接続の設定は完了です!

お疲れさまでした。

 

それでは最後に接続をしてみましょう。

再び全般タブに戻り以下のように設定します。

コンピューター名のところには、サーバとなる私のIPアドレスを入力しますが、

現状は動的に変わってしまうので、これは直接聞いてください。

(近々、ここはIPではなくドメイン入力に切り替えてしまうつもりです)

ユーザー名は『shade』です。

また、「資格情報を保存できるようにする」にはチェックを入れておいてください。

これで二回目以降の接続時に、先程の設定をしなくて済むようになります。

f:id:syedream:20170604131358p:plain

そして最後に接続ボタンを押します。

すると・・・

色々警告はでますが、私のサーバに接続ができるたはずです。

画面に小さくデスクトップ画面が出れば成功ですね。

これは、みんなで共有するパソコンが一台あるとお考えください。

例えば何かしらの設定変更をしようものなら、全員に影響がでます。

エミュレーターの設定なども含めて)

なので、私や、他の管理者から指示があった場合を除いて、

設定などは一切触らないようにしてください。

注意点などはこれくらいかな?

 

あとは接続に使っているご自身のパソコン本体ではJoy To Keyを立ち上げ、

その状態でサーバ側のエミュレーターブリュンヒルデを立ち上げ、

対戦用にエミュレーターのキーコンフィグをしていけばOKです。

 

こんなところかな!

だいぶ長文となりましたが、これで対戦は可能ですので、

あと細かいところはDiscordや直接私に連絡を取って細かいやり方を聞いてください。

それでは対戦をできることを心待ちにしています!

 

最後になりましたが、こちらで動作確認していた際の動画をリンクしておきます。

参考にしてください!

www.youtube.com

 

初代AC系のネット通信対戦をやってみよう回2 対戦環境の準備

前回の日記では、ローカルネットワークでの対戦を前提に

手順などを書かせていただきましたが、今度は外部のインターネットを中継した、

ネット対戦の方法をご紹介します。

 

□必要なもの

・高速なインターネット回線(20Mbps以上を推奨)

H.264のハードウェアエンコードに対応したCPU/APU、またはグラフィックスカード

PSx互換コントローラー(パッドです。PC用のを好きなものから選んでください)

リモートデスクトップ 「 Brynhildr 2.2.8 」(音声の伝送に使用)

JoyToKey Version 5.2.1(コントローラーの操作に使用)

Windows8/8.1/10(Win10推奨。デスクトップ画面およびキー情報の伝送に使用)

・折れない心

 

それではさっそくやっていきましょう!

まずは「Brynhildr」ソフトウェアの入手から。

以下のリンクから最新版をダウンロードしてください。

blog.x-row.net

この日記を書いている時点では「Version2.2.8」が利用できるようです。

任意の場所にダウンロードして、ファイルを解凍しておいてください。

 

次に「JoyToKey Version 5.2.1」をダウンロードします。

JoyToKey - ダウンロード

 

最新版はシェアウェア(有料)となっていますので、

古いバージョンの5.2.1を選び、ダウンロードして解凍します。

解凍後は以下の手順に従い、キーのアサインを済ませます。

 

1.JoyToKey.exeを選択し、起動します。

2.初回起動時のみ、ダイアログメッセージが出ますので、「OK」を選択します。

f:id:syedream:20170601131736p:plain

3.画面右下にある「簡易設定ウィザード」を選択します。

4.表示されたボックスにキーボードの任意のキーを『重複』させないように、

割り当てていきます。(ジョイスティックは使用しませんので、「ジョイスティック1のStick1:~...」はスキップボタンでスキップし、「ジョイスティック1のPOV:↑」以降をアサインしてください。 その際、割り当てるキーボードのキーはなんでも構いません。 順番にキーボードのキーを押していってください。)

f:id:syedream:20170601132730p:plain

 

ひとまずの設定はこれですべて終了です!

お疲れさまでした!!

 

ここから先の対戦手順に関しましては、

近日公開予定のDiscordコミュニティのほうにて説明しますので、

公開まで今しばらくおまちください!

 

なお対戦に際してはいくつかの注意点があります。

現状では快適な対戦をするためにはハイスピードな回線契約をされるか、

低速であっても「安定している」状態の回線が必要です。

実測値にして4Mbps程度の回線では、操作や画面描画にかなりのラグが生じ、

10Mbps程度で安定しはじめます。

理想的な状態としては常に20Mbps程度が必要となります。

なお、高速な回線を有している場合でも、PCの設定が初期状態のままですと、

本来の回線速度が引き出すことができませんので、

PCにチューニング

(日記のACNBの熱帯項目参照http://syedream.hatenablog.jp/entry/2015/07/02/122145

)を施す事を推奨します。

また、PCのスペックについてですが、

CPUはINTEL Core i3Sandy Bridge世代以降)

グラフィックスカードに関しては現行機種より2世代ほど前までの物であれば、

ほぼ問題ありませんが、より快適な対戦を実現するためには、

なるべくならコンディションの良い現行機種を用意したほうが無難でしょう。

注意点はこれくらいかな?

あとはわからないことはDiscordのコミュニティ(近日公開予定)で質問するか、

ぐーぐる先生でなんとかして乗り切ってください・・・w

以上です!

初代AC系のネット通信対戦をやってみよう回です

ConCon!

今日はプレステで20年前に発売された初代AC1.x系列を、

ネットワークで対戦してみよう回です!

 

ただし、今回の場合は、プレステエミュレーターを使う方法ですので、

それが受け入れられない方、違法性について考えてしまう方はちょっとお勉強してきてからのほうが無難です。(今回紹介する手順では違法性はありませんが。)

 

□必要なもの

・PC(パソコン。 Pentium 500MHz程度のスペックで十分です。)

・良好なネット回線

・PCに取り付けるパッド(コントローラー)

・プレステソフト(AC1~MoA)

・プレステのBIOSファイル(当方は初期型のSCPH-1000版で動作確認しています)

PacketiX VPN クライアント(PCのソフト)

 

・・・こんなところかな?

あとはエミュレーター本体が必要になります。

本体は以下のサイトからダウンロードができますが、

ダウンロード先がちょっとややこしかったり、

そもそもファイルが消えてたり、少し面倒なところがありますががんばってください。

もしもわからなければ、私に直接聞いてくれればお答えします。

PCSX Reloaded SVN r98108 - EmuCR

 

hai。

そして無事、エミュレーターをダウンロードしてきたら、

次はそのファイルを任意の場所に解凍します。

ファイル形式は7-zip形式で圧縮されてるかと思うので、

「7z」というワードでぐーぐる検索をかければ、解凍ソフトが一番上にでてきます。

なんとかして解凍してください。

 

解凍ができたら、

f:id:syedream:20170425211203p:plain

「pcsxr.exe」を選択し、起動します。

すると・・・

f:id:syedream:20170425211327p:plain

このような起動画面がでてきます。

スクリーンショットのものは英語版ですが、日本語化パッチもあるようなので、

英語がどうしてもだめっていう方は、別途どこかからか入手してくると良いでしょう。

次です!

f:id:syedream:20170425211553p:plain

こんふぃぐれーしょんの配下に、ぷらぐいんず&BIOS...と書かれている箇所があるかと思いますので、それを選択します。

すると・・・このように、プラグイン(画像や音声をコントロールする機能をもったモノ)選択画面がでてきますので、画像の通りに設定してみてください。

f:id:syedream:20170425211804p:plain

なお、この画像では「Bios」の項目が『SCPH-1000.BIN』と、

実機から持ち出してきたBIOSファイルが挿入されていますが、

『Simulate Psx BIOS』という、BIOSファイルそのものをエミュレーションさせる機能がありますので、

そちらを選んでいただいても大丈夫です。(ただし、この場合は通信対戦はできません。 あくまでエミュレーターの動作確認用となります。)

 

まずはグラフィックスの設定から。

f:id:syedream:20170427100751p:plain

図の赤線を引いてある「Configure...」から設定を開き、

表示されたメニューを画像の通りに設定してみてください。

 

次は音源の設定をします。

ここをうまくやらないと、ちょっと聞くに堪えない音質になってしまうので、

必ず設定しましょう。(図のように設定していただければ大丈夫です)

f:id:syedream:20170427101158p:plain

 

次はコントローラーの設定ですね、ちょっとSSを取り損ねてしまったのですが、

これはみたとおりに設定すればわかるかと思うので割愛させていただきます。

「SSSPSX PAD Plugin...」と書いてあるところの下の、こんふぃぐから設定できます。

 

そして今回のネット対戦をするにあたって一番大事なリンクケーブルの設定です。

f:id:syedream:20170425212643p:plain

これも特に難しい設定はなく、サーバ(1P)になる方はServerに●をつけ、OKを押す。

クライアント(2P)になる方はClientに●をつけ、

サーバの方のIPアドレスを打ち込みOKを押せば設定完了です。

 

最後になりましたが、PSエミュレータの頭脳ともいえる、

BIOSファイルを読み込ませます。

私はたくさんのプレステを所持していますが、

初期型に愛着がわいてしまっているので、初期型のBIOSで動作検証を行いました。

よって、この手順でも初期型のBIOSでのご案内となります。

まず、任意の場所にプレステの「BIOS」ファイルを置きます。

私の場合は、プレステエミュレーターの配下に「bios」フォルダを作り、

そこに入れました。

f:id:syedream:20170427102141p:plain

あとは図のように、BIOSファイルがある場所を指定してあげてください。

以上でひとまず、エミュレーター側の設定は終わりです。

最後に

f:id:syedream:20170425213022p:plain

「OK」ボタンで閉じてください。

 

そうしたらいよいよ、ソフトを起動します!

起動の仕方はいろいろあるのですが、

今回は互換性の観点(WIn10などではゲームCDから直接起動できない問題があったりします)からISOファイルから起動してみます。

f:id:syedream:20170425213202p:plain

るん あいえすおー とかかいてあるのがそれで、

通常のPSソフトを入れて起動する場合は るん しーでぃー を選べばOKです。

(ただし最新の光ドライブ/OSなどを使っていると読み込めない場合があるので、

PSソフトをISOファイルに変換してからるん あいえすおーするのがおすすめです。)

変換の仕方は、各自ぐぐるなりしてください。

また、ISO/ImgファイルはCD-Rドライブ付属の書き込みソフトなど、

そういったものでできます。

ISOファイルが用意できたら、以下のように指定し、読み込ませます。

f:id:syedream:20170427102919p:plain

 

すると・・・

f:id:syedream:20170427103111p:plain

いつもの見慣れた画面がでてきます!。

とりあえずは、この状態でミッションに行くなど、動作確認などをして、

問題のないことを確認しましょう。

なにかこの時点でわからないことなどがあれば、

私に聞いてくれればお答えします。

 

 ここまできたらもう成功したも同然なものです!

最後に外部と通信するための警告として、以下のような画面が出ますが、

図のようにチェックを入れて、アクセスを許可してください。

ここを間違えるとどうやっても対戦相手と繋がらなくなります・・・。

f:id:syedream:20170425213419p:plain

 

最後になりましたが、ここで1Pと2Pで挙動が異なりますので、

注意が必要です。

1P側になった方は、画面が暗転したまま、

一見するとPSエミュレーターが止まってしまっているかのようにみえますが、

実際は動いていて、2P側がゲームをるん あいえすおーするまで、真っ暗なままです。

2Pの方もゲームを起動することで、

はじめて「現在読み込み中」の文字列を拝むことができます。

あと、2Pの方が1Pより前にるん あいえすおーしちゃうと、

通信対戦モードではない、シングルモードで動作してしまうので注意が必要です。

必ず、1Pの方がるんあいえすおーでファイルを読み込み、

画面が暗転したのを確認してから、2Pの方はるんあいえすおーしてください。

 

そしてもう一つだけ、注意点があります。

ゲームを1P、2Pの両者が正しく起動すると、

あとはもう実機と同じようにVSモードに入ればいいのですが、

下の画面に入った直後に、もう片方の人が通信チェック中画面に入ると、

通信エラーになってしまいます。(これはエミュのバグかも)

ではどうすればよいか、それは10秒ほど、下の画面を出したまま

放置するだけです。(放置時間はどうやらPCのスペックによる模様です。)

f:id:syedream:20170425213609p:plain

この画面ですね!

そこさえ気を付ければ、あとはもう自由に対戦が可能となりますので、

好きなだけ対戦をお楽しみください!

 

・・・と、ここまで大急ぎで書いちゃいましたが、

メモリカードについてまだ触れていませんでしたね。

実はこのファイルは対戦相手と同じものを使う必要があります。

一応ACPPについては近日中にパーツコンプリートした、

対戦用のファイルを用意して、ファイル置き場にアップロードしておく予定ですが、

今日のところはここまでということで・・・w

まだ書き足りてないところもありますので、近々補足もかねて、

書き足そうと思います。

 

また、今回ご紹介した方法は、ローカルネットワークでの場合に有効な方法です。

外部のインターネット通信を介しての対戦はもちろん可能ですが、

回線の影響を受けやすく、どうしてもゲームの動作が遅くなってしまいます。

どれくらい遅いかっていうと「FROM SOFTWARE」のロゴが出るまで、

20分くらいかかってしまうほどです。

ですので、本格的に対戦をする場合には「PacketiX VPN クライアント」を利用し、

VPN接続をして行うこととなります。

その手順については、次のブログエントリーにて詳しく紹介していますので、

そちらをご参照ください。