MBC6,7,TAMA5,MMM01対応した「GB Transfer Dumper」リリース

先日紹介したGB Transfer Dumperですが、MBC6,7,TAMA5,MMM01のロム吸出しに対応していないようだったので、ローカルLLMやGeminiにお願いして吸い出しできるようプログラムを修正したものを作成しました。
https://github.com/Nekokabu/gb-transfer-dumper/releases/tag/20260906

変更はほぼlibtrpakの修正になります。
https://github.com/Nekokabu/libtrpak

以下変更点

・MMM01マッパーの完全対応と大容量化
初期化時にマルチプレックスモード(GB 0x6000 への 0x40 書き込み)とベースアドレス設定を正しく構成し、ロックマッピング(GB 0x0000 への 0x40 書き込み)を適用。
タイトーバラエティパック(512KB)に加え、桃太郎コレクション2などの1MB以上のROM(0x80000 以降)も全領域正常にダンプ可能に改善。
mapper_max_rom_bank における MMM01 の上限バンク数を拡張。

・TAMA5マッパーの独自コマンド対応(インターリーブ転送)
偶数/奇数アドレス(0xA000/0xA001)への交互書き込みを要求するハードウェア仕様に対し、32バイトブロック転送内にコマンドとデータを埋め込む「インターリーブ転送」を実装。
ROM初期化時のアンロックと 0xF1 応答のポーリング処理を追加。
TAMA5専用のセーブデータ(32バイトレジスタ)に対応する読み書きインターセプト処理を実装。

・MBC6の8 KiB分割バンキングとデュアルSRAM対応
16 KiB単位のROM読み出しを、Bank A(0x4000)と Bank B(0x6000)の2つの 8 KiB バンク設定へ自動展開するロジックを実装。
セーブデータの有効化・無効化時に、2つの 4 KiB 分割SRAM(GB 0x0000 と GB 0x0200)を同時に制御するように修正。

・各種特殊マッパーのバグ修正(HuC1, HuC3, MBC7, MBC30)
HuC3およびMBC7のROMバンクセレクトで9ビット目を誤って 0x4000(RAM/EEPROM領域)へ書き込んでいた不具合を、正しいMBC5互換のレジスタ(0x3000)へ修正。
HuC1のRAMバンクセレクト先が誤っていた不具合を、正しいレジスタ位置である 0xC000(GB 0x4000)に修正。
MBC3のROMバンク制限およびRAMバンク制限を拡張し、MBC30(4 MiB)のROMサポートおよびRTCレジスタ読み取り(0x08–0x0C)に対応。

・ROMダンプの高速化と自動リトライ(接触不良対策)の融合
ブロックごとに実行していたアクセサリのレディ状態ポーリングを「16 KiBバンク単位」に変更し、Joybus通信の往復オーバーヘッドを大幅に削減。
ブロック読み込み中の瞬間的なリセットや接触不良を検知した場合は、自動でバンクを再選択して該当ブロックを再試行する堅牢な構造(was_reset 監視)を維持。

20260906更新
HuC-3の吸出しを修正
現在実行しているフラッシュカート名を取得してフッターに表示するように変更

プログラム修正やこの変更点の内容についてもほぼGeminiがやってくれました。AIすごい・・・

MBC6の対応について@yuki65535さんが確認してくださいました。ありがとうございます。

N64でGBを吸い出しできる「GB Transfer Dumper v1.0.1」リリース

N64実機でゲームボーイを吸い出しできるという「GB Transfer Dumper v1.0.1」がリリースされました。

GB Transfer Dumper
https://github.com/alexishida/gb-transfer-dumper

N64実機でSummerCart64+Transfer Pak(64GBパック)の組み合わせで挿入したゲームボーイのソフトをSummerCart64に吸い出し、保存することができます。

ポケモン赤を吸い出してみました。

転送速度は約5KB/秒で512KBのポケモン赤でも1分半ほどかかります。

また一部のメモリバンクコントローラー搭載ソフトの吸い出しにはまだ対応していないようです。

2026/9/1
MBC6,7,TAMA5,MMM01の吸出しに対応していないようだったので、ローカルLLMやGeminiにお願いして吸い出しできるようプログラムを修正したものを作成しました。※MBC6の吸い出しできないようです。あとで直します。
※MBC6の対応確認しました
https://github.com/Nekokabu/gb-transfer-dumper
https://github.com/Nekokabu/libtrpak

MBCなし、MBC1、2、3、5、7、MMM01、HuC1、HuC3、TAMA5のロム吸出しができることを確認しています。MBC6は未確認。MBC6の対応確認
また、libtrpakの修正は本家へ投げています。

修正するにあたり動作確認のため特殊なMBCや容量の大きなゲームなどいくかゲームを購入しました。下記ゲームについてロムの吸出しが正常に行えることを確認していますが、ロム以内のセーブデータの読み書きやMBC6については確認していません。唯一MBC6搭載の「ネットでゲット ミニゲーム@100」は高すぎて買えません…

形式 MBC ファイル名 ROMサイズ CRCOK?
0x00 NONE テトリス 32KB OK
0x01 MBC1 太陽の勇者ファイバードGB 128KB OK
0x01 MBC1 ボンバーマンコレクション 1MB OK
0x03 MBC1 桃太郎コレクション 1MB OK
0x03 MBC3 牧場物語GB 512KB OK
0x06 MBC2 大戦略 128KB OK
0x06 MBC2 カービィのピンボール 256KB OK
0x0B MMM01 タイトーバラエティパック 512KB OK
0x0D MMM01 桃太郎コレクション2 1MB OK
0x10 MBC3 ポケモンクリスタル 2MB OK
0x1B MBC5 牧場物語2GB 2MB OK
0x1B MBC5 電車でGO!2 8MB OK
0x1B MBC5 スターオーシャンGB 4MB OK
0x22 MBC7 コロコロカービィ 1MB OK
0xFC POCKETCAMERA ポケットカメラ 1MB OK
0xFD TAMA5 ゲームで発見!!たまごっち おすっちとめすっち 512KB OK
0xFE HuC-3 ポケットファミリーGB2 2MB OK
0xFF HuC-1 スーパービーダマン ファイティングフェニックス 512KB OK