ファミコンのスーパーマリオブラザーズのハックロムで2人同時プレイ出来るのがあって…
ちょっと話題になってたので実機で遊ぶためVRC6フラッシュカートリッジの作成方法をご紹介
2人同時プレイのパッチはネットで公開されてるので探してみてくださいね
VRC6に関してはこちらを参考に…
VRC6のゲームカセットは3本しかありませんので、一番入手しやすい「マダラ」をベースにします
マダラはVRC6b(MAP#26)ですが、hikiに書かれてるようにアドレスバスCPU A0,A1を入れ替えることによりVRC6a(MAP#24)に変更することができます。
まずは基板からPRGROMとCHRROMを外します
ピンアサインはDIPのAM29F040とほぼ一緒なので配線も4本で終わります
EPROMもピンアサインがほぼ一緒なので同様の方法で作成可能だと思います
※私が頒布しているTSOP変換基板を使うと修正が大変なのであまりオススメしません…
AM29F040の22ピン(/CE)と31ピン(/WE)の足を2個とも上げます。
PRGROM側の11ピン(A1)と12ピン(A0)からVRC6側の9ピン(A1)と10ピン(A0)へつながっている基板パターンをカットしやすい所でカットします。
VRC6側の9ピン(A1)と10ピン(A0)の手前でパターンカットでも大丈夫です。
PRGROM側の22ピン(/CE)をエッジコネクタ44ピン(CPU /ROMCS)、31ピン(/WE)をエッジコネクタの14ピン(CPU R/W)に配線します。
CHRROM側の22ピン(/CE)をVRC6の19ピン(PPU A13)、31ピン(/WE)をエッジコネクタの47ピン(PPU /WR)に配線します。
VRC6の9ピン(A1)と10ピン(A0)へPRGROM側の11ピン(A1)と12ピン(A0)の配線を入れ替えることで、VRC6a(MAP#24)やVRC6b(MAP#26)に変更することが出来ます。
ここはスイッチやピンヘッダ等で入れ替えできるようにしておきましょう。
※切替には秋月にある2回路2接点のスイッチ等を使えば大丈夫です。
kazzoで問題なく書き込みできれば完成!!
kazzo用のVRC6a(MAP#24),VRC6b(MAP#26)のスクリプトです。
※2020.08.01 バッテリーバックアップの読み書きに対応しました。
コメント
いや~、頑張っていますね。
画像の配線を見て、昔MDのバックアップ基盤を自作したのを思い出しました。
いつも質問ばかりですみません。
こちらの改造を、SST39SF040で行いました。
プログラムは問題無く書き込めるのですが、キャラクターに関しては、
Charcter Flash memory compare failed, offset 0x001000
がでて上手く書き込めません。
これは、使っているFLASHの問題なのでしょうか?
それとも、パターンカットとかありますでしょうか?
コメントありがとうございます。
うまく説明は出来ませんが、SST39SF040はコマンドアドレスがA14なのでCHR側でうまく書き込めないんだと思います。コマンドアドレスがA10でもある MX29F040 や AM29F040 を使えば大丈夫ではないかと。
ありがとうございます。
ebayで、AM29F040を買ってみました。
届くのに1ヶ月掛かりますが、届いたらやってみようと思います。
ebayで、AM29F040Bを買ってみました。
書き込みをしてみたところ、やはりPRGは書き込めるのですが、CHRがイレースで止まってしまいます。
使っている物が悪いのでしょうか?
コメントありがとうございます。
購入されたAM29F040Bが他のフラッシュカートリッジでも同様の症状であれば、AM29F040Bの不良でしょうけど…色々と試してみてはどうでしょうか。
あとはカセットのちょっとした接触不良でも書き込み不良になりますので、kazzoで書き込み中にカセットを動かしてみてエラーが出なければ接触不良は大丈夫かと思います。
あと書き込みのスクリプトを間違えていませんか?
VRC6aとVRC6bでスクリプトが違いますので間違っているとCHR側が書き込みできません。
記事中にもありますが…
VRC6の9ピン(A1)と10ピン(A0)へPRGROM側の11ピン(A1)と12ピン(A0)の配線を入れ替えることで、VRC6a(MAP#24)やVRC6b(MAP#26)に変更することが出来ます。
ですので配線変更にあったスクリプトで書き込みを試してください。
返信ありがとうございます。
スクリプトは間違っておりません。
配線に関しても、何度も何度も確認をしております。
PRGは書き込めるのですがCHRがイレースで止まるので、フラッシュを剥がしPRGとCHR入れ替えて付け直しても、同様にPRGは書けてもCHRが井レースで止まります。
もし良かったら一度見て頂きたいぐらいです。
コメントありがとうございます。
まずはVRC6aとVRC6bをそれぞれ書き込んだ場合どうなるのか、何のROMイメージを書き込んだのか、フラッシュカートリッジはVRC6aとVRC6bのどちらの配線なのかなど、詳細を教えていただけたらと思います。
フラッシュカートリッジのアドレスバスの配線とスクリプト(VRC6a,VRC6b)が違うとCHR側はイレースで止まってしまうのは確認できています。
返信ありがとうございます。。
まず書き込みをしたイメージですが、ここのスレにあります、2人同時プレイのスーパーマリオです。
VRC6aで書き込みをした場合、PRGは書き込めましたが、CHRはイレースで止まってしまいます。
VRC6bで書き込みをした場合、ソフトは吸い出したマダラでやりましたが、CHRはイレースで止まってしまいます。
OSは、Windows10 Proです。
書き込みに使用しているソフトですが、anago_wx ビルド Nov 18 2010です。
スクリプトは、vrc6a.afで、Flashの設定は、AM29F040Bを使用しております。
CHRに関しては、Flashの22PinをVRC6の19Pinに、31pinを47Pinに半田付けしています。
書き込みには、kazzo-BKを使用しております。
コメントありがとうございます。
スクリプトは最新に更新されてるので、上記の「kazzo_VRC6ab_SRAM」を使用してみてください。
マダラをベースにカートリッジを作成している場合はマダラはMAP#26(VRC6b)で、2人マリオはMAP#24(VRC6a)ですが、フラッシュカートリッジのアドレスバスの配線変更はされてますか?
もしされていないなら記事内を参考に加工して書き込みを再度試してみてください。
———————————————————————–
PRGROM側の11ピン(A1)と12ピン(A0)からVRC6側の9ピン(A1)と10ピン(A0)へつながっている基板パターンをカットしやすい所でカットします。
VRC6側の9ピン(A1)と10ピン(A0)の手前でパターンカットでも大丈夫です。
パターンカット後、PRGROM側の11ピン(A1)と12ピン(A0)からVRC6側の9ピン(A1)と10ピン(A0)へ配線します。A1とA0を入れかえれば(VRC6a,VRC6b)に切り替えることが出来ます。
ご返信ありがとうございます。
このスレで書かれていることは、全て実行しております。
その上で、anago_wxで2人マリオを書き込みしようとしております。
PRGは問題無く書き込めます。
しかし、やはりCHRは、イレースで止まってしまいます。
今回頂きましたスクリプトも使用しております。
チップの種類も
AM29F040Bと、AM29F040B_2で試しました。
AM29F040Bはイレースで止まります。
AM29F040B_2は、0x001000でエラーで止まります。
テスターで、全てのpinの確認もしました。
もはや何が悪いのか判りません。
イレースで止まる場合、何が原因なのでしょうか?
色々なパターンが有るかと思いますが、判る限りで教えては頂けませんでしょうか?
すみません。
コメントありがとうございます。
何度かお聞きしていましたが、まずはフラッシュカートリッジのアドレスバスの配線変更は実際どうされていますか?詳細をお願いします。この箇所に問題があるとCHR側がイレースで止まったままとなります。
なにも触っていないです。
x.com twitter.com
ここのページに書かれている事をしているつもりなのですが、何かあるのでしょうか?
一度、27c2001に焼いて作ってみたところ、ばくてんさんのツイッターにある画面になったことがあります。
このときは、単純にマスクロムを剥がして、27c2001を半田付けしただけです。
何をどうすれば良いのでしょうか?
教えて頂けますと幸いです。
コメントありがとうございます。
記事内に記載されてますので加工していなければ動作しません。
詳細は記事内を確認してください。
—————————————-
PRGROM側の11ピン(A1)と12ピン(A0)からVRC6側の9ピン(A1)と10ピン(A0)へつながっている基板パターンをカットしやすい所でカットします。
VRC6側の9ピン(A1)と10ピン(A0)の手前でパターンカットでも大丈夫です。
VRC6の9ピン(A1)と10ピン(A0)へPRGROM側の11ピン(A1)と12ピン(A0)の配線を入れ替えることで、VRC6a(MAP#24)やVRC6b(MAP#26)に変更することが出来ます。
ここはスイッチやピンヘッダ等で入れ替えできるようにしておきましょう。
※切替には秋月にある2回路2接点のスイッチ等を使えば大丈夫です。
PRGROM側の11ピン(A1)と12ピン(A0)からVRC6側の9ピン(A1)と10ピン(A0)へつながっている基板パターンをカットしやすい所でカットします。
この部分ですが、VRC6自体を一度剥がし、VRC6側の9ピン(A1)と10ピン(A0)を足を曲げております。
つまり、ここのスレに書かれているAM29F040Bと同じような事をしております。
その上で、PROGRAM側と、VRC6側を繋いでおります。
パターンをカットしていないことが原因なのでしょうか?
コメントありがとうございます。
おそらく不具合はその部分で間違いないでしょう。
VRC6のそのピンは他にもつながっていますので、記載通りの箇所でパターンカットしないと問題が発生するかと思います。
もしそれでもうまくいかない場合はもう1つ作成してみてください。今の基板では弄りすぎて何か他の不具合が発生してるかもしれません。その際はアレンジ無しで記事どうりに作成されることをオススメします。
新たにマダラのカセットを用意して、今度はアレンジせずに制作致しました。
相変わらず、PRGは書き込めルのですが、CHRはダメです。
やはりCHRのerasingで進みません。
1時間ぐらい放置致しましたが、erasingのままです。
正直一体何がダメなのか、もう本当にさっぱり判りません。
何かほかに原因は考えられませんでしょうか?
コメントありがとうございます。
そうですね…
他の方は問題なく作成されているので、申し訳ないですが他に原因が考えられません。
強引な方法ですがCHR側のFlashROMをROMライタなどで書き込んで、基板にハンダ付けし正常に動作するかどうかですね。そうすれば基板の配線等が問題ないかどうかはわかるかと思います。
CHR化けするようであれば配線等に何かしら問題があるかと。
お忙しいところ、ご返信誠にありがとうございます。
x.com twitter.com
CHRは、22PinをVRC6の19Pinに、31pinを47Pinに結線する以外の改造は無いですよね。
すでに3本、同じような状態です。
一つ教えて頂けませんでしょうか?
このツイートで、1回目キャラクターが化けているかと思います。
何をどのように変更されて、旨く表示したのでしょうか?
初歩的な質問で申し訳ございません。
何卒よろしくお願いします。
コメントありがとうございます。
CHR側の配線は記事内の…
CHRROM側の22ピン(/CE)をVRC6の19ピン(PPU A13)、31ピン(/WE)をエッジコネクタの47ピン(PPU /WR)に配線します。
のみです。
TLにも書いているとおり「フラッシュカートリッジのアドレスバスの入れ替え」を行ってます。以前にも何度か返信した…
PRGROM側の11ピン(A1)と12ピン(A0)からVRC6側の9ピン(A1)と10ピン(A0)へつながっている基板パターンをカットしやすい所でカットします。
VRC6側の9ピン(A1)と10ピン(A0)の手前でパターンカットでも大丈夫です。
VRC6の9ピン(A1)と10ピン(A0)へPRGROM側の11ピン(A1)と12ピン(A0)の配線を入れ替えることで、VRC6a(MAP#24)やVRC6b(MAP#26)に変更することが出来ます。
この内容ですね。
CHRがイレースで止まるのは、書き込むMAP#とフラッシュカートリッジのMAP#が違うことでも起こります。TLのCHR化けはマリオ2人用はMAP#24(VRC6a)なのにマダラのMAP#26(VRC6b)の状態のフラッシュカートリッジに書き込んだからです。なのでアドレスバスの入れ替えを行い、フラッシュカートリッジをMAP#24(VRC6a)に変更したと言うことです。
kazzoでマリオ2人用を書き込む場合
1:スクリプトはVRC6a.agを使う
2:マリオ2人用のROMイメージを準備
3:自作したフラッシュカートリッジをkazzoで書き込んでみる
4:CHR側がイレースで止まるなら、中止してアドレスバスの配線を入れ替える
5:1へ戻る
6:CHR側が書き込めればOK、書き込めなければ何かしら配線などに問題がある
詳しい説明ありがとうございます。
僕が使用しているanago_wxでは、書き込むスクリプトとロムイメージのマッパーが合わなかった場合、(例 2人マリオをVRC6bで書き込もうとした場合)
mapper number are not connected
script:26 image:24
等というエラーが出て、そもそも書き込みが行えない状態です。
過去に一度、PRGとCHRを27c2001(EP-ROM)に焼いて、PRGのアドレスバスを入れ替え基板に半田付けしたときに同様の画面化けが起こりました。
そのときは、PRGの11pinと12pinのみ、VRC6の9pinと10pinに入れました。
VRC6の対応pinは浮かせて半田付けをし直しました。
PRGの11pinはVRC6の10pinへ、PRGの12pinはVRC6の9pinへと結線しました。
そのときは、焼きミスしたのかな?と思っていたのですが、今一度やってみます。
CHRのみEP-ROMに焼いたら上手くいきました。
お騒がせしました。
細かく教えて頂き本当にありがとうございました。