Light gun guide

If you've ever been in a video game arcade before it's almost guaranteed you've seen a specially large cabinet featuring a fake “light” gun which could be used to aim at a screen displaying the game, one example being Terminator 2: Judgment Day. Thanks to the efforts of various developers and hardware manufacturers, it is now possible to bring that experience to the home using Batocera! This also includes the various home ports of such light gun games such as the infamous Duck Hunt.

Once the light guns are connected, a crosshair will appear on the screen:

The game list will also indicate which games are light gun compatible with a small theme-specific icon next to the name (this can be optionally disabled):

You might come across few games that are not gun games with the light gun icon anyway in Batocera v35. These games have optional light gun support for an easter egg, specific scene, mini-game, etc. They are not configured automatically by the system. However, it is possible to manually configure them if you know what you are doing.

So first and foremost a light gun is needed, possibly multiple if intending on doing multiplayer (be careful of having enough physical space for both collision avoidance and tracking). Various light guns have entered the market and each offer their own advantages and disadvantages. If not specified, the light gun is compatible with all displays. Click the light gun to go to its section.

All prices are subject to differ based on local availability and are only estimates; listed in USD.

Light gun Tracking method Precision Connectivity Estimated price Notes
Direct Wiimote gun with IR bar
Wiimote in a gun-shaped holster.
USB-powered IR LED bar.
★★★☆ Bluetooth $10-20 second-hand Wiimote + $3-$10 IR bar Need to have a powered IR sensor bar, but is far more accurate than using the Dolphinbar. Also, the Wiimote itself is wireless (most other light guns are wired).
It is possible to convert the Mayflash Dolphinbar into a regular IR sensor bar with a firmware update, to use it as if though it were just a regular IR bar (this disables the Dolphinbar's Bluetooth connection, the Wiimote must be connected to a different device).
Mayflash Dolphinbar with Wiimote gun
Wiimote in a gun-shaped holster.
The Mayflash Dolphinbar in all its old glory.
★☆☆☆ Connect Dolphinbar to machine via USB cable, then Wiimotes to Dolphinbar via Bluetooth $10-20 second-hand Wiimote + $35 Dolphinbar Works universally across machines and Wiimotes, but tends to jitter. No calibration possible, crosshair is mandatory. This is the only option on v34 and lower. Also, the Wiimote itself is wireless (most other light guns are wired).
Namco GunCon2/G-Con2
Original Namco GunCon.
Cathode ray timing
An old CRT TV.
★★★☆ Composite/component cable $25-$50 second-hand, low availability Limited to analogue displays which supports composite/component input. This cannot be used on a modern digital display.
Ultimarc Aimtrak
The Aimtrak IR bar, thicker than the Wii's IR bar.
★★★☆ USB cable (370 cm) $95 (w/o recoil)/$120 (w/ recoil)
AE Lightgun
AE Lightgun.
Infrared ★★★☆ USB cable (290 cm) $125 Requires at least nine feet/three metres of space to use.
Sinden Lightgun
Sinden Lightgun.
White border on display ★★★☆ USB cable (480 cm) $100 (w/o recoil)/$160 (w/ recoil) Recoil can optionally be disabled. Requires shrinking the game screen to display the white borders. Has limitations on how many guns can be used per USB hub.
GUN4IR light gun.
Various IR LEDs needed for the GUN4IR.
★★★★ USB cable $80 (DIY)/$200 (pre-assembled) Larger displays require more physical distance (or wide/fish lens). Fully supported since v36.

When a light gun is connected, a light gun symbol will appear in place of the controller activity icons (if that is enabled and the theme supports it). In addition, a new menu item will appear in the CONTROLLERS & BLUETOOTH SETTINGS menu specific to the light guns that are currently connected. This can be used to adjust settings specific to that light gun.

Depending on the light gun, global calibration may be required. All global calibration can be performed at any time, even during gameplay, however this sort of calibration will always be for global calibration (it is not saved per-game, it's only needed to be done once). Refer to the section relevant to your light gun below for instructions.

There must be one proper controller pad connected in addition for each light gun connected. So for example, if you have one light gun connected, you will need to have one regular controller connected; if you have two light guns, then two controllers connected, etc.

The controllers duplicate the mapping of the gun in port order. So for instance, if the light gun is missing a coin button ([SELECT]), then this can be pressed on the respective controller to activate that light gun's coin button.

This will change in the future.

Wiimote in a gun-shaped holster. USB-powered IR LED bar.

The Wii was revolutionary for its motion-based controls when it released back in 2006. This technology can now be used to emulate a light gun in Batocera, useful if you happen to have an old Wiimote and sensor bar laying around that is unused (though for convenience, buying a USB-powered sensor bar may be necessary). This is recommended over using the Mayflash Dolphinbar as the direct connection has far superior accuracy.

This is a special mode for the Wiimote when connected to Batocera. This will be referred to as the Wiimote gun from now on. Requires Batocera v35 or higher.

The Wiimote's face buttons have no function in Batocera v35, however this was fixed in Batocera v36.

Set up the powered IR bar by taping over one side with solid tape and positioning the remaining LED at the bottom/top center of the display. Counter-intuitively, this setup works best when only one IR LED is visible (otherwise the cursor on-screen may “jump” when aiming at the edges).

Image showing how the regularly set-up IR bar is not good for Batocera. The IR bar being set up correctly. The IR LEDs are normally invisible to the human eye, but can be seen by cameras.

Connect the Wiimote directly as a regular Bluetooth device. A notification will appear indicating that the Wiimote has connected in its gun mode, with a little light gun icon appearing (if the theme supports it). Once connected, press and hold the [Home] button for three seconds. A target will appear in the center of the screen, aim the Wiimote at it from your neutral shooting position and press [B]. Then a target will appear at the top-left; aim at that and press [B] again.

If the second target cannot be shot at, move further away from the display and repeat the process from the start. It may also help to put the IR bar above the monitor instead of below.

Dolphin can emulate the pairing function of the emulated Wii system, allowing for direct connections to the Wiimote. This is independent of what Wiimote gun settings are used in EmulationStation.

Wiimote in a gun-shaped holster.

The Mayflash Dolphinbar is a third-party accessory that was initially designed to allow Wiimotes to be used as a cursor for PCs, or to allow for direct passthrough of the Wiimote to the Dolphin emulator (hence the colloquial name). Batocera can use it to emulate a light gun.

Unlike the direct Wiimote connection method, modes 1 and 2 do not utilize any special Wiimote gun mode in EmulationStation to function, instead the Dolphinbar itself emulates being a mouse and keyboard to the machine. When in these modes, it does not allow for global calibration, meaning that it will not likely match your display one-to-one (just like the original Wii did). It is also the only available option for light gun play on v34 and lower.

Certain third-party remotes that don't work over native Bluetooth may work with the Dolphinbar, as it uses its own Bluetooth stack separate from the host machine.

Until recently, the Mayflash Dolphinbar could not be used as a regular IR sensor bar if intending to use the direct Wiimote connection method since the LEDs shut down after some inactivity if no Wiimote is connected to it. A firmware update from Mayflash is required to unlock a new mode by pressing and holding [MODE] on the Dolphinbar (as shown in this short tutorial). The LEDs will remain powered on for 4 hours before shutting down. It is possible to directly connect a Wiimote to the bar to use it regularly though.

Dolphin can emulate the pairing function of the emulated Wii system, allowing for direct connections to the Wiimote. This is independent of what Wiimote gun settings are used in EmulationStation.

The Mayflash Dolphinbar requires manual action, compared to other solutions which automate most of the process. Because of this, it has its own page.

Original Namco GunCon 2. An old CRT TV.

The Namco GunCon (known as G-Con in Europe) is a PlayStation peripheral first released in 1994, with the GunCon 2 for the PlayStation 2 following it up in 2001. If you have a GunCon 2 and a compatible analogue TV, you may be able to utilise it with Batocera. This cannot be used on a modern digital display. Requires Batocera v36 or higher.

The GunCon 3 is not compatible as it has no driver support yet.

Create a sh file inside the ports folder


The calibration script must be marked as executable with the chmod +x command:

chmod +x /userdata/roms/ports/
xrandr --output $(xrandr | grep -o '.* connected' | sed 's/ connected//') --gamma 1:1:1 --brightness 2.0
xrandr --output $(xrandr | grep -o '.* connected' | sed 's/ connected//') --gamma 1:1:1 --brightness 1.0
  • The first line will increase the brightness via xrand
  • The second line will launch the calibration script via switchres
  • The third line will set the brightness back to default once the script exits.

You only need to do a first calibration once.

  • Start the calibration by pressing the gun trigger.
  • Follow the onscreen instructions and aim at all the 4 circles with the cross in the middle.
  • Try to be as exact as possible.
  • The result will not be perfect even if you aimed exactly in the middle using the GunCon2's crosshair.
  • This is normal..
  • Exit the script and save the settings by pressing A or B
  • Button C + D-pad left/right → decrease x-min → apply if your gun is out on left of the screen
  • Button C + D-pad up/down → increase x-max → apply if your gun is out on right of the screen

Aimtrak Light gun. The Aimtrak IR bar, thicker than the Wii's IR bar.

The Ultimarc Aimtrak comes with its own IR bar which can be mounted on the top of or at the bottom of the display, much like the Wiimote. Requires Batocera v35 or higher.

Connect both the light gun and the IR bar via USB. Then, hold main trigger for five seconds to launch the global calibration process. Shoot the top-left, top-right and bottom-center targets as they appear.

The calibration information is saved to the gun itself, so a recalibration may be required if moving to a different display.

If using a recoil model, a separate power supply is required. This is not bundled with the light gun. More info can be found on its store page.

To quote AimTrak's documentation:

The recoil power is routed via the connecting cable and the power supply needs to have a connector with outer diameter of 5.5mm and inner of 2.1mm.
The required voltage is 24-36 Volts.
The power supply needs to have the following maximum specs:,

24 volts 4 Amps, or 36V 3 Amps.

DO NOT use a supply with a current capability of greater than 4 amps as the mechanism relies on the current-limiting feature on the supply to prevent overload. If using two or more guns you will need one supply per gun.
The center pin of the connector is positive. Outer barrel negative.
We have tested this 3A supply from an Ebay vendor and it gives stronger recoil than some 4A supplies:
Here is an Ebay USA link:
The pictures below show the cable connection and an example supply. This type of power supply is often available on Ebay.

AE Lightgun.

The AE Lightgun. Requires Batocera v35 or higher.

description, setup, everything

The Sinden Lightgun is a light gun which uses a regular camera looking at a white border to perform its tracking. Batocera will automatically enable a white border when the Sinden Lightgun is connected, as well as shrinking the content of the games to accomodate for this. Requires Batocera v35 or higher.

A hardware bug prevents the use of multiple Sinden Lightguns on a single USB hub on some boards. Computers will typically use a single hub for groups of the same ports accessed via the IO panel. The best way around this is to plug one light gun into the front facing ports, and another into the IO panel. If your machine has a mixture of USB 2.0 (black tongue) and USB 3.0 (blue tongue) ports, they will usually have separate hubs.

Connect the USB cable to the machine. Then hold left on its D-pad for five seconds. Shoot the center of the screen. Calibration is complete.

Sinden Lightguns offer the following options in CONTROLLER & BLUETOOTH SETTINGSSINDEN GUN SETTINGS

  • BORDER SIZE: Thin, medium or big. By default, the medium one is enabled (the size may differ depending on the emulator).
  • RECOIL: Adjust the behaviour and strength of the force-feedback when holding down the trigger.
    • No recoil: No force-feedback at all.
    • Gun: Recoil, delay, then rapid recoil until trigger is released.
    • Quiet gun: Same as “Gun”, but less intensity.
    • Machine gun: Rapid recoil until the trigger is released.
    • Quiet machine gun: Same as “Gun machine”, but less intensity.

GUN4IR light gun. Various IR LEDs needed for the GUN4IR.

For the time being, any custom and manual settings must be done inside Windows with GUN4IR tool and burned into the light gun.

If you have the calibration button, press it and shoot all targets in turn.

A table showing which emulators and cores support light guns (must be switched manually for systems using a default core not compatible with light guns).

System Emulator Gun support (v35) Gun support (v36) Notes
3do retroarch/opera Multiplayer unsupported for now
amstradcpc retroarch/cap32
arcade mame
atari800 mame
atari2600 retroarch/stella
atari7800 mame
atomiswave retroarch/flycast
flycast Multiplayer unsupported for now
c64 libretro/vice_x64
daphne hypseus
dreamcast retroarch/flycast
redream Multiplayer unsupported for now
flycast Multiplayer unsupported for now
gx4000 retroarch/cap32
master system retroarch/genesisplusgx ~1)
megadrive retroarch/genesisplusgx
model2 model2emu Multiplayer unsupported for now
model3 supermodel Multiplayer supported in v37+
naomi flycast Multiplayer unsupported for now
nes retroarch/nestopia
psx duckstation Multiplayer unsupported for now
retroarch/mednafenpsx ✔* ✔* Only works with software renderer
ps2 retroarch/PCSX2
ps3 RPCS3 PS Move emulation is very early
saturn retroarch/beetle-saturn
segacd retroarch/picodrive
snes retroarch/snes9x_next
retroarch/snes9x ~2)
steam steam
wii dolphin
windows(wine) wine/lutris Untested Untested
xbox xemu
zxspectrum retroarch/fuse

