PCでゲームボーイアドバンスのゲームを遊んでみよう!!

お約束

あなたが吸出したROMデータを他人に販売・配布するなどの行為は、著作権法違反となります。絶対に行なわないで下さい!

ゲームボーイアドバンスROMデータの吸出し

普通のゲームボーイのROMデータは「ホンコン」+GBアダプタにより吸出しが可能だけど、ゲームボーイアドバンスについては吸出しが不可だったりする。

しかし、先達はとっくにゲームボーイアドバンスのROMデータ吸出しを「ULA」というブツにより可能にしていましたとさ。

ULA」とは、「Optimize」さんと「TeamKNOx.」さんのコラボレーションにより実現した、ゲームボーイアドバンスとパソコンをUSBで接続するデバイスであり、主としてサイプレス社のUSBコントローラ内蔵マイコンを利用して作成。「USB Linker Advance」の略ですな。

この、サイプレス社のUSBコントローラ内蔵マイコンは、かつてデジタル携帯電話をパソコンとつないでモバイル通信をするアダプタに大量に採用されていたようで、このアダプタを改造すればお手軽に「ULA」が作成できるということもあり、一時とっても品薄状態に。

恐らく、現在オークションで落札されているこの手の携帯電話の通信アダプタは、本来の通信目的ではなく改造目的で落札されているに違いない...俺様だけか?(^^;)

ULA」は、ROMデータを吸出すだけではなく、ゲームのセーブデータの読み書き、ゲームボーイアドバンスに内蔵されているRAM領域へのプログラム転送等々色々なことができたりする。

今回の「ULA」製作は、主として「Ben’s HP」を参考にさせて戴きました。神々に感謝!!

吸出しの手順

今までの吸出しとは違って、結構複雑な手順かも。

  • 部品入手 → 携帯電話アダプタとゲームボーイ通信用ケーブルの捜索
  • USBドライバ入手 → USBデバイスとして使用するためのドライバを入手
  • 吸出し用プログラム入手 → ULAを用いてROMデータを吸出すプログラムを入手
  • ULA」アダプタ作成 → 携帯電話アダプタとゲームボーイ通信用ケーブルを合体
  • USBドライバインストール → ULAアダプタをUSBデバイスとして認識させる
  • 吸出し用プログラム起動 → ゲームボーイアドバンスとパソコンをULA経由で接続
  • ちゅーちゅー吸出しして成功!!

準備するもの

  • パソコン → 普通にUSBコネクタを装備しているやつ。OSはNT系(WinXPやWin2K)でも9x系(Win98やWinMe)でも大丈夫
  • ゲームボーイアドバンス本体 → ゲームボーイアドバンスSPでも大丈夫
  • デジタル携帯電話通信用アダプタ → 今回はIO-DATAの「USB-PDC」というアダプタをオークションで入手。ここで注意してほしいのは、アダプタに使用されているサイプレス社のUSBコントローラ内蔵マイコンというかチップの型番が「AN2131SC」でなくてはいけないということ。IO-DATAをはじめとして各社で発売されているようなのでインターネット上で情報収集すること(無責任)
  • ゲームボーイ通信用ケーブル → ゲームボーイアドバンスの通信用コネクタに接続するためのケーブル。今回は任天堂のゲームボーイポケット専用変換コネクタ「MGB-004」をハードオフで入手。ここで注意してほしいのは、通信用コネクタは6ピン+GNDという構成だけどその全てのピンに結線されているものが必要ということ。これまたインターネット上で情報収集すること(またまた無責任)
  • USBドライバ →「AN2131SC」チップの開発元であるサイプレス社のページから、「EZ-USB Control Panel」ファイルをダウンロード。もともと「AN2131SC」というチップは、「EZ-USB」というマイコンシリーズ(?)のチップであり、それを制御するプログラム。サイズが60MB程度あるので注意
  • 吸出し用プログラム →「TeamKNOx.」さんのページから「ULA-HostV2(build 20030731) 」というファイルをダウンロード
  • 半田付け用の工具一式
  • ニッパとワイヤストリッパ
  • 配線材
  • テスター
  • ULA」基板格納用ケース
  • ホットボンド(あれば)

下の画像が、通信アダプタの「USB-PDC」(奥)及び通信ケーブル「MGB-004」(手前)。

https://hkjunk0.com/wp-content/uploads/ula01.jpg

