Skip to content

GBC カートリッジ(DMG-A06-01 / DMG-A02-01 / MBC5)SST39SF040 換装手順書

対象: issue #16 ドナー(第 1 希望): DMG-A06-01 / DMG-A02-01、(欧州・北米版が手に入るなら)DMG-A07-01  いずれも MBC5 + 32 ピン SOP マスク ROM。SRAM・電池が載っていてもセーブ不要なので支障はない 換装チップ: SST39SF040(512KB・5V 単一電源。PDIP-32 / PLCC-32 / TSOP-32) 対象 ROM: MBC5 / 128KB または 256KB / CGB 専用($0143 = $C0)/ セーブなし

本書は実機作業前の下書きである。 寸法・時間・電圧のうち「実測」と明記していない数値はすべて一次資料からの引用または推定で、GB 実機での検証は未実施。実機作業のたびに日付入りで実測値へ置き換えること。


この文書の要点(先に読む 5 行)

  1. GB のマスク ROM と JEDEC 32 ピンフラッシュは 32 本中 30 本のピン配置が一致する。違うのは pin 1 と pin 31 の 2 本だけ。
  2. その 2 本の処理には 方式 1方式 2 の 2 通りがあり、選んだ方式で使える ROM 容量が変わる(方式 1 = 256KiB 上限 / 方式 2 = 512KiB 全域)。
  3. 工程検証は経路 B(手持ちの PDIP-32 + 方式 1 + シェルに角穴)。まず 1 枚潰して「外す→焼く→載せる→動く」を通す。
  4. 完成形は経路 D(TSOP-32 + timville85 変換基板 0.8mm + 方式 2)。殻を削らずに閉まる実証があるのは TSOP 系だけ。
  5. PLCC-32(経路 A)は保留。ドナーを開けてシェル内寸をノギスで実測し、3.8mm 以上あることを確認してからでないと採用しない。

原理(根拠)

用語(初出の 1 行説明)

用語意味
マスク ROM工場で内容を焼き付けた読み出し専用メモリ。書き換えられない。純正カートに載っているのはこれ
フラッシュ電気的に消去・書き換えができる ROM。今回載せ替える SST39SF040 がこれ
MBC5Memory Bank Controller 5。GB は一度に 32KiB しか見られないので、ROM を 16KiB 単位で切り替える IC。カート上に載っている
バンクMBC5 が切り替える 16KiB の区画。バンク番号のビット数がそのまま扱える ROM 容量を決める
/WEWrite Enable。フラッシュの書き込み許可入力。アクティブ Low(L = 書き込み許可、H = 禁止)
/CE・/OEChip Enable / Output Enable。いずれもアクティブ Low の読み出し制御線
SOP / PDIP / PLCC / TSOPIC の外形(パッケージ)の種類。ピンの並び方と厚みが違う
UEWポリウレタン被覆線。細いジャンパ配線用の線

電気的な事実

  • GB カートリッジのスロットには +5V が来る。 Pan Docs のエッジコネクタ表で pin 1 は VDD Power Supply +5V DCPan Docs – External Connectors)。GBC も同じで、任天堂公式サービスマニュアルの回路図では DC/DC コンバータが "Provides 5 VDC for the CPU PCB operation"、カートコネクタ P1 の pin 1 はネット VDD5 に接続され、CPU とカートの間にレベルシフタは入らない(Game Boy Color Service Manual)。→ 3.3V 品のフラッシュは使えない。
  • GB のマスク ROM(32 ピン SOP)と JEDEC 32 ピンフラッシュのピン配置は、32 本中 30 本が一致する。 マスク ROM 側は 27C080 系 EPROM の配列で、フラッシュ側との差は pin 1 と pin 31 の 2 本だけ
    • pin 1: マスク ROM = A19 / フラッシュ = A18
    • pin 31: マスク ROM = A18 / フラッシュ = /WE
  • したがって、フラッシュを SOP-32 パッドへそのまま載せると /WE にアドレス信号(MBC5 の RA18)が突き刺さる。 RA18 は 256KB 以下の ROM では常に L なので、放置すると チップが常時書き込みモードに入る。gbdev フォーラムでの gekkio の指示は明示的:

    "Note that you have another unused input on the flash chip: #WE. This MUST be connected to +5V or you will have problems. … we can't connect it to GND, because that would basically keep the flash chip in 'write mode' all the time since it's an active-low signal."gbdev forums #618

  • 不一致は 2 箇所だけなので、追加配線も 2 本で足りる。 ただしその 2 本の引き方が 2 通りある(→ §5 方式 1 / 方式 2)。
  • ROM の /CE はカートエッジの A15(pin 21)が駆動し、/OE はカートエッジの /RD(pin 4)が直結する。 MBC5 には /RD ピンが存在しないため /OE は MBC5 を通らない(Pan Docs – External Connectors / MouseBiteLabs MBC5 Cartridge)。この 2 本は換装で触らない。
  • /CE を GND に固定してはいけない。 /RD は本体 WRAM の読み出しでも L になるため、/CE 固定だとフラッシュと WRAM がデータバスを同時に駆動して短絡する。gbdev フォーラムで Tauwasser が実際の白画面報告に対して "It sounds to me like you have bus contention … in order not to (further) damage your CGB or DMG" と回答している(同スレッド)。
  • 32 ピンの 5V フラッシュに 8Mbit(1MB)品は原理的に存在しない。 pin 31 が /WE に取られるためアドレスは A0–A18 = 512KB が上限。A19 を出せるのは /WE を持たないマスク ROM / EPROM だけ(実証: ST M27C801 8Mbit EPROM DIP-32 は pin1 = A19 / pin31 = A18)。→ 8Mbit の SOP-32 フラッシュを探しても無駄。

