実機 ROM カートリッジ作成手順(ハンダ付け初心者向け)
本書は 「AIドパガキ」を実機のゲームボーイカラーで動かすためのカートリッジを、はんだ付けをしたことがない人が上から順に読んで作れる」ことだけを目的にした手順書である。中古のゲームボーイソフト(ドナー)を 1 本開け、載っているマスク ROM を外し、自分でプログラムを書き込んだフラッシュメモリに載せ替える。
理屈と根拠は カートリッジ改造手順 と 実機 ROM 化ガイド が正典で、本書はそこから手を動かす部分だけを抜き出して図にしたものである。数値や型番で本書と正典が食い違って見えたら、正典のほうが正しい。
⚠ 本書は実機作業前の下書きである。 「実測」と書いていない数値は一次資料の引用か推定で、GB 実機での検証は未実施。作業のたびに日付入りで実測値へ置き換えること。
全体像と、かかる時間

上の図が最初から最後までの流れである。本書ではこれを 7 つの STEP に割り直し、**STEP ごとに「図 → 短い説明 → チェックリスト」**の順で並べた。チェックリストが全部埋まってから次の STEP に進むこと。
| 内容 | 目安時間 | 難易度 | |
|---|---|---|---|
| STEP 0 | 工具をそろえる・安全の確認 | 買い物を除いて 30 分 | ★☆☆ |
| STEP 1 | ドナーを選び、殻を開ける | 1 本あたり 10 分 | ★☆☆ |
| STEP 2 | はんだ付けの練習(予備はんだ・吸取線) | 1 時間 | ★★☆ |
| STEP 3 | マスク ROM を外す | 30 分 | ★★★ |
| STEP 4 | フラッシュに書き込む | 配線 30 分 + 書込み 40 分 | ★★☆ |
| STEP 5 | フラッシュを載せて配線する | 2〜4 時間 | ★★★ |
| STEP 6 | 導通確認と実機での動作確認 | 30 分 | ★★☆ |
通しで 1 日、はんだ付けが初めてなら 2 日みておくとよい。 STEP 3 と STEP 5 が山場で、ここだけで全体の 7 割の時間を使う。
工程を通すには 2 つの経路がある。本書が前提にするのは 経路 B、つまり手持ちの PDIP-32 パッケージを UEW で手配線し、ジャンパは方式 1 で処理し、シェルの上面に角穴を開けてチップを逃がす作り方である。見た目は完成品と言いがたいが、「外す → 焼く → 載せる → 動く」を最短で一度通せることに価値がある。殻がきちんと閉まる完成形は 経路 D(TSOP-32 を 0.8mm 厚の変換基板に載せ、ジャンパは方式 2)で、工程を一度通したあとに作る。詳しい比較は 実機 ROM 化ガイドにある。
⚠ 最初の 1 本は必ず「壊してよいドナー」で通すこと。 工程を一度も通していない状態で気に入ったソフトを開けると、ほぼ確実に後悔する。
この作業で出てくる言葉
| 言葉 | 意味 |
|---|---|
| ドナー | 中身を取り出す元にする中古カートリッジ。基板とシェル(殻)を再利用する |
| マスク ROM | 工場で内容を焼き付けた読み出し専用メモリ。書き換えられない。純正カートに載っているのはこれ |
| フラッシュ | 電気的に消して書き直せる ROM。今回載せ替える SST39SF040 がこれ |
| MBC5 | ROM を 16KiB 単位で切り替えるカート上の IC。ゲームボーイは一度に 32KiB しか見られないため必要になる |
| パッド | 基板の上の、部品の足がはんだ付けされる銅の島。ROM を外すとここが 32 個むき出しになる |
| 予備はんだ | こて先や相手の面に、あらかじめ薄くはんだを乗せておくこと。はんだ付けの成否はほぼこれで決まる |
| 吸取線(すいとりせん) | 余分なはんだを吸わせて取り除く、平たい銅の編組線 |
| フラックス | はんだの流れをよくする液。塗るだけで難易度が一段下がる |
| UEW | ポリウレタン被覆線。細いジャンパ配線に使う。被覆は削らず熱で溶かす |
| 導通(どうつう) | 電気的に繋がっていること。テスターのブザーで確認する |
| /WE・/CE・/OE | フラッシュの制御入力。頭の / は「L のとき有効」を意味する |
買うもの(購入リンク付き BOM)
⚠ SST39VF040 を買ってはいけない。 これは 2.7〜3.6V の 3.3V 品で、ゲームボーイのカートスロット(5V)では動かない。必要なのは SST39SF040(SF。VF ではない)。値段が 4 分の 1 なので取り違えが多い。誤購入しやすい実物はこれ → 秋月電子 SST39VF040-70(買わない)。
以下は工程検証(経路 B: PDIP-32 を手配線 + 方式 1)に到達できる最小構成に、完成形(経路 D: TSOP-32 + 変換基板 + 方式 2)で追加になるものを足した表である。保留中の経路 A まで含めた全 28 品目の BOM は カートリッジ改造手順の BOM(E-1〜E-4)にある。
リンクの確認方法: 全 URL を HTTP ステータスとページタイトルの 2 点で到達確認した。✅ は両方取れたもの、⚠ はどちらかが取れなかったもので、⚠ には商品ページではなく検索 URL を載せている。確かめていない URL は書いていない。
| # | 品名 | 仕様・型番 | 数 | 購入リンク | 価格 | 確認日 2026-09-11(#2〜#19 は 2026-09-04 の確認から変更なし。#1 はメルカリのリンクを 09-11 に追加) |
|---|---|---|---|---|---|---|
| 1 | ドナーカート(本命) | かわいいハムスター(DMG-B7HJ-JPN / 基板 DMG-A06-01) | 2〜3 | 駿河屋で検索 / メルカリで検索(こちらが安い) | 駿河屋 ¥480〜¥1,500 / メルカリ ¥333〜¥500 | ✅ |
| 2 | ドナー予備 | サンリオタイムネット 未来編(DMG-A02-01) | 1 | 駿河屋で検索 | ¥800〜¥2,210 | ✅ |
| 3 | ドナー予備 | ビートマニア GB2 ガッチャミックス(DMG-A07-01) | 1 | 駿河屋で検索 | ¥900〜¥3,480 | ✅ |
| 4 | フラッシュ | SST39SF040(PDIP-32・5V) | 1〜2 | オレンジピコ | ¥1,100(cart-mod.md 記載・2026-09-02 時点) | ✅ |
| 5 | 同・海外通販 | SST39SF040-70-4C-PHE(生産終了・在庫限り) | — | DigiKey で検索 | ¥644(cart-mod.md 記載・2026-09-02 時点) | ⚠ 要確認(自動確認不可) |
| 6 | 3.8mm ガンドライバ | 先端に穴のある 3.8mm ゲームビット | 1 | AliExpress で検索 | — | ✅ |
| 7 | 温調はんだごて | PX-201(70W・250〜450℃) | 1 | 秋月電子 | — | ✅ |
| 8 | 同・上位 | PX-280(鉛フリー対応・200〜500℃) | 1 | 秋月電子 | — | ✅ |
| 9 | はんだ吸取線 | CP-2015(幅 2.0mm) / CP-1515(幅 1.5mm)。⚠ CP-3015 は幅 3mm で太すぎる | 1 | 秋月 CP-2015 / CP-1515 | 各 ¥210 | ✅ |
| 10 | フラックス | ペンタイプ FS211-81 | 1 | 秋月電子 | — | ✅ |
| 11 | ヒートガン | 工業用ドライヤー FV310-81 | 1 | 秋月電子 | — | ✅ |
| 12 | 精密ピンセット | TS-10(標準タイプ) | 1 | 秋月電子 | — | ✅ |
| 13 | テスター | 導通ブザー付きのもの | 1 | 秋月電子の計測器一覧 | — | ✅ |
| 14 | ポリウレタン線 UEW | 2UEW φ0.16mm 20m | 少量 | 秋月電子 | — | ✅ |
| 15 | 抵抗 47kΩ 1/6W | 方式 2 の /WE プルアップ用 | 1(100 本入) | 秋月電子 | — | ✅ |
| 16 | 積層セラミックコンデンサ | 0.1µF 50V(フラッシュのパスコン) | 数個 | 秋月電子 | — | ✅ |
| 17 | ノギス | シェル内寸の実測用 | 1 | モノタロウで検索 | — | ✅ |
| 18 | ホビーナイフ | 経路 B のシェル角穴加工用 | 1 | モノタロウで検索 | — | ✅ |
| 19 | Arduino Mega 2560 | ELEGOO 互換で可。書込み機として使う | 1 | AliExpress で検索 | — | ⚠ 要確認(自動確認不可) |
| 20 | 変換基板の Gerber | timville85/MBC1-Flash の MBC1-TSOP32-GERBER-1.1.zip(Apache-2.0・外形 13.55 × 21.68mm) | — | GitHub(TSOP-32 版) | 無料 | ✅ |
| 21 | 変換基板の製造 | 0.8mm 厚 / Castellated Holes = No で発注(⚠ Yes は +$37.40) | 5 枚 | JLCPCB | 基板 $4.20 + 日本宛 OCS NEP $4.25 | ✅ |
| 22 | フラッシュ(完成形) | SST39SF040-70-4C-WHE(TSOP-32・8×13.4mm)。⚠ 届いたら ID 読み出しで BF / B7 を確認する | 5(最小ロット) | AliExpress で検索 | ¥2,100 / 5 個 | ⚠ 要確認(自動確認不可) |
| 23 | TSOP-32 書込みアダプタ | Xgecu「TSOP32 adapter For TL866」。ベース + TSOP32 ZIF の 2 点セット。DIP 側は DIP-32 標準配置 | 1 | AliExpress で検索 | ¥1,542 | ⚠ 要確認(自動確認不可) |
| 24 | 抵抗 47kΩ(チップ) | 0603(= 1608 メトリック)。変換基板のプルアップ用。⚠ #15 のリード品は載らない | 数個 | 秋月で検索 | 約 ¥100 | ✅(検索ページ)/⚠ 品番は要確認 |
工程検証(経路 B)までの追加購入分は概ね ¥8,000〜¥15,000。 工具(7〜13・17・18)を持っているなら ¥3,000 前後で足りる。完成形(経路 D)へ進むと、#20〜#24 でさらに ¥5,000 前後かかる。
⚠ が付いた行には 2 種類ある。 DigiKey・Mouser・マルツ・Amazon.co.jp・insideGadgets は自動アクセスを HTTP 403 / 503 で拒否するもの、AliExpress は HTTP 200 を返すのにページタイトルが空で中身を確認できないものである。どちらもブラウザからは普通に開けるので、上の検索 URL から手で確認すること。価格も同様に、取得できたものだけ記載している。
STEP 0: 工具をそろえ、安全を確保する