手前が変換コネクタで、奥が通信アダプタ。

下の画像が内容物。青いのが「USB-PDC」で黒いのが「MGB-004」。

https://hkjunk0.com/wp-content/uploads/ula02.jpg

今回の生贄(^^;)。

下の画像が「MGB-004」のコネクタ部分。ピンが6個あるけどその全てが結線されている必要あり。

https://hkjunk0.com/wp-content/uploads/ula03.jpg

これをGBAと接続するわけですな。

下の画像は反対側のコネクタであり今回は不要。

https://hkjunk0.com/wp-content/uploads/ula04.jpg

こちら側は今回は不要。

ULA製作開始

まずは、変換コネクタ「MGB-004」の反対側のコネクタを分解。ネジを2個外して少し横にずらすと、簡単にケースが外れる。ケースを取り外して、ケーブルの玉結び(?)をほどいてから6本の線+GNDを半田ごてで基板から取り外す。

https://hkjunk0.com/wp-content/uploads/ula05.jpg

ケースを取り外しましたの図。

https://hkjunk0.com/wp-content/uploads/ula06.jpg

ケースを全て取り外しましたの図。

取り外したまんまのケーブル。あとで各々の線を「AN2131SC」のピンに直接半田付けするので、ワイヤストリッパで綺麗に皮膜をむいて予備半田をしておく。

https://hkjunk0.com/wp-content/uploads/ula07.jpg

結び目が曲がりくねっていて予備半田が面倒くさい。

次に、「USB-PDC」を分解。裏側のネジを4個外してケースを開け、基板を取り外す。

https://hkjunk0.com/wp-content/uploads/ula08.jpg

普通にプラスドライバでネジを外す。

https://hkjunk0.com/wp-content/uploads/ula09.jpg

そのままガバッとケースを開ける。

下の画像が取り外した基板。真ん中にある正方形のチップが「AN2131SC」。で、その下にある小さなICが、ファームウェアを格納しているIC(EEPROM)なので、そのIC(EEPROM)の各ピンに半田ごてをあてて取り外すこと。これをやらないとファームウェアが生きた状態になってしまい、USBドライバを組み込む際に問題が生ずる恐れあり(多分)。

https://hkjunk0.com/wp-content/uploads/ula10.jpg

真ん中の正方形の大きなチップがAN2131SCさん。その下のチップがBIOSっていうかEEPROMさん。

下の画像が、取り外したあとの基板。

https://hkjunk0.com/wp-content/uploads/ula11.jpg

表面実装タイプなので、EEPROMの各ピンに半田ごてを当てて半田が溶けた状態で、一気に取り外す。

IC(EEPROM)を取り外した基板は、もう半分しか必要ないのでニッパで基板をぶった切る(^^;)。間違えて「AN2131SC」のピンをぶった切らないように気を付けること。

https://hkjunk0.com/wp-content/uploads/ula12.jpg

手元が狂って変なところをぶった切らないように(^^;)。

さて、ここからが面倒な作業だったりする。変換コネクタ「MGB-004」の各々の線を「AN2131SC」のピンに半田付け。

その前に、どの線をどのピンに接続するのかを確認。

MGB-004の色AN2131SCのピン
1(茶色)なし(配線せず)
2(赤色)PC0
3(オレンジ色)PC1
4(黄色)PC4及びPB0
5(緑色)PC5
6(青色)GND

変換コネクタ「MGB-004」のピン配列は以下のとおり。

https://hkjunk0.com/wp-content/uploads/ula_pin.jpg

問題は、「AN2131SC」のどこがPC又はPBなんだらのピンかということだったりする。「CYPRESS」の文字を正面から見て、左上に丸い穴があるけど、その左側の一番上のピンが1番ピンで、そこから反時計回りで2番、3番...となっている。要するに、左側のピンは上から1番~11番ピン、下側のピンは左から12番~22番ピン、右側のピンは下から23番~33番ピン、上側のピンは右から34番~44番ピン。

で、「AN2131SC」のピン番号を間違えずにしっかりと確認し、半田付けする。「AN2131SC」のピン間は非常に間隔が狭いので、隣のピンとブリッジしないように注意すること。半田付けが終わったらテスターでブリッジがないかどうかしっかりと確認。

