2011年1月22日土曜日

Retrode用Plug-in PCE Adapterの製作

現在では入手が厳しいですが、RetrodeのPC-Engine Adapterを作った。

国内でのRetrodeの情報はあやすけさんのトコを見てください。

元々は公式にも上がっているUSA版のPCエンジン(以下PCE)であるTurbografx-16(以下TG16)用のアダプターですが、PCEと大した違いはない。

製作前にちょっと調べてピン配列が違うと思ってたんだけど、その後の調べでデータの出方がPCEとTG16では反転して出力されるだけ、ということがわかった。

ので、その程度ならPCEでも問題なく出来るだろうと思い・・・いろいろと配線方法変えたりして試しましたが正常なデータとしては出てきませんでした(^-^;

retpce0

「正常な」というのは、「チェックサムOKな完全なROMデータのみの状態」では、ってことです。

現状はPCEのデータは全て2048KByte固定のデータで保存されてます。

公式に載ってる配線方法と同じ配線をした場合、ROMデータを取れなくはないですが、データ内容がズレてたりして切り取るにしても扱いにくいです。

当然ながらバンク切り替えのあるストリートファイター2ダッシュは保存されない(1Kのデータは作成されるがw)。

ファームウェアは最新だし、RETRODE.CFGの中にもTG16の項目があって拡張子がhucの記述があるので、ホントに対応してるならROMサイズもちゃんとしたデータが作成されるハズなんだけど・・・TG16ならいけるのか?

TG16のカードは持って無いからわかんないなぁ。

そんなわけで、公式に載ってる配線方法はちょっと怪しい部分もあったので、とりあえずデータ内容が正常に出てくるように配線方法を変えて製作しました。

配線方法は以下の感じで。

Retrode Plug-in PC-Engine adapter

SNES <<<>>> PCE

==========================
PIN5 - GND - PIN18
PIN6 - A11 - PIN27
PIN7 - A10 - PIN25
PIN8 - A9 - PIN28
PIN9 - A8 - PIN29
PIN10 - A7 - PIN7
PIN11 - A6 - PIN8
PIN12 - A5 - PIN9
PIN13 - A4 - PIN10
PIN14 - A3 - PIN11
PIN15 - A2 - PIN12
PIN16 - A1 - PIN13
PIN17 - A0 - PIN14
PIN18 - No Connect
PIN19 - D0 - PIN15
PIN20 - D1 - PIN16
PIN21 - D2 - PIN17
PIN22 - D3 - PIN19
PIN23 - /RD - PIN26

PIN24 - No Connect
PIN25 - No Connect
PIN26 - No Connect
PIN27 - Vcc - PIN38
**************************
PIN36 - GND - PIN18
PIN37 - A12 - PIN6
PIN38 - A13 - PIN30
PIN39 - A14 - PIN31
PIN40 - A15 - PIN5
PIN41 - BA0 - PIN4
PIN42 - BA1 - PIN32

PIN43 - BA2 - PIN33
PIN44 - BA3 - PIN3

PIN45 - No Connect
PIN46 - No Connect
PIN47 - No Connect
PIN48 - No Connect

PIN49 - /CS - PIN24
PIN50 - D4 - PIN20
PIN51 - D5 - PIN21
PIN52 - D6 - PIN22
PIN53 - D7 - PIN23
PIN54 - /WR - PIN34 (or PIN38)

PIN55 - No Connect
PIN56 - No Connect
PIN57 - No Connect

PIN58 - Vcc - PIN38
===========================

青文字のところが公式と違います。

データバスは反転して配線(公式と同じ)しても、PCEエミュのOotakeROMチェッカーなどでビット反転してやれば同じデータになるのでどちらの配線でも構わない。

ということで、上記を踏まえて工作に入ります。

PICT5660

ベースのカートリッジはスーパーゲームボーイを。

PICT5662

基板に付いてる要らない実装部品を取り除き、基板上部をぶった切ります。

PICT5664

PCEコネクタを固定するため、ケースを少し削り、プラリペアで適当なネジ締めようプラスチックを配置。

PICT5666

ショートするところが無いように、テスターで測りながら配線する。

PICT5667

で、ケースを元通りにして完成w

PICT5669

で、RetrodeとPCを繋げると・・・

retpce0

GenericRomInSnesSlot.DATという、2048KByteのファイルが出来ている。

んが、このままではエミュなどで使えないのでROMデータを切り出す作業が必要になります。

基本、PCEはアドレスバスが20本なので、バンク切り替えなどが無い限り最大でROMサイズは1MByteが上限。

ROMサイズの種類としては128K、256K、384K、512K、768K、1024Kの6種類ある。

Retrodeでは単純に垂れ流し状態でデータを読んでるだけなので、2048Kになるまで大半は同じデータを繰り返し読んでることに。

拙作ツールを使った場合のROMデータの切り出しは、

まずツールのあるところにGenericRomInSnesSlot.DATをコピーして、CMDを開いて以下のコマンドをコピペする(datacutからね)。

・ 128K : datacut GenericRomInSnesSlot.dat HuCard.pce 0 131072
・ 256K : datacut GenericRomInSnesSlot.dat HuCard.pce 0 262144
・ 384K : datacut GenericRomInSnesSlot.dat HuCard.pce 262144 393216
・ 512K : datacut GenericRomInSnesSlot.dat HuCard.pce 0 524288
・ 768K : datacut GenericRomInSnesSlot.dat HuCard.pce 0 786432
・1024K : datacut GenericRomInSnesSlot.dat HuCard.pce 0 1048576

な感じで。

上の例ではHuCard.pceというファイルが出来上がるので、適当にファイル名を変更する。

384Kだけは$40000~読むようになってるけど、これはROMの仕様です、ということで深く考えないで(笑

retpce2

チェックして正常なデータが出来てることを確認(^-^)

ぶっちゃけ、この方法だとROMサイズをデータベース探すか、バイナリエディタで何回繰り返されてるか確認するかしてROMサイズを判断しないとダメですが(^-^;

データ構造はただの繰り返しと簡単なので、サイズ判別切り取りプログラム作るのはわけないでしょう。

でも、作っても需要はそんなにないだろうなぁ・・・ってそもそも国内でどんだけRetrode+PCE Adapterあるんだろう。

TG16での状況もわからないので、とりあえず作るのはヤメ(ぉ

因みに、私が購入したRetrodeは金色ケース付いてたのですが・・・

PICT5671

なんとっ!スーパーゲームボーイのカセットは刺さらなかったりする(笑

元がUSAカセット基準で作られてて、国内の普通のカセットでもギリギリなのよねぇ。

ま、これは暇がある時に会社で工作機械使って削ることにしますw

そんなわけで、ちょっと納得いかない結果になっちゃいましたが、一応PCEも対応できたということで。

今回のことを見て判るとおり、細工の無いデータならどんなものでも普通に読み込むことは可能ですね。

アーケードからROM取ってきてROMリーダーの代わりとして使うとか、ね。

SMS、GG、NES、MSX等も、ファームウェアでバンク切り替え対応してくれれば可能か。

・・・つっても今は開発者さん開発できなそうだから無理かw

しかし、公式の配線でTG16ちゃんと出てきてるのかなぁ?

それらしき情報がどこにも無いし・・・

SNES-45pin(BA4)→TG16-24pin(/CE)に入ってるのが関係あるのかなぁ・・・でもこれやると出力データの並び変だしなぁ・・・

う~む・・・モヤモヤだ。

どなたかチェックサムOKな完全なROMデータのみ&拡張子がhucで出てきた方がいたら教えてくださいませ~m(_ _)m

・・・いないと思うけど(^-^;

16 件のコメント:

ツボック さんのコメント...

メ-ル送りました

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

今送りました~

あやすけ さんのコメント...

こんばんはー、ぽんRevさん。
PCEアダプタ完成、お疲れ様です。

やっぱ配線変更で吸出しOKなんですね。
ホンコンも吸い出せるとは、いいですねー。

時間が取れたらがんばって再チャレンジします。

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

あやすけさん

Retrodeのフォーラムも入れなくなってるけど、何か情報があったのかなぁ・・・
2、3日前は辛うじてフォーラム見れて、開発者さんがデータ反転の事書いてるのは見つけたんですけどね(^-^;

海外で誰かTG16やった結果を見るまではこのままでいきますw

あやすけ さんのコメント...

フォーラムは現在普通に観れますね
アクセス出来なかったのは、一時的なものだったようです

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

あやすけさん

あ、ほんとですね。確認どうもでした(^-^)

で、今探しましたがフォーラム内にもTG16のスレは一つしかなく、その中で開発者さん曰く、PCEはファームウェアで対応してないけど簡単な修正でOKよ、みたいな事が書いてありますね・・・
う~む、やっぱTG16どっかで入手しなくちゃいけないかな。

あ、序に、ネオポケも32M(3本)以外なら垂れ流しでデータ出てくるはずなので、変圧コネクタ使って簡単に吸い出し可能かと。
今DCのSD取り付け作業に取り掛かったので、終わったら試してみますねw

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

あやすけさん

コメントが反映されなかったようで・・・って何でだろう?
設定は全く弄ってないんで、おそらくBlogger.comの仕業かと(^-^;

>お昼休みにHuCardの検索してみました
>画像付のURLをチョイス
>http://en.wikipedia.org/wiki/TurboGrafx-16
>http://www.studio42.info/TGE/convert.shtml
>http://www.pcenginefx.com/forums/index.php?topic=7687.0
>http://www.robwebb1.plus.com/pce/pce.htm
>日本のHuカードをTurboGrafxで遊ぶアダプターなんですね
>全然知りませんでした
>中央当りでクロスしてるんですね

調べていただいてありがとうございました。
コンバータの存在は私も知らなかったですw
しかし、やっぱり違うのはデータバスの反転だけのようですね。

今度序の時にUSAのネットショップでTG16カード購入してみようかな。

ブイハチ さんのコメント...

こちらの情報とツールのおかげでPCEアダプタで吸いだしたファイルをROMチェックツールで正常データとして認識させることが出来ました。
ありがとうございますm(_ _)m

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

ブイハチさん

ブログ拝見しました(^-^)
無事吸出しできて何よりです。

本家の配線はTG16用として考えたとしても可笑しい気がするんだけども、実際どうなんでしょうね(笑

そういえばDOS用のカットツールは今ならVB.NETで簡単にGUI作れそうなので、その内作りますねw

ブイハチ さんのコメント...

最終的には、PCEのピンアサインを調べて強引につなぎました。

結果として、こちらのブログの配線とほぼおなじになったのですが、下記だけ異なりました。

PIN43 - BA2 - PIN33
PIN44 - BA3 - PIN3

こちらは逆につなぎました。
逆でもお互いに吸い出せてるということは、retrode側でうまく対処してくれてるんですかね(;´∀`)

あの?配線でTG16吸い出せるらしいですしwww

ただ、0.18bのFirmでretrodeがTG16/PCEに何か大きなこと?をしたみたいなのですが、これが何をしてるのやら気になります・・・

私の環境では動きませんでしたw

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

ブイハチさん

>BA2&BA3を逆に
Retrode公式と同じ、ってことですよね?
えっと、Huカード的には、確か512K以下は3pinは使われておらず、33pinにA18が出力されてます。
768K以降のものは3pinがA19になり、スト2'は3pinがバンク切り替えで使用されてる・・・だと思ったけど違ってる可能性あり(ぉぃ!

と、ここまで書いてちょっと試してみたんですが、
Retrode1+0.17hの環境で公式と同じ配線(PIN43 - PIN3、PIN44 - PIN33)として吸い出したところ、やはり正常にデータが出てきませんでした(^-^;
私のトコで書いた配線だと正常に出てきます。
・・・一般化したRetrode2とは仕様が違うのかしら?

データサイズが最大で1024KBになったので1024KBのゲームはトリム無しでOKですね(^-^)(←知らなかったw)

ん~、もしブイハチさんが公式と同じ配線をしていた場合で、768KB、1024KBのゲームの吸出しを試していない場合、できたら試してもらって結果を教えていただけるとありがたいです。
正常で吸えなかった場合、単純に512KB以下のゲームの吸い出しで3pinがNCになってるからスルーされたと解釈できます。
正常だったら・・・私にはちょっとわかりません(笑

0.18bはATARI2600の対応強化で、次のアップで考えてるのがTG16/PCEの強化なのでは、と。

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

あ、スト2'は3pinがA18で33pinがバンク切り替えだったかな・・・スイマセン、どっちか忘れました(爆

ブイハチ さんのコメント...

説明有り難うございます。
A18の取り扱いの差だったのですね。

というわけで追試したいのですが、手元に768K,1024Kのゲームが無く・・・

興味があるので近いうちにソフトを用意してみますw

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

ブイハチさん

0.18b、一度バージョンアップして試しましたがPCEは認識しないようで(^-^;
直ぐに0.17hに戻しましたw
公式の配線は最近確認してないけど、確かデータバス以外にも違ってた気がするから、配線ソッチに合わせれば挙動が変わるかもしれないのかな?
とりあえず次回のアップまでは保留かな~

768K以上の確認は急がないので偶々ゲットできたら、という事でm(_ _)m

ブイハチ さんのコメント...

768kのカードの追試をしてみました。

ぽんRevさんのおっしゃるとおりでした。
BA2&BA3を入れ替えないと正常データを吸い出せませんでした。

最終的には、こちらの配線と全くおなじになりました。
ピンアサイン調べて繋いだりしてたのですが、最初からこちらのページを見ておけば良かった・・・

ところで、「適当なネジ締めようプラスチック」というのは、何を使用してるのでしょうか?
正常動作したので、ぼちぼち固定を考えていまして、まさに「適当なネジ締めようプラスチック」を物色しとりますw

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

ブイハチさん

やっぱり3pinスルーしてただけなんですね。
原因がわかってちょっと安心しました(笑
PCEのピンアサイン探すと3pinがA18ってなってるところもよく見つかるので紛らわしいですよね。

>適当なネジ締めようプラスチック
これは、私は偶々初代PCE本体のガワをぶった切ってゴミになったものがあったので、そこからネジ部分だけ取って取り付けましたw