Games which are light gun compatible will belong to the light gun genre in EmulationStation. Some themes support showing this tag to make it easier to quickly identify which games are light gun games. It is also possible to enable the light gun category as a selectable system.

Write a meaninful definition of how the physical buttons on the light gun has been mapped to the key events.

For a full list of light gun codes and buttons, visit this temporary wiki user page.

Global mouse/keyboard code Retroarch RPCS3 MAME Dolphin/Wii
BTN_LEFT trigger T Button 1 B
BTN_RIGHT offscreen_shot Move (∼) Button 2 A
BTN_MIDDLE start Start Start Plus (+)
BTN_1 select Cross (X) Insert coin Minus (-)
BTN_2 aux_a Circle (O) Button 3 1
BTN_3 aux_b Not mapped Button 4 2
BTN_4 aux_c Not mapped Button 5 HOME
BTN_5 dpad_up Triangle (△) Button 6 D-Pad Up
BTN_6 dpad_down Square (□) Not mapped D-Pad Down
BTN_7 dpad_left Select Not mapped D-Pad Left
BTN_8 dpad_right Not mapped Not mapped D-Pad Right
Global code Wiigun btn Wiigun code Sinden btn Sinden code GUN4IR btn GUN4IR code AimTrack btn AimTrack code AElightgun btn AElightgun code Dolphinbar btn Dolphinbar code
BTN_1 MINUS KEY_PREVIOUS Front right KEY_1 START KEY_1 2 BTN_1 Unmapped Unmapped
BTN_2 1 BTN_1 Back right KEY_2 SELECT KEY_5 3 BTN_2 Unmapped Unmapped
BTN_3 2 BTN_2 4 BTN_3 Unmapped Unmapped
BTN_4 HOME BTN_MODE 5 BTN_4 Unmapped Unmapped
BTN_5 KEY_UP KEY_UP KEY_UP Back 1 KEY_UP Unmapped Unmapped

