2011年11月27日日曜日

MD Sweet Rammy ver.0.03 高速版公開!

先日までスーファミで試したいことがあったけど、その後はやりたい事が無く(やる事はあるw)ボケ~っとしてました。

今週末はダラダラ終わるかぁ~、と思っていた時、Sweet Rammyの高速版が公開されました~\(^-^)/

avrrammy4

バージョンは0.03で、今回のバージョンではAVR(ATMEGA88)仕様ケーブル(以下高速ケーブル)限定になります。

これにより、v0.02+高速ケーブルでは使えません

v0.03+低速ケーブルも不可です。

【追記:20111205/22.00】

大事な事なので最初に追記しておきます。

低速(v0.02)ではターミナルの設定でフロー制御は「オフ」でしたが、v0.03では「ハードウェア」にしてください。

そうすると、ROMデータの読み込み、セーブデータの読み書きは問題なくできます。

少し前までオシレータが14MHzだと不安定・・・と書いてましたが、これは私の設定間違いでしたので訂正しますm(_ _)m

詳しくはv0.03アーカイブ内のReadme.txtを読んでね。

と、人に示す前に自分もちゃんと読みましょう・・・反省orz

セーブデータの読み書きだけであれば、今まで通りv0.02+低速ケーブルでもストレス無く使える(?)かと。

今後はもしかすると低速&高速コンパチになる可能性があります。

主な製作(回路)はSweet Rammyのページを参考にしてもらうとして・・・高速ケーブルでは2コン側D-SUB9pinコネクタの配線に9本全て使用するので、パチファミコントローラは流用できませんw

メガドラや3DO、ATARI仕様コントローラから取ると良いでしょう。

で、早々に作ってみました。

PICT6704

