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が手元にある方は、この方法で修理を試してみるのも良いかもしれません。

    Nestopia v1.53.0 UE 日本語化言語ファイル

  • http://0ldsk00l.ca/nestopia/
  • https://github.com/0ldsk00l/nestopia
  • —————————————————————-
    1.53.0
    —————————————————————-
    Shell:

    Changes:
    – FLTK: Major rewrite to become a Nestopia-specific “Jolly Good API” frontend
    – FLTK: Use libsamplerate directly instead of relying on SDL’s abstraction
    – FLTK: Better looking theme
    – FLTK: Window is freely resizable and the image scales to the window size
    – FLTK: Codebase is now ISO C++17
    – FLTK: Far better support for macOS

    Additions:
    – FLTK: Support for significantly more input devices
    – FLTK: Joystick hotplugging
    – FLTK: All UI controls may be assigned to a joystick button
    – FLTK: Aspect ratio options
    – FLTK: OpenGL 3.1/GLES 3.0 renderer with shaders
    – FLTK: Configurable overscan masking on all edges
    – FLTK: Drag and Drop support
    – FLTK: Support FDS microphone using a real microphone/headset

    Core:

    Additions:
    – Support for loading Virtual Console/NES Remix format ROMs
    – Support NES 2.0 Default Expansion Device field
    – Add support for Mapper 555 (EVENT2)

    Fixes:
    – Better support for MMC3 hacks with large WRAM, CHR RAM, or PRG ROM sizes
    – VRC heuristics improvement to help with VRC hacks and homebrew
    – Handle NES 2.0 Mapper 30 special battery flag case

    [DL: Nestopia 1.53.0 UE 日本語化言語ファイル]

    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の値を追加しておくと使えるようになります。

    Analogue 3Dの予約受付開始

    N64のFPGAによる互換ゲーム機の、Analogue 3Dの予約受付が開始されました。
    https://store.analogue.co/

    予約は日本時間2024年10月21日の24時から開始され、2色用意された本体の、オリジナルのN64にはなかったホワイトは早々に予約が打ち切られ現在はブラックのみが予約受付中となっています。発送は2025年第1四半期予定となっています。

    私はホワイトを注文しました。送料含めて$299.98、日本円で約45,800円です。あれ?思ってたより高いな…円安の影響が…

    スパロボ64のメッセージ変換

    N64のスーパーロボット大戦64のメッセージコンバーターを作ってみました。出力された文字列から「64DD」に対応させようとしていた痕跡を見つけることができ、前後のメッセージから推測しセーブデータの読込み画面を調べてみると、801CC359を02に書き換えることで「64DDからロードします。」の表示に切り替えることができました!そのままAボタンで決定するとゲームが停止してしまうためプログラムはされていないようです、残念・・・

    http://nekokabu.s7.xrea.com/cnv/cnv_n64srw.zip

    夜光虫2 殺人航路のメッセージ変換


    いつものようにテーブルファイルを作成がてら解析してみると、独自の文字配列を使っているのかと思えば実は漢字部分についてはほぼSJISの第1水準の並びを使っており比較的簡単に文字列を出力することができました。

    http://nekokabu.s7.xrea.com/cnv/cnv_n64yakochu.zip