はんだ付けの道具は「あれば何でもいい」ものではない。温度を数値で決められるこてと吸取線とフラックスの 3 つは、無いと SOP-32 の作業が成立しない。100 円ショップの温度調節なしのこてでは、温度が 450℃ を超えて基板を焦がすか、逆に熱が足りず溶けないかのどちらかになる。
こて先は先が尖った B 型ではなく、マイナスドライバーのように平たい 2C / 3C 型を選ぶ。今回相手にする 1.27mm ピッチの足には、面で熱を渡せる平たい先のほうが速い。温度は共晶はんだ(Sn63/Pb37)なら 320〜350℃、鉛フリーなら 350〜370℃ から始める。400℃ を超えるとパッドを基板に貼っている接着剤が焼け、銅箔が剥がれやすくなる。
はんだ自体は、初めてなら共晶はんだ(鉛入り・φ0.6〜0.8mm・ヤニ入り)を選ぶとよい。鉛フリーは融点が 20〜30℃ 高く、濡れ広がりも悪いので、練習の段階で余計な難しさを増やすことになる。太さも重要で、φ1.0mm 以上は今回の 1.27mm ピッチには太すぎて、送るつもりのない量が一気に流れる。鉛入りを使ったら作業後に必ず手を洗い、飲食は作業机から離れてすること。
フラックスは「あると便利」ではなく必須である。パッドの表面には目に見えない酸化膜があり、これがある限りはんだは玉のままで濡れ広がらない。フラックスはこの膜を溶かす役目をする。ヤニ入りはんだにもフラックスは入っているが、一度溶けた後に温め直すときにはもう効いていないので、外す作業・直す作業では必ず別途塗る。塗りすぎて困ることはまず無いが、作業後は残さず洗浄すること。残ると長期で基板を腐食させる。

