2011年3月25日金曜日

27C322(16bit)を8bitデバイスとして使う

私は32MbitのEPROM、27C322(16bit-bus)を沢山持ってます。

PICT5829

写真はメガドラ弄ってるときに安く入手したものの一部。

で、ネットを徘徊してる時にコチラで8bitデバイスとして使える方法が載っていたことに気が付いた。

リンク先の人はこの方法をテストしてないとのことだったので動くかどうかは定かではなかったけれども。

今までスーファミのカートリッジを弄ったこと無かったけど、手っ取り早く32Mbit-8bit-busを確認するには丁度いいってことで、スーファミのカートリッジを弄ってました(笑

PICT5838 PICT5840

スーファミ以外でも使う可能性が無くも無いので、とりあえず取り外し可能なタイプで。

74xx245は74xx645でも可。

スイッチについては後述。

PICT5841

配線がごちゃごちゃしてますが、ぶっちゃけロジックの向き間違えたので結果こうなっちゃいました(^-^;

ほんとはもうちょっとスッキリできる。

245(645)を2段重ねにすればさらにスッキリでき、スーファミなら全部カセット内に収めることも可能。

んで、早々に出来るかクロノトリガーを27C322に焼いて試したところ、初回テストでは動かなかった(笑

原因としては、この回路では上位バイトと下位バイトを交互に続けて読み込めるわけではなく、上位バイト16Mbit読んだ後に下位バイト16Mbitを読み込む、という切り替えになってるからなのでした。

3228mbc3

正常なクロノのデータと、27C322に書き込み後ホンコンで吸い出したクロノのデータを比較してみると、0x00000から1バイトおきにデータを読み、0x200000から0x00001から1バイトおきに読んでるのが確認できる。

・・・書き方へたでわからないかな?(^-^;

まぁ、とりあえずデータがズレて読み出されるわけなので正常に動くわけが無いよねw

ってことで、バイナリを8bit仕様で正常に動かせるようにコンバータを作った。

ファイルは一昨日左のファイル置き場へ既にアップ済みです。

(サーバの不具合なのか、エラーになる場合があるようですので、その場合は何度かトライしてください)

3228mbc1

メインは3228mbc.exeで、27C322が32Mbitなので32Mbitのデータまで対応してます。

48Mbitのゲームなら32Mbitと16Mbitに、64Mbitなら半分に切ってからコンバートする必要がある。

16Mbit以下のデータの場合は仕様上データサイズが倍になります。

使わないデータ領域は全て0xFFで埋めます。

16Mbit以上のデータは32Mbit固定になります。

4Mbit(512KByteね)のデータなら8Mbitのデータが作成されますが、ROMライタで焼く際に8Mbit以降のデータを0xFF等で埋めるようにすればOK。

3222in1.exeはオマケ・・・というか、仕様上、上位バイトと下位バイトを別々に使うことが出来るので、16Mbit以下のデータを焼く場合は2個1できるように序に作った(笑

スイッチが付いてるのはそのためで、74xx139の4pin、5pinをスワップして上位バイトで使うか、下位バイトで使うか選択してます。

3228mbc6

スイッチは2回路2接点タイプを使えば1個で済む。

2個1で作成されるファイルサイズは32Mbit固定です。

3228mbc2

で、データ一つの場合は322_8bit.binが作成され、2個1の場合は32282in1.binが作成されるので、そのままROMライタで焼くだけ。

3228mbc4

クロノの場合はこんな感じで。

3228mbc5

2個1の場合はこんな感じになる。

データの並びがどうなってるかよ~く見てね(笑

こうすることで、無事スーファミで正常に動かすことが出来た(^-^)

もちろんセーブも問題ないし、スーファミで読めるんだから当然ながらホンコンなどでも正常なデータとして出てくる。

コンバートはちょっとメンドイけども、32Mbit容量で16bit-busのデバイスを8bit-busで使えるのでそれなりに使えるんではないかなぁ~と。

まぁ、しかし、27C322を持ってる人と、対応するROMライタを持ってる人は限られてしまうかな(^-^;

運よく既に作ったけどお蔵入り状態の人は試していただければ。

因みにクロノはHiROMでマリコレ、ゼルダはLoROMです。

今回スーファミ基板弄って感じたことは、デバイスの容量問題は別として、ファミコンよりも簡単だ、ということですかね。

変なマッパー概念が無いためか、配線もそんなに難しくない。

SA-1とか特殊チップ積んでるものもあるけど、SA-1の場合は16bit-bus仕様のROM使ってるから27C322がそのまま使えるしぃ~。

メガドラの次に簡単な感じがしましたw

ファミコンのFlashカートリッジ作ったことある人は安心してスーファミに手を出してください(笑

.

ところで、例の地震の影響で先週の東京行きは中止になりました。

ホテル代とかは全て返金されたので、そのお金で東京にいる兄のところへ物資を送ったり、募金したりしました。

いろいろと思う事はありますが・・・一刻も早く全てが収束することを願います。

そんなことで東京へ行けなくて残念なわけだったのですが、おかげで嬉しいことがありました!

PICT5842

なんと、某氏さん(許可とってないので一応伏せます(笑)が私が持ってなかったゼルダコレクションを譲ってくれました~\(^-^)/

これは超嬉しかったw

おかげさまでGCの非売品ソフトコンプ(無理w)へ一歩近づきました(笑

感謝感謝です(-人-)

これはその内ねこかぶさんのツールを使っていろいろと遊んでみたいと思います(ぉ

N64のデータ書き換えて遊べるんだったよね?確か。

PICT5843

それと、オマケで被爆対策な玉w

いざという時はコレ飲んで逃げます(笑

あ、一応補足しておくと、個人での入手は医者を通さないと無理だそうです(^-^;

ぶっちゃけ賞味期限(?)が切れてるそうなので、まぁ、お守りですね。

使わないのが一番ですから~

みなさん元気に、前向きで行きましょ~

7 件のコメント:

na6ko さんのコメント...

最上位アドレス(A22)切り替えじゃなくて最下位(A0)切り替えにすればツールはいらんと思いますよ。スーファミはよくしらないけどROMのデータは後ろ詰めなのかな?

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

お世話になります(^-^)

>最上位アドレス(A22)切り替えじゃなくて最下位(A0)切り替え
A22は使ってないのでA21・・ですよね?
ってことは、アドレスずらして配線し直さなきゃいけないって事か(^-^;
う~む・・・またモジュール作った時にでも確認してみますね。
スーファミのデータは前詰めです。
64Mbit仕様基板で512Kのデータ動かす場合もファミコンみたいに繰り返し同じデータ書き込みとかしなくていいから楽ですね(笑

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

オフ会は残念でしたねぇ。(´・ω・`)

あの日以降、CoCoNet液晶工房は閉店続きです。
中国人観光客が秋葉原から姿を消したというぐらい閑散としてる状態なので、直営店の店員さん達も帰国されてるかもですね。

計画停電も来年まで続くらしいし、現状を見るに関東もいつ避難勧告が出るか…
そう考えると、無理してもオフ会開いといた方が良かったかも?(^_^;

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

外道猫さん

残念でしたねぇ・・・
ギリギリまで行くつもりだったんだけども(^-^;
Aitendoはネット動いてますよね、確か。
東京行き諦めた後にネットで注文して届いたから(笑

もう、こうなったら、アキバ全体がこっち来ていただくしかw

trickart さんのコメント...

ゼルダコレクションですか。いいですよね。
この前ハードオフで7000円だから買ってしまいましたw
ゼルコレはN64だけじゃなくqdファイルのところを書き換えるとディスクシステム(どう森+とかのqdファイル)やファミコン(NESファイル)も出来るみたいです。
情報元 てきとうなブログさん コメント欄から
http://ayasuke.exblog.jp/7983954
あとqdファイルがいけるのならFDS<=>MGD1コンバータを使ってFDSを変換して3バイト削れば普通のディスクシステムのROMも書き換えられるかもしれませんね。
あ、あと勝手にリンクさせてもらってますw

slpcat さんのコメント...

27c322はその回路だと複雑な読み方をしていますね。またそれに対応するプログラムをかけるとはすごいですね。
謎の錠剤ですが、ヨウ素剤でしょうか?甲状腺に蓄積したものには効くみたいですが、プルトニウムなどの放射性物質は肺と肝臓にたまるそうです。

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

trickartさん

コレクション7千円ならオクと比べても手頃な値段ですね(^-^)
なかなか値が下がらないので今まで見送ってきましたが、今回苦もなくいただけて本当にありがたいです。

qdファイルは、片面のゲームならNESと同じく普通に遊べると思います。
が、おそらく両面のゲームはエンコードしても無理かも?な気が。
というのは、NGCのディスクに入ってる両面のqdファイルはディスクの入れ替えしなくていいようにコードが変更されてるので。
そこを書き換えた後でエンコードすれば動かせるかもしれませんね。
mgd1cnvはNGCのqdに対応してないので、今更必要ないかもだけど今度対応させとこう(笑

リンクありがとうございます。
こちらでは記事中のリンクはするかもですがサイドには一切置かないのでご了承くださいませm(_ _)m


slpcatさん

16bitデバイスを無理やり8bitで使うので仕方がないですね(笑
とりあえず正常に動かせただけで満足です(^-^)
na6koさんが書かれたアドレスバスずらして同じようにデータが出てくれば楽なんですけども、次の製作は未定です(^-^;

>謎の錠剤
当たりですw
これは、頂いた方の言葉を借りると「ネタ的ヨウ素」なので本気で服用することはまず無いかな(笑
もし飲むにしても、それなりに劇薬だそうなのでちゃんと調べてからでないといけませんね。