ドナー基板(32 穴 SOP-32 パッド)の信号 — 検証済み対応表

出典は任天堂の図面ではなく、実際に量産・頒布されているマスク ROM フットプリント用アダプタ基板の設計ファイル 2 系統:

  1. JRodrigoTech / FLASH-ROM-Adapter-for-GameBoy の Eagle .sch / .brd
  2. timville85 / MBC1-FlashMBC1-PLCC32.kicad_pcb(castellated via のネット割付)

信号の対応は 2 系統で 32/32 一致。 さらに パッドの絶対番号も机上で確定した: JRodrigo .brd の座標展開(パッド 1.27mm ピッチ/列間 13.335mm、JP1 が R90 @ y=3.4925、JP2 が R270 @ y=22.5425)と VCC=32 / GND=16 の制約から、A19 = パッド 1・A18 = パッド 31・D3 = パッド 17 が一意に決まる。⚠ 机上確定であり、実基板での導通確認は依然として推奨(→ §6 通電前チェック)。

マスク ROM 側SST39SF040 側一致マスク ROM 側SST39SF040 側一致
1A19A1832VCCVDD
2A16A1631A18/WE
3A15A1530A17A17
4A12A1229A14A14
5A7A728A13A13
6A6A627A8A8
7A5A526A9A9
8A4A425A11A11
9A3A324/OE/OE
10A2A223A10A10
11A1A122/CE/CE
12A0A021D7DQ7
13D0DQ020D6DQ6
14D1DQ119D5DQ5
15D2DQ218D4DQ4
16GNDVSS17D3DQ3

穴 1 / 穴 31 に実際に何が来ているかは基板の ROM 容量で変わる。 8Mbit ドナーなら穴 1 は MBC5 の RA19、2Mbit ドナー(LH532MLF 搭載個体が gbhwdb に実在)では穴 31 すら未接続の可能性がある。⚠ どちらであっても方式 1 の手順は変わらないので、判別できなくても作業を止める理由にはならない。gbhwdb の CSV 実測では DMG-A07-01 の 119 件中 117 件が 8Mbit 相当なので、実際に入手するドナーはほぼ 8Mbit(穴 1 に A19 が実配線されている) と考えてよい。


ドナーカートリッジの選定 — 検証済み対応表

基板型番で選ぶ