A list of tested light gun games (and any notes that pertain to them specifically) can be found on its own spreadsheet.

Beta testing, bug-finding and workarounds are welcomed on the Discord channel #lightguns or on the mega-issue report.

Although most light gun games will be plug and play, certain titles/emulators require extra actions (typically calibration in the emulated game itself). These are limitations of the software, but will be automated in the future (v36) for games that require it.

Most games are not correctly calibrated. In the main screen once the game launched, shoot the Calibrate option. Follow instructions to recalibrate. (FIXME how?)

Most arcade games won't need recalibration. If they do, this is done in the service menus of the game once launched. This only needs to be done once, even if switching light guns later.

For most games, press either [F1] or [F2] on the keyboard to access the service menu specific to the game. Some games may require additional keys to be held while pressing the service keys (eg. Point Blank requires pressing [9] while holding [F2]). Navigate the menus by repeatedly pressing [F1] or [F2]. The calibration process is different per-game.

Example game with screenshots. Multiple if possible.


Recalibration is required in some games which requires remapping in the emulator first.

  1. Open the file manager ([F1] on the keyboard).
  2. Navigate to Applications (in the sidebar on the left), then launch flycast-config.
  3. Click on Controls tab, then Map to the device of your choice (ex.: keyboard).
  4. Switch the tab on the top right corner to Arcade.
  5. At the very bottom, map any button or key for service menu and test.
  6. Click Done and exit (FIXME how do you save? Is it obvious?)