安全は 4 つだけ覚えればよい。換気(はんだの煙は吸い続けると気道を痛める)、やけど(340℃ のこて先は触れた瞬間に深いやけどになる)、目の保護(吸取線を離した瞬間にはんだの粒が飛ぶ)、静電気(フラッシュも MBC5 も静電気で壊れる。作業前に金属に触れて放電する)。どれも工程の話ではなく、身体と部品を守る話である。
STEP 0 のチェックリスト
- [ ] 温調はんだごてがあり、温度を 340℃ 前後に設定できる
- [ ] こて先が 2C / 3C 型(平たい面)である
- [ ] 吸取線・フラックス・ピンセット・テスターが手元にある
- [ ] 窓を開けたか、卓上ファンで煙を自分と反対側へ流せる
- [ ] こて台があり、使っていない間のこてを必ず置ける
- [ ] 作業前に金属に触れて放電した
- [ ] 買ったフラッシュが
SST39SF040(SF)であることを袋の印字で確認した
STEP 1: ドナーを選び、殻を開ける

ドナーは何でもよいわけではない。載っているマスク ROM が 32 ピンの SOP(片側 16 本 × 2)でないと、本手順は一切適用できない。判定は 2 段構えで行う。まず基板シルクの型番を読み、DMG-A06-01 / DMG-A02-01 / DMG-A07-01 なら当たり。次に ROM の足を数えて片側 16 本 × 2 = 32 本であることを確かめる。片側 22 本 × 2 = 44 本なら細ピッチの TSOP-II で、本手順の対象外である。
⚠ ROM 容量では判定できない。 シルクに 8M MROM と書いてあっても中身が細ピッチ TSOP のことがある。⚠ DMG-A08-01 は日本版で最も遭遇しやすい外れなので先に覚えておく。日本の中古市場では、ジャンクのまとめ買いから選別するより、基板型番が判明している安価なタイトルを指名買いするほうが安く確実である(BOM の 1〜3 番がそれ)。
買う場所はメルカリのほうが安い。 2026-09-09 に実際に出ていた例では、かわいいハムスターの単品が ¥333〜¥500、同作を含む 3 本セットが ¥1,111 だった。駿河屋の掲載価格(¥480〜¥1,500)より下回ることが多い。狙い目は「GB ソフト まとめ」のような無選別のジャンク束ではなく、当たり基板のタイトルが 1 本以上入っているセット出品である。⚠ 「動作確認済み」かどうかは本件では意味がない。 ROM は剥がしてしまうので、必要なのは基板とシェルが無事なことだけで、セーブも使わない。「電池切れ」「セーブ不可」の安い出品でまったく支障がない。⚠ 同じタイトルでも後期ロットで基板が変わることがある。 写真では判定できないので、届いて開けてからシルクを読む。外れを引いても殻とネジは STEP 2 の練習に使える。