順位基板型番MBCRAM電池・監視 ICROM パッケージ日本版の実機登録数判定
1DMG-A06-01MBC58KBありSOP-327本命(日本で最も引きやすい)
2DMG-A02-01MBC532KBありSOP-323本命
3DMG-A07-01MBC5なしなしSOP-323✅ 理想形だが日本版は 2 タイトルのみ
4DMG-A10-01MBC5SOP-321✅ 稀
5DMG-Z02-01MSM538011E / MX23C8005要確認(SOP-32 の可能性大)
DMG-A08-01 / -10MBC5TSOP-II 4450❌ 対象外。現場で最も引きやすい外れ
DMG-A03-01 / -10MBC5TSOP-II 4423❌ 対象外
DMG-A09-01 / -10MBC5なしなしTSOP-II 44(16M/32M/64M)25❌ 対象外
DMG-A18-01MBC5なしなしTSOP-II 442❌ 対象外・希少
DMG-A04-01MBC5TSOP(MX23C8006-12❌ 対象外。⚠ シルクは 4M/8M MROM
CGB-A32-01MBC6ありあり❌ MBC6。別物

出典: Game Boy hardware database(Gekkio) / CSV エクスポート / Tindie – Flash Memory Adapter for some Game Boy Cartridges

DMG-A02-01 / DMG-A06-01 に SRAM・電池・電池監視 IC が載っていても構わない。 ROM のフットプリントは DMG-A07-01 と同一(Tindie 互換リスト + gbhwdb の実写真で確認)。セーブ不要な本件では、余分な実装が載っているだけで電気的な支障はない。

「GBC 専用ソフトだから基板型番が CGB-」ではない。 GBC 世代のカートでも基板シルクは DMG-A06-01 のように DMG- のままである。CGB- で始まる基板は CGB-A32-01(MBC6)だけ。

ROM 容量ではパッケージを判定できない。 DMG-A04-01(ポケモンピンボール日本版)はシルクが 4M/8M MROM で 8Mbit だが、載っている MX23C8006-12 は細ピッチ TSOP。MX23C8005(SOP-32)と MX23C8006(TSOP)は末尾 1 桁違い。判定は必ず ①基板シルクの型番 → ②ROM の片側ピン数を数えて 16 本 × 2 = 32 本か の 2 段構えで行う。

買い方 — 日本では「指名買い」が正解

日本のジャンクまとめ売りからの選別は成立しない。 gbhwdb の日本版登録 149 件のうち SOP-32 の MBC5 基板は 14 件(9.4%)、DMG-A07-01 単独では 3 件(2.0%)しかない。ジャンク 1 本が ¥22〜¥180 でも、A07 狙いなら期待コストは 1 枚あたり ¥1,100〜¥9,000 相当になり、指名買い(¥480〜)のほうが安く確実。A06 / A02 狙いでも約 15 本に 1 本の歩留まりになる。

基板型番が gbhwdb に実測登録済みの、安価な日本版タイトル:

タイトル型番基板駿河屋 掲載価格(2026-09-02)
なかよしペットシリーズ1 かわいいハムスターDMG-B7HJ-JPNDMG-A06-01¥480〜¥1,500
サンリオタイムネット 未来編DMG-ATFJ-JPNDMG-A02-01¥800〜¥2,210
ビートマニア GB2 ガッチャミックスDMG-A2GJ-JPNDMG-A07-01¥900〜¥3,480
がんばれゴエモン 天狗党の逆襲DMG-AGUJ-JPNDMG-A06-01¥1,620〜¥4,260
ポケットボウリングDMG-AVBJ-JPNDMG-A07-01¥1,680〜¥5,200

ゼルダの伝説 夢をみる島 DX(DMG-AZLJ / DMG-A02-01、¥860〜)は基板としては合致するが、人気作なので潰さない。

GBC ソフト全体の価格レンジは ¥480〜¥18,300(駿河屋 2026-09-02 実検索。高額側の例: ポップンミュージック GB ディズニーチューンズ ¥18,300 / スーパーボンブリス DX ¥17,000 / パズルボブル4 ¥15,200 / ハリウッドピンボール ¥13,600)。上の表から選べば下限側で買える。

gbhwdb の登録は「個体単位」である。 同一タイトルでも別リビジョンの基板が存在しうる。届いたら必ず開けてシルクを読み、ROM のピン数を数えること。


BOM(部品表)

価格はすべて 2026-09-02 時点の掲載価格。「要確認」は裏取りできていない項目であり、推測で埋めていない

E-1. まず買う(工程検証 = 経路 B に到達できる最小構成)

#品名型番・仕様数量入手先価格確度
1ドナーカート(本命)なかよしペットシリーズ1 かわいいハムスターDMG-B7HJ-JPN / 基板 DMG-A06-01 / ROM LH538WK5 8Mbit SOP-32)2〜3駿河屋(指名買い)¥480〜¥1,500 / 本
2ドナー予備サンリオタイムネット 未来編(DMG-ATFJ-JPN / DMG-A02-011駿河屋¥800〜¥2,210
3ドナー予備ビートマニア GB2 ガッチャミックス(DMG-A2GJ-JPN / DMG-A07-011駿河屋¥900〜¥3,480
43.8mm ガンドライバGB カート開封用の特殊ネジ回し1Amazon / AliExpress要確認(未取得)要確認
5フラッシュ(工程検証用)SST39SF040-70-4C-PHE(PDIP-32・4.5–5.5V)手持ち。買い足すなら 1〜2DigiKey / オレンジピコ¥644(生産終了・在庫限り)/¥1,100
6ポリウレタン線 UEWφ0.2mm 前後少量秋月 / マルツ¥300〜
7抵抗 47kΩ 1/6W方式 2 用のプルアップ。無いと 512KiB 版・在カート書き換え版が組めない1(100 本袋)秋月約 ¥100
8積層セラミックコンデンサ 0.1µFフラッシュ VDD–VSS 間のパスコン数個秋月約 ¥100
9シェル加工工具ホビーナイフ / 小型ルーター(経路 B の角穴用)1手持ち / ホームセンター要確認要確認
10Arduino Mega 2560ELEGOO 互換可1手持ち
11はんだ吸取線・フラックス・ヒートガン・テスター・拡大鏡一式手持ち

小計(追加購入分): 概ね ¥2,500〜¥7,000。

E-2. 完成形(経路 D = TSOP-32 + 方式 2)に進むとき

#品名型番・仕様数量入手先価格確度
12フラッシュ(完成形)SST39SF040-70-4C-TU / -WHE(TSOP-32・8×14mm2DigiKey / Mouser の流通在庫のみ要確認要確認
13同・代替Am29F040B TSOP-32 Standard(発注記号 EF = Reverse はピン番号が完全逆順。使用不可2電子部品商社 / 中古市場要確認要確認
14SOP-32 ↔ TSOP-32 変換基板timville85/MBC1-Flash の TSOP-32 版 Gerber(Apache-2.0)を 0.8mm 厚で発注5 枚JLCPCB / PCBWay$5〜 + 送料✅(Gerber の実在を確認)
15TSOP-32 → DIP-32 書込みアダプタTL866 系プログラマ用アダプタ等1AliExpress ほか要確認(入手性そのものが未検証)要確認

SST39SF040 の 32L TSOP は EOL(生産終了)。 Microchip PCN BLAS-18EIYY441(2024-08-19)で最終発注 2024-09-15 / 最終出荷 2024-12-31。流通在庫を拾うか、Am29F040B TSOP-32 E に切り替える。

E-3. 保留(経路 A = PLCC-32。シェル内寸の実測で GO が出たときだけ)

#品名型番・仕様数量入手先価格確度
16フラッシュSST39SF040-70-4C-NHE(PLCC-32)1〜2マルツ / モノタロウ / RS約 ¥620要確認(マルツのページは HTTP 403)
17SOP-32 ↔ PLCC-32 変換基板timville85/MBC1-Flash の PLCC-32 版 Gerber を 0.4mm 厚で発注(外形 13.55×22.0mm、castellated via 1.27mm × 16×2)5 枚JLCPCB / PCBWay実見積り要(0.4mm は非デフォルト・割高・最小枚数制約あり)✅(Gerber の実在を確認)
18PLCC-32 → DIP-32 変換ソケット汎用プログラマ用1Waveshare / Amazon / AliExpress$5〜10要確認

PLCC-32 版のアダプタは Tindie では売っていない。 Tindie の $2.50 の商品は AM29F080/016/032 向け TSOP-40/48 アダプタの 3 枚組で別物。PLCC-32 版は GitHub の KiCad / Gerber のみ(Apache-2.0、0.4mm 厚指定)。

E-4. 保険(経路 C。改造と切り離して ROM 単体を検証する)

#品名型番・仕様数量入手先価格確度
19市販フラッシュカートinsideGadgets "Gameboy 512KB/32KB (ROM only) Flash Cart"(512KB・MBC5・セーブなし)1shop.insidegadgets.com$11〜$14要確認(Cloudflare で価格を裏取りできず)
20カートライタGBxCart RW v1.4 Pro1insideGadgets 公式 / 再販店$33〜37 / $44.99要確認

買ってはいけないもの

秋月電子の「フラッシュメモリー SST39VF040-70」(通販コード g112066、¥150)は買ってはいけない。 実体は SST39VF040-70-4C-WH-T2.7〜3.6V 動作の 3.3V 品、しかも TSOP-32。GB のカートスロットは 5V なので動かない(秋月 商品ページ)。SF(5V)と VF(3.3V)は 2 文字違いで、値段が 4 分の 1 なので間違えやすい。NES 版 docs/writer.md にも同じ警告がある。


ジャンパの 2 方式 — 先にどちらを採るか決める

pin 1 と pin 31 の 2 本をどう引くかで、使える ROM 容量と、後から書き換えられるかが変わる

方式 1(+5V 固定)方式 2(Audio pin as WE)
フラッシュ pin 1(A18)パッドから浮かせて GND(穴 16)へパッドから浮かせて 穴 31(MBC5 RA18)へクロス配線
フラッシュ pin 31(/WE)パッドから浮かせて +5V(穴 32)へカートエッジ pin 31(VIN / Audio In) へ引き、47kΩ で +5V へプルアップ
穴 1(RA19)未使用未使用
実効 ROM 上限256KiB$0148$03512KiB$0148$04
挿したまま書き換え❌ 不可✅ 可(GBxCart RW 等)
追加部品なし47kΩ 抵抗 1 本
難度低(GND と +5V に落とすだけ)中(カートエッジ pin 31 へのアクセスが基板依存)
採用箇所経路 B(工程検証)経路 D(完成形)/既製変換基板を使う場合

⚠ 方式 1 の実効 ROM 上限は 256KiB — 本書で最も見落とされやすい制約

方式 1(pin 1 → GND / pin 31 → +5V)では、フラッシュに届くバンク上位アドレスは RA14〜RA17 の 4 本だけになる。RA18 は /WE に明け渡すため切断され、A18 は GND 固定だからだ。

  • 実効容量は 16 バンク × 16KiB = 256KiB。
  • $0148 = $04(512KiB)の ROM は原理的に動作しない。
  • 対象 ROM は 128KB / 256KB なので実害はないが、将来 512KiB へ拡張したくなったら方式 2 へ移行するしかない。
  • ⚠ 512KB 全域への充填書き込み(→ docs/writer.md)は「pin 1 → GND のジャンパ 1 本が失敗したときの保険」でしかない。A17 の配線ミスは充填では救えない。

⚠ 既製変換基板を使うなら方式 2 一択

timville85 の PLCC-32 / TSOP-32 変換基板は、方式 2 で配線済みである(穴 31 → フラッシュ pin 1、フラッシュ pin 31 の /WE はテストパッド経由で Audio へ、穴 1 は未接続)。基板ネットの解析で確認済み。

  • 方式 1 で使うには基板側の /WE 引き回しを +5V へ振り替える改造が要る。
  • 既製基板を使うなら方式 2 をそのまま採るのが正解で、その場合ジャンパ 2 本の議論自体が不要になる(基板が済ませてくれている。追加作業は Audio pin への引き出しと 47kΩ だけ)。
  • 根拠: insideGadgets の GBxCart 対応表『SST39SF040 – 512KByte / Audio pin as WE』(flash cart support)、timville85 / MBC1-Flash README『WE via Audio (Cartridge Pin 31)』、sillyhatday / GAMEBOY-MBC5-2MB
  • なぜ /WR(カート pin 3)ではなく Audio pin なのか: SST39SF040 のコマンドアドレスは $5555 / $2AAA で、MBC5 のバンク切り替えレジスタ $2000-2FFF と衝突する。

    "If we went with WR instead of the Audio In pin, the write cycle of 0x2AAA would collide with the rom bank switching (0x2000 – 0x2FFF) so it would switch banks by mistake."insideGadgets – Building a 2MB MBC5 Gameboy cart


実装経路の比較表

SST39SF040 には SOP-32 パッケージが存在しない(PDIP-32 / PLCC-32 / TSOP-32 の 3 種のみ。Microchip DS20005022F)。これは SST に限らない: 主要な 5V NOR ベンダ(Microchip / AMD / Macronix / Atmel / Alliance / Winbond / EON)の発注記号を型番レベルで確認したが、32 ピンの SOP 品は 1 つも存在しない(AMD Am29F040B は P/J/E/F のみで -xxSC は定義自体が無い、Macronix MX29F040C は Q=PLCC / T=TSOP のみで PDIP は Rev1.5 で削除、Alliance AS29CF040 は PLCC-32 のみ、Atmel AT29C040A は 32P6 / 32T)。

つまり「ドナーの ROM を剥がして同じ穴にフラッシュを落とす」は物理的に不可能で、必ず何らかの変換が要る。 これが GB 換装が NES 換装より一段面倒な理由。

経路実装方法ジャンパ方式実効容量ハンダ難度追加購入書込み手段シェルに収まるか判定
B手持ちの SST39SF040(PDIP-32)を UEW 30 本で SOP-32 パッドへ手配線方式 1256KiBなしMega(そのまま)❌ 入らない。シェル上面に角穴を開ける推奨(工程検証)
DSST39SF040 / Am29F040B の TSOP-320.8mm 変換基板に載せ、基板をパッドへ方式 2512KiB中〜高(TSOP は細ピッチ)TSOP 品 + 変換基板 + 書込みアダプタMega(TSOP32→DIP32 アダプタ経由)✅ 約 2.0mm。殻加工なしの実証あり推奨(完成形)
ASST39SF040(PLCC-32)を 0.4mm 変換基板に載せ、基板をパッドへ方式 2(既製基板のまま)512KiBPLCC 品 + 0.4mm 基板Mega(PLCC32→DIP32 アダプタ経由)🚧 境界上。理論値では入らない側🚧 保留(要実測)
C改造しない。市販の MBC5 フラッシュカートに GBxCart RW で書く512KiBなしカート + ライタGBxCart RW✅ 収まる保険 / ROM 単体検証

戦略

NES 版が「まず NROM ドナーで外す→焼く→載せる→動くを検証してから本命の UNROM へ行った」のと同じく、経路 B で 1 枚潰して工程を通してから経路 D へ行く。経路 C は ROM そのものが実機で動くかを改造と切り離して確認する保険であり、実機作業に着手する前に済ませておくと切り分けが劇的に楽になる

経路 A を採る場合は 0.4mm 変換基板が必須で、かつシェル内寸の実測が前提

シェル内寸 — 経路 A の可否を決める 1 数値

実クリアランスは 約 3.2〜3.5mm、上限でも 4mm 未満。根拠は gbdev フォーラム #252 での Tauwasser の実測証言:

"The Game Boy game case itself seems to be 4.x mm tall, however the top shell is definitely < 4 mm" / "A regular CR2032 is already a tight fit"gbdev forums #252(CR2032 の厚みは 3.2mm)

旧稿の「約 2.5mm と推定」は撤回する。 根拠にしていた JRodrigo アダプタは 0.8mm 基板 + TSOP-48 ≒ 2.0mm であり、「これが入る」は下限しか示さない。CGB シェルは DMG よりわずかに余裕があるとされる。

パッケージ実高+ 変換基板合計判定
TSOP-32(8×14mm)1.0〜1.2mm0.8mm約 2.0mm完成形の第 1 候補
PLCC-323.18 / 3.35 / 3.56mm0.4mm3.6〜4.0mm🚧 要実測(0.8mm 基板なら 4.15mm でアウト)
PDIP-324.32〜5.08mm(全長 41.8mm)❌ 不可。経路 B 専用・シェル加工前提
PLCC-32 THT ソケット基板上 6.45mm❌ 完全に不可

出典: Microchip DS20005022F p.25 Drawing C04-023 Rev C(PLCC-32 Overall Height A = .125/.132/.140 in)、Drawing C04-106-P2X Rev A(PDIP-32 Top to Seating Plane A = .170/.200 in、Overall Length D = 41.8mm)。

🚧 ドナーを入手したら、シェル上半分の内側深さをノギスで実測して日付入りで記録すること。3.8mm 以上あれば経路 A を復活させる。


作業手順

STEP 0. 事前準備(実機作業の前に必ず全部済ませる)

この工程で何をするか: 焼く ROM を仕上げ、エミュレータで動くことを確認し、フラッシュをブレッドボード上で焼き終える。 失敗するとどうなるか: 実機で映らなかったとき「ROM が悪いのか配線が悪いのか」を切り分けられず、原因究明が数日単位で伸びる。 所要時間目安: 1〜2 時間(+ 書き込み 40 分。推定)

  1. .gbcrgbfix 済みにする。⚠ ブート ROM は $0104-$0133 の任天堂ロゴと $014D のヘッダチェックサムを検証し、合わないとその場でハングするPan Docs – The Cartridge Header)。

    bash
    rgbfix -C -m 0x19 -r 0x00 -v -p 0xFF build/aidopagaki.gbc

    -v -p 0xFF だけでは足りない。 -v(= -f lhg)と -p が書き換えるのは $0104-0133 / $014D / $014E-014F / $0148 だけで、$0143(CGB フラグ)・$0147(カートタイプ)・$0149(RAM サイズ)は別フラグ(-C / -m / -r)が要る。

  2. ヘッダの値を確認する。$0143 = $C0(CGB 専用)、$0147 = $19(MBC5・RAM なし)、$0149 = $00(RAM なし)、$0148 = $02(128KB)または $03(256KB)。 ⚠ 方式 1 を採るなら $0148$03 以下でなければならない。

  3. エミュレータ(PyBoy)で最後まで動くことを確認しておく。

  4. フラッシュを ブレッドボード上で焼いてベリファイまで通す(→ docs/writer.md)。基板に載せるのは焼き終わってから。

  5. ドナーカートを分解する前に スマホで基板の両面を撮影する。ROM の切り欠き・●印の向き、基板シルクの型番、MBC5 のピン 1 位置を記録する。

STEP 1. ドナーの選別

この工程で何をするか: カートを開けて基板シルクを読み、ROM のピン数を数えて「当たり」かを判定する。 失敗するとどうなるか: TSOP-II 44 ピンのドナーを掴むと本手順が一切適用できず、カートを 1 枚無駄にする。 所要時間目安: 1 枚あたり 5 分

  1. GBC/GB ソフトを 3.8mm ガンドライバで開ける。⚠ 特殊ネジ。普通のプラスドライバでは舐めるだけで開かない。
  2. 基板シルクの型番を読む。DMG-A06-01 / DMG-A02-01 が当たりDMG-A07-01 も当たりだが日本版では稀)。 ⚠ 外れの型番を先に覚える: DMG-A08-01/-10DMG-A03-01/-10DMG-A09-01/-10DMG-A18-01DMG-A04-01 は ROM が細ピッチ TSOP なので本手順の対象外
  3. ROM のピンを数える。片側 16 本 × 2 = 32 本なら当たり(SOP-32・ピッチ 1.27mm)。 片側 22 本 × 2 = 44 本なら TSOP-II で外れ(ピッチ 0.80mm)。 ⚠ ROM 容量では判定できない。 DMG-A04-01 はシルク 4M/8M MROM で 8Mbit だが MX23C8006-12 は細ピッチ TSOP。MX23C8005(SOP-32)と MX23C8006(TSOP)は末尾 1 桁違い。必ずピン数を数える。 (ピッチの数値出典: JRodrigoTech のアダプタ基板実測。SOP-32 = 1.27mm / TSOP-44 = 0.80mm)
  4. ROM のシルクは通常 U1 で、2M/4M/8M -MROM の印字がある。
  5. 🚧 シェル上半分の内側深さをノギスで実測し、日付入りで記録する。 この 1 数値で経路 A(PLCC-32)の可否が決まる。

STEP 2. マスク ROM の除去

この工程で何をするか: U1 の 32 ピン SOP マスク ROM だけを基板から外し、パッドをきれいにならす。 失敗するとどうなるか: パッドが剥がれる。剥がれた信号は MBC5 のピンから直接引き直せるが、作業難度が跳ね上がる。MBC5 を飛ばすと基板ごと廃棄。 所要時間目安: 15〜30 分

  1. ヒートガン(またはホットエア)で ROM 周囲を温め、ピンセットで持ち上げる。SOP-32 は 1.27mm ピッチなので、NES の 28 ピン DIP と違って足切り工法は不要。
  2. 吸取線でパッド 32 箇所のはんだを平らにならす。フラックスを多めに。
  3. MBC5・エッジコネクタ・パスコンには触らない。
  4. パッドの剥がれを目視確認する。剥がれた場合はその信号を MBC5 のピンから直接引く(→ MBC5 ピン対応表)。剥がれやすいのは端の pin 1 / 16 / 17 / 32 付近。

STEP 3. フラッシュの準備(載せる前に焼く)

この工程で何をするか: docs/writer.md の手順で SST39SF040 に書き込み、ベリファイまで通す。 失敗するとどうなるか: 基板に載せてからでは書き直せない。載せ替えからやり直しになる。 所要時間目安: 40 分(512KB 充填・NES 版 2026-08-13 実測の 240 B/s から。GB 実機では未計測)

docs/writer.md の手順で書き込み、ベリファイまで通してから次へ進む。

🚧 未検証: はんだ付け(ヒートガン / リフロー)の熱で書き込み済みフラッシュの内容が失われるかを明示的に警告した一次資料は見つかっていない。実装後に必ず読み戻してベリファイすること。

STEP 4-B. 経路 B: PDIP-32 を手配線する(工程検証・方式 1)

この工程で何をするか: 手持ちの DIP-32 フラッシュを UEW 30 本でドナーのパッドへ直接つなぐ。 失敗するとどうなるか: 1 本の間違いで起動しない。32 本まとめて配線してから確認すると、事実上デバッグ不能になる。 所要時間目安: 2〜4 時間(推定)

  1. フラッシュ pin 1 と pin 31 は最初から使わない。 GND / +5V へ行くので、パッドへは繋がない。
  2. 残り 30 本を UEW でドナーの同番号パッドへ 1 本ずつ配線する。pin 16(VSS)と pin 32(VDD)から始めて、次に pin 22(/CE)と pin 24(/OE)、それからアドレス、最後にデータの順で進めると、途中で数え間違えても被害が局所化する。
  3. 10 本ごとにテスターで導通と隣接ショートを確認する。 NES 版のジャンパは 6 本だったので一気にやれたが、GB は桁が違う。
  4. **ジャンパ 2 本(方式 1)**を追加する(→ STEP 5)。
  5. シェル上面に角穴を開けてチップを逃がす。⚠ DIP-32 は全長 41.8mm・高さ 4.32〜5.08mm。 カート基板は 51.0 × 60.7mm なので平面的にも厳しい。先行例(Gerry O'Brien の PDF)も "The PLCC socket will fit through a square hole at the top side of the cartridge that you must cut open" と角穴前提。

STEP 4-D. 経路 D: TSOP-32 を変換基板で載せる(完成形・方式 2)

この工程で何をするか: TSOP-32 フラッシュを 0.8mm の変換基板にはんだ付けし、その基板をドナーの ROM パッドへ載せる。 失敗するとどうなるか: TSOP は 0.5mm ピッチなのでブリッジしやすい。基板が浮くとシェルが閉まらない。 所要時間目安: 1〜2 時間(推定)

  1. timville85 の TSOP-32 版 Gerber を 0.8mm 厚で発注しておく(JLCPCB / PCBWay、5 枚 $5〜)。
  2. 変換基板に TSOP-32 品をはんだ付けする。⚠ ピン 1 の向きに注意。 TSOP のピン番号は DIP と一致しない(→ 落とし穴)。
  3. 変換基板の 32 パッドをドナーの ROM パッドへ載せてはんだ付けする(castellated via / 半円パッドが基板端に出ている)。
  4. 既製基板は方式 2 で配線済みなので、pin 1 / pin 31 のジャンパは基板が済ませている。残る作業は /WE のテストパッドをカートエッジ pin 31(VIN / Audio In)へ引き、47kΩ で +5V へプルアップすること。
  5. 🚧 ドナー基板でカートエッジ pin 31 にアクセスできるかは基板依存。 ビアやテストパッドが無ければエッジフィンガーへ直付けする。ROM 除去後に基板を観察して確認する。

STEP 4-A. 経路 A: PLCC-32 を変換基板で載せる(保留)

この工程で何をするか: PLCC-32 フラッシュを 0.4mm の変換基板に載せる。 失敗するとどうなるか: 合計 3.6〜4.0mm で、シェルが閉まらない可能性が高い。 所要時間目安: 1 時間(推定)

🚧 STEP 1-5 のシェル実測で 3.8mm 以上が出るまで着手しない。 手順自体は経路 D と同じ(変換基板にチップを載せ、基板をパッドへ、方式 2 のまま)。⚠ 0.4mm 厚を必ず指定する。0.8mm では 4.15mm になり確実に入らない。 チップの斜めに落とした角を基板シルクに合わせること。

STEP 5. ジャンパ配線

この工程で何をするか: pin 1 と pin 31 の 2 本を、選んだ方式に従って処理する。 失敗するとどうなるか: 本改造で唯一の致命傷ポイント。 pin 31 を間違えるとフラッシュが常時書き込みモードになり、内容が壊れる。 所要時間目安: 15 分

方式 1(経路 B / 工程検証・256KiB 上限)

フラッシュピン信号パッド側に来ている信号処理理由
1A18A19(MBC5 RA19)または未接続パッドから浮かせて GND(穴 16)へ256KB 以下では A18 は常に 0 であるべき。未接続だと入力が浮く
31/WEA18(MBC5 RA18)または未接続パッドから浮かせて +5V(穴 32)へこれを忘れると常時書き込みモードになる。GND は絶対不可

+5V は穴 32 のパッド、GND は穴 16 のパッドから取るのが最短。

この方式の実効 ROM 上限は 256KiB($0148$03)。 MBC5 のバンク上位は RA14〜RA17 の 4 本になり、RA18 は /WE に明け渡すため $0148 = $04(512KiB)は原理的に動作しない。

方式 2(経路 D / 完成形・512KiB 全域 + 在カート書き換え可)

フラッシュピン信号処理理由
1A18パッドから浮かせて 穴 31(MBC5 RA18)へクロス配線RA18 をフラッシュの A18 として使う。これで 512KiB 全域が見える
31/WEカートエッジ pin 31(VIN / Audio In) へ引き、47kΩ で +5V へプルアップ通常時は H(書き込み禁止)、GBxCart RW 等が Audio pin を駆動したときだけ書き込める
穴 1RA19未接続のまま512KiB では RA19 以上は使わない

/WR(カートエッジ pin 3)を /WE に使ってはいけない。 SST39SF040 のコマンドアドレス $5555 / $2AAA が MBC5 のバンク切り替えレジスタ $2000-2FFF と衝突し、書き込み中に勝手にバンクが切り替わる。

STEP 6. 検証

この工程で何をするか: 通電前にテスターで配線を確認し、実機に挿して起動を見る。 失敗するとどうなるか: 確認を飛ばすと、最悪 /CE のバス衝突で本体側が壊れる所要時間目安: 30 分

  1. 通電前にテスターで確認する。優先順に:
    • フラッシュ pin 32 ⇔ 穴 32(+5V)、pin 16 ⇔ 穴 16(GND)の導通
    • 方式 1: pin 31 が +5V に落ちていること、かつ穴 31 と導通していないこと/pin 1 が GND に落ちていること、かつ穴 1 と導通していないこと
    • 方式 2: pin 1 ⇔ 穴 31 の導通/pin 31 ⇔ カートエッジ pin 31 の導通/pin 31 が 47kΩ 経由で +5V に上がっていること/pin 1 が穴 1 と導通していないこと
    • パッド 30(A17)⇔ pin 30 の導通。⚠ 方式 1・256KiB ではここがバンク最上位。切れていると上位 8 バンクが読めず「128KiB 相当の挙動」になり、切り分けが難しい
    • pin 22(/CE)⇔ 穴 22、pin 24(/OE)⇔ 穴 24
    • 隣接ピン間のショートがないこと(32 箇所全部)
    • 🚧 ついでにパッドの絶対番号を裏取りする: 穴 32 ⇔ VCC / 穴 16 ⇔ GND / 穴 22 ⇔ カートエッジ A15(pin21) / 穴 24 ⇔ カートエッジ /RD(pin4)
  2. シェルに入れずに基板のまま GBC または GBA に挿して電源 ON。
  3. 実機確認は GBC / GBA から始める。 本 ROM は CGB 専用($0143 = $C0)。DMG / MGB のブート ROM は $0143 を見ない(検証するのはロゴと $014D だけ。Pan Docs は $C0 について "hardware ignores bit 6 … functions the same as $80" とも明記)ので、DMG で起動するかどうかはゲーム側の CGB 判定次第。CGB 専用のパレット・VRAM バンク・倍速コードは DMG では正しく動かないため、「動かない」の原因を増やさないよう GBC / GBA で確認する。
  4. 起動したらシェルに戻す。

落とし穴

  • 秋月の SST39VF040(¥150)は 3.3V 品。 SF(5V)と VF(3.3V)は 2 文字違いで、値段が 4 分の 1 なので間違えやすい。GB は 5V。
  • フラッシュ pin 31(/WE)の処理が本改造で唯一の致命傷ポイント。 浮かせても、パッド(RA18)に繋いだままでも、GND に落としても駄目。+5V 固定(方式 1)か、Audio pin + 47kΩ プルアップ(方式 2)だけが正解。
  • 方式 1 では 512KiB の ROM は動かない。 $0148 = $04 を焼いても上位が読めない。ROM が育ったら方式 2 へ移行する。
  • 既製の変換基板は方式 2 で配線済み。 方式 1 で使おうとすると基板の改造が要る。混ぜない。
  • /CE を GND 固定にすると本体を壊す。 本体 WRAM とバス衝突する。/CE はカートエッジ A15 が駆動する既存配線のまま使う。
  • SST39SF040 にノッチ(半月の切り欠き)が無いロットがある。 NES 版の 2026-08-13 実機検証で実際に遭遇。その場合はパッケージ端寄り・幅中央の丸いくぼみ(●)がある端が pin1/pin32 側。端から離れた丸マークは成形跡なので向き判定に使わない。
  • AM29F016 / AM29F032B に 32 ピン品は存在しない。 Am29F016 は 48 ピン TSOP / 44 ピン SO、Am29F032B は 40 ピン TSOP / 44 ピン SO(AMD Am29F016 Pub#18805)。32 ピン 5V の AMD 系が欲しければ Am29F040B(PDIP-32 / PLCC-32 / TSOP-32、SST39SF040 と全ピン一致)。
  • Am29F040B の TSOP-32 には Standard(発注記号 E)と Reverse(F)があり、ピン番号が完全に逆順。 型番末尾 1 文字で基板が変わる。経路 D では E を買う。
  • SST39SF040 の TSOP-32 は 8×14mm、MX29F040C の TSOP-32 は 8×20mm。 ピン配置は同じでもフットプリントは互換ではない。⚠ 8×14mm の出典は DS20005022C(Rev F には TSOP の外形図が収録されていない。Packaging Diagrams は PDIP と PLCC のみ)。JEDEC MO-142 BA 準拠、発注記号 W = TSOP type 1 die up。
  • TSOP-32 のピン番号は DIP-32 のピン番号と一致しない。 TSOP = ((DIP + 7) mod 32) + 1 の巡回シフト(DIP 1 = TSOP 9、DIP 32 = TSOP 8)。鏡像でも逆順でもないので、頭の中で変換しようとせず表を見ること。
  • ドナーは 3.8mm ガンドライバでないと開かない。 普通のドライバでは舐めるだけ。
  • $014D のヘッダチェックサムが違うとブート ROM がハングする。 「実機で真っ白/ロゴで止まる」の原因の相当割合がこれ。rgbfix を通し忘れていないか最初に疑う。
  • 32 本の手配線(経路 B)は、10 本ごとに導通確認しないと事実上デバッグ不能になる。
  • ROM 容量ではパッケージを判定できない。 必ずピンを数える(片側 16 本 × 2)。

MBC5 ピン対応表(パッドが剥がれたときの引き先)

Sharp QFP32-P-0707。出典: gekkio, Game Boy: Complete Technical Reference, Fig. D.16(p.175)。MouseBiteLabssillyhatday の実動作回路図 2 件と全 32 ピン一致。

pin信号pin信号pin信号pin信号
1A13 in9D417RA16 out25RA22 out
2A14 in10D518RA17 out26AA16 out
3A15 in11D619RA18 out27AA15 out
4GND12D720RA19 out28AA14 out
5D013/RESET in21RA20 out29AA13 out
6D114/RAM_CS out22RA21 out30/WR in
7D215RA14 out23GND31/CS in
8D316RA15 out24VCC32A12 in

規則性: MBC5 が受けるアドレスは A12〜A15 の 4 本だけA0〜A13 はカートエッジから ROM へ直結し、MBC5 を通らない。ROM の上位アドレスは RA14〜RA22 の 9 本(= 9 bit のバンク番号)で、14 + 9 = 23 bit = 8MiB が MBC5 の上限(Pan Docs – MBC5)。MBC5 に /RD ピンは無い。

ただし本改造では MBC5 の上限まで届かない。 方式 1 では RA18〜RA22 の 5 本が使えないため実効は RA14〜RA17 の 4 本 = 16 バンク = 256KiB。方式 2 でも RA19〜RA22 は未接続なので 512KiB が上限。

🚧 MBC5 の QFP32-P-0707 のリードピッチは未確認。 型番から本体 7.0×7.0mm は読めるが 0.8mm ピッチは推定。パッド剥がれ時の引き先として実測すること。


カートリッジエッジコネクタ 32 ピン

出典: Pan Docs – External Connectors

pin信号pin信号pin信号pin信号
1VDD +5V9A317A1125D3
2PHI(約 1.05MHz、CGB 倍速時 2.10MHz)10A418A1226D4
3/WR11A519A1327D5
4/RD → ROM /OE12A620A1428D6
5/CS(SRAM 用)13A721A15 → ROM /CE29D7
6A014A822D030/RES
7A115A923D131VIN(音声入力。方式 2 で /WE に転用する
8A216A1024D232GND

pin 5 の /CS という名前は紛らわしい。 これは SRAM 用で、本体は $A000-$FDFF アクセス時に L にする。$0000-7FFF の ROM を選ぶのは A15 のほう。根拠は Pan Docs 本文ではなく gbdev フォーラムでの gekkio の説明: "So pin 21 is A15 but also fulfills the role of #ROM_CS"gbdev #618)。ROM には繋がない。


参考