Now Flycast mapping is set up. Launch the game and complete its calibration process by opening the service menu with the button mapped earlier. This is done per-game, and is different per-game.

Screenshots. Example game calibration as well.

libretro: flycast

Recalibration is required in some games. To do so, you need to enable the service menu.

  1. Open the Quick Menu with [HOTKEY] + South button (B SNES).
  2. Go to Options → (FIXME finish this sequence) and enable Allow Naomi service Buttons.
  3. Exit the emulator.

This only needs to be done once (FIXME confirm)

Then, for each game:

  1. Launch the game.
  2. Press in [L3] or [R3] on the controller (or [F1] or [F2] key) to open the service menu.
  3. Navigate (FIXME how?) to light gun calibration.

For Atomiswave, once the ROM is launched :

  1. Open Quick Menu with [HOTKEY] + South button (B SNES).
  2. Go to Controls → Port 1 → Device type.
  3. Change it from Light Gun to Arcade Stick.
  4. Close he Quick Menu and press L3 to bring the ROM menu.
  5. Navigate to Test Mode with L3 and select it with R3.
  6. Navigate and select I/O TEST
  7. Open Quick Menu once again and change the Device Type back to Light Gun and close the Quick Menu.
  8. Pull the trigger and calibrate.
  9. Once done, exit the calibration menu with trigger, open the Quick Menu and change Device Type back to Arcade Stick.
  10. Navigate to exit the ROM menu.
  11. Once back in the game, open Quick Menu for the last time and change the Device Type back to Light Gun.
  12. You can now play with a calibrated aim !