カートのネジは**任天堂の特殊ネジ(ガンネジ)**で、普通のプラスドライバでは開かない。3.8mm ガンドライバが要る。GB / GBC のカートは 3.8mm、NES / SFC 本体側は 4.5mm なので取り違えないこと。ネジは裏面に 1 本だけ。ドライバを真上から押しつけながら反時計回りに回す。浮かせると山を舐めて開けられなくなる。
⚠ 「GBC 専用ソフトだから CGB- 基板」という思い込みをしないこと。 GBC 世代のソフトでも基板の型番は DMG- のままである。CGB- で始まるのは MBC6 の CGB-A32-01 だけで、これは本手順の対象外である。また、SRAM やセーブ用の電池、電池監視 IC が載っていても構わない。DMG-A02-01 と DMG-A06-01 の ROM フットプリントは DMG-A07-01 と同一で、今回はセーブを使わないので余分な実装は無視してよい。
殻を開けたら、基板を外す前に両面をスマホで撮影する。 ROM の向きを示す ● 印の位置、シルクの文字、MBC5 の pin 1 の位置は、外したあとでは二度と確認できない。ついでにシェル上半分の内側の深さをノギスで実測して記録する。この 1 つの数値で、後の完成形をどのパッケージで作るかが決まる。
STEP 1 のチェックリスト
- [ ] 基板シルクの型番が
DMG-A06-01/DMG-A02-01/DMG-A07-01のいずれかである - [ ] ROM の足を数えて、片側 16 本 × 2 = 32 本だった
- [ ] 基板の両面を撮影した(● 印の向き・シルク・MBC5 の pin 1)
- [ ] シェル上半分の内側深さをノギスで測り、日付と一緒に記録した
- [ ] 外したネジと殻を小皿にまとめた
STEP 2: はんだ付けの予備知識(ここで練習する)

はんだ付けの 9 割は予備はんだで決まる。 はんだは「こて先から」ではなく「温まった相手から」溶ける。だから手順は必ずこの順になる。①こて先にはんだを 1 秒流して銀色にする(黒く酸化した面には熱が渡らない)、②相手のパッドにフラックスを塗り、薄く平らにはんだを乗せる、③繋ぐものを載せて、既にあるはんだを溶かし直す。
③で新しいはんだを足さないこと。 足すのは簡単で、減らすのは面倒である。仕上がりが富士山のように裾を引いた形になれば成功、丸く盛り上がってつやが無ければイモはんだで、温度不足かフラックス不足を疑う。1 箇所に当てるのは 3 秒まで。 それで溶けないなら押し付けても直らない。

余分なはんだを取るのが吸取線である。順番が命で、線を先にパッドへ平らに押し当て、その上からこて先を載せる。 こてを先に当ててから線を横から差し込むと、線が冷えていて吸わず、吸わないからと当て続けるうちにパッドが剥がれる。吸い上がったらこてと線を同時に離す。線だけ引くと固着した線がパッドごと持っていく。吸った部分は必ず切り落とす。一度はんだを吸った編組線は、次の箇所ではもう吸わない。
⚠ 本番の前に、いらない基板で 20 箇所ほど付けて外す練習をすること。 ここを飛ばして STEP 3 に進むと、ほぼ確実にパッドを剥がす。
STEP 2 のチェックリスト
- [ ] こて先を予備はんだで銀色にできた
- [ ] 練習用の基板で、富士山型の仕上がりを 10 箇所連続で作れた
- [ ] 吸取線で、盛ったはんだをパッドを傷めずに吸い取れた
- [ ] 「線が先・こては後・離すのは同時」を体で覚えた
- [ ] 1 箇所 3 秒を超えたら一度離す習慣がついた
STEP 3: マスク ROM を外す

外すのは U1 の 32 ピン SOP マスク ROM だけである。⚠ MBC5・エッジコネクタ・パスコンには触らない。 MBC5 を飛ばすと基板ごと廃棄になる。