AN2131SCのピンAN2131SCのピン番号MGB-004の色
なし(配線せず)なし1(茶色)
PC014番ピン2(赤色)
PC115番ピン3(オレンジ色)
PC4及びPB018番ピン及び24番ピン4(黄色)
PC519番ピン5(緑色)
GND12番ピン6(青色)

半田付けが完了したら、ケースに組み込む。基板はホットボンドでしっかりと固定するのが吉。変に力を加えると、折角の半田付けが取れてしまう可能性が大。

https://hkjunk0.com/wp-content/uploads/ula13.jpg

ホットボンドで各コーナーをしっかり固定。

https://hkjunk0.com/wp-content/uploads/ula14.jpg

ケーブルの付根もしっかりとホットボンドで固定。

ケースに組み込んだ状態の「ULA」。会社の上司が丁度食べ終わったのでケースをめぐんでもらうことに(^^;)。本当はピンキーのケースにしたかったけど(^^;)

https://hkjunk0.com/wp-content/uploads/ula15.jpg

本当に、ピンキーのケースが良かった俺様(^^;)。

USBドライバの組込み

ここまででハードウェアの作成は完了なので、これからソフトウェアの組込み。

まずはUSBドライバの組込み。ダウンロードした「EZ-USB Control Panel」を解凍すると、「EZ-USB_devtools_version_261700.exe」という実行ファイルが出現するので、そのファイルを実行するとインストーラが起動。

下の画像がインストール先の指定の画面。デフォルトのままで進むこと。

https://hkjunk0.com/wp-content/uploads/ezusb01.jpg

当然全部英語ですが気にしない(^^;)。

下の画像がセットアップの種類の選択の画面。「Typical」のままで進むこと。

https://hkjunk0.com/wp-content/uploads/ezusb02.jpg

これまた英語ですが気にしない(^^;)。

セットアップの種類の続き。良く解らないので(^^;)、一番下のオプションを選択して進む。

https://hkjunk0.com/wp-content/uploads/ezusb03.jpg

しつこく英語ですが気にしない(^^;)。

インストールが完了してから、「EZ-USB Control Panel」のプログラムを起動すると下のようなメッセージが表示される。これは、USBデバイスが接続されていないよんというメッセージ。

https://hkjunk0.com/wp-content/uploads/ezusb04.jpg

ULAを接続していないのでこのメッセージが。

ここで「ULA」をUSBポートに突っ込んでも、正常にUSBデバイスとして認識がされないはず。なぜならデフォルトの状態では、「EZ-USB Control Panel」から「USB-PDC」というか「ULA」は、「EZ-USB」の仲間として見てもらえていないから。

よって、「EZ-USB Control Panel」に「USB-PDC」というか「ULA」を仲間として認識させるために、USBデバイス組込み時に参照する「inf」ファイルをいじる必要がある。具体的には、「C:CypressUSBDrivers」フォルダの中にある「ezusbw2k.inf」をメモ帳で開き、下記の行を追加。

https://hkjunk0.com/wp-content/uploads/ezusb05.jpg

デフォルトだと「C:CypressUSBDrivers」の中に。

* [Cypress]の項目に追加 * ; I/O DATA USB-PDC %USBVID_04BB&PID_0902.DeviceDesc%=EZUSB.Dev, USBVID_04BB&PID_0902

* [Strings]の項目に追加 * USBVID_04BB&PID_0902.DeviceDesc=”I/O DATA USB-PDC (AN2131SC)”

https://hkjunk0.com/wp-content/uploads/ezusb06.jpg

[Cypress]の項目に追加。

https://hkjunk0.com/wp-content/uploads/ezusb07.jpg

[Strings]の項目に追加。

追加したら「ezusbw2k.inf」を上書きし、USBポートに「ULA」をぶっ挿す(^^;)。お馴染みのハードウェアの検索ウィザードが開始する。

https://hkjunk0.com/wp-content/uploads/ezusb08.jpg

いよいよULAを認識させる。

https://hkjunk0.com/wp-content/uploads/ezusb09.jpg

そのまま「次へ」をクリック。

ドライバファイルの特定で「場所を指定」とし、ドライバファイルのありかとして「C:CypressUSBDrivers」のフォルダを指定。

https://hkjunk0.com/wp-content/uploads/ezusb10.jpg

「場所を指定」にチェックを入れて「次へ」をクリック。

