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

サイバースティック コンバーター

といいつつ画像はカブトガニ (XE-1AP) ですが。

photo_3b

 

ハード的にはメガドラパッドコンバーターのコネクタ出力を2本入れ替えただけです (DB9 の8p ⇔ 9p を基板上で入れ替え)

使ってるマイコンのI/Oピンを全部使い切ってるため、アダプタ外部から何らかの設定を投入することが出来ません。なので完全にサイバースティック専用です。例によってUSB経由でファームを更新出来るようにしてあります。

DB9の8pと9pを入れ替えるようなチェンジャを噛ませた上でメガドラコンバーターのファームに入れ替えればメガドラパッドが繋がりますが、それやるなら最初からメガドラパッドコンバーター買って下さいよろしくお願いします(宣伝

メガドラパッド コンバーター

ちょっと乗り遅れた感はありますが、メガドラ実機用コントローラの変換アダプタを作ってみました。

photo_3

こんな感じでDB9のシェルの中に基板を収めた小型アダプタに仕上げました。外部から設定変更できる訳でもなく、挿して繋いで使うだけです。USB経由でファームの更新が出来る様にしています。

今回初めてBOOTHに出品しています。値段が高めなのはご勘弁を。1個作るのに予想以上に手間隙がかかるので。

 

使っているのはPIC16F1455です。UART、I2C、SPIの各信号はコネクタに引き出してあるのでファームを差し替えればUSB-MIDIとかも出来そうな気がします(DB9-DIN5変換ケーブルを作る必要がありますが)「PIC16F1455 MIDI」で検索すると(以下略

PS/2キーボードをPC-8801 FH以降に繋ぐ

こちらは実に敷居が高いモノとなっています

まず、このファームは 実機で動作確認していません 私自身では実機での動作確認を行っていません1。実機持ってないので。作っても動かないとか、正常に動かない可能性があります。ですので

  • 電子工作に多少の経験がある
  • PC-8801 FH以降の機種を持っている
  • PIC12F1822を書き込めるライタを既に所持している 2
  • PS/2キーボードも持っている
  • 出来ればブレッドボードを持っている
  • 動かなくても泣かない

という条件に当てはまる方のみお試し下さい。なお、正常に動かなかった場合は教えて頂ければ可能な限り対応します(が、実機持ってないのでお約束は出来ません)

一応、88の実機は持ってないものの88用のType Aキーボードの実物は持っているのでロジアナで出力信号を比較チェックしています。また、先にType Aキーボードの信号を解釈するテストボードを作ったうえで、作ったファームをそのテストボードで検証しています。3

PICはPIC12F1822を使います4。RA0が88への出力信号で、RA4がPS/2 CLK、RA5がPS/2 DATAです。PS/2の2本の信号線には必ず330Ωの抵抗を入れて下さい。パスコンとかは適当に。図中のポリスイッチ(自己復旧型ヒューズ)とLEDは省略可能です。

ps2pc88_

 

PC-8801FH用 PS/2キーボード変換アダプタ ファーム
機能追加&不具合修正を行った更新版があります

 

ファームの制限事項です

PC-8801 FH以降の機種に付いてくるキーボードは88SR用キーボードからキーが増えています(F6~F10とか)。とりあえずここでは 88SRと共通のキーを「従来キー」、追加されたキーを「拡張キー」と呼ぶことにします。

拡張キーを押したとき、88SR用プログラムとの互換性を取るために、従来キーのキーコードも一緒に送信されます。例えば拡張キーの「F9」を押したときは「F9, SHIFT, F4」というキーコードが出力されます。拡張キーの「INS」を押したときは「INS, INSDEL」というキーコードが出力されます。

面倒なのはキーを離したときで、前述の例だとF9を離したときは「F9開放、F4開放、SHIFT開放」のコードが出力されますが、「F4を押したままF9を開放した」とか「SHIFTを押したままF9を開放した」場合は少し挙動が変わります。「F4を押したままF9を開放した」場合は「F9開放、SHIFT開放」だけ出力され、「SHIFTを押したままF9を開放した」場合は「F9開放、F4開放、SHIFT押下」が出力されます。そういうもののようです。

これらの挙動を厳密に網羅するのが面倒だったので、本ファームでは拡張キー開放時の同時押しに付いては特に考慮していません。SHIFTを押したままF9を開放した場合でも「F9開放、F4開放、SHIFT開放」が出力されて、SHIFTキーはリリースされた状態になります5 6

 

CAPSキーとかなキーのロックは実装していません。ロック機構が無いと問題が出るアプリがあるようなら実装を検討します。

 

PS/2 & USB コンパチ型のキーボードだとうまく動かないかもしれません(特に、「デフォルトがUSBで、ケーブルの先端にアダプタを挿すとPS/2でも使える」タイプのキーボード)

  1. 現在 FAでの動作実績1件 []
  2. コメント参照 []
  3. これを検証と呼んでいいのか些か疑問ですが []
  4. PIC12F1840でも可 []
  5. 押してもいないのに「押されている」と処理されるのは問題が出そうでも、押しているのに「押していない」と処理されるのはまあ許されるかな、と []
  6. 追加された拡張キーはF6-F10, BS, DEL といった、そんなに他キーとの同時押しを行わないようなキーばかりなのでそう問題は起きないかな、と []

メガドライブミニ(続き

拙作のサターンコントローラ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で一番安かったのがこれなので)。もしこれでも正常に動作しないマウスがありましたら、コメントでマウスの型番を教えて頂けますと幸いです。