SOP-32 は 32 本の足を同時に溶かして持ち上げるのがいちばん速く、パッドにも優しい。ヒートガンをチップの真上 20〜30mm に構え、垂直から 10〜20° 傾けて小さく円を描く。1 点に留めると樹脂が焦げ、基板が反る。作業前に隣の MBC5 とパスコンをカプトンテープで養生しておくこと。
⚠ ノズルの出口温度は 300℃ 台から始め、溶けなければ 20〜30℃ ずつ上げること。 共晶はんだなら 300〜350℃、鉛フリーなら 350〜400℃ が目安になる。ノズル温度は基板の温度ではないので、いきなり 500℃ に設定すると溶ける前に樹脂とシルクが焦げる。
時間の目安は、フラックスを 32 ピン全部に塗ってから 20 秒でパッドが濡れて見え、40 秒ではんだが光り、60 秒前後で 32 本すべてが溶ける。ピンセットの先をチップの角に添えておき、全部が溶けてから真上へまっすぐ持ち上げる。斜めに引くとパッドが付いてくる。⚠ 持ち上がらないのは「まだ溶けていない」ということで、力の問題ではない。 外したあとのパッドは STEP 2 の吸取線で平らにならす。凹凸が残ると次のチップが浮く。
⚠ 剥がれやすいのは端の pin 1 / 16 / 17 / 32 付近である。剥がしてしまったら、その信号を MBC5 のピンから直接引き直せる(対応表は cart-mod.md の MBC5 ピン対応表)。
STEP 3 のチェックリスト
- [ ] MBC5 とパスコンをカプトンテープで養生した
- [ ] 32 ピン全部にフラックスを塗ってから加熱を始めた
- [ ] 32 本すべてが溶けてから、真上へまっすぐ持ち上げた
- [ ] MBC5・パスコン・エッジコネクタに触れていない
- [ ] 32 個のパッドを吸取線で平らにならした
- [ ] 剥がれたパッドがあれば、どの番号かを記録した
STEP 4: フラッシュに書き込む
まず書き込むデータを作る。.gbc は rgbfix 済みでなければならない。ブートROM は $0104-0133 の任天堂ロゴと $014D のヘッダチェックサムを検証し、合わないとその場でハングする。⚠ 実機に持ち込む前に PyBoy で最後まで動くことを確認しておく。 これをやっておくと、映らなかったときに「ROM が悪いのか配線が悪いのか」を分けられる。
rgbfix -C -m 0x19 -r 0x00 -v -p 0xFF build/aidopagaki.gbc
python3 tools/make_gb_flash_bin.py build/aidopagaki.gbc build/flash/gb_512k.bin
# -> input 262144 bytes (256 KiB) x2 -> 524288 bytes
書込み機は Arduino Mega 2560 である。フラッシュをブレッドボードに挿し、アドレス 19 本・データ 8 本・制御 3 本・電源 2 本をつなぐ。⚠ チップは基板に載せる前に焼くこと。 載せてからでは書き直せず、載せ替えからやり直しになる。

