Will somethin like this work well?
Yes.
Official Mame comes with ctrlr files for HotRod, X-Arcade, and SlikStik that do something like this. You might want to take a look at them as examples, but take note: they don't have a "mame button" so use combos of just normal keys, and I hate their UI_Cancel mapping (so I change it, see below).
My suggestions:
- Set UI_Select to p1 button1. Easier and pretty intuitive.
- Be careful about UI_Cancel. I'd be
very reluctant to make it close to any other combo or any common key presses. Which is why I don't like the hotrod etc UI_cancel, and one reason I'm suggesting not have UI_Select as you said; if the joystick bounced from down to up before you let go of your mame button, or you pressed right+up & mame when you want to pause, oops.
How about mame button + start1 + p1 up? If not that, at least do mame + p1up + not p1left + not p1right. (not: when mapping press twice quickly)
- I like the idea of the "mame" button, over using combos of common buttons. The Ipac and keywiz have similar buttons to your mame called shift & shazaaam, respectively; the difference between your's and those is the shifting/shazaaaming is done inside their encoders instead of mame.\. OTOH, others here might suggest not even having the separate mame button. Up to you.
- Setup to your liking using mame's tab, "Input (general)", then copy cfg/default.cfg to ctrlr/
yourname.cfg. Then use the ctrlr file (what I do), or just keep it for backup.
- Don't forget the UI directions (UI_up, UI_down, etc), and maybe (depending on your layout) the dual stick directions (P1_joystickright_up, P1_joystickleft_up, etc).
Good luck!