2011年3月31日木曜日

ファミコン マッパー0のFlashカートリッジ製作方法

マッパー3のフラッシュカートリッジ製作方法はこちら

今回マッパー0のFlashカートリッジを作る機会が出来たので、折角ですから制作方法を書いてみたいと思います。

ちょっと贅沢な使い方ですが、マッパー0の基板に直接AM29F040Bを取り付けします。

マッパー0では使用するデバイスによって74xx00は必要ないですが、今回使うAM29F040Bの場合は必要です。

【使う材料】

・マッパー0(HVC-NROM)の基板

・FlashROM(AM29F040B)×2個

・74xx00(NANDゲートIC、xxの部分はLSやHCなどで)

・工作に必要な道具類など

【使用する基板の選択】

PICT5860

マッパー0(NROM)はファミコン初期に使われていたメモリコントローラなどの小細工が一切無いタイプのものですが、使われている基板は各ソフトメーカー独自の基板含めていろいろあります。

PICT5854

写真以外にもあると思いますが、基板にはマスクROMと呼ばれる書き込みできないデバイスが2個、基本メインプログラムが入っているPRG-ROM(256Kbit=32KByte、又は128Kbit=16MByte)と、キャラクターデータが入ってるCHR-ROM(64Kbit=8KByte)が載っています。

PICT5867

マッパー0のFlashカートリッジ製作で最も使いやすいものはHVC-NROM-256K-02基板。

PICT5866

他にはHVC-NROM-03とサンソフトの基板も候補に上げられますが、HVC-NROM-256K-02基板よりも若干手を加えなければいけません。

HVC-NROM-03はPRG-ROMが16KByte用の基板なので、PRG-ROMの27pinとPCB(=基板)の35pinを追加接続する必要があります。

サンソフトの基板はHVC基板(Nintendo純正基板)とROMの取り付けが表裏逆になる為、後述する基板の加工(一部切り落とし)を工夫する必要があります。

PICT5859

基板の探し方としては上の写真を参考に書くと、端子が金色で先端部分が緑でないもの、を探すとHVC-NROM-256K-02基板かHVC-NROM-03を引く確立は90%以上、さらに事前にPRG-ROMが32KByteのゲームを調べておけばHVC-NROM-256K-02基板だけに的が絞れるでしょう。

【追記:20110402/00.02】

コネクタをチェックした後はカートリッジの中をのぞいてROMの足がちゃんと見えるか確認しましょう。

中には黒つぶしタイプも存在するので注意です。