上が正確なピン対応である。配線したら、焼く前に必ず ID 読み出しで配線を確認する。
PORT=/dev/tty.usbmodem1101
FLASHNES=../nes_aiDopagaki/tools/flashnes.py
python3 $FLASHNES --port $PORT id # 0xBF 0xB7 が返れば配線 OK
python3 $FLASHNES --port $PORT write build/flash/gb_512k.bin # 消去→書込→ベリファイ⚠ --ines は付けない。 .gbc に iNES ヘッダは無いので missing 'NES\x1a' magic で落ちる。ID が 0xFF 0xFF なら配線が繋がっていない。まずコネクタブロックの挿し直しから疑うこと(NES 版の 2026-08-13 の実機検証では、配線が全部正しいのに半挿しでこうなっていた)。512KB のフル書き込みはベリファイ込みで 40 分前後かかる。書き込み中は配線にもケーブルにも触れない。詳しい切り分け手順は フラッシュ書込み手順にある。
書き込むデータを 512KB 全域に同じ内容で繰り返しているのには理由がある。方式 1 では pin 1(A18)を GND に固定するため、フラッシュから見えるアドレス空間の上半分は本来使われない。ここに同じデータを置いておくと、pin 1 のジャンパが 1 本外れていても、たまたま読めてしまうという保険になる。⚠ ただしこれは保険にすぎず、A17(パッド 30)の配線ミスは充填では救えない。そこが切れているとバンクの最上位が固定され、上位 8 バンクが読めなくなる。
TSOP-32 品(完成形・経路 D)を焼くときは、ブレッドボードではなく ZIF アダプタを挟む。 BOM の #23(Xgecu「TSOP32 adapter For TL866」)は、TSOP32/40/48 共用のベースと TSOP32 の ZIF 上段の 2 点セットで、DIP 側が 29F040 の DIP-32 標準配置になっている。つまり PDIP 用に組んだ Mega の配線をそのまま使える。⚠ 届いたらテスターで 5 本だけ導通を確認すること。 1 本でも違ったらそのアダプタは使わない。
| ZIF 側(TSOP-32 のピン番号) | 信号 | DIP-32 側 |
|---|---|---|
| TSOP 8 | VDD | DIP 32 |
| TSOP 24 | VSS | DIP 16 |
| TSOP 7 | /WE | DIP 31 |
| TSOP 30 | /CE | DIP 22 |
| TSOP 1 | A11 | DIP 25 |
⚠ AliExpress で買ったフラッシュは、焼く前に ID で正体を確かめる。 0xBF 0xB7 なら SST39SF040(5V)で正解。⚠ 0xD7 が返ったら 3.3V 品 SST39VF040 のリマークなので、ゲームボーイでは使えない。刻印は書き換えられても ID は書き換えられないので、これが最も確実な判定になる。
ヘッダの値も焼く前に確認しておく。$0143 = $C0(CGB 専用)、$0147 = $19(MBC5・RAM なし)、$0149 = $00(セーブ RAM なし)である。⚠ 方式 1 を採るなら $0148 は $02(128KB)か $03(256KB)でなければならない。 $04(512KiB)の ROM は方式 1 の配線では原理的に動かない。⚠ rgbfix -v -p 0xFF だけでは足りない。 -v と -p が触るのはロゴとチェックサムまわりだけで、$0143 / $0147 / $0149 は -C / -m / -r という別のフラグが要る。
STEP 4 のチェックリスト
- [ ]
rgbfix済みの.gbcを PyBoy で最後まで動かせた - [ ]
make_gb_flash_bin.pyで 524,288 バイトの充填イメージを作った - [ ] ID 読み出しで
0xBF 0xB7が返った - [ ] 書き込みがベリファイまで通った
- [ ] 書き込み中、配線とケーブルに触れなかった
STEP 5: フラッシュを載せて配線する

GB のマスク ROM と JEDEC フラッシュは、32 本中 30 本のピン配置が一致する。違うのは pin 1 と pin 31 の 2 本だけである。だからこの STEP は「30 本を同じ番号のパッドへつなぎ、残り 2 本だけ別扱いにする」作業になる。

手配線には UEW(ポリウレタン被覆線)を使う。被覆は削らない。 こて先にはんだを少し盛り、線の端 2〜3mm をその玉に 2 秒ほど沈めれば、被覆が溶けて銅が銀色に出る。長さはパッドから相手まで測り、たるみを 2〜3mm だけ足して切る。長すぎる線は他のピンに触れ、短すぎる線は引っぱってパッドを剥がす。先にパッド側を付けて固定し、反対側を後から付ける。
順番は ①電源(pin 16 / 32)→ ②制御(pin 22 /CE・pin 24 /OE)→ ③アドレス → ④データ → ⑤ジャンパである。⚠ 10 本ごとにテスターで導通と隣接ショートを確認すること。 32 本まとめて配線してから確認すると、間違いが 1 本あっても場所が特定できなくなる。

残った pin 1 と pin 31 の処理には 2 通りある。方式 1 は pin 1 を GND(パッド 16)へ、pin 31 を +5V(パッド 32)へ落とす。配線が簡単で、工程検証にはこちらを使う。ただし使える ROM は 256KiB までに制限される。方式 2 は pin 1 をパッド 31 へクロス配線し、pin 31(/WE)をカートエッジ pin 31(Audio In)へ引いて 47kΩ で +5V へプルアップする。512KiB 全域が使え、挿したまま書き換えもできる。
方式 1 で容量が半分になるのは、配線の都合で MBC5 のバンク上位が 1 本足りなくなるからである。MBC5 がフラッシュに渡せるバンク上位は本来 RA14〜RA18 の 5 本だが、方式 1 では RA18 を /WE のために明け渡すので、実際に届くのは RA14〜RA17 の 4 本だけになる。A18 は GND に固定されるので、上半分のアドレスには決して到達しない。対象の ROM は 128KB か 256KB なので実害は無いが、将来 512KiB へ拡張したくなったら方式 2 へ移るしかない。
⚠ 方式 1 と方式 2 を混ぜないこと。 既製の変換基板(timville85)は方式 2 で配線済みなので、それを使うなら方式 2 をそのまま採る。方式 1 で使うには基板側の /WE の引き回しを +5V へ振り替える改造が要る。⚠ カートエッジの /WR(pin 3)を /WE に流用してはいけない。 SST39SF040 のコマンドアドレス $5555 / $2AAA が MBC5 のバンク切り替えレジスタ $2000-2FFF と衝突し、書き込みの最中に勝手にバンクが切り替わる。方式 2 が Audio pin(エッジ pin 31)を使うのはこの衝突を避けるためで、insideGadgets や timville85 の実装もすべてこの手法を採っている。
⚠ pin 31 を GND に落としてはいけない。 /WE はアクティブ Low なので、GND = 書き込み許可のつけっぱなしになり、内容が壊れる。⚠ pin 31 をパッド 31 に繋いだままにしてもいけない。 パッド 31 には MBC5 の RA18 が来ており、256KB 以下の ROM では常に L、つまり常時書き込みモードと同じである。⚠ /CE(パッド 22)を GND 固定にしてはいけない。 フラッシュと本体 WRAM がデータバスを同時に駆動して、本体側を壊しうる。

