there's no concept of "controller poll" in mame, because this information isn't considered useful by them, and it also has to be done for every machine separately. theoretically it can be determined by watching controller register reads, but that requires running the entire debugger UI and setting watchpoints manually via debugger console, which is also super complicated. mame lua can set WPs, but only if debugger is there. even then, there's no way to assign lua callbacks to WPs. I'm planning to add simple mem hooks to mame lua some day, but it will be super hard due to incredibly complex abstraction, and there's no guarantee they will even merge it.
* add MAME to OpenAdvanced
* make mame launch games
limited to arcades that only need rom name. other devices require machine name and rom name, and won't run. nor they are meant to be supported anyway: we have enough emulators that do the job better for particular devices.
dunno if direct disk access will be avoidable, there are quite some files it might want to load other than the rom (parent rom, bios, artwork). trapping all of these might be a future task.
it is also known that mame can load "romname.zip" file just as well as "romname" folder, which would represent an unarchived zip. I make use of it to send it zip name with extension. it's easy, and we're not obliged to recognize mere folder paths in the mame-advanced-loader logic.
* ability to run lua code inside mame