DUALSHOCK3のアナログボタン(感圧ボタン)をPCSX2で使う方法
環境
- Windows: 11 (24H2)
- PCSX2: v1.6.0
- DUALSHOCK3: CECHZC2J
- DsHidMini: v2.2.282.0
- BthPS3: v2.17.0
モチベーション
WindowsでPS2のソフトをエミュレータでプレイする際,アナログボタン(感圧ボタン,pressure-sensitive button)を使いたいため,方法を調べて使えるようにしました.
必要なもの
- DUALSHOCK3
- DUALSHOCK4以降はアナログボタンに対応していない
- DsHidMini
- DUALSHOCK3をWindowsで認識させるためのドライバ
- DirectInputのデバイスとして認識される
- v3系はβ版だったので,v2系を使った
- BthPS3
- BluetoothでDUALSHOCK3を繋ぐ場合は,DsHidMiniに加えてこれも必要
ドライバのインストールと設定
- DsHidMiniのv2系最新版のリリースをダウンロードし,zip解凍した中にある
x64(or x86)\dshidmini\dshidmini.infとx64(or x86)\dshidmini\igfilter.infをそれぞれ右クリックしてインストール - BthPS3の最新版のリリースをダウンロードし,インストーラを起動してインストール
- DUALSHOCK3をUSB接続し,
DSHMC.exeを管理者として実行 - 認識されていれば
DsHidMini DevicesにDUALSHOCK3が出てくるので,それを選択してDevice DetailsのHID device modeをSDF (PCSX2)にし,Mute digital pressure buttonsにチェックを入れ,Apply changesをクリックするMute digital pressure buttonsはPCSX2でボタンのマッピング時にアナログボタン(スライダ)として認識させるためにONになっている必要がある- ゲームプレイ時にはOFFになっている必要があるので,あとでチェックを外す
PCSX2のボタンマップ設定
設定→コントローラー(PAD)→プラグイン設定...からLilyPadの設定画面を開くGame Device APIsのDirectInputにチェックを入れる- 設定したいパッドのタブを開き,各ボタンをマップする
- Quick Setupはうまく動かなかったので1つずつ設定した
- 先の
Mute digital pressure buttonsにチェックが入った設定になっていれば,十字キーや○△□✕がスライダーとして設定されるはず
- 各ボタンの設定で
Sensitivityを0.300くらいにする- そうするとよいと参考サイトに書いてあったのでとりえあずそのようにしてみたが,実際にプレイしてから調整したほうがよいかも?
- 各ボタンごとに設定しないといけないので面倒
ドライバの再設定
DSHMC.exeをもう一度管理者として実行Mute digital pressure buttonsのチェックを外し,Apply changesをクリックする
ハマったこと
Steamがアナログ切り替えボタンを横取りする
アナログ切り替えボタンにDUALSHOCK3のPSボタンを割り当てたのですが,これを押したときにSteamのBig Pictureモードが起動してしまいました. この機能はStreamがWindows起動時に自動起動する設定になっていると反応するようで,タスクトレイからSteamを終了させることで反応しなくなりました.
アナログ切り替えボタンを押さないと有効にならない
設定が終わってゲームをプレイしてみたところ,ゲーム内では十字キーや○△□アボタンがアナログボタンとして反応しませんでした.(ただの0,1のデジタルボタンとして動いてしまう.)
これは,ゲームが始まってからアナログ切り替えボタン(PSボタン)を押す必要があったからでした.
そういえばPS2コントローラでもAnalogと書いてあるアナログ切り替えボタンを押してランプを点灯させる必要がありましたね.忘れていました.
(これが一番ハマったところ.)
PCSX2のバージョンによってはマッピング設定がうまくできない
今回PCSX2 v1.6.0でうまく動作したのですが,2.4.0だとマッピング設定の際にボタンを押してもPCSX2で認識されず(一部のボタンだけは認識された),うまく設定ができませんでした. 新しいPCSX2はLilyPadをプラグインとして使わなくなったからでしょうか. この問題は解決できなかったので,とりあえずv1.6.0で遊んでいます.