いつからかわからないけど(少なくとも2017年1月以前)MAMEのLua Script周りが刷新されている。
以前に書いていた情報が既に古くなっているということを明記しておきたい。
現在はゲームに介入できる幅が増えているので自動操作等のスクリプトも実現できる。実行中のゲームから取得できる情報も増加している。
そして大きいのはプラグイン機能としてLuaスクリプトを実行できるようになっていること。
LuaスクリプトからのファイルI/Oも可能なのでプラグイン独自の設定ファイルを作ったり状態を保存したりも可能。
今のMAMEはこれを使ってハイスコア保存等のプラグインが標準実装されている。
その辺のテストも兼ねて…。
各ポートへの入力内容をリアルタイム出力するロガーを作ってみた。(実はこれを作ったのは2017年1月。2年近く前…)ボタン設定がうまくいってるか、アナログ入力の最大値などが視覚的にわかるのは大きい。自作コンパネの入力確認用に2年近く実用している。
格闘ゲームの入力確認として使えなくもなさそうだが…?
参考になるドキュメントは以下。
私の拙い説明よりソースコードを読むのが手っ取り早い。乱暴だけど真実。
特にpluginsディレクトリー内はあらゆるサンプルが盛り沢山。
プラグインの初期化、メニューの操作、ポートの操作、ファイルI/O等…。
https://docs.mamedev.org/techspecs/luaengine.html
https://github.com/mamedev/mame/blob/master/src/frontend/mame/luaengine.cpp
https://github.com/mamedev/mame/tree/master/plugins
※オフィシャルMAME 0.203現在