DeSmuMEのLua Scriptingを試してみたよ

  • TAS用エミュレータの機能紹介 - ごちゃログぴこっを読んでDeSmuMEのLua Scriptingに興味が出た
  • 調べてみたらあるメモリアドレスが書き換えられたときとか、あるアドレスが実行されたときにフックとか出来るみたいじゃないですか。これは熱そう
  • しかしDeSmuME 0.9.5の公式ビルドじゃ動かなかった
  • DeSmuMEのtrunkをダウンロードしてHAVE_LUAを定義してビルドしたら動いた!
  • DeSmuMEのプロセスメモリにアクセスしてある関数が呼ばれたときに呼び出し元アドレスを出力するとかやってたけど、Lua Scriptingを使えばそんなことせずに簡単に出来ちゃう!すごい! ←今ここ
memory.registerexec(0x0223B2D8, function()
  print(string.format("prng called: %#.8x", memory.getregister("r14")))
end)

ほかにもうさみみハリケーンを使わなくてもあるメモリが書き換えられたときの実行アドレスを特定とかが簡単にできる。ちょうべんり

DeSmuMEのLua Scriptingの実装状況はドキュメントとかなさそうなのでソース読むしかなさそう

筆者: oupo (連絡先: oupo.nejiki@gmail.com)