Hello,
This reply may be a bit late but I'm currently building a similar project at the moment and have come across / overcome most issues now.
Project 64 version 1.6 won't allow you to remap keys. version 1.7 does!

I Use VirtuaNES for NES games as that allows you to remap.
Fusion does not allow you to remap keys but I've overcome this by making my save / load states of other emulators to match the defaults of Fusion.
This just leaves the screenshot as a different key.
With the following autohotkey script that is resolved:
#IfWinActive, ahk_class KegaClass ; FUSION
F11:: Send {SHIFTdown}{F12}{SHIFTup} ; screenshot
I'm using ePSXe for Playstation at the moment but was looking for another emulator as I come across this thread as you cannot remap keys with it.
Autohotkey doesn't seem to like the following much as you have to hold the key for ~ 1 second for it to work... And mapping it like Fusion just doesn't work at all.
#IfWinActive, ahk_class EPSX
$F8::
SendInput {F1 down}
Sleep 1
SendInput {F1 up}
$F5::
SendInput {F3 down}
Sleep 1
SendInput {F3 up}
$F11::
SendInput {F8 down}
Sleep 1
SendInput {F8 up}
MAME I'm having issues with quick save / loading. It asks for a slot for the save state so two keys are requesired to press.
Autohotkey not working with that at the moment.
I agree with the "WOW factor" of having console games on an arcade but also agree that a lot of them can be harder to play.
That's why I'm going to have four USB ports on the front of my cabinet to connect game controllers to.
The game controllers can be set up in Xpadder to emulate keyboards so the controllers can be easily (well hopefully I haven't done it yet...) be used as an alternate