PDIP-32 はシェルに確実に入らない(実高 4.32〜5.08mm に対し、シェル内クリアランスは約 3.2〜3.5mm)。工程検証ではシェル上面に角穴を開けてチップを逃がす。殻を閉めたい完成形では TSOP-32 を 0.8mm 厚の変換基板に載せる(合計約 2.0mm)。既製の変換基板は方式 2 で配線済みなので、使うなら方式 2 をそのまま採るのが正解である。
変換基板(完成形)の載せ方

完成形で使う変換基板(timville85 の TSOP-32 版 v1.1)は、方式 2 の配線をすでに済ませてある。KiCad のネットを 1 本ずつ展開して確かめた結果(2026-09-11)、縁ランド 32 個の信号はドナーのパッドと 32/32 一致し、縁ランド 1(ドナーの A19)は基板内で未接続、縁ランド 31(MBC5 の RA18)はフラッシュの A18(TSOP pin 9)へ、フラッシュの /WE(TSOP pin 7)は縁ランドに出ずに基板上の「WE」パッドへ引かれて 47kΩ で VCC へプルアップされている。だから pin 1 / pin 31 のジャンパ作業はこの基板では発生しない。
やることは 3 つだけである。①内側の列に載せる。 基板には TSOP の列が 2 つ重なっていて、ピン 1〜16 側は共用、ピン 17〜32 側が内側(列間 12.85mm)と外側(列間 19.5mm)に分かれる。SST39SF040(8 × 13.4mm、刻印 WHE でも TU でも同じ)は内側である。外側は 8 × 20mm 品(MX29F040CTI-70G。Am29F040B も 8 × 20mm 系の可能性が高いが実寸未確認)用で、間違えるとピン 17〜32 が全滅する。**どの品でも、載せる前にリード先端どうしの幅をノギスで測って列を決める。**pin 1 は縁ランド 32(VCC)側の角に来る。②47kΩ は 0603 のチップ抵抗を付ける。 STEP 0 で買うリード品は載らない。③縁ランド 32 か所をドナーのパッドへ点付けする。 列間は基板 13.55mm に対しドナー 13.335mm なので、左右に 0.1mm ずつはみ出す位置が正しい。
「WE」パッドからカートエッジ pin 31(Audio)への UEW は、挿したまま書き換えたい人だけが足す。47kΩ で常時 H に保たれるので、繋がないままでも読み出し専用カートとして正常に動く。先に STEP 6 の導通確認と実機起動を通してから足すほうが、動かないときの切り分けが楽になる。パスコンは基板に載っていないので、動作が不安定なら縁ランド 32–16 間に 0.1µF を足す。⚠ README にある「WE via WR」は v1.1 基板に配線が無く、MBC5 では使わない。
STEP 5 のチェックリスト
- [ ] pin 1 と pin 31 以外の 30 本を、同じ番号のパッドへつないだ
- [ ] 電源 → 制御 → アドレス → データ の順で進めた
- [ ] 10 本ごとに導通と隣接ショートを確認した
- [ ] 方式 1 と方式 2 のどちらを採るか決めてから、ジャンパを引いた
- [ ] pin 31 が GND にもパッド 31 にも繋がっていない
- [ ] /CE(パッド 22)を GND に固定していない
- [ ] 拡大鏡で 32 箇所すべてを見て、線が隣に触れていない
- [ ] (変換基板)TSOP を内側の列に、pin 1 を VCC 側の角に合わせて載せた。47kΩ は 0603 を付けた
- [ ] (変換基板)WE パッドは初回は未配線のまま動作確認した(繋ぐなら Audio pin 31 へ。/WR は不可)
STEP 6: 導通確認と実機での動作確認

⚠ 通電の前に、テスターで全部確認する。 確認を飛ばして電源を入れると、最悪 /CE のバス衝突で本体側が壊れる。ダイヤルを導通ブザーに合わせ、①電源(pin 32 ⇔ パッド 32、pin 16 ⇔ パッド 16)、②ジャンパ(選んだ方式どおりか、元のパッドと切れているか)、③パッド 30 ⇔ pin 30(A17)、④制御(pin 22・pin 24)、⑤隣接ピン 32 箇所のショートの順で当てる。
③を軽く見ないこと。方式 1・256KiB ではここがバンクの最上位で、切れていると上位 8 バンクが読めず「128KiB 相当の挙動」になる。動くには動くので、原因の切り分けがいちばん難しい壊れ方をする。⚠ 測るのは必ず電源を切った状態で。 通電中に導通レンジを当てるとテスターを壊す。

