動画について
きっかけ
ポケモンをパソコンで遊んでいて「通信交換をやってみたい」と思ったのが始まりです。調べたところ、VBALink というエミュレータを使えば実現できることがわかりました。
ただ、1台のPC内で2つの VBALink を起動して通信しようとすると、うまくデバイス同士が連携できず、画面がフリーズしてしまいます。そこで、VirtualBox で別の Windows 環境を作り、その中に VBALink をインストールする方法で通信交換を実現しました。
準備するもの
- Windows OSが入ったPC.
- 4コアあるPCが望ましいです。
- IntelのCPUを使っているならば、i5,i7シリーズであればそのくらいのスペックのものはあると思いますが、タスクマネージャーで確認することもできます。
- インターネット接続
- 外部ストレージ(40GB 以上の空き容量があるもの)
- VirtualBoxの空き容量として利用します
- Windows 11が入ったISOファイル
- https://www.microsoft.com/ja-jp/software-download/windows11
- 環境再現はWindows 11 24H2で実施しました。バージョン番号によって、ポリシーが変わるので、注意が必要です。非正規品(ライセンス認証がない状態)としてインストールします。
- VirtualBox
- レトロダンパーv4
- https://www.amazon.co.jp/dp/B0CZ997XW8
- 前回の型番が廃止となったので持ってないならAmazon等で買いましょう。
- ROM をダウンロードして遊ぶのは犯罪ですので、絶対にやめましょう。
- ゲームボーイのソフト。
- 今回はポケモンルビーで試します。
- ゲームパッド1台。
注意
今回の手順では、ライセンス認証を行わずにゲストOSとしてWindows 11 をインストールします。
今回の記事は、自分の学習・開発・検証目的でWindows 11 の仮想環境を構築し、将来的に製品版 Windows 間での通信交換やゲーム関連ツールの動作確認を行う準備として作業した記録です。
これは技術的に「このような環境構築が可能である」という学習・検証目的の手順紹介であり、ライセンス認証を行わない状態での利用や、その長期運用を推奨するものではありません。
商用利用・日常業務利用・ライセンス条項に違反する利用は絶対に行わないでください。すべて自己責任で実施してください。本記事は技術的メモ・記録であることをご理解ください。
システム構成図
VirtualBoxは、あるパソコンに別のOSを模擬させるソフトウエアです。VirtualBoxを動かす側のOSをホストOSと言います。VirtualBoxの中で動くOSをゲストOSと呼びます。
ホストOSとゲストOSの違い
今回はWindows 11の中にWindows 11を入れるというなかなか不思議なことをします。今回はゲストOSにWindows 11の評価版を利用します。
VirtualBoxにWindowsをインストールする方法
ISOファイルをアタッチしてインストール
VirtualBoxの設定 ”新規”のボタンを押して、次のように入力します。
自動インストールの画面にて、ユーザ・パスワードの情報などを記載します。
ハードウエアの設定。プロセッサ数を可能なら4以上に設定するのがおすすめ
インストール作業
この画面が出てきたら、VirtualBoxの画面を押して何かボタンを押す。VirtualBoxのコツとして、右Ctrlキーを押すと、マウス操作をホストOSに戻すことができる。
「プロダクトキーがありません」を選択する。これをすると、ライセンス認証がされていない環境でコンピュータのインストールをする。
インストールを待ちます
再起動がかかるので操作する
しばらくして起動するとWindowsのインストール画面が出てくるので、指示に従う
再起動がかかるので、操作する
VirtualBoxにWindowsの画面が映れば成功
ネットワークの設定
一度VirtualBoxを切って「設定」からホストオンリーアダプターの設定をします。
デバイスの設定
ゲームパッドを接続して、
VirtualBoxの設定にて、USBの設定で、「プラス」アイコンを押して、PCに接続しているキーボードを割り当てます。
プラスボタンを押してキーボードのデバイスを登録
キーボードを登録するというのがポイントで、ゲストOSでキーボードを、ホストOSでゲームパッドを操作すると使いやすいです。
ネットワーク共有の設定
ネットワークの設定をして、ROMやセーブデータを受け渡しできるようにしましょう。
ROMファイルとセーブデータファイルをフォルダひとまとめにして、それをバックアップとしてフォルダごと残しておくようにします。
レトロダンパーでROM吸い上げ
ポケモンルビーのカセットをレトロダンパーに刺した状態。
レトロダンパーを指すと、USBメモリのようにROMデータを拾ってくれます
上記のファイルをローカルにコピー。
VBALinkにて、ポケモンルビーで遊ぶ
とりあえず、VBALinkをダウンロード後展開し、任意のフォルダにおいて、先ほどコピーしたPOKEMON.GBAを適当なフォルダを作成して配置します。
VBALinkを開きます。
Options > JoyPad > Configureを押して、ゲームパッドの割り当てをします。
また、ゲームは適当に進めて交換できるところまで行きましょう。
最低、コトキタウンまで行く必要はあります
バックアップ
フォルダ構成を間違えると、結構データの読み込みが失敗します。
なので、バックアップが必要な場合は、VBALinkのフォルダごとバックアップを取ります。
ネットワーク共有するときに、このバックアップファイルから選んでゲストOSにコピーします
先ほど設定したネットワークのフォルダに、遊んだゲームのexeファイル一式をコピペしましょう
VirtualBoxで起動確認
VirtualBoxにキーボードの設定を占有させた理由は、ゲストOSでキーボードが使えるほうが便利だからです。
起動後、ネットワークを開く
ネットワーク探索とファイル共有のエラーが出るので有効化
いいえ、探索しているネットワークをプライベートネットワークにします をクリック
共有するフォルダを開いてネットワークの資格情報を記録
ネットワークの参照先が開くので全部ローカル環境にコピーする
VirtualBoxで起動確認
さあ、通信交換をやってみよう
ホストOSをサーバにするほうがわかりやすいです。
ポケモンルビーを両方の環境を開き、ポケモンセンターの2Fへいく
動作確認のために、キーボードで動かすとゲストOSのポケモンが、ゲームパッドで動かすとホストOSのポケモンが動くと思います。
ネットワークの設定
Optionsから"Link" "Settings"を開く
ホストOSは「General」を「Network」に設定して、
「Server」をクリック。
Startを押すとIPアドレスが出てくるのでこれをメモる
ゲストOSでもNetworkを設定 「Client」を指定して、
ホストOSのIPアドレスを入力して「Connect」を押す
両方の画面でポケモンセンターのお姉さんに聞いて、今回はとりあえず対戦して指示にしたがうと・・・
ホストOSとゲストOSで通信画面の表示ができる!
とりあえず対戦させてみました。初期データだけなのでミズゴロウしかいないけど。
ただ、結構失敗します。
昔の通信方式でポーリングタイミングなどの問題があって、なかなかうまくいかないこともあります。
上手くいくまで何度か粘ってやってみましょう。