カテゴリー別アーカイブ: 電子工作

メガドライブミニ(続き

拙作のサターンコントローラUSB変換アダプタをメガドライブミニに対応させました

動画に映ってる小汚いスティックコントローラは自作のバーチャスティックもどきです。スパ2のコンパネを半分にぶった切ってアルミケースにマウントした自作コントローラです。メガドラミニの付属パッドの乗っ取りではなく、サターン標準パッドを乗っ取っています。それを拙作のSS変換アダプタでUSBに変換しています。

メガドライブミニ付属の標準パッドとの整合性を取るためにアナログ5軸+POV+12ボタンに制限されます。よってツインミッションスティックの親指スロットルは片方しか使えません。

残念ながらマルチターミナル6を併用しても複数サターンコントローラが同時に利用できることはありませんでした。

 

 

メガドライブミニ

買いました。

残念ながら拙作のサターンコントローラUSB変換アダプタはメガドライブミニでは動きませんでした。どうもPID&VID縛りがあるようです。

仕方ないので付属パッドのVID&PIDを拝借して、ボタン配置も付属パッドに合わせるようにしてとりあえず純正サタパとマルコンでスト2が操作出来ています。

ただそれでもMT6併用で5コントローラを認識させることは出来ませんでしたが。

解析された方のblogを見ると、どうもUSB HUBにもVID縛りがあるみたいですね。動作確認&保証の手間とかあるでしょうから仕方無いのかもしれませんが・・・

midiori

っていう同人MIDIインタフェースカードが面白そう

NFGGamesのフォーラム  https://nfggames.com/forum2/index.php?topic=6556.0
Githubのプロジェクトページ  https://github.com/tdaede/midiori

MIDIコントローラに純正カードなんかで使われてるYM3802の代わりにLatticeのFPGAが使われてる。今時のFPGAってpythonで開発できるのか。

拡張スロット数がカツカツなX68000 (PRO除く) においてRS-MIDIという代替手段がある分、MIDIカードの優先度は低いんだけど「X68000の拡張スロットにFPGAを繋いでpythonであれこれする」って考えたらすごい楽しそう。I2CとかSPI経由で外付けFM音源とかSDカードとかいろいろ繋いてみたい。

micro USBコネクタ リフロー

microUSB

0.65mmピッチのリフローは初だったけど思ったよりうまくいった。固定用の足だけリフローして信号ピンは別途はんだこてで手はんだも考えてたけど、信号ピンも特にブリッジ等発生することなくリフロー出来てるっぽい。

これまた初の両面リフローだったけど先にリフローしてた裏面の部品も問題なし。脱落等も特になし。

今回はパッド幅0.3mm、パッド間隔0.35mmの自作ステンシルをいかに精度高く作るかがすべてと言う感じ。

ss2usbの入力遅延について

SteamでUltraストリートファイター4が747円だったので購入。すばらしい。クリスマスセールか何かなのか、あるいはずっと前からこの値段で売ってたのかは分からないけど。

んでUSF4を使って、前からやろうと思っていた拙作のサターンコントローラ変換アダプタ(以下ssu2sb)の入力遅延を調べてみます。質問があるたびに「調べてません」って回答するのもなぁ、と思ってたので。

遅延の要素は「変換アダプタ」「OSのドライバ」「アプリケーション(ゲーム)」「ビデオドライバ」「液晶モニタ」とあらゆる所に存在するためなかなか定量的な評価が難しいのですが、ここではスティックコントローラの評価でよく行われる 「2つの異なるコントローラを使って、格ゲーで同時に小パンチを繰り出してどっちが打ち勝つか」 という相対的な評価を行いたいと思います。今回比較対象にはHORIのファイティングコマンダーPROを用意しました。ネットでの評判は比較的低遅延のようです。

とりあえずこんな回路を作ります

比較

フォトカプラは「電気的にON/OFF出来るスイッチ」位に考えて下さい。左側のスイッチをONにすると①と②が同時にONになります。①はss2usbにつながったサタパのXボタンに繋ぎ、②は今回比較対象としたHORIのファイティングコマンダーPROの□ボタンに繋ぎます。

比較

こんな感じです (左下のマイコンは無視して下さい。5Vをとるためにしか使っていません)

この2つのコントローラを使って、USF4のトレーニングモードでリュウの小パンチ対決を行った結果がこちらです。

小パンチを50回打ち合って、15勝0負35分で黒リュウの勝ちでした。

X68000用PS/2マウス変換アダプタ作りかけ(2)

動きがぎこちない原因が判明したので修正したファームを作成しました。すみませんが前のVerをDLしちゃった方はこちらを書き込んでみて下さい。

ps2ms_x68.20171213.zip

ps2ms_x68.20190706.zip

 

Inside X68000によるとMSCTRLが変化してから800usくらい間をおいてマウス信号を68に送れ、としか書いてないのですが、実際にはMSCTRLが変化してから???us以内に送信を完了しろ(あるいは変化後???us以内に送信を開始しろ。のどちらか)といった条件もあるような気がします。

MSCTRLが変化してから800~1000us以内に68に向けて送信を開始するようにタイミングを修正することでぎこちなさは解消しました。なお、修正後はMSCTRLはおおむね20ms周期で変化しています。修正前は60~70ms周期でMSCTRLが変化していました。そりゃぎこちない動きになる罠。

ps2ms_x68

 

2019-07-06 追記

PS/2 & USB compatibleマウスにおいて正常に動作しない問題に暫定対応しました。機能面では全く変更はありませんので、現状で問題なく動いている場合はファームを更新する必要はありません。

CompatibleマウスについてはMicrosoftのMSK-1113(B) Basic optical mouse v2.0でのみ確認しています(Amazonで一番安かったのがこれなので)。もしこれでも正常に動作しないマウスがありましたら、コメントでマウスの型番を教えて頂けますと幸いです。

 

X68000用PS/2マウス変換アダプタ作りかけ

一応正常に動いていますが、やや問題ありの部分が解消出来ないので。

手抜きの回路図?です

x68_mouse

例によって68本体とマイコンと繋ぐ線の間には100Ω程度をはさんで下さい。同様に、マイコンとPS/2コネクタの間も330Ωを直列にはさんで下さい(必須)。後は適当にVCCとGNDの間に0.1μF程度のパスコンを入れるとか、68のマウス端子から取り出したVCCにはポリスイッチを直列に入れるとか、その辺はキーボードアダプタの回路図を参考にして下さい。手抜きですみません

ファームです。PICKITとかで書き込んで下さい。

ps2ms_x68.zip

で、問題なく動くものの、純正マウスに比べて動きがどうにもぎこちない気がします。カウントの問題なのかなぁ?PS/2マウスは9ビットの符号付でX68マウスは8bitの符号付なので値を1/2にして68側に流してるだけなんですが・・・HIOCS.x にマウス速度の調整機能があったと思うんですが試していません。

一応うちのXVIでは動いていますが完全に無保証でお願いします

mouse

 

2017.12.13 追記
修正版を作りました

NeXT non ADB keyboard

とりあえず使えるようになったので。

DSC01147

初期化処理はもうちょっと見直したほうがよさそう。

探せばATMEGAやArduinoでの実装例が見つかるけど「PIC用にコピーリスペクトしただけなんじゃないの」と思われるのもアレなので、信号処理周りは独自に考えてみたつもり。と言っても19000bpsのシリアル通信に見立ててUARTモジュールに処理させただけ。

あと世の中の情報じゃ「1bitは50μs」って書かれてるページがほとんどだけど実際はもう少しだけ長くて52.6μsくらいのような気がする

Firmware ver3 準備中

現在、キーボードUSB変換アダプタの次バージョン(version3.0) のリリースを準備中です。
変更点は次の通りです。(USB2PS2、USB2FMRについては途中のバージョンアップをリリースしていませんので、ver1→ver2における変更内容はこちらでご確認ください)

 

問題改善

  1. Intel mac機においてEFI/BIOS画面でキーボード入力が出来ないケースへ対応しました。
  2. OSX/macOSにおいて日本語固有キー (英数やかな、「ろ」キーなど) が入力出来ないケースへ対応しました

続きを読む