導通が全部通ったら、シェルに入れる前に基板のまま挿して電源を入れる。⚠ カートの抜き差しは、必ず本体の電源を切ってから行うこと。 電源が入ったまま抜き差しすると、バスに中途半端な電位がかかってフラッシュと本体の双方を壊しうる。直して挿し直すときも同じである。⚠ 確認は GBC か GBA から始めること。 本 ROM は CGB 専用($0143 = $C0)だが、DMG / MGB のブート ROM は $0143 を見ないので、DMG で映らなくても配線の問題とは限らない。原因を増やさないために、まず GBC で見る。

失敗は起きる。起きてから直せばよい。ブリッジ(隣とくっつく)はフラックスを一塗りして吸取線で 1 度だけ吸う。ピン浮き(付いているように見えて導通しない)はフラックスを塗り、こて先でピンを上から押さえて 2 秒温め直す。はんだは足さない。パッド剥がれはその信号を MBC5 の対応ピンから UEW で直接引き、引いた線を接着剤で固定する。
実装が終わったら、もう一度読み戻してベリファイすることを強く勧める。はんだ付けの熱で書き込み済みの内容が失われるかどうかは未検証であり、ここで確かめておけば「配線は合っているのに動かない」ときの候補を 1 つ減らせる。方式 2 で組んだなら、カートを挿したまま GBxCart RW などで読み戻せる。
映らないときは症状で切り分ける。真っ白のままなら ROM ヘッダか /CE・/OE・データ線。ロゴで止まるなら低位アドレスかデータ線の 1 本。途中でハングするなら上位アドレス、まずパッド 30 = A17。内容が化けるなら pin 31(/WE)の処理を疑う。⚠ 直したら、STEP 6 の導通確認を最初から全部やり直すこと。 1 箇所直したついでに隣を壊すのはよくある。
STEP 6 のチェックリスト
- [ ] 電源を切った状態で、①〜⑤の全項目を導通ブザーで確認した
- [ ] パッド 30 ⇔ pin 30(A17)の導通を確認した
- [ ] 隣接ピン 32 箇所にショートがない
- [ ] シェルに入れる前に、基板のまま GBC / GBA で起動を確認した
- [ ] カートの抜き差しを、毎回そのつど本体の電源を切ってから行った
- [ ] 実装後に読み戻してベリファイし、熱で内容が消えていないことを確認した
- [ ] 起動したらシェルに戻した(経路 B は角穴を開けてから)
付録: 根拠文書へのリンク
本書は手順書であって、根拠の文書ではない。数値・型番・配線の根拠は次にある。
| 文書 | 何が書いてあるか |
|---|---|
| カートリッジ改造手順 | 原理・電気的な事実・MBC5 ピン対応表・全 28 品目の BOM・落とし穴。本書と食い違ったらこちらが正しい |
| 実機 ROM 化ガイド | 経路 B / D / A の比較、ドナー選定の統計、パッケージとシェル内クリアランスの検討 |
| フラッシュ書込み手順 | Arduino Mega ライターの配線・コマンド・切り分け手順の正典 |
| 参照した一次資料と確度 | Pan Docs・gbhwdb・gbdev フォーラム等、各主張の出典と確度 |
| パッケージ寸法スペック | 外箱・説明書などパッケージ側の寸法 |
| ビルド手順 | .gbc のビルド方法と ROM ヘッダの期待値 |
図の再生成:
python3 tools/gen_gb_hardware_guide.py # img0 img1 img2 img6 img7 -> tools/out/
python3 tools/gen_gb_wiring_diagram.py # img3 img4 img5 -> tools/out/
python3 tools/gen_gb_beginner_guide.py # img10-img19 -> docs/public/hardware/この文書の作り
本書は図と文字の比率を 4:6 に保つという制約のもとで書かれている。手順書は文字が増えるほど読まれなくなるが、図だけでは順番と理由が伝わらないためである。
比率は tools/test_docs.py::FigureTextRatioTest が機械的に検査する。**換算は「画像 1 枚 = 本文 480 字相当」**とした。根拠は、1500 × 1000px の図を本文の横幅いっぱいに表示すると、本文 16px・行間 1.7(= 27.2px/行)で 約 20 行分の縦寸法を占め、1 行あたり全角 24 字として 20 × 24 = 480 字になるからである。この換算で 画像枚数 × 480 : 本文文字数 を求め、画像側が 30〜50%(4:6 ± 1)に収まることを確認している。本文文字数は Markdown 記法・URL・表の罫線・コードブロックを除いた実文字数で数える。同じテストが、各 STEP 見出しに図が 1 枚以上あることと、BOM の全リンクが https で確認日マーク付きであることも同時に固定している。