Skip to content

魔界島カートリッジ換装手順(図解)— HVC-UNROM-02 に AIドパガキを入れる ​

対象: issue #7 / #34 STEP 5 以降 / ドナー: 魔界島 CAP-MZ(基板 HVC-UNROM-02、PRG: CAP-MZ-0 RP231024D 28 ピン 1Mbit マスク ROM、CHR-RAM 搭載) 換装チップ: SST39SF040(DIP-32・512KB)/ 書き込む ROM: 最終版 build/aidopagaki-devNN.nes(UNROM、PRG 128KB、CHR-RAM)

NROM テスト基板(#34)とは配線が違う

NROM 基板では「下端を揃えて 4 本はみ出し、全部 +5V」で済んだが、UNROM ではソケット 22 番がバンク信号 A16 なので、フラッシュの /OE(24 番)と A17(30 番)も曲げて、A16 をフラッシュ 2 番へ引き回す必要がある。曲げるのは 6 本、ジャンパも 6 本。

全体の流れ ​

全体の流れ

STEP作業担当
1PRG マスク ROM「CAP-MZ-0」を外すあなた
228P 丸ピンソケットをはんだ付けあなた
3フラッシュに最終版 ROM を焼く(Arduino Mega ライター)共同
46 本の足を上に曲げ、2 ピンずらしてソケットに挿すあなた
5ジャンパ 6 本(+5V ×2 / GND ×3 / A16 ×1)あなた
6導通チェック → ファミコンで起動あなた

原理(根拠) ​

  • 任天堂の 28 ピン 128KB PRG マスク ROM のピン配置は、同社 32 ピン配置の 3〜30 番ピンをそのまま取り出したもの(NESdev Wiki – Mask ROM pinout)。
  • したがって SST39SF040(JEDEC 標準 32 ピン)を 2 ピンずらして(フラッシュ 3 番 → ソケット 1 番)挿すと、大半の信号が自然に一致する。
  • 不一致は 2 箇所:
    • ソケット 22 番 = 基板の A16(バンクラッチ 74HC161 の出力)だが、その位置に来るフラッシュ 24 番は /OE → 24 番を曲げて GND へ、A16 はフラッシュ 2 番へ配線
    • ソケット 28 番 = +5V だが、その位置に来るフラッシュ 30 番は A17 → 30 番を曲げて GND へ(ROM はフラッシュの下半分 0〜128KB に書く)

ソケット(基板側 28 穴)の信号 — 検証済み対応表 ​

穴信号穴信号
1A1528+5V
2A1227A14
3A726A13
4A625A8
5A524A9
6A423A11
7A322A16(ラッチ出力)
8A221A10
9A120/CE(/ROMSEL)
10A019D7
11D018D6
12D117D5
13D216D4
14GND15D3

STEP 1: PRG マスク ROM を外す(足切り工法) ​

外すチップ

  1. 外す前に基板をスマホで撮影(チップの切り欠き・● 印の向きを記録)
  2. 精密ニッパーで CAP-MZ-0 の全 28 本の足をチップ本体の根元で切断(基板側に足を残す)
  3. 残った足をはんだごてで温めつつピンセットで 1 本ずつ抜く
  4. 吸取線+吸取器でスルーホール 28 穴のはんだを除去(光にかざして貫通確認)
  5. CHR-RAM・74HC161・74HC32 には触らない

図の部品配置はイメージ。実物は チップの刻印「CAP-MZ-0」と基板シルクで確認すること(エッジコネクタに近い側の 28 ピン品)。

STEP 2: ソケット取り付け ​

  • 丸ピンソケット 28P・600mil(秋月 102841)を切り欠きを基板シルクの向きに合わせてはんだ付け
  • はんだブリッジ・スルーホールの未充填がないか目視

STEP 3: フラッシュに最終版 ROM を焼く(挿す前に) ​

ライターの配線・セットアップ・トラブルシュートは フラッシュライター(Mega)。NROM テストのときと同じライターで、今回は本編 ROM を --ines で書く。

bash
PORT=/dev/tty.usbmodem*          # ls /dev/tty.usbmodem* で確認
python3 tools/flashnes.py --port $PORT id                                  # 0xBF 0xB7 なら配線 OK
python3 tools/flashnes.py --port $PORT write build/aidopagaki-dev36.nes --ines   # 消去→書込→ベリファイ
  • --ines で iNES ヘッダを外し PRG 128KB をアドレス 0 から書く。A17 = A18 = GND(STEP 5)なので、実機はこの 128KB を読む
  • 512KB 全域を繰り返し書く必要はない(NROM テストとの違い。バンクは 74HC161 → A14〜A16 で切り替わる)
  • 所要時間は 128KB で 10 分前後(約 240B/s)。途中で配線・ケーブルに触れない
  • 使う .nes は 最終版の配布 ROM(build/aidopagaki-devNN.nes、131,088 バイト)。どのコミットのビルドかは issue に記録する

STEP 4: 6 本の足を上に曲げ、2 ピンずらして挿す ​

載せ方

曲げる(ソケットに挿さない)ピン: 1, 2, 24, 30, 31, 32 の 6 本

  • 1・2・31・32 はソケットの上にはみ出す 2 段。24・30 は途中の足なので、根元から外側・上向きに 1 回で曲げる(往復させると折れる)
  • 残り 26 本を「フラッシュ 3 番 → ソケット 1 番」「フラッシュ 16 番(GND)→ ソケット 14 番(GND)」の位置関係で挿す。切り欠きの向きは元のマスク ROM と同じ
  • ⚠ 24 番・30 番を曲げ忘れると、/OE が A16 に、A17 が +5V に繋がり、バンク切替が壊れる/空き領域を読む
  • ⚠ ノッチ逆挿しは通電した瞬間に壊れる。SST39SF040 には半月ノッチが無いロットがある(端寄りの ● が pin 1 側)

STEP 5: ジャンパ 6 本 ​

ジャンパ配線

フラッシュピン信号接続先備考
32VDDソケット 28 番パッド(+5V)必須: 電源
31/WE+5V(32 番と共通でよい)必須: 実機での誤書き込み防止
30A17GND(ソケット 14 番パッド)曲げる。ROM は下半分
24/OEGND(同上)曲げる。常時出力有効
2A16ソケット 22 番パッド(基板 A16)曲げる。バンク信号を引き回す
1A18GNDはみ出し。アドレス固定

配線のしかた — 基板にもソケットにもはんだしない ​

ソケットを付ける前に線を仕込む必要はない

ジャンパの相手(ソケット 22 番・28 番)は、フラッシュの 24 番・30 番を曲げるので空き穴になる。そこへ線の先を挿せば信号が取れる。ソケットと基板の間に線を挟む/基板裏のソケットピンから引き回す、のどちらも不要。

取りたい信号取り方
+5V(ソケット 28)曲げた 30 番で空いた 28 番の穴に線の先を挿す
A16(ソケット 22)曲げた 24 番で空いた 22 番の穴に線の先を挿す
GND(ソケット 14)挿さっている フラッシュ 16 番の足(= ソケット 14 = GND)の肩にはんだ。穴を使わない
  • 丸ピンソケットは 0.4〜0.6mm の線をしっかり掴む。UEW(0.3mm 前後)は細くて抜けやすいので、すずめっき線(0.5mm)かピンヘッダの切れ端に UEW をはんだして、その先を穴に挿す
  • はんだ付けは「フラッシュの足 ⇔ 線」だけ。ソケットにも基板にも触らないので、配線ごとチップを抜けば書き直しに持っていけるし、失敗しても基板は無傷
  • +5V の 2 本(32・31)はまとめて 1 本にして 28 番へ、GND の 3 本(30・24・1)はまとめて 16 番の足へ、A16(2 番)だけは単独で 22 番へ
  • 線はフラッシュの上を這わせ、カートリッジの殻に当たらない高さに。曲げた足と隣の足(3・23・25・29)に触れないこと

どうしてもソケット側に固定したい場合は、ソケットを付ける前に基板の 22・28・14 番のスルーホールへ線を通しておき、ソケットのピンと一緒にはんだする(線は 0.3mm UEW を横へ逃がす)。ただし後から直せないので、まずは上の「穴に挿す」方式を推奨。

STEP 6: 導通チェック → 実機起動 ​

導通チェック

通電前にテスターで:

  1. 32 番 ⇔ ソケット 28 番(基板裏のソケットピンで測る)、31 番 ⇔ +5V が導通
  2. 30 番・24 番・1 番 ⇔ ソケット 14 番(GND)が導通
  3. 2 番 ⇔ ソケット 22 番が導通
  4. 22 番(/CE)⇔ ソケット 20 番が導通(挿し位置ズレの検出)
  5. 曲げた足と隣の足(3・23・25・29)が非導通、+5V ⇔ GND が非導通

全部 OK ならファミコンに挿して電源 ON。タイトルの一枚絵とメニューが出れば完成。START でゲームが始まり、10 秒放置でプロローグに入る。

起動しないときの順番 ​

  1. ノッチの向き
  2. 32・31 番の +5V
  3. 22 番(/CE)⇔ ソケット 20 番
  4. 2 番 ⇔ ソケット 22 番の A16
  5. 24・30 番が GND
  6. ソケットのはんだ・スルーホール貫通

「画面は出るが曲が進むと止まる/絵が化ける」は A16 配線(4・5)を疑う。UNROM は曲データ・シーンコードをバンク切替で読むため、A16 が浮いていると特定の場面で壊れる。

ミラーリング設定の確認 ​

基板の V/H はんだパッド(CHR-RAM 脇)が V(垂直ミラーリング)側にブリッジされていることを確認。H 側なら V 側へ付け替える(本作は固定 1 画面でミラーリングに依存しないが、ROM ヘッダは vertical 指定のため合わせておく)。

参考 ​