Gamepad/Joystick Mode 

I could write pages about what I think about the input system of MiSTer, bottom line is that it's bit of a mess and not very user or arcade friendly.

You can use the Expander with 2 player cores that require gamepad input and I have put some effort into making it as easy as possible, but given the way MiSTer is designed, it is not plug & play.

Test and Service will likely not work at all in Gamepad mode.

The MiSTer 'Virtual Gamepad'

MiSTer has the concept of a 'virtual gamepad', and before you can do anything, you need to set this up by pressing buttons on your controller/cabinet.  The idea is that you can plug in whatever, map your particular variant to a Virtual Gamepad, and the cores will communicate with this Virtual Gamepad.  

MisterAddons suggest this mapping, I'm not sure if there is a rationale behind it:

Virtual Gamepad B A R Y X L Select Start
Actual Controller 1 2 3 4 5 6 Coin Start

Easy enough, but unfortunately not so - the way arcade cores use this virtual gamepad is consistently inconsistent. You can be pretty sure that Start is not start, and that Select is not coin.

The game 1943, use L for coin, R for start, and Start for Pause.

Joust use Start for start (good?) R for coin, and X for Pause.

Marvel vs Capcom uses YXBALR for buttons, Select for start and Start for coin.

 The reason you don't have 6 buttons, plus coin and start for start (never mind test and service), is the intended audience - console / supergun users. From the maintainer of the MiSTer project:

"MiSTer is targeted for gamepads primarily. If you count amount of games for all supported consoles and computer cores then arcades are small fraction of that. So main input device is gamepad.

In effect, the Arcade Cores when used with gamepad are (out-of-the-box) consolized arcade versions - a few cores even have coin and start mapped to the same button, not something you would like in your arcade cabinet.

What can you do?

The general consensus seems to be that you have to define buttons in-game, for every game, even if you use an actual gamepad.  This has to be done pr game, pr controller - as the mapping you do in-game is relative to the physical device and not the virtual gamepad (what was the purpose of this thing again?).  If someone was crazy enough to do sane mappings for all cores and variants (Hi Porkchop :)), it would only work for a specific controller.  

How the Expander works in gamepad mode

 

The way MiSTer is controlled is permanent, so even if you're in Gamepad mode, when you bring up the core menu or change volume, it's not related to gamepad/keyboard mode.  If you really want to use Gamepad mode, you need to configure the Expander as a virtual gamepad

When you see this screen, you MUST switch the Expander from keyboard to gamepad mode:

  

When you are 100% sure it is in Gamepad mode, you can start pushing the buttons on your cab to set up the virtual gamepad.

You will be prompted for non-relevant input such as mouse buttons etc, you can ignore this by pressing space on a keyboard.  Since you don't have a keyboard in your cabinet, you can do this from the Expander:

 

After completing this, you also have to define inputs for each core.

BIG CAVEAT

It s possible to define a Virtual Gamepad with keyboard input, MiSTer will then no longer regard the used keys as keyboard - but rather gamepad input.  This will place your setup in in limbo where MiSTer sees some input as gamepad and some as keyboard.

Therefore, DO NOT define joystick buttons when the expander is in Keyboard mode.