【ディップスイッチでの設定変更】

ハードウェアに設定変更用のディップスイッチが付いているものにはメニューに「DIPスイッチ(Dip Switches)」が表示されます。

この場合はディップスイッチを調整することで設定変更することができます。多くのゲームではディップスイッチ変更後に再起動が必要です。

ディップスイッチの設定はcfg_directory で指定された cfg ディレクトリー内に [ゲーム名].cfg として保存されます。

 

 

 

【サービスモードからの設定変更】

それとは別に電源投入後にサービスモードを起動して設定変更を行うゲームも少なくありません。

サービスモードに入るためのスイッチは標準で「F2」に設定されています。色々なゲームで「F2」を試してみるとよいでしょう。

セガのゲームではサービスモード起動後の設定変更に「9」キーの操作が必要になることがあります。

こちらの設定は多くの場合 nvram_directory で指定された nvram ディレクトリー内に [ゲーム名] のディレクトリーが作られて保存されます。

 

 

 

検証環境:MAME 0.203

【複数の設定を読み込む】

mame.ini(厳密には*.iniという名前のMAME用設定ファイル)を複数読み込む事ができます。

 

日本版ストII'(sf2ceja)を例に起動すると、

inipath で指定されているディレクトリーを基準に以下の順序で設定ファイルを探索していき存在すれば設定されている値を順次上書きしていきます。

 

mame.ini(MAME全体で有効)

horizont.ini(横画面ゲーム全体で有効)

arcade.ini(アーケードゲーム全体で有効)←System type INI file (arcade.ini, console.ini, computer.ini, or othersys.ini) はMAME 0.253で廃止されました。

raster.ini(通常のブラウン管ゲーム全体で有効)

source/cps1.ini(ソースファイルを共有するゲーム全体で有効、sourceディレクトリーを作った上で配置する必要がある点に注意)

sf2ce.ini(クローン全体で有効)

sf2ceja.ini(sf2ceja限定で有効)

 

 

ゲームによってそれぞれのタイミングで読み込まれるファイル名が変わります。

名前からなんとなくルールも見えてきますよね。

これを理解するととっても便利!

全体の設定はmame.iniで…フィルターの設定はここで…操作の設定はあそこで…。

 

 

【特定のゲームにだけ設定を有効にする】

この場合だと sf2ceja.ini に設定を書けばよいことになります。

クローン全体に変更範囲を広げたければ sf2ce.ini

もっと変更範囲を広げたければ source/cps1.ini を使うという感じです。

 

 

より正確な内容についてはオフィシャルドキュメントを参照してください。

 

【Multiple Configuration Files】

https://docs.mamedev.org/advanced/multiconfig.html

 

 

検証環境:MAME 0.203

 

【ステートセーブ(状態保存)】

標準のキー設定は「Shift + F7」となっています。

Shift + F7」を押すと「状態をセーブ(Save State)」と表示されるので保存したいスロットを選びます。

具体的にはキーボードのキーのいずれかを押します。正確ではありませんがとりあえずはキーの数分保存できるスロットがあるという認識でよいでしょう。

 

例:

「Shift + F7」のあとにキーボードの「1」を押す。

 

 

ここで保存された内容は mame.ini 内 state_directory で指定されているディレクトリー(標準では「sta」)に [押したキー].sta として保存されます。

大事なステートファイルは上書き防止のためにリネームやコピーしておくのも有効だと思います。

 

 

【ステートロード】

標準のキー設定は「F7」となっています。

標準の設定では「セーブするつもりでロードしてしまう(またはその逆)」という事故を起こしやすいかもしれません。キー設定の変更を推奨します。

F7」を押すと「状態をロード(Load State)」とともにロード可能なスロットが表示されます。選択肢から選ぶかステートセーブの際に押したキーを押すとステートロードが実行されます。

 

例:

「 F7」のあとにキーボードの「1」を押す。

※バージョンの異なるMAMEで作られたステートファイルは読み込みできません。ステートファイルを重要視するのであればバージョンごとに異なる state_directory を指定するとよいでしょう。

どうしてもバージョン違いのMAMEのステートファイルを使いたい場合は /src/emu/save.cpp を改変してリビルドするしかありません。やったところで正常に動作する保証はありません。

 

 

 

【キー設定変更方法】

その他のコントロール(Other Controls)」の「Save State」と「Load State」になります。

 

 

【おまけ】

MAMEにはオートセーブとオートロード機能が用意されています。

-state <slot>

 

Immediately after starting the specified system, will cause the save state in the specified <slot> to be loaded.

 

-[no]autosave

 

When enabled, automatically creates a save state file when exiting MAME and automatically attempts to reload it when later starting MAME with the same system. This only works for systems that have explicitly enabled save state support in their driver. The default is OFF (-noautosave).

それぞれ個別に使用できるのでオートロード(-state)のみを有効化することも可能です。

オートロードの使いどころとして、起動時に長時間ベリファイ処理が走るゲーム(DDRなどが良い例)のベリファイ完了後をステートセーブしてその状態をオートロードするように設定してしまうと幸せになれるんじゃないでしょうか。

 

 

検証環境:MAME 0.203

アウトランのシフトギア。

レバーを下に倒せばHIGHギアになり上に倒せばLOWギアになる。

何を当たり前のことを言っているんだ?と思うかもしれないけど、この動作をMAME上のアウトランで再現できるのか?

 

答えは「できる」だ。

 

MAMEの標準設定ではギア操作はトグル操作になっている。

トグル操作をそのままボタンスイッチに割り当てるとボタンスイッチを押す度にギアのHIGH/LOWが入れ替わる。

これではレバーを下の時にHIGH、上の時にLOWにするという動作を確実に実装することができない。

 

そもそもアウトラン実機ではシフトギアをどう制御しているのか?

恐らく…シフトギア用に2ポジションのトグルスイッチを使っていて、OFFの時はHIGH、ONの時はLOWとなるように実装されている。ボタンスイッチに割り当てると通常(OFF)時にHIGH、押し込んでいる(ON)時にLOWとなるイメージ。

 

 

もちろんMAMEでもこの実装を再現することができる。

というよりもトグル操作の方こそMAMEでプレイしやすいようにとのアレンジなのだ。

 

【Shifter Toggle Disable】

https://docs.mamedev.org/advanced/shiftertoggle.html

なんとまぁ、やりたいことまんますぎるチュートリアルがオフィシャルドキュメントに記載されています。

 

 

検証環境:MAME 0.203

 

グラディウスやツインビーの起動画面ってながいよね〜。

これについてはモーニングミュージックという楽しみもあるので適切じゃないかもしれないけど…。

 

 

とにかく待ち時間ってやつはイヤなものです。イライラする。

こういう時は早送り機能を使って待ち時間を短縮しましょう。

 

早送りは標準で「Insert」キーに割り当てられています。SDL版は「Page Down」。

このボタンを押している間は早送り実行されます。

 

この機能をゲームコントローラーに割り当てたい、キー割り当てを変更したい場合は、

メニューから「入力(共通)(Input(general))」→「ユーザーインターフェイス(User Interface)」→「Fast Forward」の割当を変更します。

これであらゆるゲームの待ち時間を手軽に短縮できますね。

 

 

検証環境:MAME 0.203