こんにちは、ますたーです。お久しぶりですかね?
今回は21年前のゲーム機「NINTENDO GAMECUBE」を、Arduino microを使って自動化します(16年前のゲーム機「DS Lite」の自動化はコチラ)。
具体的には「ポケモンコロシアム」の「バトル山(シナリオモード)の100人抜き」を自動化し、「アースリボン」の獲得を自動化できるようにしました!
副次的に「ポケクーポン」稼ぎにも使えるかもしれません。
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
【!】本記事は、キットの組み立てにはんだ付けが必要です。
【!】本記事でのみ、Arduino「micro」を使って動作検証しています*1
概要
今回は、Arduinoとゲームキューブを接続して「ポケモンコロシアム」のキー操作を自動化しました。
これにより、約3時間半(3時間24分39秒)放置するだけで「バトル山」の100人抜きの攻略(=リボン回収)ができます。つまり、完全放置で、手持ち4匹にアースリボンを付けることができます。リボンコンプ勢は必見の記事ですね!
(今回は、YouTube動画もちゃんとアップロードしましたよ~!)
100人抜き達成で「アースリボン」を手持ちポケモン全員に付けてもらえるぞ
もくじです。1章・2章は説明なので、お急ぎの方は3章からどうぞ。ソースコードだけほしい方は5章だけ読んでも理解できると思います。
なお、0章には、全体の概要を解説したYouTube動画もアップしています。概要・知識として蓄えたい方はそちらをぜひともご覧ください。
- 概要
- 0.YouTube動画もアップしました(概要)
- 1.モチベーション:バトル山100人抜きで「アースリボン」がもらえる!
- 2.バトル山100人抜き攻略には「カイオーガ」と「ホエルオー」が最適解
- 3.バトル山の自動攻略(ゲームキューブ自動操作)に必要なもの
- 4.ゲームキューブの自動化の手順
- 5.「GC『ポケモンコロシアム』バトル山100人抜き自動化」ソースコード
- 6.自動化に使った機材類(購入リンク集)
- 7.あとがき
0.YouTube動画もアップしました(概要)
この記事の全体概要がわかる動画をYouTubeにアップしました!
24分もありますが全部見ても後悔しないと思います!ぜひ!!
1.モチベーション:バトル山100人抜きで「アースリボン」がもらえる!
この記事にアクセスしている人はすでにご存知かもしれませんが、まずは「バトル山」の紹介から。
ゲームキューブ用ソフト「ポケモンコロシアム」および「ポケモンXD 闇の旋風ダーク・ルギア」には、「バトル山」と呼ばれる施設があります*2。
バトル山は、その名が冠する通り、バトルのための施設です。100連勝を目指してポケモンバトルを繰り返すという、ポケモンRSEで言うところの「バトルタワー」に近い施設です。10階ごとに休憩スペースがあり、途中でセーブして中断することもできます。
このバトル山、占拠していた悪党を追い払うためにシナリオ上で一度立ち寄りますが、基本的には100階まで登ることは求められません。せいぜい、レベル上げのために利用するくらいでしょうか。
しかし、このバトル山の攻略にはインセンティブがあり、1階~100階までを「受付に1度も戻らず、同じパーティー(手持ち入れ替えなし)で登り切る」と、手持ちポケモン全員に「アースリボン」を付けてもらうことができます*3。
このアースリボンは、第3世代の「バトル山」でしか入手することができず、歴代の作品でも復刻されていません。
このきねんリボンを付けるためには、GBA版のポケモンのほか、「ゲームキューブの本体」「ポケモンコロシアム」「GCとGBAの接続アダプタ」など、ハードウェアの要求も多く、リアルタイムに遊んでいた人でも持っていない人もいました。
また、GBA版からゲームキューブにポケモンを連れてくるには、シナリオをクリアせねばならず、時間的にもかなり負担が大きいと言えます。
さらに、このバトル山の攻略自体にもかなり時間がかかる(筆者検証の結果、手動「A連打」構築でも、2時間42分22秒かかった(YouTube))ため、かなり心理的にも肉体的にもつらいものがあるでしょう。
逆に言えば、第3世代で入手したポケモンに「アースリボン」を付けてあげるのは、トレーナーとしての愛情が試される、ある種の「試練」とも言えます。
リボンコンプ勢にとっては”愛”が試される登竜門かも?
もちろんお気に入りのポケモンのためなら別に痛くも痒くもありませんが、2023年3月以降のいつかに迫るポケムーバーのサービス終了を前に、ポケモンコロシアムの攻略需要は逼迫している…かもしれません。
そこで、今回は、ゲームキューブの操作をArduinoで実現し、ポケモンコロシアムのバトル山(シナリオモード)の自動攻略を作ってみましたので、ここに公開します。次章では、ひとまず手動/手動にかかわらず、筆者オススメの攻略パーティーを紹介します。
2.バトル山100人抜き攻略には「カイオーガ」と「ホエルオー」が最適解
さて、前章で記載の通り、「アースリボン」をバトル山攻略(100人抜き)で付けることができることがわかりましたが、攻略もかなり骨が折れます。
バトルタワーのように、待っているだけで次の戦いになるわけではなく、RPG的にダンジョンを手動で進む必要があったり、一部の技を無効にする特性(「ちょすい」や「ふしぎなまもり」「ちくでん」など)を持っていたりなど、攻略には工夫が必要です。
決して相手のレベルが高いわけでも、こちらが使えるポケモンに制限があるわけでも、ましてや準伝説を使ってくるわけでもありませんが、「単純な」戦闘の連続ではないことが、ある種ストレスになります。
そこで、「極力A連打」で攻略しつつも、上述の「ちょすい」や「ふしぎなまもり」もケアできる攻略用パーティーとして「カイオーガ」と「ホエルオー」の2匹の組み合わせをおすすめします。レベルは100にしておきましょう。
残りの4匹はアースリボンを付けたいポケモンを連れて行こう
採用理由としては、第3世代において、ダブルバトルで猛威を振るう高威力の範囲わざ「しおふき(威力:150)」を「自力」で覚えられるポケモンだからです。
「天候:雨(威力x1.5)」かつ「タイプ一致(威力x1.5)」で、どうぐ「しんぴのしずく(補正x1.1)*4」を持たせれば、ほとんどの敵を2体同時に確定一発で流し去ることができます。
特にカイオーガは特性「あめふらし」を持つ上に、十分な「とくこう」種族値を備え、まさにこのパーティーの核と言うべき存在でしょう。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/t/tangential_star/20220828/20220828234631.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/t/tangential_star/20220828/20220828234637.png)
「とくこう」の目安は、カイオーガが340、ホエルオーは230程度だ。
私は、ステータスとしては「とくこう」実数値で、カイオーガ:340、ホエルオー:233で、自動攻略を4周、成功させています。
「とくこう」個体値15(中間・補正なし)でも、努力値を「100(ドーピング上限)」振れば、カイオーガは実数値「345」、ホエルオーは実数値「225」になるため、それほどハードルは高くないことがわかります。
また、サブウェポンも充実しており、カイオーガの「かみなり」でニョロモやマンタインの「ちょすい」を、ホエルオーは「おどろかす」でヌケニンの「ふしぎなまもり」をそれぞれケアできるため、ポケモンを入れ替える手間もありません。
前述の通り、メインウェポンの「しおふき」は自力でレベルアップで覚えてくれるため、レベル上げの手間こそありますが、タマゴ孵化や技遺伝、教えわざなども必要ないため、比較的手軽に準備することができます。必要なのは「かみなり」のわざマシンですが、ミナモシティのデパートでも買えますしね。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/t/tangential_star/20220828/20220828235757.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/t/tangential_star/20220828/20220828235805.png)
技2は、カイオーガは「かみなり」、ホエルオーは「おどろかす」にしよう
このパーティーは特殊アタッカーとしての立ち回りになるため、道中かなりやっかいな「いかく」連打パーティーなどにも滅法強く、基本的に「ちょすい」持ち以外の相手に対してはA連打で攻略が可能になります。
このパーティーを使って「手動」でA連打し続ける脳筋攻略でも、わずか3時間足らず(2時間42分22秒)で攻略することができます。
(手動で攻略した様子。とにかくA連打の速さが命だ)
3.バトル山の自動攻略(ゲームキューブ自動操作)に必要なもの
さて、おまたせしました。前章ではバトル山の攻略について触れましたが、ここからはいよいよ、「自動化」にチャレンジしていきます(これは持論ですが、手動の手順を知った上で自動化することが大事なので、もし、ここまでを読み飛ばした方についても、2章は読んでおくと良いかと思います)。
なお、今回のバトル山自動化においても、2章に記載のパーティー(カイオーガ・ホエルオー)を利用します。
3-0.ゲームキューブ自動化の先駆者(紹介)
今回取り扱う「ゲームキューブの自動操作」について「利用する機器構成・配線図」「利用ライブラリ」については、私が0から考案したものではありません。
下記のみずようかん氏のnote記事を参考に、私がカスタマイズ・アレンジメントしたものになります。大いに参考になるのでぜひ、ご覧ください。
また、ゲームキューブの自動化において、一般に普及したPC用制御ソフトウェアとして「ORCA GC Controller」というソフトウェアもあります。
今回の私の記事では扱いませんが、ぜひともこれからGC自動化を志すのであればぜひ確認してみてください。たぶん、スタンダードな方法です。
ORCA GC Controller公開しました
— 多脚ニャオハ推進派 (@sub_827) 2021年3月4日
画像認識以外のことはだいたい出来ると思います。https://t.co/cNP609jJ9S
3-1.準備するもの(ハードウェア)
今回、GCの自動化を実現する上で準備するものは下記の通りです。持っていないものは買いましょう(一応、6章には筆者が使った機材の購入リンク としてまとめています)。特筆すべき機材には【重要】と付けておきます*5。
- パソコン(Windows 10想定)
- ゲームキューブ一式
- Arduino micro(ブレッドボードに挿せるように、ピン実装済のもの*6) [秋月電子通商で買う]
- USBケーブル(Arduino-PC接続用) [amazonで買う]
- 【重要】ゲームキューブ用 RJ-45ケーブル for Retro Board [amazonで買う]
- 【重要】LANコネクタDIP化キット [秋月電子通商で買う]
- 【重要】4ビット双方向ロジックレベル変換モジュール [秋月電子通商で買う]
- ブレッドボード [秋月電子通商で買う]
- ジャンパーケーブル [秋月電子通商で買う]
- 【重要】はんだごて [amazonで買う]
- こて台 [amazonで買う]
- はんだ [amazonで買う]
これらが揃っていれば、下図のように配線ができます。不足がないか、今一度確認しておきましょう。
3-2.準備するもの(ソフトウェア)
パソコンには、Arduinoにプログラムを書き込むソフトウェア「Arduino IDE」が必要です。
Arduinoを持っている方、あるいは本ブログの読者であれば、ほとんどの方が「Arduino IDE」のインストールを済ませていると思いますので追加の設定は不要です。
もし「まだインストールしていない」という方は、下記を参考にセットアップしてください。
4.ゲームキューブの自動化の手順
さて、おまたせしました。本記事のメインコンテンツ、ゲームキューブの自動化環境のセットアップです。おおきく下記の3工程です。
- 「LANコネクタDIPキット」「4ビット双方向ロジックレベル変換モジュール」をそれぞれはんだ付けする(いわゆる基板実装)
- 「Arduino micro」とゲームキューブを配線する
- ライブラリの導入と、Arduino IDEでプログラムを書き込み
今回も「はんだ付け」が必要ですが、前回のDS Liteの分解とはんだ付けよりは簡単でした。それぞれ解説します。
4-1.モジュールを基板実装する(はんだ付け)
秋月電子通商が販売する「LANコネクタDIPキット」および「4ビット双方向ロジックレベル変換モジュール」はいずれも、「キット」なので自分ではんだ付け(基板実装)を行う必要があります。はんだ付け初心者の人には厳しいですが、なんとかなります*7。今回はDS Liteに導線をはんだ付けするのと違い、予備ハンダも不要ですし、比較的カンタンでした。
なお、ピンをブレッドボードに挿して仮固定した状態で基盤にはんだ付けを行うため、はんだ付けの際にも「ブレッドボード」が必要です。
■LANコネクタDIP化キット
まずは、LANコネクタDIP化キットを基板実装(はんだ付け)します。
上側(LANコネクタ側)を先にはんだ付けするのがコツです。逆の手順で下側(ブレッドボードのピン側)からはんだ付けすると、外のピンがはんだごてに干渉してはんだ付けできなくなります(経験談)。
■4ビット双方向ロジックレベル変換モジュール
同様に、「4ビット双方向ロジックレベル変換モジュール」も基板実装します。こちらのモジュールは表裏不問なので、お好きな面を上にして組み立ててください。筆者としては、「GND」や「HV」「LV」などその端子が何なのかが書いてある面を上にすることをオススメします。
■基板実装の様子(YouTube動画)
上記のGIFアニメでほぼすべてを網羅していますが、詳しい手順説明の様子もYouTube動画としてアップロードしました。よくわからない人はぜひご覧ください。
4-2.ゲームキューブとの配線(詳しくわかりやすく解説!)
さて、ここからはゲームキューブとArduino microを配線します。
途中からは、私を含む「初心者」にとって、やさしめに書きました。
※この節は、下記みずようかん氏のツイート画像を読んで理解できる人は読み飛ばしOKです(すべてのエッセンスが詰まっているといっても過言ではありません。私は、このツイートのおかげで実装ができました)。
めっちゃ回りくどい配線だけどこんな感じ
— みずようかん (@AT12806379) 2022年6月8日
ロジックレベル変換モジュールは双方向の物が必須です pic.twitter.com/m9ZxCtf6Qx
*ここから前置き*
まずは、前置きから。解説まで読み飛ばし もOK。
今回のゲームキューブ自動化では、GCコントローラのインタフェース(接続端子)の形状を、Arduino microに互換するタイプに変換するために、「ゲームキューブ用RJ-45ケーブル for Retro Board」を利用します。
これは、その名の通り、GCコンの端子をRJ-45(すなわちLANコネクタ)に変換してくれるケーブルです。Amazonで購入することができます。
※2022/9/6現在、Amazonで購入することができる。
このケーブルを使って、秋月電子通商が販売している「LANコネクタDIPキット」および「4ビット双方向ロジックレベル変換モジュール」を介することで、ゲームキューブArduino microと接続することができます。
すなわち、下記の配線が必要になります。
- ゲームキューブ→LANコネクタDIPキット(ゲームキューブ用RJ-45ケーブル)
- LANコネクタDIPキット→ロジックレベル変換モジュール(ジャンパーワイヤー)
- ロジックレベル変換モジュール→Arduino micro(ジャンパーワイヤー)
- Arduino micro→PC(USBケーブル)
これらの配線のうち、1番(GC→LANコネクタ)および4番(Arduino micro→PC)については穴の形に合わせてケーブルを挿すだけなので簡単です。
しかし、2番・3番はジャンパーワイヤーでの配線とは言え、回路図を読んでそのとおりに導通させるのは、電子工作に慣れていない人にとっては鬼門です(少なくとも、筆者には難易度が高すぎました…)。
そこで、回路図を最初に読むのではなく、理屈を先に解説します。これを読むと、回路図を真面目に読み解きながら考えるより、簡単になると思います。
*ここから解説*
さて、ゲームキューブの自動化にあたって「Arduino」「レベル変換モジュール」「LANコネクタDIPキット」の3つを配線をする必要があります。
下記に配線のイメージ図を載せますが、まずは「DATA線(黄土色)だけ」を注目して見てください。
「Arduino micro」の5番ピンから、双方向レベル変換モジュールを経て、LANコネクタDIP化キットの7番ピン、というふうに「DATA線(黄土色)」のケーブルは「1本だけ」つながっています。
語弊を恐れずに説明すると、ゲームキューブのコントローラー操作はわずか1本の導線だけで実現できるということです。
ほら、簡単になったでしょう?(笑)
今度は、使っていない端子やブレッドボードを省略して、もっともっと簡単化します。こちらの模式図をご覧ください。
先程説明した通り、DATA線は変換モジュールを経て1本でつながっていることがわかると思います。しかも、よく見れば「GND」の線もDATA線と同様に変換モジュールを経てつながっています。
1つ前の図では、なんとなく「ごちゃ付いている(複雑そうな)」印象を受けた人も多いかもしれませんが、こうして図式化すると、DATA線・GND線はそれぞれレベル変換モジュールを経てつなぐだけ、だということがわかります。
5Vと3Vは両方とも変換モジュールに入っているだけですし、全部を見てもわずか6本しかつなげていないことがわかります。これらはつなげるだけで良いんです。
意外と簡単ですよね?
では、ここで改めてみずようかん氏の配線図を見てみましょう。
画像引用元: GC自動化ver2アップデート|ゲーム好きの和菓子|note
例えば、「DATA線(図中の青色)」に着目してみてください。LANコネクタの7番から、ロジックレベル変換モジュールを経て、Arduino microの5番ピンにつながっていることがわかりますよね。
このように、上で書いたことと全く同じことが回路図には書いてあるということがわかります(←当たり前だけど大事な発見)。
なお、この回路図は「LANコネクタDIP化キット」の形状が若干異なるため、仕上がりのイメージという意味では、私の書いたイメージ図を参考にしても良いかもしれません。好みでお選びください。
また、現物写真もアップしておきます。絵だけじゃ伝わらないものもありますからね。これらを参考に、ご自身の配線も進めてください。
(写真上でケーブルに隠れて黄色の線が見えなかったため)
なお、1点だけ「間違えやすい」ポイントがあります。それは「Arduino microの『アナログピン』の存在」です。
今回使うのは「デジタル5番ピン」ですので、アナログの5番ピンではありません。注意しましょう(筆者は間違えました)。一応、見分け方としては「A5」ではなく「5」と書かれたピンを使うことです(なぜ間違えたし)。
※筆者は30分かかりました
4-3.ライブラリ「Nintendo.h」の導入
さて、基板実装も配線も終わり、いよいよソースコードのコンパイル…と行きたいところですが、今回のプログラムではNicoHood氏によるライブラリ「Arduino Nintendo Library(Nintendo.h)」を利用します。
下記は、GitHubのリンクですので、興味があればぜひ覗いてみてください(英語)。
ライブラリ「Nintendo.h」をArduino IDEにインストール方法は極めて簡単で、Arduino IDEの「ライブラリマネージャー」からインストールすることができます。
手順としては、ツール→「ライブラリを管理」を選択し、検索窓に「Nintendo.h」と入力して、絞り込みされた中から「Nintendo」を選んでインストールするだけです。2022年9月6日現在の最新版は1.4.0です。
シンプルですが、YouTube動画に手順をアップしました。必要に応じてお役立てください。
このライブラリがインストールされていれば、私のプログラムも問題なくコンパイルできると思います。
5.「GC『ポケモンコロシアム』バトル山100人抜き自動化」ソースコード
さて、お待たせいたしました。いよいよソースコードです。
全部で5643行、延べ19万文字もあり、かなり長いですが、ほとんどはバトル山の攻略のための自動化コマンド列です。
5-1.ソースコードのダウンロード
下記からダウンロードしてください(長すぎて、はてなブログに貼り付けられなかった…)。依存ライブラリは「Nintendo.h」です。
https://app.box.com/s/iag2vqybq3nrxsi4jb16j6uak5h4tsye
※注意
今回の自動化では、外部GUIツールに依存しない反面、画像認識を使っていないので「運ゲー要素」には対応しきれてはいません。つまり、7戦目のウリムーや23戦目のゴマゾウが「こらえる」を3回連続で使って3回とも成功してしまうと、動作がズレて破綻します。こらえる滅びろ…
コマンドの冗長化(3試行)である程度は対応していますが、その仕様上、自動化が100%成功する、というわけではないのでここだけ注意をお願いします。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/t/tangential_star/20220906/20220906171557.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/t/tangential_star/20220906/20220906171604.png)
5-2.コマンドのカスタマイズ
ソースコードは基本的に「そのまま」使えると思いますが、配列「autocommand[]」の中を書き換えていただくことで、ご自身で自動化プログラムをカスタマイズ(作成)することも可能です。
具体的には「COMMAND」マクロを使って、自動化コマンドを定義することができます。コマンドはそれぞれカンマ( , )で区切るようにしてください。
例えば、「Xボタン」を押してから「Bボタン」を押したい、という場合には下記のように書きます。
この時、各ボタンの長押し時間は「SEC」マクロで指定することができます。
なお、コマンドについては、最初の1行目には「COMMAND(KEY,BEGIN,0),」を、最後の行には「COMMAND(KEY,END,0),」を、それぞれ「必ず」入れてください。
このあたりの詳しい仕様については、プログラム内のコメント部分および冒頭の定義マクロをお読みください。下図も参考になるかもしれません。
short int(2byte)で入力キー・角度・長押し秒の管理は、このように実装しているぞ
5-3.動作確認・操作方法
コンパイルが完了し、配線が完了したら、ゲームキューブと接続してください。その状態で、Arduino IDEでシリアルモニタ(Ctrl+Shift+M)を開くことで、ゲームキューブを操作することができます。
なお、この時、「GC is not connected or detected !」というエラーが表示される場合は、どこかで配線が間違っているかケーブルが奥まで差し込まれていません(あるいは、ゲームキューブが起動していません)。確認してみましょう。
ちゃんとつながっていればエラー表示が止まる(出ない)ので、接続を確認しよう。
配線が正しく行えていれば、シリアルモニタに下記コマンドを入力することができます。この入力でゲームキューブが操作できます。大文字と小文字は区別されます!
基本的には「q」を押してプログラムに正しくコマンドが書き込まれていることを確認し、「p」で自動化を開始する、という流れになるかと思います。
- 自動化コマンド
- q:配列autocommand[]に記録されたコマンドの確認
- p:自動化開始
- ボタン操作
- a:Aボタン
- b:Bボタン
- x:Xボタン
- y:Yボタン
- s:スタートボタン
- r:Rボタン
- l:Lボタン
- z:Zボタン
- 十字キー操作
なお、ボタン操作周りはあくまでもオマケ機能なので、自動化を行う時以外は、素直にコントローラーを差し替えて手動操作したほうがよっぽど楽です。
ちなみに、これらのボタン・キーの長押し時間設定は一律で300ミリ秒です。ちょっと長すぎる、という方はソースコードのHOLDTIMEの数字を書き換えてください。
5-4.バトル山自動攻略の様子(ノーカット編集)
シリアルモニタ上での操作は「p」を押すだけです。
ゲーム側の準備としては、手持ちポケモンに「カイオーガ」「ホエルオー」を準備して、受付のねーちゃんの前に立つだけです。
あとは、シリアルモニタに「p」を送信すれば、3時間24分放置するだけで、100階まで自動で登ってくれるという優れものです。アースリボン取り放題ですね!!
↓ノーカットです。3時間24分、動いている様子を見たい!という方はどうぞ。
6.自動化に使った機材類(購入リンク集)
さて、今回のゲームキューブ自動化で使った機材の紹介です。
今回は「Amazon」と「秋月電子通商」でそれぞれ分けて購入をしておりますが、実際に購入・利用したECのみを紹介いたします。
例えば、Amazonでも取り扱いがある「Arduino micro」は、今回「秋月電子通商」で購入したので、Amazonの購入リンクは載せません。筆者が自ら購入したものを紹介する信条ですので、この前提にて、皆様のチャレンジの一助となれば幸いです。
ただし、機材や環境の問題、相性の問題を吸収・保証する意図ではありませんので、あくまでも参考程度にとどめていただき、自己責任にて購入・調達いただければと思います。
6-1.Amazonで購入したもの
●ゲームキューブ用 RJ-45ケーブル for Retro Board
ゲームキューブのコントローラー端子を、LAN端子(RJ-45)に変換できるすごいケーブル。今回の肝です。
本来は、ゲームバンクウェブドットコム社が提供するレトロゲーム向け開発基盤ボード「Retro Board」のための拡張ケーブルとして販売されているものです。
SRPJから公式にピンアサインが公開・掲載(PDFの12ページ目)されており、ゲームキューブの端子からDATA線とGND線およびVCC線の3本を取り出すことができます。
LAN端子(RJ-45)側のピン配列も、1番・7番・8番の3つに割り当てられていることもわかりますね。
(筆者購入日:2022/7/12;購入時の金額:980円)
●Manelord はんだごてセット 温度調節可(200~450℃)
今回のゲームキューブ自動化では、上記のLAN端子をブレッドボード上に実装するパーツが必要です。
このパーツは、秋月電子通商で「キット」として販売されているため、購入者が自ら「はんだ付け」で基板実装を行う必要があります。
そこで「これからはんだ付けを始めよう」となったときに必要となる機材が一通りセットになっていたのがAmazonで売っています。「はんだごて」「コテ台」「交換用コテ先」「はんだ」がぜんぶ入りで2000円前後で買えちゃいます。
前回記事(DS Liteの自動化)のときに買ってから4ヶ月あまり経過しましたが、普通に使えています。
ただし、付属の「コテ台」は非常に不安定で危険なので、「しっかり」としたコテ台を別途準備することをオススメしておきます。
(筆者購入日:2022/4/16;購入時の金額:2,199円)
6-2.秋月電子通商で購入したもの
●LANコネクタDIP化キット【要はんだ付け】
LAN端子(RJ-45)をブレッドボード上に実装するための自作キットです。今回の肝その2です。
今回のゲームキューブ自動化では、上記GC用RJ-45ケーブルからの信号をブレッドボードで拾うために利用しています。
はんだ付けが必要ですが、非常に安価に調達できるため、筆者は失敗を見越して3個購入しました(1個、壊しました)。
はんだ付け初心者には難しく感じられると思いますが、筆者が初心者ながらも、なんとか実装できたのでとりあえず3個くらい買っておけば良いのでは無いでしょうか(雑
(筆者購入日:2022/6/15;購入時の金額:200円)
●4ビット双方向ロジックレベル変換モジュール【要はんだ付け】
ゲームキューブの動作電圧3.3Vと、Arduinoの動作電圧5Vを相互に変換して通信できるようにするモジュールです。今回の肝その3です。
今回利用したライブラリ「Nntendo.h」にも記載されていますが、ゲームキューブへのコントローラー「送信」と同時に、状態レポートを「受信」しているため、「双方向」に対応したロジックレベル変換モジュールが必要になるようです。
こちらも「キット」として販売されており、はんだ付けが必要ですが、上記のLANコネクタDIP化キットよりは簡単です。
こちらも単価が安いのでとりあえず3個くらい買っておけば良いのでは無いでしょうか(雑
4ビット双方向ロジックレベル変換モジュール BSS138使用: 半導体(モジュール) 秋月電子通商
(筆者購入日:2022/6/15;購入時の金額:200円)
●Arduino micro
ゲームキューブをうごかすために使ったマイコンボードです。今回の肝その4です。
私は普段「Arduino Leonardo」を使っていますが、今回はブレッドボード上に実装したかったので「micro」にしました。
コンパクトでスタイリッシュな見た目も良いですが、ピン実装済のものでブレッドボードに差し込むことができるので、保管場所を選ばないのが偉いですね。
Amazonでも売っていましたが、円安になる前の当時は秋月電子通商で買ったほうが安かったためこちらで購入しました。
(筆者購入日:2022/6/15;購入時の金額:2,780円)
●ブレッドボード BB-102
上記のパーツを1枚に納めて実装するための細長いタイプのブレッドボードです。
裏面に両面テープがついているので、その気になればゲームキューブに固定して専用機みたいに使うことも可能。Amazonであれば、もっと安いものも売っている気もしますが不良品のリスクが怖いので、「あの秋月電子通商が取り扱っている」という点を信頼してこちらを購入しました。
(筆者購入日:2022/6/15;購入時の金額:300円)
●ブレッドボード・ジャンパーワイヤ 14種類×5本
ブレッドボードの上を這わせてキレイに配線できる「コの字型のジャンパーワイヤー」です。
様々な長さのジャンパーワイヤーが揃っているので、結線したい部分の長さに合わせて柔軟にワイヤーを選ぶことができます。
よほどの完璧主義で無い限り、このセットを使っておけばそれっぽく配線することができると思います。あと、なにより安いです。安いのは良いことだ。
ブレッドボード・ジャンパーワイヤ 14種類×5本: パーツ一般 秋月電子通商
(筆者購入日:2022/6/15;購入時の金額:300円)
6-3.ゲームキューブの映像をHDMI経由で取り込む機材【2023/9/6追記】
※意外と問い合わせが多かったため、2023/9/6に追記させていただきました。
ゲームキューブの映像は、赤・白・黄色の3色ケーブル、いわゆるコンポジット出力(RCA端子)によるアナログ出力になるため、今日一般的にPCに外部映像を取り込む用途で用いられる「HDMI」端子ではありません。そこで、キャプチャーボードで取り込めるようにHDMIに変換する必要があります。
ここでは、2種類の変換機材を紹介します。
※注:実際に購入してうまくいっていますが、動作保証するものではありません。すでに20年以上前のゲーム機なので、購入機材だけでなく、本体の故障やケーブルの断線、接触不良など、原因が多岐にわたるため、自己責任での購入・確認をお願いします。
※注:HDMI映像のPCへの取り込み方(キャプチャーボード)については、本記事では言及しません。筆者は【Poke-Controller】画像認識自動化の導入おぼえがき【中級者向け】に記載のHDMIキャプチャーボードを利用しています。
●ゲームキューブ用 補助電源不要 bitfunx GC HDMIアダプター【注:後期型GCは不可】
重要ですが、こちらは、いわゆる「前期型」のゲームキューブ(DOL-001)に使うことができるHDMI変換アダプタです。本体背面にデジタルAV出力端子口が無い「後期型」のゲームキューブ(DOL-101)には使用できません!
この変換アダプタは、上記「ゲームキューブ用 RJ-45ケーブル for Retro Board [SRPJ2322]」と同様に、S.R.Projectシリーズとして発売されているものです。
いわゆる前期型(型番:DOL-001)のゲームキューブの背面には、デジタルAV出力端子があり、そちらに本製品を直接取り付けて使います。追加の予備電源も不要で、文字通りプラグ・アンド・プレイ、さすだけで使えて素晴らしいです。
前述の通り、デジタルAV出力端子を持たない「後期型」のゲームキューブの場合、残念ながら本製品は使えません。また、少々値段が高いため、お財布事情を鑑みて、そういった方は、次に紹介するコンポジット出力をHDMIに変換するアダプタで代用します。
(筆者購入日:2023/7/23;購入時の金額:5,800円)
●コンポジットto HDMI アップスケールコンバーター【記事執筆時はこちらを利用】
この変換アダプタは、アナログ出力となるコンポジット出力(赤・白・黄色の3色ケーブル)の映像と音を、1本のHDMIにまとめてくれる変換器です。
前期型(DOL-001)・後期型(DOL-101)のいずれでも使えますが、当前のことながら、別途、Nintendo64やファミコンに付属していた「ニンテンドーゲームキューブステレオAVケーブル」が必要です。
GC本体に当該ケーブルを挿して、その3色ケーブルをこの変換器に挿す、という使い方ですね。
なお、お使いの機材によっては電源供給が必要です(不要な方もいます)。筆者は購入当初は電源供給なしで使っていましたが、映像が切れるなど不都合が生じたため、電源供給して使っていました。
もし、HDMIケーブルを繋いでみて「映らない」という方は、電源供給として別途ACアダプタを購入するか、PCのUSBポートに挿してお使いください。
コンポジット出力をHDMIに変換する所以で、当然上記のデジタル出力と比べると画質は劣りますが、魅力はなんといってもその安さと入手性。購入から2年経った今でも安定供給されているようです。
(筆者購入日:2021/7/28;購入時の金額:719円)
7.あとがき
さて、ここまでお読みいただきありがとうございました。
今回は、ゲームキューブの自動化の環境構築方法の紹介と、ポケモンコロシアムの「バトル山」の100人抜き(=アースリボンの取得)を自動化しました!
プログラムが3時間以上も一人でゲーム操作をしてくれるという、非常にパワフルな自動化が出来上がったと自負しております。
まだ「ゲームキューブの自動化にチャレンジしたことがない」という皆様も、まだ「バトル山をクリアしたことがない」という皆様も、ぜひともこの記事をきっかけに一歩踏み出していただければ幸いです。
苦痛のデバッグ作業と攻略本
実は、ソースコードの第1稿が書き上がったのは2022年8月19日でしたが、予想以上のデバッグ負荷により、公開本日9月6日まで時間がかかってしまいました。
特に、「こらえる」によるターン消費のズレや「でんこうせっか」などによる待機時間のズレなど、使われる「わざ」によって場の状況が変わるため、戦闘時のパターン数が膨大になる、という点が、非常に厄介でした。
そこで、相手が使う「わざ」を調べるべく、ポケモンコロシアムの攻略本を3冊も買い集めました。
…が、3冊いずれの攻略本にも「シナリオモードのバトル山で相手が使う「わざ」はおろか、ポケモンすら記載がなく、文字通りトライ・アンド・エラーで相手のわざをチェックしていく必要がありました。
つまり、相手が使うわざ・ポケモンは完全に手探りでデバッグする必要があった。
重ねて、どの「わざ」が選ばれるかは戦闘ごとにランダムなため、運良く(運悪く?)「こらえる」を使われなかった場合、動作のズレが起こりません。
結果として、ズレる可能性に気づかないまま自動化コマンドを組み上げてしまい、次のデバッグ時に、「謎のズレ」が起こる要因となってしまいます。
バトル山では99階には「ヌケニン」が登場するなど、まさに「初見殺し」なトレーナーもいるため、まさか3冊の攻略本のいずれにもポケモンの情報すら載っていないとは思わなかったです…。
当時の攻略本に載っていない施設の攻略ということもあり、ある意味、私はすごくニッチな内容を自動化したのかもしれません(笑)
ちなみに、このバトル山100人抜きのデバッグ作業に、私は延べ40時間以上費やしています。…が、もしかしたら、まだ「こらえる」など、運良く見つかっていないズレの可能性が残っている「かも」しれません。そういう意味で、みなさまも優しい目でこの自動化ソースコードをご利用いただければ幸いです。
「100人抜き」きねんリボンってエモいよね
ゲームキューブといえば、発売からすでに20年以上が経過したゲーム機ですが、スマブラ界隈や、ポケモン界隈においては、未だに現役で遊んでいる人が一定数います。この背景には、如実に「ポケモン」というコンテンツタイトルが持つ世界観・奥行きが現れています。
第3世代からは、ポケモンに「きねんリボン」を付けることができるようになり、当時から「ポケモンコロシアム」でしか取得できない「アースリボン」の付与は注目されていましたが、あくまでも当時は「やりこみ要素」の域を出なかったように思います。
…が、ポケモン剣盾の発売で「二つ名」としてきねんリボンを他人にアピールする機会が増え、ポケモンコロシアム・ポケモンXDでしか入手できない「アースリボン」「ナショナルリボン」は再注目される運びとなりました。
特に、今回の自動化で入手できる「アースリボン」の二つ名は”100にんぬきの”という、まさにそのポケモンと一緒にゲームキューブを遊んだ記憶が呼び覚まされるような、エモいリボンだと思います。
しかし、2022年度もすでに9月となり、まもなく半期が終わろうとしています。3DSのショップも終了し、刻一刻と、ポケムーバー・ポケモンバンクの終了が迫っているような気がしてなりません。
もっともっと思い出のある第3世代のポケモンたちと、たくさん「100人抜き」したい、そんな需要もあるかと思い、この自動化に着手できたと感じていますし、なんとか仕上げることができました。
私自身もたくさんのポケモンと一緒にリボン集めができるかな、と期待に胸を膨らませています。
むすびに
前々回はNintendo Switch、前回はDS Lite、今回はGameCube。なんだか、時代が遡っているような気もしますね(笑)こんな調子ですが、これからもこのブログでは自分が興味を持ったものを取り扱っていければと思います。
マイペース更新ですが、引き続きよろしくお願いします。
この記事や本ブログが、皆様のポケモンライフをより豊かにするきっかけになれば幸いです。
皆様におかれましても、本ブログを応援いただければ幸いですし、もし「参考になった」「これがきっかけで●●ができた!」などの報告もいただければ励みになります。
ではではc⌒っ.ω.)っ
2022年9月6日 ますたーの忘備録
--
本ブログについて:本ブログについて
導入記事:【Arduino自動化01】Arduino開発環境の導入
ポケモン剣盾の記事:ポケモン剣盾Arduino自動化 カテゴリーの記事一覧
ポケモンBDSPの記事:ダイパリメイクArduino自動化 カテゴリーの記事一覧
レジェンズアルセウスの記事:レジェンズアルセウスArduino自動化 カテゴリーの記事一覧
YouTubeチャンネル:ますたーの忘備録 - YouTube
※今回の「ゲームキューブ自動化」に関する動画のプレイリストはこちらです:
*1:本ブログでは普段、メインでArduino「Leonardo」を使っています。microとLeonardoは「ソースコード」としては互換するはずですが、今回はブレッドボードにピン実装をする所以で、microを利用しています
*2:ポケモンコロシアム・ポケモンXDの「バトル山」は、ややこしいことに、シナリオモードと対戦モードの2種類がありますが、本ブログで取り扱うのは前者です
*3:100人抜きの途中でセーブしての中断はOKですが、受付に戻ったり手持ちポケモンとボックスのポケモンを入れ替えたりすると、100人抜きしてもアースリボンを付けてもらえなくなります
*4:第3世代での「しんぴのしずく」の倍率は、1.1倍です。第4世代以降では1.2倍になりました。なお、同じくみずタイプの技威力を上げる「うしおのおこう」は倍率1.05倍なので、今回には適していません。必ず「しんぴのしずく」を持たせてください。
*5:今回の配線において肝になる部分でう
*6:筆者は未検証ですが本プログラムはArduino Leonardoでも動く「はず」です。今回はブレッドボードの上に乗せてコンパクトにするためにArduino micro(ピン実装済)を利用しています
*7:筆者は4ヶ月前に1度だけ、その時に初めてはんだごてを触りましたがパーツを壊すこともなく、無事に実装できました