PS1/PS2-USBコンバーター [LAY-002-01]のXInput化手順

概要

当方で製作・販売しているPS1/PS2-USBコンバーター [LAY-002-01]は通常Direct Inputですが、プログラムを書き換えることでXInputに変更できます。

Steamなど現代のゲームは基本的にXInputを前提としているので、こちらのプログラムに書き換えることでネイティブにXInput入力に対応することができます。

コンバーターは以下のBOOTH・メルカリShopsにて販売しています。
PS1/PS2-USBコンバーター [LAY-002-01] – BOOTH
PS1/PS2-USBコンバーター [LAY-002-01] – メルカリ

コンバーターの詳細については当ブログの紹介記事をご覧ください。
PS1/PS2-USBコンバーターの自作・販売 [LAY-002-01]

ネジコン対応について

2025-04-16 追記
ネジコンのアナログ入力に完全対応しました。

これまでもひねり入力には対応していましたが、新たにIボタン、IIボタン、L1ボタンのアナログ入力が可能となります。
XInput上ではそれぞれRT, LT, 右スティックのX軸+に割り当てています。(スケッチの変更により別の割当も可能です)

注意事項

XInputへの対応には専用の信号処理の他に、XboxコントローラーのUSB ID(VID/PID)を偽装するなどして実現しています。

VID/PIDを変更した状態での販売は行っておりません。
VID/PIDは各企業が正当に取得した知的財産でありこれらの権利を尊重するためです。

購入後、私的利用の範囲内においてVID/PIDの変更を行ってください。

※変更した状態での転売も念のため控えてください。もし不要となって手放す場合も極力販売時の状態に戻してください。法的問題、その他いかなる損害についても当方は一切の責任を負いません。

また、XInputコントローラーとしての動作はWindows PCでの利用を想定しています。

PC以外のゲーム機器での利用や、XInput→PS5、XInput→Switchのコンバーターなど再変換することで家庭用ゲーム機で利用できたという報告はいくつかいただいていますが、いずれも動作確認を行ったものではないため動作保証はいたしかねます。
使用する際は「動いたらラッキー」くらいの心持ちでお願い致します。

手順

Arduino IDEを導入済みの場合は「ボードの追加・指定」まで飛ばします。

Arduino IDE導入手順

Arduino IDE (https://www.arduino.cc/en/software)をダウンロードしてインストールします。

お好みでUIを日本語に変更する。
「File」→「Preferences」→「Language」を English から 日本語 に変更。

ボード追加・指定

「ファイル」→「基本設定」→「追加のボードマネージャのURL」の右のボタンを押し、新しい行に
https://raw.githubusercontent.com/dmadison/ArduinoXInput_Boards/master/package_dmadison_xinput_index.json
を追加。

ボードマネージャ(左の基板アイコン)を開き、「XInput AVR Boards」と「XInput SparkFun Boards」を検索して追加。
途中で管理者権限を求められた場合は許可して続行。

「ツール」→「ボード」→「XInput SparkFun Boards」→「SparkFun Pro Micro w/ XInput」を選択。
「Processor」→「ATmega32U4 3.3V, 8 MHz)」を選択。(デフォルトで選択済み)

ライブラリインストール

ライブラリマネージャーから「XInput」と「PsxNewLib」を検索しインストール。

※依存関係のメッセージが出たら「全てをインストール」を選択。

スケッチの入力

スケッチ(プログラム)は以下に掲載しています。
https://github.com/Lay31415/PS2XInput/blob/main/PS2XInput.ino

内容を全てコピーしてArduino IDEに貼り付けます。

書き込み

「ツール」→「ポート」にて接続したコンバーターのCOMポートを選択します。
COMポートの番号が分からない場合は抜き差しして表示が消えたものをそれと判断します。

準備ができたら書き込みボタン(「→」マーク)を押して書き込みを行います。

書き込み後はコントローラーの表示名が変化します。
(Windowsの検索窓にjoy.cplと入力して出る「ゲームコントローラー」画面で確認)

元のコンバーターに戻す場合

以下の記事を参考に、通常の手順で「ボードの選択」「スケッチの書き込み」を実施してください。

※XInput化後に再書き込みを行う際に、ボードが認識しない場合は以下の手順を実施してください。

ケースの蓋を外し基板上のリセットボタンをダブルクリックすると、7秒間だけCOMポートの認識やスケッチの書き込みが有効となります。

1. PCに接続した状態で基板上のリセットボタンを2回押し、認識されたCOMポートを確認・選択する(その後、認識が外れてもOK)
2. Arduino IDEで書き込みを実行する。(認識していない状態からでOK)
3. 「コンパイル中」が終わって書き込みが始まるあたりで基板上のリセットボタンを2回押す。
4. ボードが認識されればそのまま書き込みが実施される。

うまくいかない場合は何度か試してみてください。
(最初のCOMポートの認識すらしない場合はブートローダーの不具合の可能性があるのでお問い合わせください)

コメント

  1. 佐藤雄紀 より:

    XInput化がうまくいかず、書き込みエラーが出てしまい、自分では荷が重かったです。お手数ですが申し訳ないのですが、XInput化して頂く事は可能でしょうか?お手数料、送料などはお支払いさせて下さい。ご検討ほど宜しくお願いします。

    • Lay31415 より:

      メールをお送りさせていただいたのですがご確認いただけておりますでしょうか。

タイトルとURLをコピーしました