慣れるとカセットを持っただけで重さで判断できるようになります(笑

PICT5855

端子が銀色(サンソフト以外)の基板はパターンが剥離してたりして質が悪いのでおすすめしません

今回の製作例では無難なところでHVC-NROM-256K-02基板を使います。

【キャラクター表示方法の切り替え】

ファミコンではキャラクターの表示方法で垂直ミラー(Vertical)表示と水平ミラー(Horizontal)表示の2通りの表示方法が使われていますが、マッパー0(&2&3)ではその切り替えを基板上で行います。

vhchange

基板を見るとV、Hと書かれたパターンがあり、どちらかをPCBの18pinと接続することにより表示方法が変わります。

VとPCB-18pin接続で水平ミラー表示、HとPCB-18pin接続で垂直ミラー表示となります。

当然ながらゲーム製作時にどちらか決まっているのでゲームプレイ時には合わせないと正常に表示されませんが、Kazzoで書き込む際にはどちらでも構いません。

【殻割りとマスクROMの取り外し】

この項は軽く流します。

殻割りにはいろいろな方法がありますが、ばくてんさんトコで紹介されてるビデオが簡単、かつお手軽かもしれません。

まずはマスクROMを取り外さなければいけませんが、今後2度と使わないつもりなら、ニッパーなどでマスクROMの足を全て切ってからハンダを取り除いても構いませんが、ハンダ吸い取り器で取ると綺麗に取れます。

序に、V/Hの切り替えが必要な人は、通常どちらかがショートしてるので、マスクROMを取り除いた序にハンダを吸い取っておきましょう。

【AM29F040Bと74xx00の加工】

PICT5872

マッパー0の基板はPRG-ROM、CHR-ROM共に28pinデバイスが取り付けられているので、32pinのデバイスをそのまま取り付けることができません。

基板にはメモリデバイスの尻合わせ取り付けするので、2個共に、1、2、31、32ピンの足を浮かせる必要があります。

PRG-ROM側に取り付けるAM29F040Bはさらに22、24ピンも浮かせます。

040bprg 040bchr

長さ的に必要ない先端部分は短くカットしても構いません。

一応、Vccへ接続するピンは3つの足を上のように繋げる必要はありません。

好きな箇所のVccへそれぞれ入れればOKです。

次に74LS00の足を加工しますが、その前に少し説明を。

nand0

使用するNAND回路は上の1回路のみですが、使用しない入力ピンは誤動作、ICの破壊を防ぐためVccかGNDへ接続しておきます。

(LSは必要ないかもだけど癖付けのためおすすめします)

nand1

今回の配線は上のように。

74xx00

7pin(GND)は基板に固定するため元のままで、未使用ピンはカット、他は伸ばしてハンダ付けします。

【基板へ取り付け】

PICT5862 PICT5864

配線する主要な線の信号名だけ写真に記しておきます。

V/Hの切り替えスイッチ付ける人は先に取り付けておくといいかもしれません。

後からだとCHR-ROM側に載せたAM29F040Bが邪魔でハンダ付けしにくくなります。

(表からハンダし難い場合は裏のパターンにハンダ付けも可能です)

スイッチの取り付けは各自好きな方法で。

今回はH(垂直ミラー)固定で作ります

PICT5885

伸ばした足以外を全てをデバイスの尻合わせでハンダ付けします。

CHR-ROM側のAM29F040Bの31ピンをPCB-47ピンへ接続します。

この時、あまり広範囲にハンダを盛らないように気をつけましょう。

PICT5903

PRG-ROM側のAM29F040Bの31ピンをPCB-14ピンへ接続。

各AM29F040BのVccは適当なところへ全て接続。

PICT5901

74LS00のGNDは固定の意味も兼ねて基板の空きホールへ接続。

Vccは適当なところから持ってくる。

PICT5904

上のほうに載せた74xx00の配線表に沿って24(/OE)、31ピン(/WE)を接続。

22ピン(/CE)を、元々24ピンが入ってたピンホールへ接続。

以上で基板の製作は終わりです。

【ケースの加工】

28pinデバイスの箇所に32pinデバイスを無理やり取り付けしてるので、そのままではケースに収めれませんから、少しケースも削ります。

PICT5892 PICT5893

丸で囲った部分を、AM29F040Bが当たらないように削除します。

端子に取り付けた配線を噛ませないよう、該当する部分も削っておきます。

PICT5897 PICT5896

PICT5898

無理なく収めることが出来れば完成です。

【読み込み&書き込みテスト】

正常に使えるかどうか、Kazzo+Anagoを使ってテストします。

PICT5907

まず、AnagoGUI用のマッパー0(nrom)とマッパー3(cnrom)用のスクリプトを左のファイル置き場からダウンロードします。

ファイル名はn_cn_GUI_script.zipです。

AnagoGUIではダンプとプログラムのスクリプトは一つに統合されてます。

anagoguicn

今回はマッパー0なので、nrom_GUI.afを使います。

読み込み、書き込みが正常に出来ることを確認しましょう。

上画像の右、書き込みでワーニングメッセージ出てますが、ミラーリングが合わないとなっているだけです。

V/Hが違っていてもデータの書き込みには全く影響しないので、書き込み時には特に気にしなくても構いません。

終わり。

【追記:20110402/23.30】

マッパー0にはPRG-ROMの容量が16KByteのものも存在しますが、今回作ったPRG-ROM32KByte仕様のカートリッジでも問題なく動かせます。


4 件のコメント:

外道猫 さんのコメント...

ぽんRevさん、こにちては~(^O^)/

マッパー0の基板だけでも色んな種類があるですね。
CHR-ROMは全て8Kbyteで共通のようですが、PRG-ROMが16Kbyteと32Kbyteの2種類…
やはりパターンの走り方が異なるんでしょうか。
ココは無難に32Kbyteの基板をチョイスすべきでしょうね。
でも、個人的には以前ぽんRevさんが作られてたようにNROM以外の基板で作った方が、収まりが良いんじゃないかと思ったり。

そうそう、今日CoCoNet液晶工房やってましたよ。(笑)
MBM29F800TA、在庫が100個ぐらいに増えてました。1つ99円で。

ぽんRev さんのコメント...

外道猫さん

どもども~(^-^)
さばくったらHVC-NROM-02Sという基板も出てきました(笑
まだ他にもあるでしょうねぇ。

あ、PRG-ROMが16Kのものも、今回作った#0Flashカートリッジで動きますよ(^-^)
その辺は何も考えずにAnagoとKazzoにお任せしていただければw
後で本文に追記しておこう。

>パターンの走り方が異なる
因みに、単純にアドレスバスが1本少ないだけで、ファミコンでの読み込みは同じように読まれてます。

>NROM以外の基板で作った方が
デバイスを直付けするなら加工的な観点からして今回のNROM基板を使ったほうが楽ですよ。
デバイスの使い回しとか、異なるデバイスの検証とかするのであればSLROM基板を代用するほうが良いかな(^-^;

>1つ99円
おぉ、それは安い!
変換基板のこと考えたらとってもリーズナブルでGoodです。
その場にいたら幾つか買ってただろうなぁ(笑

ところで、本家見るとCoCoは定休日無しで営業するらしいですね。
今度ソッチ行った時にも開いてるといいなぁ。

外道猫 さんのコメント...

ぽんRevさん、こにちては~(^O^)/

今日はマッパー0の製作をしようと思てたのに、昨晩使用した点鼻薬のせい?か頭痛に悩まされ続けますた。
花粉症は辛いです。(/ДT)

CoCoNet液晶工房ですが、休みが無い代わりに6月30日で店舗自体が無くなるようです。
なんとも悲しい話です。(´・ω・`)

ぽんRev さんのコメント...

外道猫さん

こんちわ~
私は杉は大丈夫ですが5月からの麦がダメなんです(-_-;
目薬切れたから買ってこないといけない。

#0は作るならVで(笑
真ん中とHをハンダ付けでVですので。

CoCoNetは6月末までですか・・・
やっぱ黄金休みに是非行きたいですねぇ。
まだ一度も行ったことないですが、アキバから工作系の店が無くなるのは寂しいですね。