先日紹介した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さんが確認してくださいました。ありがとうございます。
MBC6吸い出し確認できました!ROMファイルも正常でした。対応ありがとうございます!
— yuki65535 (@yuki65535) September 3, 2026













