Android MAME lightgun tutorial / 2026-08-03

Set up MAME's off-screen reload helper on Android

Map one safe button combination to a supported lightgun axis and trigger, and know when a more complex game needs an input macro instead.

9 minute tutorialMAME 0.289 included plugin; Android port must expose plugins and suitable lightgun inputs

Set up MAME's off-screen reload helper on Android

Enable MAME's included Off-Screen Reload Helper plugin, restart, then add a helper for the current machine with an unused reload combination, a non-wrapping lightgun axis, and a non-toggle trigger input. It works only for games that reload when an axis reaches its minimum while the trigger is pulled; a game with timed or multi-step reload logic needs an Input Macro instead.

Do this in order

  1. 01

    Verify that the authorized game already receives correct on-screen lightgun movement and trigger input; the helper does not calibrate hardware.

  2. 02

    Enable plugins and the Off-Screen Reload Helper, completely exit MAME, and restart the target machine.

  3. 03

    Open Plugin Options → Off-Screen Reload Helper and choose Add reload helper.

  4. 04

    Bind an unused reload combination, select the player's non-wrapping lightgun axis, and select the non-toggle trigger input.

  5. 05

    Create the helper and test one reload away from normal gameplay inputs; undo the binding immediately if it also triggers coin, start, exit, or menu actions.

  6. 06

    If the game requires a delay, two axes, or a timed sequence, delete the unsuitable helper and build a narrowly scoped Input Macro from the official plugin instructions.

Decision and diagnostic table

Game/input behaviorUseReason
Axis minimum plus trigger reloadsOff-Screen Reload HelperMatches the plugin's simple condition
Timed or multi-step sequenceInput MacroNeeds ordered durations or multiple values
Pointer is inaccurate on screenNeither yetCalibrate and map the base lightgun first
Helper disappears after restartPlugin data diagnosisCheck enablement and writable `homepath`

The helper synthesizes a condition, not calibration

It drives a selected axis to the required edge and activates the trigger when your combination is pressed. It cannot correct Android pointer scaling, rotation, viewport alignment, or an absent trigger assignment.

Complex reload logic needs a macro

MAME explicitly distinguishes simple axis-minimum reloads from games that require a delay or longer sequence. Choosing Input Macro for those cases is a behavior boundary, not a workaround for missing content.

Configuration is stored per machine

Helpers are saved as JSON in the `offscreenreload` folder under plugin data, using the machine short name. Preserve that small configuration with its port, MAME revision, and controller receipt.

First-party sources

Related guides