思ってたより場所使いましたね(^-^;

当初はブレッドボードを使う予定だったんだけど、ウチにあるのは小さいのしかなく、配置が困難だったので基板で作っちゃう事に(笑

まぁ、部品の在庫はあるので、上の基板で変更が困難な場合はまた作ればいいや、って事でw

今回はATMEGA88-20を使うので、最初にRammyAVRのプログラムを書き込む必要がある。

PICT6701

私はAVRが認識するかケーブル付ける前に確認して序に書き込んだのですが、当然ケーブル付いてても問題ないです。

上写真の書き込み機は電源供給タイプなのでISPコネクタに付けるだけ。

avrrammy1 avrrammy2

AVR Studio4で書き込む場合、Fuseの設定は16進数なので、左上のようにする。

問題なく無事書き込めた(^-^)

因みに、Sweet Rammyのページで紹介されてるChaNさんのAVRライター(or互換物)でやる場合は、

PICT6703

・・・こんな感じで・・・電源だけ別途供給してあるけど(笑

もちろん、ケーブルまで完成させておけばメガドライブの2コンから電源が取れるのでご安心をw

avrrammy0

ちゃんとCOMポートに繋がっていれば問題なく書き込めます。

注意する事は、この書き込みツールはXPなどで使う場合はGIVEIO.SYSが必要になります。

PICT6700neo1 neo3

高速ケーブルの製作ができたらいよいよ動作確認ですが、今回は久々にNEOのFlashカートリッジ出して使ってみましたw

・・・いや、別にどれでもいいんだけどね・・・

PICT6710

で、ジャンパは上の感じで、って、これは私の覚え書きw

とりあえず、使ったオシレータは11.0592MHzだから2箇所ともジャンパで、通信速度はそれぞれテストしてみた。

PICT6716 ←128KByteのブロックアウト

時間的に簡単にテストできるのでサイズは小さめなもので。

速度をアバウトに計った結果、

・低速ケーブル

4800bps---256KB--600sec(10min)
----予想---2048KB-4800sec(80min)
----予想---4096KB-9600sec(160min=2h40min)
・高速ケーブル
19200bps---256KB-97sec(1min37sec)
57600bps---256KB-87sec(1min27sec)
115200bps--256KB-87sec(1min27sec)

上のような結果に。

(サイズはHEXで、BINにするとサイズは半分になる)

【訂正】

上の結果で19200bpsの時間ですが、出来上がったデータが落ちてました(^-^;

オシレータを14MHzに変更したり、ロジックを変えても同じ現象でした。

PC本体や接続の環境に依存するのか、57600bps以降は速度変わってない感じですね。

PCマザボ直付けのCOMポートでもUSB-シリアルでも同じような結果だった。

速度的にはYoGirlさんのテスト結果とほぼ一致していることから、多分、製作はあっている・・・と思う(^-^;

低速と比べると格段に速度がアップしているのが一目瞭然です。

速度が速くなったのがわかったところで、次はデータ転送の信頼性をテストします。

いくら早くなってもデータ落ちしてたらダメですからねw

PICT6717

テストで使うゲームは勿論(?)コレ、SUPER STREET FIGHTER2 The New Challengers(相変わらず長w)です。

avrrammy3

これは前に全サイズを読み込めるマクロを作ってある(アップ済みなので必要な人は左のファイル置き場からどうぞ)ので、いざ!セットしてGo!

avrrammy6

上の画像はもう少しで全部読み込めるぞ~な瞬間(笑

マクロは問題なく動いててくれたようですw

avrrammy5

でもって出来上がったHEXデータをBINへ変換してハッシュを見てみると上の感じ。

サイズはHEXで10MByteありますが、読み込み時間にして1時間弱ぐらいでした。

・・・低速だったら今日は絶対にアップできてないね(笑

で、肝心のデータ転送の信頼性は・・・多分、大丈夫でしょう(ぇ?

SSF2NCはもともとがチェックサムあってないので、エミュで確認したところで合わないからわかんないのよね(^-^;

あ、もちろんエミュでの動作は問題ない。

一応、この他にもソニックとランドストーカーも同じオシレータ&速度で試しましたが、データは完全一致なので、おそらく現状の設定では問題ないかな。

今日はここまでだけど、次はオシレータを14.7456MHzに変えて試してみたりしますかね。

とりあえず、速度は6倍以上、データ落ちは無い、といったところで、とっても満足な結果でした(^-^)

YoGirlさん、とりあえずここまでの開発お疲れ様でしたm(_ _)m

【追記:20111128/21.15】

もう少し動作の詳細を試したので、ここに追記しておく。

test:Blockout
14-hc04-19200-bad
14-hc04-57600-ok
14-hc04-115200-ok
14-ac04-19200-bad
14-ac04-57600-ok
14-ac04-115200-ok
14-hc14-19200-bad
14-hc14-57600-ok
14-hc14-115200-ok

-

11-hc04-19200-bad
11-hc04-57600-ok
11-hc04-115200-ok
11-ac04-19200-bad
11-ac04-57600-ok
11-ac04-115200-ok

結果は上の通り、14.7456MHzでも問題ないみたい。

テストしたカセットはブロックアウトで、オシレータとロジック変更して各データの読み込み精度を見たところ、どうも19200bpsの時のみ確定でデータ落ちするようです。(←これはRammyのページにも書いてある、あくまでv0.03でね)

ヘッダ表示程度なら問題ないんですけどね。

ってことで、v0.03ではSW1をCENTER(オープン)かRIGHTで使えば問題は無いってことで。

序に、そういえば今まで書いてなかったけど、ケーブルの製作&通信設定がちゃんとできてるか簡易的に判断する方法を。

1.MDとPCにケーブルを接続

2.PCでターミナルを立ち上げる(設定もしておく)

3.MDでSweetRammyを起動

という順番でやると、

avrrammy7 ←正常ならOKと表示される

avrrammy8 ←失敗すると文字化けする

上のように表示される。

失敗した時は文字化けの他に、バグった文字列がスクロールしたり、プロンプトだけだったりします。

文字化けはターミナルの設定違ってもなるので、ケーブルの前に設定見直すのが先かな。

因みにMDを先に立ち上げてからターミナルを起動すると、正常ならプロンプトだけです。

これはVer.0.02でも共通なので、ケーブル作ったらまず確認を。

正常な場合でも何らかの原因でバッファにゴミが残ってた場合、OK表示の前に何か不確定文字が表示されたりすることがあります。

2011年11月23日水曜日

リセットボタンでゲーム切り替え方法

先回、時間の都合で動画だけアップした切り替え方法を。

元ネタはSpritesMind.Netフォーラム内のコチラのスレッド

メガドラ系のフォーラムなのですが、マルチゲームカートリッジを製作するのに、74xx93(4bitバイナリカウンタ)を使ってリセットボタンでのゲーム切り替えを成功されてました。

んが、

・74xx93は生産終了品だから入手が難しいかも

・1回路分しか使えない

という理由で、私は汎用部品で入手しやすく値段も93と変わらない74HC393(Dual-4bitバイナリカウンタ)を使いました。

PICT6689a

これはパラレル版パソファミを作る際にも使われてますね。

ってことで、以下は74HC393を使った方法で書きます。

74hc393a

74HC393のピン配列と内部構造は上のようになっていて、1~6ピン、8~13ピンの2回路あり、4bitカウンタだから、Q0~Q3までを使うと1回路で2進数で1111=10進数で15=16回切り替えができることになるんだけれども、今回のようなROM容量を分割して使うことになると、分割量が増える=一つの領域が小さくなるし、さすがにちょっとメンドイよね(^-^;

ゲーム切り替え程度の使用であれば、2個1か4個1をよく使うと思うので、Q0とQ1を使うことを前提に。

共通部分は後にして、まずはメガドライブ基板のターゲットとなるピン。

PICT6691

B27ピンが/RESETピンで、ここと74HC393の1ピンを繋ぐ。

次にスーパーファミコンのターゲットとなるピン。

PICT6693a

カスタムIC(CIC)、所謂SFCのセキュリティICの7pinと74HC393の1pinを繋ぐ。

ここはPCBコネクタ25pinに繋がっているから、コネクタから配線してもいい。

カセットPCBによって場所がさまざまですが、このICは市販されてるニンテン公認カセットなら必ず付いてる。

(因みに、PCBコネクタ26pinが/RESETですが、ここでは機能しないの)

というように、MDとSFCで異なるのは上の箇所だけで、以降は共通です。

74hc393b

絵がへたくそですが、こんな感じに。

4in1なら、例えばAM29F032Bを使うならA20を74HC393の4pin(Q1)に繋ぐって感じ。

SRAMも同時に切り替えるのなら・・・ん~・・・

PICT6699

上のような感じで(ぉぃ!

一応、AM29F032Bと62256を同時に2in1した時の例。

SRAMは6264の代わりに2段切り替えにするので、62256のA14をVccかGNDで固定しちゃう。

4段切り替えならA14をQ0、A13をQ1に・・・でわかる?よね?

因みにファミコンは全く調べていない、というか時間が無かった(^-^;

う~む・・・かなり端折ったなぁ・・・ってか、要点しか書いてないな(汗

・・・ま、いっか(ぇ?

2011年11月21日月曜日

本体のリセットボタンで起動ゲームを切り替える

え~、先回GBCFlasherでスーパーファミコンのROMを焼きましたw

んで、実験結果が出た。

実験の内容は、タイトル通りですね(笑

今まではコッチで書いたようにトグルスイッチやジャンパを使って切り替えしてましたが、それをもう少し進化させてみよう、と。

トグルスイッチ法使ってる人にはそれなりに使えるかと。

元ネタはメガドライブで、コチラは既に動作確認済み。

んで、スーファミでもできないかなぁと、ターゲットのピンを探していたんだけど、今日見つかったw

・・・時間が無いのでとりあえず動画だけ(ぇ?

テストで使った基板がLoROMなので、適当に選んだLoROMのゲームを使用(笑

SRAM載ってないPCBつかったから、映像中のゼルダは正常には動作しませんw

この方法は、おそらく市販されてるどのPCBでも使えるハズなので、MAD-1使ってたりしても大丈夫かと。

使ったロジックが2回路分あるので、SRAM含めた切り替えもできるかなぁ、と。

自分でコレクションカセット作ったり、余った領域を有効利用するとかに使えるかな。

一応、論理的には回路一つで16個の切り替えができるけど、単純に1つの領域が少なくなっていくわけなので、まぁ、2個1、4個1がベストでしょう。

ってことで、詳細はまた後日。

【追記:20111123/00.40】

SRAM同時切り替えも問題無し。

PICT6687

DQ1・2とDQ5を入れてそれぞれのデータが消えない事を確認した。

2011年11月20日日曜日

GBC Flasher用FlashROM焼きアダプター?

ゲームボーイのFlashカートリッジを読み書きできるGBC Flasherを使って、GB限定ではなく、単にROMライターの代わりとして使うために、アダプターを作った。

頂いたMBM29F033Cの確認と、ちょっとSFCで実験をしたかったからね。

PICT6668

何でもいいからMBC5チップが載ったGBカートを用意して、MBC5とコンデンサ以外は全て取っ払う・・・配線挟んだりしてジャマだから。

DIP36-TSOP40 Adapter(Ⅱ)を使うので、上カバーにソケットを装着。

PICT6670

ケースの強度が心配だったので、穴あけは最小限で、PCBからパターンが剥がれないように注意しながら配線を。

配線は極力短いほうが良いけど、上写真ぐらいになっちゃうか(^-^;

DIP36-TSOP40 Adapter(Ⅱ)の1、2pinは修正済み、35pinには/WEを、36pinには/RESETを入れた。

/WEはスーファミに持ってくとA22と被るので、後でスイッチを付けてVccと切り替えする。

/RESETはスーファミではVccに繋がるのでそのままでOK。

mbm29f033c0

線を変に挟まないように気をつけて組み立て、動作確認。

うん、MBM29F033CもAM29F032Bと同じく、GBCFlasherで問題なく認識してる。

PICT6676

試しに風来のシレンGB2を読み書きしてみる。

mbm29f033c1

大丈夫だね。

ってことで、MBM29F033Cも普通に使えて良かった(^-^)

PICT6683

動作は問題無かったので、DIP36-TSOP40 Adapter(Ⅱ)に/WE⇔Vccのスイッチを付けて、ROM焼きアダプタもちゃんと組み立てて完成~

完全にROM焼き専用カートですw

・・・今思えば、手抜きせずに遊戯王のラベル剥がしておけば良かったな(笑

とりあえず今回は実験用だから、デバイス&スイッチ付けて半固定たけど、今後の予定としては、

tsop40ad←こんなヤツ

を付けるつもりw

某所で国内の4分の1の値段・・・って国内高すぎ・・・(-_-;

ま、これは手はんだできれば、だけど。

PICT6677

GBCFlasher用のROM焼きアダプタが無事完成して32Mbitまで普通に焼けるようになったので、今後は上のスーファミカセットPCBを使って実験してみる事にする。

・・・ま、大した実験ではないけど、MDと同じようにできるかなぁ、と思って。

因みに、GBCFlasherでデータを書き込むには拡張子をGB、GBC、SGBのどれかにしておく必要がある。

そんなトコで、使えるものは有効活用すると何かと便利なのです。

PICT6660

こんなのとかね~

【追記】

とりあえずGBCFlasherで焼いたデータがSFCで普通に動くか確認を。

PICT6686

ま、焼いたデータ再度吸い出してバイナリ一致してるから動くのはわかっていたけども、念には念をですね。

う~ん、GB焼き器でSFCを焼くって美しい~(←何が?

2011年11月19日土曜日

DIP36-TSOP40 Adapter (II)は・・・

ずいぶん前からBuyICnowを使ってますが、少し前にAM29F032Bの補給で買い物をしました。

PICT6662

購入したのはDIP36-TSOP40 AdapterのタイプⅡと基板に付いたままのAM29F032Bで、一番上のタイプⅠは参考で。

見てわかるとおり、タイプⅡのが基板小さいです。

032Bの基板は何かのメモリモジュールだと思うけど、何のメモリかはわからない・・・最初から切ってあったから(笑

んで、その際に、

PICT6664

スタッフさんから、AM29F032B互換のMBM29F033Cがあるけど欲しかったら送るよ~て言われ、アダプターとセットで頂いちゃいました(^-^)

Thank you for the staff(name is kept secret) of BuyICnow!

アダプターは以前も購入して持ってたけど、一度も使った事がなくて(ぉ、今回折角頂いたMBM29F033Cをスーファミで試しに使ってみようかなぁ、と。

で、何となくデバイス取り付ける前にPCB(タイプⅡ)のパターンを調べたところ、1ピン(A20)と2ピン(A21)の配置が逆になってる(^-^;

以前買ったものも見てみたら、やっぱり違う・・・ってことは、どっかにこの情報はあるのかなぁ、と思ったものの、国内でも買う人増えてそうだから、一応書いておく。

PICT6665

PICT6666

既に持ってる人、これから買う人は参考にしてくださいませ。

スーファミで使うのでなければ変更する必要は無いですが、この基板自体が29F032Bをスーファミカセットで使う事を前提に作られてるので(笑

因みに、タイプⅠの配線は問題ありません

とりあえず、この件はBuyICnowにメールしておいたので、もしかすると今後修正版が出てくるかも?

と、思いたいが、これ書いてる時点で650枚以上残ってるからなぁ(^-^;

どうなるかはわかりませんw

【追記】

返答が来たので。

タイプⅠとタイプⅡは製作依頼をした人が違うそうで、BuyICnowでは使用方法までは把握していない、とのこと。

う~む、他の配線的にSNES仕様なのはほぼ確定だけど、BuyICnowではどうにもできない問題ですね(^-^;

ま、それは仕方が無いとして、ちょっと嬉しい情報も。

「あなたが希望する基板があれば作ってあげるよ~」って話が(嬉

金額的に通れば作って欲しいものはあるw

現在、他にも違うタイプの基板作成を頼まれてるそうで、相談持ちかけられ中(笑

えっと、なので、メインで書いた配線はスーファミカセットPCBにぽん付けしたい場合のみ変更してください、ってことで。

MD RammyでSSF2NewChallengersの吸い出し

先日届いたスーパーストリートファイター2-ザ・ニューチャレンジャーズ(長)、国内の正規市販ゲームで唯一のマッパー有りのゲーム・・・って、購入したのはGenesis版だけどw

PICT6657

コレを、YoGirlさんとこのメモリマッパーを参考に吸い出します。

吸い出すだけなら好きな領域にマッピングすればいいだけなので、今回は0x080000 ~ 0x0FFFFFの512KByteの領域だけを使う。

といっても、サイズ的に時間がとても掛かるので、本番はSweet Rammyの高速版ができた時のテストでやるとして、とりあえず正常にデータが出てくるか確認の意味で512KByte単位の先頭40Byteづつを吸い出してみる。

ssf20

手打ちはメンドイのでマクロで。

0xA13F01は念のため初期化の意味で入れてある。

AT.000001で初期化するとPS.400000になりますが、これはマッパー無しで読み込める最大値であって、正確には0x500000=5MByte分吸い出す必要がある。

ssf21

SSF2NewChallengersのサイズは5MByte、512KByteづつを9回マッピングして吸い出す。

VCのデータと比較すると、2番目のデータ(0x080000~)が違う(USA版だからね)けども、データとしてはちゃんとマッピングされて出てきている。

って事で、RD.080000に書き換えて、全てのデータを吸い出せるTeraterm用マクロをアップしておきましたので、試す人はどうぞ。

多分、大丈夫なハズよ(笑

あ、因みにRetrode含む他の吸い出し機では正常なデータは出てきません。


2011年11月17日木曜日

GenesisのEEPROM仕様ゲームが届いた

早くも遅くも無く、普通に到着です。

PICT6656

SF2ニューチャレンジだけはたまたま完品で安かっただけで、EEPROMではない。

(PCBのジャンパが何物かとても気になるが調べていない)

他の4本は全てスポーツゲームで、

・Greatest Heavyweights of the Ring

・Sports Talk Baseball

gen0

上の2本は上画像の仕様(所謂SEGA標準)なので、Sweet RammyのAT.000000で問題なかった。

・NHLPA Hockey 93

gen1

ホッケーは上の画像を見てわかるように、16bitアクセスしなければいけないので・・・

PICT6655

デバッグプログラムが無いので現状は画面がバグってしまうw

・NFL Quarterback Club '96

gen2

4本目、これはNBA JAMと同じくACCLAIMのゲームで、イグアナさん製作です。

今回買った中では唯一24C16を使ったゲーム。

・・・残念ながら読み込みもダメでした(^-^;

8bitsWORDってあるからP+.000001にもしてみたんだけど、0x00埋まり。

もしかしてデバッグ画面が・・・とも思ったものの、16bitアクセスしても何にもならず(-_-;

う~む、残念。

で、今のところの結果を見てみると、7bitsWORD(MODE1)のゲームだけは読み書きできそうな感じですかね。

SEGA以外で当てはまるとすると、

CAPCOM

Megaman - The Wily Wars (E)
Rockman Mega World (J)

CODEMASTERS

Brian Lara Cricket

の3本、内ロックマンだけは正常に動作する事が確認済み。

他のEEPROM使っている大半のゲームはGenesis版なので、ちょっと確認が難しいかなぁ(^-^;

USAな人が試してくれるといいんですが。

.

PICT6654 ←VCのメガドラ版SF2購入

VC版ではWiFi通信もできるんですね、やらないけど(ぉ

メガドラのVC物は取り出したこと無いから、またこれも取り出してどうなってるか見てみよう。

マッパーとか無しで普通なのかな?

ちょっと楽しみ。

.

【追記】

SF2のVC版を取り出したので90%写真のみでw

gen5

gen3

gen4

gen6

gen7 gen8

VC専用バージョンになってるね。

チェックサムは合わないけども、エミュでの動作は問題ないみたいね。

さすがにネットワーク機能(このROMイメージのね)は使えないと思うけど(笑