USB Geckoの修理

USB Geckoを使用していると、miniUSB端子がとれるというトラブルがよく発生します。私が所有しているUSB Geckoも、2つとも同じように壊れてしまいました。おそらく構造的に負荷がかかりやすい設計なのでしょう。オリジナル版は販売終了していますが、USB-TypeC版が現在も販売されているのでこちらに買い換えてもいいですが、せっかくなので壊れたUSB Geckoを修理することにしました。

  • 修理方法
  • miniUSB端子が基板から外れた際、基板のパターンが剥離してしまっていたためminiUSB端子を復旧するのは諦め、その代わりUSBケーブルを基板に直接はんだ付けすることで修理することにしました。

    1.適当なUSB 2.0ケーブルを用意し、適当な長さで切断。
    2.以下の図に示した4か所に、それぞれ対応する同色の配線をはんだ付け。
    3.はんだ付けが終わったら、配線がちぎれないようにホットボンドなどで固定。

    USB 2.0ケーブルの配線色は規格で指定されており、ほとんどのUSBケーブルでこの配線色が共通しているようです。

    赤: 5V
    黒: GND
    緑: D+
    白: D-

    修理後は問題なく動作するようになりました。壊れたUSB Geckoが手元にある方は、この方法で修理を試してみるのも良いかもしれません。

    CleanRIPの改造版

    Wii/GCのディスクイメージを作成できる「CleanRIP」という自作ソフトがあります。

    Disc Backup Tool for GC/Wii Discs
    https://github.com/emukidid/cleanrip

    DATEL製ディスク(例:PARなど)の吸い出しを試行錯誤する中で、CleanRIPをあれこれいじっていたところ、自分好みに改良したバージョンが完成したので公開します。

    CleanRIP改
    https://github.com/Nekokabu/cleanrip

    以下は、現時点(2024年12月10日)のオリジナル版CleanRIPのリポジトリからの変更点:

    ・Force Read Modeを追加(spycrabの「2.0.0-datel2」に相当)
    ・DATファイルをダウンロードしないように変更
    ・ハッシュ値の計算を常に実行するように変更
    ・wii/gc/datel.datの情報を元に、ファイル名を自動変更する機能を追加
    ・レイヤー設定をディスクサイズ設定に変更、1.4GBを追加
    ・Force Read Mode中もスキップ情報を保存するように変更
    ・Datel.datの情報を更新
    ・その他

    CleanRIPは、ディスクIDのファイル名でディスクイメージを作成しますが、DATEL製ディスクはすべて同じディスクIDを使用しているため連続して読み込むとファイルが上書きされたり、どれがどのファイルか分からなくなる問題が発生します。この問題を解決するためwii/gc/datel.datの情報を元に、ハッシュ値が一致する場合には自動的にファイル名を変更するようにしました。またハッシュ値が一致しない場合でも、「datel_xxxxxxxx」というファイル名で保存されるようにしたため、ファイルが上書きされることはありません。

    さらに、redump.orgで推奨されている「2.0.0-datel2」の機能を、Force Read Modeとして追加しました。この機能は、リードエラーが発生しても強制的にデータを読み込むっぽい名前をしていますが、読み取れなかった部分を0x55で埋める仕様となっています(2.0.0-datel2のソースコードから移植した機能なので、もともとそういう動作をします。)。一応、DATEL製ディスクの場合のみ、Force Read Modeを有効にするか確認するようにしています。

    さらに、Wii用Freeloaderに対応するため、ディスクサイズ「1.4GB」を追加しました。Force Read ModeをONにすると、Wii用Freeloaderの吸い出しも可能です。リージョン違いで3種類吸い出していますがなぜかredumpのハッシュ値と一致しません、おそらく埋める値が違うだけだと思います。

    その他の改良点として、USB Geckoのデバッグ出力を追加しています。

    wii向けのDOLファイルだけ公開していますが、ソースコードから「make -f Makefile.gc」と実行するとGC向けのDOLファイルを生成できます。ただ、Wii本体ではPARなどをx01F00000まで読み取れるはずが、GC本体では0x01EF0000までしか読み取れない問題が発生するため、Wiiで使用することを推奨します。

    ◯その他の機能
    CleanRIPにもとからある機能ですが、Datel製のディスクを吸い出すときに検出した読み取り不良エリアの情報とディスクの 先頭0x100000バイトのcrc値を拡張子.skpのファイルに保存しています。
    この情報をDatel.datに追加すると次回同じディスクを吸い出すときに一部エリアをスキップするようになり吸い出す時間を短縮することができます。

    2024/12/18
    ※リネームが正しくできていなかったので修正しました。
    ※SDカードの「apps\CleanRip\boot.dol」に上書きしてください
    ※同梱の「datel.dat」以外のdatファイルは、redump.orgのサイトからダウンロードし「wii.dat」、「gc.dat」にリネームし、ディスクイメージ保存先のSDカードやUSBメモリのルートに保存してください。

    USB Geckoを使ったデバッグ出力

    Wii/GCのHomebrew関係を片付けている際にUSBGeckoが出てきたので色々調べなおしています。
    自作プログラム作成において本体からのデバッグ出力をUSBGeckoを介して取得できる機能があるのですがメモとして残しておきます。

    USBGeckoとはIan Callaghan氏によるWii/GCの開発/ハッキングツールで、コンピューターのUSBポートとWii/GCメモリーカードスロットとを接続することでゲームなどの本体とのデータのやり取りをしたり、デバッガ的な使い方をすることができました。オリジナル版はすでに販売されていませんが本体のPCB設計図、回路図などが公開されているためいくつかクローンが作られており、現在は接続端子をUSB TYPE-Cに変更したものが販売されています。
    USB Gecko (Type-C) debugging tool for GameCube/Wii – webhdx’s retro store
    https://store.webhdx.dev/products/usb-gecko-type-c-debugging-tool-for-gamecube-wii

    ドライバはFTDIのサイトからFT245RL向けのD2XX Driversをダウンロードし、インストールするか、おそらくWin10/11ならUSBケーブルを指せば勝手に認識されると思います。もしCOMポートが追加で認識されない場合は、「デバイスマネージャー」→「ユニバーサルシリアルバスコントローラー」から「USB Serial Converter」のプロパティ→詳細にある「Load VCP」等書いてあるところにチェックを入れて設定を保存したあと、USBケーブルを接続しなおせばCOMポートが認識されるはずです。

    この時認識されたCOMポートの番号でTeraTermProなどで接続すれば実行中のデバッグ出力を取得することができます。

    具体的なプログラミングは既存のプログラムのソースを見てもらえればいいかともいますが、例えばCleanRipならprint_gecko()関数で文字列を表示させればよいようです。
    https://github.com/emukidid/cleanrip/blob/master/source/main.c#L1327

    また、wiiへプログラムを転送するwiiloadはUSBGeckoからプログラムを転送することも出るのですが、「set WIILOAD=COM6」と入力するか、環境変数の設定にWIILOAD、値を先ほどのCOMの値を追加しておくと使えるようになります。

    USBGeckoがWiiゲームのスクリーンショットに対応

    現在V1.0開発中のUSB Gecko、ベータテスト用として先日リリースした
    USB Gecko Wii Game Debugger Injector v1.0を使ってWiiゲーム動作中の
    スクリーンショットをとることができるようになりました!!

  • wiirdinject v1.0 – Gecko Forums
  • 使い方は、ディスイメージから取り出したmain.dolに
    Wii Game Debugger Injectorを使ってパッチを当てたら
    Trucha Signerを使ってパッチを適用したmain.dolに差し替えればOK。
    USB Geckoをつかってスクリーンショットをとったりデバッガ機能を使ったり
    できるようになります。
    ・メトロイドプライム3 コラプション
    mt.png
    mt2.png
    mt3.png
    mt4.png
    ※追記
    ・大乱闘スマッシュブラザーズX
    ss.png
    ss2.png
    メモリをファイルに保存したり書き換えたりできたので
    リアルタイム改造することができた。
    ss3.png

    USB Gecko

    USB GeckoとはGC用メモリーカード型のUSB接続アダプタ
    GC/WiiのメモリーカードスロットとパソコンとをUSB2.0で接続することで
    Homebrewを起動することができたり、デバッガとして使えたりする商品です。
    usb.jpg
    今のところ購入できるのはAdictronという通販サイト。
    値段は本体29.99ユーロ、送料込みで37.58ユーロ、
    日本円で約6300円ほどでした。

  • Adictron – The Wii homebrew development store
  • USB Geckoですが、最初に専用のプログラムを起動させる必要があるため
    使用するにはHomebrewまたはバックアップディスクを起動できる環境が必要です。
    操作はすべて「USB Gecko Tool」というソフト上で行い、以下のようなことができます。
    gecko1.jpg

    -Homebrewの実行
    -BIOSのバックアップ
    -メモリーカードの読み書き
    -デバッガ
    -スクリーンキャプチャ
    -音楽の再生
    -ディスクのバックアップ
    -ファームウェアの更新

    この中のデバッガ機能は、GCのコードサーチツールであるGCNrdのように
    ブレイクポイントの設定、逆アセンブラ、レジスタの表示ができます。
    GCNrdはLANでパソコンと通信をしていたため、Wiiでは使用することが
    できなくなりましたがこのUSB Geckoの機能は今の状況にとって
    大変ありがたい昨日だと思います、
    メモリーカードの読み書きに関しては、Homebrewで読み書きできる
    ソフトがあまりなかったと思うので便利なのではないでしょうか?
    あとのBIOS(IPL)吸出し、ディスクのバックアップについては
    いまのところ今後に期待というところ。
    BIOSは完全な吸出しができません。
    ディスクのバックアップは途中で止まります。
    これに関しては今後のバージョンアップに期待ですね。
    ただUSB Gecko自体は大変いいものです。
    コードサーチしたい、メモリーカードの管理したい、画面のキャプチャしたい、
    あとは今後どう化けるかに期待する人やなんかは購入してみてはどうでしょうか?
    ちなみにBIOS吸出しはGCOS起動して
    http://GCのIP/IPL、またはhttp://GCのIP/REALIPL
    にアクセスすれば吸い出すことができます。
    ipl.jpg

    USB Geckoとか届いた

    第1の砦「特殊フォーマットのディスク」が突破されバックアップできるようになり、
    第2の砦「中身が暗号化されている」も突破され生のデータを見ることができるようになり
    Wiiは次どうなるか楽しみですね♪
    さて、先日注文していたUSB Geckoが届きました。
    usbgecko.jpg
    初めて利用する通販サイトだったのでほんとに届くのか
    すごく不安でしたがちゃんと届きました。
    到着に1週間くらい。
    あとはたまたま見つけて衝動買いしてしまったヨーヨーも届きました(ぉ
    yoyo.jpg
    金属のヨーヨーがどうしてもほしかったのです!(ぉ

  • ヨーヨーショップ スピンギア: ザンナビ
  • ヨーヨーショップ スピンギア: Any Air Rider エアライダーNEWカラー