【ゲームコントローラー選び】
とりあえずはWindowsにUSBやBluetoothで接続してWindowsの標準ドライバで動作するものがよい でしょう。そうでないものを使う場合は試行錯誤してください。
おすすめは以下の2つ。
・DUALSHOCK 4
・Xbox用コントローラー (360、One用どっちでも)
価格高めではあるけど耐久性や操作性を考えれば悪くない。
アナログ操作もできるという点もおすすめの理由。
そしてボタン数は多ければ多いほどよい。MAMEを使い込むほどそう感じるようになると思います。
※大半のゲームコンソール向けUSBコントローラーはWindows標準ドライバで動くと思いますが、DUALSHOCK 3はWindows標準ドライバでは正常動作しない ので注意。
【ゲームコントローラーを使う】
ゲームコントローラーがOS上で認識されている状態でMAMEを起動 します。
※MAME起動後に接続しても認識しません。
MAMEで認識しているか確実に確認したい場合は -verbose オプションを使うとよいんじゃないでしょうか。
-[no]verbose / -[no]v
Displays internal diagnostic information. This information is very useful for debugging problems with your configuration. IMPORTANT: when reporting bugs, please run with mame -verbose and include the resulting information. The default is OFF (-noverbose).
具体的には以下のように入力し、接続したコントローラーらしき文字列が表示されることを確認します。
【Windows】
> mame64.exe -v | find "Input"
【*nix系】
$ .\mame64 -v | grep "^Input"
【MAME共通のコントローラー設定】
ゲーム起動後に「Tab 」キーを押してメニューを表示します。
「入力(共通) (Input (general))」を選択。
「Player 1 Controls 」を選択。
設定したい項目で「Enter 」し、値が空白になったら設定したいボタンを押します。
複数のボタンやキーを設定したい場合は更に「Enter 」キーを押して追加設定したいボタンやキーを押します。
項目の設定内容を元に戻したい場合や無効にする場合は「Delete 」キーを使います。
とりあえず以下の項目くらいは設定しておきましょう。
・P1 UP
・P1 Down
・P1 Left
・P1 Right
・P1 Button 1
・P1 Button 2
・P1 Button 3
・P1 Button 4
ついでに、1つ前のメニューに戻って(Esc キー)、「その他のコントロール (Other Controls)」から「1P Playar Start 」と「Coin 1 」もゲームコントローラーに割り当てておきましょう。
その他にもメニュー、決定、キャンセル、メニュー移動、リセット、早送り、ポーズ等のよく使う操作もゲームコントローラーに割り当てるとよいでしょう。複数ボタンの同時押しでメニューを出すなんてことも可能です。
また、ゲーム毎に設定を変えたい場合は「入力(現在のマシン) 」から同様に設定します。
これらの設定ファイルは mame.ini の cfg_directory で指定しているパス(標準では cfg ディレクトリ)に[ゲーム名.cfg]の名前で保存されます。共通設定は default.cfg です。
ちょっと話がずれますが、*.cfg、*.iniファイルは特定のルールで複数読み込めるのでうまく活用すると設定ファイルの数を抑えて柔軟な管理ができる ようになります。
【さらなる高み】
複数のゲームコントローラーを接続する場合はもう少し工夫するとさらに幸せになれます。
起動の度にコントローラー番号が入れ替わったり(1P用、2P用が入れ替わってイライラ)することがあるんですね。
Windows版は-ctrlr オプションとctrlrファイルを定義することで同モデル(デバイス名が同じ)であっても確実に識別してコントローラー番号を固定できます。ctrlrファイルの定義を理解するとMAMEは更に使いやすくなります。これについてはそのうち解説するかもしれません。
SDL版(*nix、Mac)は別モデルであれば(デバイス名が異なれば)-joy_idx? オプションで識別&固定可能。OSに通知されるデバイス名が同じ場合は解決策がないかもしれません。これは私がMacユーザーでありながらWindows版のMAMEを使うようになった理由のひとつでもあります。
検証環境:MAME 0.203