ROM NVRAM is saved forever now. No need to recalibrate again for the ROM.

Example game calibration with screenshots.

House of the Dead 2 has the credit button of player 2 bound to the service menu. This is a known issue. As a workaround, only enter credits and press start via player 2's controller (not the light gun).

libretro: mame

In Batocera v35, the light gun buttons must be mapped in RetroArch's input menu first. (FIXME which input menu? there's two…) This will be fixed in the v36.


In v35, a few games have an offscreen reload system which does not work well with the Wiimote. The system can be forced to perform a manual reload action with a press of the primary button (in the Wiimote's case, [A]):

  1. While in the MAME gamelist, press [SELECT]. Then go to ADVANCED SYSTEM SETTINGS.
  2. Go to OFF-SCREEN RELOAD and set it to “ON”.

Hopefully, this issue will be fixed in future versions such that offscreen reloading works out of the box with the Wiimote.


Configure the emulator first (controller to Lightgun, map missing buttons) (FIXME how? step-by-step)

No crosshair available.

Commodore 64 games were released in various mediums. It was very common for all tape ROMs (TAP files) light gun games to also feature a joystick version on the other side of the tape. In order to use light guns, the light gun version of the game is needed. Disk images usually support both.

VICE x64

No crosshair available.

Recalibration required and done once by opening the service menu with the [F2] key. Navigate to (FIXME) with [F1], and then press [F2] again to enter. Perform the calibration and then (FIXME).

In v35, current default bezels are broken for the Sinden Lightgun for this emulator. This can be worked around:

  1. If it is not done yet, run for the first time a model2 rom to download the required files.
  2. Open the archive file and extract artwork and scripts folders from either 720p or 1080p into /userdata/saves/model2/model2emu. Overwrite existing files if prompted to do so.
  3. Play!

This should be fixed by v36. Hopefully.

If the game's video resolution is changed (such as changing display or by using the “video mode” setting), per-game recalibration is necessary for this system.

Recalibration is required and done once. Press either [5] or [7] on the keyboard to access the service menu specific to the game. Navigate the menus by repeatedly pressing [6] or [8]. The calibration process is different per-game.

Example game with screenshots. Multiple if possible.

No crosshair is available.

All PSX emulators are only compatible with GunCon ROMs (with exception to libretro: mednafen, which should be compatible with all ROMs but a bug prevents the use of any light guns), so any non-GunCon ROMs require the Nuvee patch in order to function with light guns in the emulators: Instructions are in the .7z file, respectively for each patchable ROM.

Area 51 has no known working patch.

In-game recalibration is required, located in the game menu options. This is different per-game. This only needs to be done once.

The Justifier controller type does not work in libretro: mesen-s and libretro: bsnes, rendering Lethal Enforcers unplayable with these cores.

Veteran users may recall the controller type option in the advanced system settings for each system needing to be set to a particular light gun (specific to that system) in order to play light gun games. As of v35, this is no longer necessary, as Batocera will automatically use the appropriate controller type if a light gun is connected. The crosshair option will also be automatically disabled for the light guns - except if you play with the Mayflash Dolphinbar, which will be automatically enabled.

Two new options have been added to the global game options:

  • USE GUNS: The magic that enables all of this to be configured automatically.
  • SHOW LIGHTGUN CROSSHAIRS: Opt to manually show the crosshairs (perhaps to assist with aiming in general), manually remove the crosshairs or let Batocera decide for you.

I can't aim at the upper-left target! I've moved as far back as I can

The Wiimote works by sending a video feed of its IR camera to the machine. This sensor is very poor, and can fail to see the IR LED if too far away. So, there's a “sweet spot” for each display where you are both far enough away to see the IR bar when aiming at the extreme corner opposite the IR bar, while still being close enough for the IR camera of the Wiimote to pick it up.

To debug this to get an accurate reading, connect via SSH and run the following:

xwiishow 1

This will show a video feed of the IR camera in the upper-right of the SSH session:

To visualize what this information represents, imagine this being a flipped version of the position being aimed at on the display:

But I'm not using a Wiimote!

Make sure there are no reflective surfaces or other obstructions that can interfere with the visual. If placing the LED on a flat surface like the top of the entertainment unit, ensure it is as close to the edge as possible to make sure it's not obscured by its edge when aiming from a lower position (you may want to prop up the IR bar on some rubber stoppers).

My Wiimote is appearing as a regular controller instead of a light gun

First, ensure you are running Batocera v35 or higher.


Replug the light gun or change recoil settings.

Avoid using a USB hub when connecting both guns. Use different USB speed port for each (ex.: USB 2.0/USB 3.0) or different pair (ex.: one in front of the PC, one in the back).

A reboot might be necessary if hot plugged in.

FIXME RPi4: Plug your first sinden in USB3 port. Wait 10s. Plug your second sinden in USB2 port. Wait 10s.

Steam Deck dock: Most issues are fixed with a good quality SDCard and the official Steam Deck dock with good amount of power voltage.

Some games offer a recalibration menu in-game. Use that to work around such issues. This will be different per-game of course.

Arcade games typically require the use of the service menu, refer to the exceptions section above.

Check out the mega-issue report, it's probably already been reported.

If having issues with ROM loading itself, check out the generic troubleshooting page.

2P only with Gangster Town
2P only with Lethal Enforcers
  • emulators/lightgun_games.txt
  • Last modified: 3 days ago
  • by tovarichtch