https://hkjunk0.com/wp-content/uploads/ezusb11.jpg

場所は「C:\Cypress\USB\Drivers」を指定。

そうすると、ドライバファイルが見付かるのでそのまま次へ進むこと。

https://hkjunk0.com/wp-content/uploads/ezusb12.jpg

めでたくドライバファイルが発見される。

最終的に、しっかりとUSBドライバがインストールされるはず(^^)。

https://hkjunk0.com/wp-content/uploads/ezusb13.jpg

しっかりとドライバのインストールが完了。

デバイスドライバでもしっかりと認識されていたりする。

https://hkjunk0.com/wp-content/uploads/ezusb14.jpg

きちんとUSBデバイスの仲間入り(^^;)。

ここで、「EZ-USB Control Panel」を起動するとちゃんとウィンドウが表示されるはず。しかし結局「EZ-USB Control Panel」は使わずじまいなので、そのまま終了。ご苦労さん(^^;)。

https://hkjunk0.com/wp-content/uploads/ezusb15.jpg

何のためにインストールしたかと言うと...結局ドライバ目当て(^^;)。

吸出し方法

いよいよ吸出し。ゲームボーイアドバンスと「ULA」を接続し、「ULA」はパソコンに接続。あ、当然ゲームカートリッジはゲームボーイアドバンスに予め差しておくこと。また、ゲームボーイアドバンスの電源は入れたままで。

https://hkjunk0.com/wp-content/uploads/ula16.jpg

いよいよ本番!!

ダウンロードしてきた「ULA-HostV2(build 20030731) 」を解凍すると、フォルダの中に「ULAHostV2.exe」というファイルが出現するので、起動すると下のようなウィンドウが表示される。

https://hkjunk0.com/wp-content/uploads/ula_host01.jpg

縦長のウィンドウ。

次に、真ん中のボタン(プログラム吸出し)をクリックすると、ファイル名入力のダイアログボックスが表示されるので適当なファイル名を付けること。

https://hkjunk0.com/wp-content/uploads/ula_host02.jpg

適当なファイル名を付ける。

すると、「電源切れやワレぇ」というメッセージが表示されるので、ゲームボーイアドバンスの電源を切ること。

https://hkjunk0.com/wp-content/uploads/ula_host03.jpg

電源オフよろしくぅ。

電源を切ると、「スタートボタンとセレクトボタンを押したまま電源を入れろや」というメッセージが表示されるので、おとなしく指示に従うこと(^^;)。

で、実際に電源を入れたときの状態は、下の動画を見るべし。

上手くいくと、起動後に吸出しを開始。上手くいかない場合は、その殆どが配線ミス又は半田付けミスによるものなので、再度配線等をチェックすること。

下の画像が吸出し中の画面。128Mbit(=16MB)のゲームで約10分程度掛かるはず。気長に待つこと。

https://hkjunk0.com/wp-content/uploads/ula_host04.jpg

頑張って吸出し中。

吸出しが完了したら、早速きちんと吸出しされているかどうか確認。エミュレータは定番の「VisualBoyAdvance」あたりでどうぞ。

https://hkjunk0.com/wp-content/uploads/ula_host05.jpg

広島出身のあのバンドのオープニング曲が流れ出します。

https://hkjunk0.com/wp-content/uploads/ula_host06.jpg

当然だけどGBAの液晶より鮮明(^^;)。

...きちんと吸出しされています!!大成功!!

結局半田付けが一番厄介だったけど、先達のお陰で特に問題なく「ULA」の作成に成功!!めでたしめでたし。

2号機作成(2008年03月30日)

ハードオフのシャンクコーナーで、IO-DATAの「USB-PDC」と「MGB-004」が安く売られていたのでゲットしULAの2号機を製作した。

久し振りにものすごく細かい半田付けを行なったので、目が非常に疲れた(^^;)。

ケースの加工はかなり簡略化(手抜き?)したが、それなりに格好が付いたっぽい。

2個持っていても同時に使用はしないので(多分)、オークションで売り飛ばす予定。短いお付き合いでした(^^;)。

https://hkjunk0.com/wp-content/uploads/ula_2nd01.jpg

奥が1号機で、手前が2号機。ケースの細工が少々異なる。

https://hkjunk0.com/wp-content/uploads/ula_2nd02.jpg

こうして蓋をすると全く見分けが付かないかも。