2012年10月28日日曜日

Retrode(2)用PC-Engine ROM Trimmer

最近RetrodeのPCエンジンプラグインアダプタ(以下、PCEアダプタ)の話題が出て何となく作ってみたくなってVB.NETの練習がてら作ってみました。

タイトル通りですが、サイズを認識してトリムするだけのツールです(笑

retrodepcetrim0

PCEアダプタは公式で公開されてるタイプと以前ここのブログにアップしたタイプの2種類ありますが、このツールは私のブログにアップした配線で正常に動作するように作ってます。

PCEアダプタはあっても、PCEのROMデータは基本的にヘッダが無いから、Retrodeではデータサイズが殆ど1024KByte(ファームウェア0.17h時)で認識されてしまう。

例外として、ナムコ製ゲームは一応判別できているみたいだけど、拡張子が.ngpになる(^-^;

(拡張子だけ.pceに換えるだけでOK)

で、1024KByteのままでも一応384KByteのゲーム以外はエミュでも動くかもしれないけど、ちゃんとしたデータのが良い、という事で、以前はDOS用ファイルカットツールで対応してましたが、サイズの判別が面倒でした。

今回のツールは、ツールウィンドウ内にファイルをドラッグ&ドロップするとデスクトップにトリムしたデータを自動的に作成します。

最初にROMサイズ気にする必要が無いから楽です。

使えるファイル名はRetrode標準の「GenericRomInSnesSlot.dat(大小文字固定)」、サイズは1024KByteと2048KByteのみに対応してます。

それ以外だとエラー扱いにしてツールを終了するようにしてます。

正常に処理が終了した場合は起動したままです。

詳細(ってほどでもないけどw)はReadMe見てもらうとして、Winで.NETFramework4.0がインストされてる環境なら動くと思います。

(XP-Pro&Home、Vista-32bit、7-32bit、7-64bitで確認済み)

テストも兼ねて内部でBIN<>HEX変換しながらファイル作成してるんだけど、GUI環境だと数秒(1024KByteで7秒前後)掛かってしまう(^-^;

DOS版なら同じ方法でも一瞬なんだけど・・・こんなもんなのかなぁ・・・

あ、文字コードとか関係ないから海外でも問題なく使えるかも。

おそらく普通に使う分には問題ないと思うけど、如何せん、VB.NET使って初めてGUIで公にしたツールで、どっかにバグが潜んでる可能性は十分ありえるので、使う人は自己責任で使ってくださいませねw

特にファイルサイズがデカイ物(100MB以上とか)をドラッグするともしかするとPCがフリーズ状態に陥るかもしれませんのでご注意を(ぉ

PCが壊れたりしても私は一切責任持ちませんので~

ファイルはSkyDriveにあります(RetrodePCETrim.zip)。

ってことで一連の流れ的なものを。

retrodepcetrim1

Retrode繋げてファイルエクスプローラ開いて、ツール内にドラッグ&ドロップする。

retrodepcetrim2

正常に処理が終了すれば画面にDone!メッセージが出る。

この時、他のウィンドウに隠れてしまう事が多々あるかもw

OK押してメッセージ閉じてください。

ウザければ、メッセージ数秒で閉じるようにするか、無くすように変更します。

メッセージが出たらデスクトップにHuCard(サイズ).pceというファイルが出来上がるので、適当にファイル名を変更して完了です。

retrodepcetrim3

出来上がったデータのチェックをして確認してください。

チェックツールはBABさん作成のROMチェッカーが簡単でお勧めです。

コチラもドラッグ&ドロップで。

と、そんなとこかなぁ。

Retrode持っててPCEアダプタ作った人は疑いながら使ってみてください(笑

あ、ホンコン用のアダプタ作った人は配線同じだと思うから、そのままRetrodeで使えると思います。

【追記】

ん~、アップ後更に吸い出しテストしてて気が付いた事。

ナムコ製以外にも、わいわい麻雀(ビデオシステム)、サイバーコア(igs)など、ROMの先頭部分に英字で読める単語があるヤツは拡張子が.ngpで認識するみたいですねぇ・・・

しかも、サイバーコアに関してはRetrode自体(ファームウェア0.17以降、ngp対応後)で誤認識してるらしく、ホントは384KByteなのに256KByteで認識してしまっている・・・

もしかすると384KByte以上でROMの先頭に英単語使われてるゲームはRetrodeでは吸い出せないかも~(^-^;

ファームを0.16aまで戻せばPCEのファイルサイズは全て2048KByteで認識するから吸い出し可能かもだけど、既に捨ててしまったか、ダウンロードしてなかったらしくて確認できず・・・

いずれにしても現行のRetrode2は0.17~しかファームウェアが存在しないので、現状はこれらのゲームは正常に吸えません、という事に。

*その後の調べでファームウェア0.15uが見つかったから明日にでも試してみる

【追記2:2012/10/29】

確認した事。

7-64bitでも問題なかった、っていうか、さすが64bit、処理が早かった(笑

ファームウェア0.15uだとやっぱり全て(スト2'以外)2048KByteで認識するから、サイバーコアも問題なく吸い出せるし、多分、全部トリムでOKかと思われる。

あと、いきなりツールにバグ(2048KByteもエラーになってたw)あったから修正アップしました。

ん~、ファームウェアUP待ちかなぁ~

気が向いたら開発者さんに連絡しておきます。

.

上とは関係無い話。

先回書いたVB.NETでRammyClientの件、実は先週中には初版(?)がセーブデータの8bit<>16bit自動変換(BIN形式)も含めて作れてました。

んが、BIN<>HEX、セーブデータの8<>16部分を外部でやっていた、テキストボックスを使うと512KByte程度でもCPUに負荷が掛かりあまり使い物にならなかった、ってことで保留にしててそのままだったり(汗

リッチテキスト使ったらどうなるのかとも思ったけど、実際に使うのはオートモードだけでマニュアルはTeraTermのが断然使いやすいだろうから、オート限定に絞って内部処理にして、進行はプログレスバーで・・・と、パーツ単位ではほぼできてる状態で止まってるので、追々やっていきます。

そんなトコかな。

.

で、一区切り付いたからED64触ろうと思ったら、どこにやったかわからないぞ、と(^-^;

あれぇ~?

2012年10月13日土曜日

Sweet Rammy Client テスト

Sweet Rammyのクライアントはハイパーターミナルとかの通信ソフトだけ用意すれば使えるのだけど、折角PCBも作れた事だし、何となくGUIなプログラムも作れないかなぁ?という気になってきました。

が、大きな問題があって、私はGUIのプログラムは作った事がありません(^-^;

そんなわけで、とりあえず初心に帰ってBASICか?という事でVB2010Express版を触ってみることに。

ネット探してたら丁度良い通信プログラムのサンプルがあったので。

通信部分のベースはサンプルで事足りるので、殆ど弄る事は無い感じ。

Rammyのコマンドも仕様が決まってるから何とかなりそうな気がするのだけど、どうだろう?

rammyclient

とりあえずプログラム(今はコードって言うんですか?)が一通りちゃんと動くか(書けるかかw)テスト用。

上画像の大半のボタンは押したらコマンド送信だけだから楽なんだけど、オートモードとマニュアルモードがいるかなぁ、とか、クライアント側でBIN<>HEX機能は付けたい、セーブデータはエミュも考慮して8bit&16bit用で認識させたいのは最低限必要か?

いずれにしてもサッパリなので、ちゃんと作れるか(根気が続くか)未定です(笑

文字コードの扱いがDOS用と違うとこで既に引っ掛かりました(^-^;

.

PICT7828

序に、GUIどうやったら作れるかなぁ~、って考えながら今日までに8個作れた。

作るのがめっちゃ楽しかったりしますw

2012年10月3日水曜日

Sweet Rammy PCB、無事完成です(^-^)

昨日は部品付け数点残して寝てしまったから、今日帰宅後速攻で仕上げて完成させました。

Rammy_pcb_fin

こうやって見ると、まだ基板小さくできますね(笑

当分弄らないと思うけどw

んで、以下の動作テストをして正常に動く事を確認できました(^-^)

・メガドライブでAVRのプログラム(フューズ含む)

・ROM、セーブデータ読み書き

とりあえず問題なく動きました、と。

100%の完成度~といいたいところですが、実は1箇所だけ設計ミスがありました(^-^;

読み書きアクセスLEDを、企画(?)段階では読みを緑、書きを赤って書いたんだけど、逆になってて(笑

ま、実際にはFTProgでLEDの動作をスワップしてやれば問題ないんですけどねw

rammypcb_led

上画像のようにしてやれば、思い通りにLEDが光ってくれます。

どの道FT232RLの通信設定変えなきゃいけないから、必要なら序に変更する事に。

PICT7795

↑MD1に取り付け

PICT7791

↑MD2に取り付け

PICT7787

↑NOMADに取り付け

NOMADはコネクタ逆だったのね(笑

PICT7801 PICT7800

↑オマケでレーザーアクティブ(笑

コネクタ1&2が上下だから直接付けられませんw

初めて分解したけど、MPUに68HC000を使ってるからもしかしたら使えるかも?

本体はしまってあるので確認していません。

テラドライブは持ってないからわからない。

互換機は使えないw

といったところで、とっても一安心~

自分ではんだ付けしたものに電気入れるのはあまりドキドキしないんだけど、RammyPCBはめっちゃドキドキした(笑

久しぶりに極度のドキドキ感を味わった気がする。

いや~楽しかったぁ~(^-^)

・・・もう1個作ろw

2012年10月2日火曜日

RammyPCB届いた~

やっとこさ届きました。

PICT7777

メガドラカセットを一回り大きくして5個重ねたぐらいの大きさです。

品名は、16×2LCD(液晶ディスプレイ)が1個となってます(笑

ちょっとだけ、えっ?ってなったw

PICT7757

ワクワクの開梱です!

PICT7758

おぉっ!なんかいい感じにできてるんじゃない?

ん?QC14ってなってる・・・

PICT7759

あ、ほんとだっ!14枚有る(笑

んっと、実は5cm×5cmだと1枚分しか取れないので、悩んだ挙句5cm×10cmにして3個取れるように注文してたのでした。

っても注文は1口10枚だから10枚が普通なのだろうけど、おそらく、10cm×10cmでも同じ金額だから、多分サービスしてくれたんだと思われます(笑

最初YGCAMと一緒に10cm×10cm頼む予定が1デザインって事で断念。

一つの基板に同デザイン5個までOKって事だからあと2つ載せても良かったんだけど後で切るのがめんどいなぁってことで5cm×10cmにしたのでした。

PICT7762

で、肝心の仕上がり具合。

思い通りの感じに仕上がりました(^-^)

PICT7767 PICT7770

基板の分割をどうするか、ですが、同じ寸法にカットできるように冶具を作りましたw

適当に3つに分割しておいて、NCな機械使えば楽々です。

私の場合、Fusionがスロット加工とか外形の整形対応してなくても自分で加工ができてしまうので特に問題は無かったりw

ま、暇な時にしかできないけど(^-^;

PICT7771

とりあえず1枚はノコギリでギコギコと切って仕上げて、D-Sub9ピンコネクタが合うかテストしてみたらバッチリでした。

ラミーちゃんがちょっとギザギザしてるけど、他のシリクスクリーン文字は一応読めるからOKでしょう。

因みに部品のほうは10個分は殆ど揃ってます。

ATmega88PA-AU(取り寄せ)とオシレータ(イギリス在庫)だけ揃ってなかったけど、RSから今日発送したメール来たから明日には全て揃う予定。

1個分は手元に揃ってるので、早速部品載せてちゃんと動くかやって・・・でも今日は完成しないだろうなぁ。

あぁ~、明日会社休みたいなぁ~(ぉぃ!

でもこういう時に限って忙しいんだなorz

ま、ぼちぼちとやりますかね。

NJM2268-S出力、懲りずにトライ

何度かいろんな表示デバイスを使ってメガドライブ1+NJM2268-S出力をテストしていましたが・・・表示デバイスの個体差もあり、テストするだけ混乱してきて上手く合わせられないという状態に・・・

なので、普段使うであろう三菱のブラウン管TVと、SOTECのXPマシンに元から付いてたキャプチャカード(詳細不明)での取り込みに絞って調整する事にしました。

md1_vmod_njm2268_ver001a

ベースはv0.01で、出力の方法はCXA1645のデータシートを参考に。

上回路図の赤色の抵抗は、データシートでは75Ωだったけど、ちょっと明るめだったから抵抗値上げてみました。

150Ω~470Ω程度でTV、キャプチャの両方で、普通に見れるレベルにはなってます。

220uF後の75Ωプルダウン抵抗はTV側で入ってるので入れてません。

njm2268fix2v

njm2268fix2s

毎度の画像ですが、MD2-S(MB3514)よりは少しだけ明るいかな?程度。

前にアップしたコンポジットと色合いは同じような感じになってるハズ。

配線的にはおそらくセオリー通り(CXA1645のねw)だと思うんだけど、どうかなぁ、と。