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):
Light gun comparison
So, first and foremost, a light gun is needed—possibly multiple if you intend to play multiplayer (be sure to have enough physical space for both collision avoidance and tracking). Various light guns have entered the market, each offering its own advantages and disadvantages. Unless specified otherwise, the light gun is compatible with all displays. Click on the light gun to go to its section.
The precision rating is based on five tests:
- Calibration: Does it trigger correctly and work as intended?
- Corner: Does it aim properly at the edges of the screen?
- Position: Is it accurate if you physically move from your initial position?
- Rotation: Is it accurate if you rotate the gun while aiming at the same target?
- Latency: Does it trigger the offscreen reload if you quickly move the aim outside the display?
Want your light gun added to the list? Join our Discord and ask for assistance in #lightguns channel.
| Light gun | Tracking method | Precision | Minimum distance required ( x * display size) | Connectivity | Estimated price ($US) | Notes |
|---|---|---|---|---|---|---|
AE Lightgun | Infrared | ★★☆☆☆ | 3x to 3.5x | USB cable (290 cm) | $125 | Requires at least nine feet/three metres of space to use. Has calibration issues, requiring multiple attempts before it will apply. |
Ultimarc Aimtrak | Infrared | ★★☆☆☆ | 2x to 2.5x | USB cable (370 cm) | $95 (w/o recoil)/$120 (w/ recoil) | Has calibration issues, requiring multiple attempts before it will apply. |
Blamcon Light Gun | Infrared | ★★★⯪☆ | 1x (with fisheye lens) to 2x (without lens) | USB cable | $60 (DIY)/Up to 600$ (pre-assembled with custom preferences) | Larger displays require more physical distance (or wide/fish lens). Full support starting v42. Must manually adjust offset in calibration for best resultst. |
Mayflash Dolphinbar with Wiimote gun | Infrared | ★☆☆☆☆ | 1.5x | 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). |
Direct Wiimote gun with IR bar | Infrared | ★★★☆☆ | 2.5x | 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). |
Fusion Lightgun | Infrared | ★★★☆☆ | 2.5x | USB cable | $80 (DIY)/$200 (pre-assembled) | Larger displays require more physical distance (or wide/fish lens). Using SAMCO technology. |
GUN4IR | Infrared | ★★★★★ | 1.2x (with fisheye lens) to 2x (without lens) | USB cable | $80 (DIY)/$200 (pre-assembled) | Larger displays require more physical distance (or wide/fish lens). Full support starting v36. |
Namco GunCon2/G-Con2 | Cathode ray timing | ★★★★★ | 0.2x to 1x | 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. |
GunCon3 | Infrared | ★★★☆☆ | 1.5x to 2x | USB cable | | Larger displays require more physical distance (or wide/fish lens). Full support starting v38. |
OneHit (AimTrak clone) | Infrared | | | USB cable | | Full support starting v42. |
OpenFIRE light gun | Infrared | | | USB cable | | Full support starting v42. |
Retro Shooter | Infrared | ★★☆☆☆ (2 IR) ★★★☆☆ (4 IR) | 2.5x to 3x (2 IR) 2x (4 IR) | USB cable | 185$ including a pedal and hub for recoil | Recoil can optionally be disabled or put to single shot. Two IR requires massive distance or fish lens. Full support for RS1 & RS2 starting v39; full support for RS3 Reapers starting v42. |
SAMCO light gun | ★★★☆☆ | 1.5x | USB cable | | |
|
Sinden Lightgun | White border on display | ★★★★☆ | 1.5x | 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. |
XGunner Light gun | Infrared | ★★★☆☆ | 2x | Wireless 2.4GHz with a USB dongle | $125 | Full support starting v42. |
Global calibration
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 might 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.
One global calibration is required and is saved within the light gun itself. 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.
While being recommended overall, it is not an absolute necessity to have one proper controller pad connected in addition for each light gun connected. However, it gives an easier control in order to access commands or press buttons unavailable on the light gun itself in some games.
Each controller corresponds to each light gun in player order. So for instance, if player 2's light gun is missing a coin button ([START]), then this can be pressed on player 2's controller to activate that light gun's coin button.
AE Lightgun
The AE Lightgun 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 and Ultimarc AimTrak.
AE Lightgun setup
Connect both the light gun and the IR bar via USB. Then, press the button in front of the main trigger to launch the global calibration process. Shoot the middle, top-right and bottom-left targets as they appear.
Ultimarc AimTrak
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.
Ultimarc AimTrak setup
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.
Ultimarc AimTrak recoil
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. Scroll to Recoil Power Requirement (Guns with recoil option only) section.
GUN4IR
GUN4IR setup
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.
Namco GunCon 2
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.
Namco GunCon 2 setup
The CRT script already has this setup. Use the GunCon2 calibration tool in the category CRT from ES.
Create a sh file inside the ports folder
/userdata/roms/ports/GunCon2_Calibration.sh
The calibration script must be marked as executable with the chmod +x command:
chmod +x /userdata/roms/ports/GunCon2_Calibration.sh
- GunCon2_Calibration.sh
#!/bin/bash xrandr --output $(xrandr | grep -o '.* connected' | sed 's/ connected//') --gamma 1:1:1 --brightness 2.0 guncon2_calibrate.sh 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.
The CRT script already has this setup. Use the GunCon2 calibration tool in the category CRT from ES.
Calibration How To
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
Micro Calibrations in-game
- 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
Namco GunCon 3
The Namco GunCon 3 (known as G-Con 3 in Europe) is the last PlayStation peripheral of the series, released in 2007 in a bundle with Time Crisis 4. Instead of CRT, the light gun uses similar technology to Wiimote, with infrared LEDs placed left and right on top of the display.
Requires Batocera v38 or higher.
Namco GunCon 3 setup
Place the infrared LEDs properly with enough distance between them, on top of your display, front facing the gun. Refer to official manual for best setup.
V39: to start calibration, press and hold B2 button, then proceed to shoot each target.
V40+ to start calibration, press and hold C2 button.
Retro Shooter Lightgun
The Retro Shooter comes with its own IR leds (two on older models; four since october 2023). They are mounted at top corners (2IR) or all four corners (4IR) of the display, similar to SAMCO and Fusion Lightgun.
First model of Retro shooter requires Batocera v39 minimum. RS3 Reaper model requires Batocera v42 minimum.
Retro Shooter setup
Place IR leds as shown below :
To calibrate the light gun, press and hold 3 seconds the rear left button, then proceed on shooting target. Make sure you are far enough from your display and sunlight is out. If you are with 2IR leds, you need to double that distance.
The light gun will reboot with updated values once calibration is done.
Retro Shooter recoil
- To switch between single shot or automatic, press and hold stick button 3 seconds to change its mode.
- To turn off the recoil, unplug the recoil cable or press and hold stick button while powering it.
Sinden Lightgun
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.
Starting v40 with firmware 1.09, this issue should be fixed.
Sinden Lightgun setup
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.
Make sure you disabled any overscan/zoom settings, otherwise your white border will be hidden!
Sinden Lightgun settings
Sinden Lightguns offer the following options in CONTROLLER & BLUETOOTH SETTINGS → SINDEN GUN SETTINGS
- BORDER SIZE: Thin, medium or big. By default, the medium one is enabled (the size may differ depending on the emulator).
- BORDER MODE: Select when to display the border.
- NORMAL: Always shown in EmulationStation and in game (default)
- IN GAME ONLY: Only shown when playing a light gun game.
- HIDDEN: Disable, useful if using your own bezels with their drawn border.
- BORDER COLOR: Change the color of the border either in white (default), red, green or blue.
- CAMERA CONTRAST: Adapt the camera contrast to your setup (daytime/bright, default, dim display/evening)
- CAMERA BRIGHTNESS: Adapt the camera brightness to your setup (daytime/bright, default, dim display/evening)
- CAMERA EXPOSURE: Adjust the camera exposure to your setup (useful for projector/crt)
- 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.
Direct Wiimote gun with IR 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.
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. You are unable to calibrate or use more than A and B buttons. However, if you wish to use your Mayflash Dolphinbar as a regular IR sensor bar in addition to your own BT module, 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.
Most third-party remotes won't work as they don't respect the correct bluetooth connection process, requiring the Mayflash Dolphinbar Bluetooth module.
However, starting v39, you can enable the wiimote3rdparty service in SYSTEM SETTINGS → SERVICES to use your third-party wiimote.
Direct Wiimote gun setup
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).
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.
XGunner
The XGunner light gun comes with its own IR leds. They are mounted on all four corners (4IR) of the display, similar to Retro Shooter light guns.
XGunner setup
Plug in the wireless USB dongle linked to the light gun number. Put 18650 batteries (3,7V recommended) in battery pack, load it into the light gun's grip and turn it on.
To enter calibration (engineering) mode, press SPACE and START buttons. Shoot once on screen to begin calibration. Use fake analog stick on the back to adjust calibration (left/right for X axis; up/down for Y axis). Shoot once for each axis when you're done.
XGunner solenoid
There are two modes : burst fire and single/autofire. Locate VIBRATION and BURST FIRE toggles in the image above.
Emulator support
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 | Initial gun support | Crosshair ? | Multi-guns ? | Notes |
|---|---|---|---|---|---|
| 3do | retroarch/opera | 35 | ✔ | ✘ | Multiplayer unsupported for now |
| amstradcpc | retroarch/cap32 | 37 | ✔ | Supported but not out of the box | |
| arcade | mame | 35 | ✔ | ✔ | |
| retroarch/mame | 40 | ✔ | ✔ | ||
| retroarch/mame2003 | 35 | ✔ | ✔ | ||
| retroarch/mame2010 | ✘ | ||||
| retroarch/fbneo | 35 | ✔ | ✔ | ||
| atari800 | mame | ✘ | |||
| atari2600 | retroarch/stella | 35 | ✘ | ✔ | |
| atari7800 | mame | ✘ | |||
| atomiswave | retroarch/flycast | 35 | ✔ | ✔ | |
| flycast | 35 | ✔ | ✘ | Not out of the box, multiplayer unsupported for now | |
| c64 | libretro/vice_x64 | 35 | ✔ | ||
| vice/x64 | 35 | ✔ | |||
| hypseus singe | hypseus singe | 35 | ✔ | ✘ | |
| dreamcast | retroarch/flycast | 35 | ✔ | ✔ | |
| redream | 35 | ✔ | ✘ | ||
| flycast | 35 | ✔ | ✘ | Multiplayer unsupported for now | |
| gx4000 | retroarch/cap32 | 37 | ✔ | Supported but not out of the box | |
| lindbergh | lindbergh | 42 | ✘ | ✔ | |
| master system | retroarch/genesisplusgx | 35 | ✔ | | ~1) |
| megadrive | retroarch/genesisplusgx | 35 | ✔ | ✘ | |
| model2 | model2emu | 35 | ✔ | ✘ | Multiplayer unsupported for now |
| model3 | supermodel | 35 | ✔ | 37 | |
| naomi | flycast | 35 | ✔ | ✘ | Multiplayer unsupported for now |
| retroarch/flycast | 35 | ✔ | ✔ | ||
| namco2x6 | Play! | 35 | ✘ | ✘ | Namco 2×6 emulation is very early |
| nes | retroarch/nestopia | 35 | ✔ | ||
| retroarch/fceumm | 35 | ✔ | |||
| retroarch/mesen | 35 | ✘ | |||
| psx | duckstation | 40 | ✔ | ✘ | Multiplayer unsupported for now |
| retroarch/mednafenpsx | 35 | ✘ | ✘ | Only works with software renderer | |
| retroarch/PCSXrearmed | 35 | 40 | ✔ | ||
| retroarch/swanstation | 35 | 38 | ✘ | ||
| ps2 | PCSX2 | 37 | 40 | ✔ | |
| retroarch/PCSX2 | ✘ | ||||
| ps3 | RPCS3 | 36 | 40 | ✔ | PS Move emulation is very early |
| saturn | retroarch/beetle-saturn | 35 | ✔ | ✔ | |
| retroarch/kronos | ✘ | ||||
| segacd | retroarch/picodrive | ✘ | |||
| retroarch/genesisplusgx | 35 | ✔ | |||
| snes | retroarch/snes9x_next | ✘ | |||
| retroarch/snes9x | 35 | ✔ | | ~2) | |
| retroarch/mesen-s | 35 | ✘ | |||
| retroarch/bsnes | 35 | ✘ | |||
| steam | steam | 35 | ✘ | ||
| wii | dolphin | 36 | ✔ | ✔ | |
| retroarch/dolphin | ✘ | ✔ | | Kind of supported but not out of the box | |
| windows(wine) | wine/lutris | Untested | ✘ | ||
| wine/proton | 35 | ✘ | |||
| 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.
Button mapping (WIP)
Emulators buttons mapping
Each light gun has its own button code when pressed. This code is translated to a global code in Batocera. When triggered, the global code will be translated into the emulator to a specific command. In the future, it will be possible to customize the mapping.
For example: when pressing the physical MINUS button on the Wiimote, it triggers the button event KEY_PREVIOUS, which is translated to the global code event BTN_1 in Batocera, which activates the Coins value in Naomi and MAME arcade games.
| Name | Global code | lr-snes9x | lr-genesisplusgx | lr-beetle-saturn | lr-pcsx_rearmed | lr-fbneo | lr-flycast | PCSX2 | RPCS3 | MAME | Dolphin/Wii | model2emu | Supermodel |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Trigger | BTN_LEFT | FIRE | TRIGGER | TRIGGER | TRIGGER | TRIGGER | TRIGGER | Trigger | T | TRIGGER | B | TRIGGER | TRIGGER |
| Action | BTN_RIGHT | CURSOR | 1 | RELOAD | A/SPECIAL | SECONDARY | SECONDARY/B | C | MOVE (∼) | SECONDARY | A | RELOAD | RELOAD |
| Start | BTN_MIDDLE | TURBO | 2 | START | B/START | START | START | A | START | START | PLUS | COIN | COIN |
| Select | BTN_1 | PAUSE | PAUSE | COIN | COIN | B | CROSS (X) | COIN | MINUS | START | EVENT/START | ||
| SUB1 | BTN_2 | Recalibrate shot | CIRCLE (O) | 1 | |||||||||
| SUB2 | BTN_3 | Start | 2 | ||||||||||
| SUB3 | BTN_4 | Select | HOME | ||||||||||
| Up | BTN_5 | D-Pad Up | D-Pad Up | TRIANGLE (△) | D-Pad/Up | ||||||||
| Down | BTN_6 | D-Pad Down | D-Pad Down | SQUARE (□) | D-Pad/Down | ||||||||
| Left | BTN_7 | D-Pad Left | D-Pad Left | SELECT | D-Pad/Left | ||||||||
| Right | BTN_8 | D-Pad Right | D-Pad Right | D-Pad/Right |
Default global mapping
| Name | Global code | AElightgun | AimTrack | Dolphinbar | Fusion Lightgun | GUN4IR | GunCon2 | GunCon3 | Retro Shooter | Sinden Lightgun | Wiimote |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Trigger | BTN_LEFT | Trigger | Trigger | B | Trigger | Trigger | Trigger | Trigger | Trigger | Trigger | B |
| Action | BTN_RIGHT | Front left | Right side | A | Bomb, Reload | Offscreen/A/C | C | A1 | Right side | Pump/Front left | A |
| Start | BTN_MIDDLE | Middle left | Left side | Start | B | A | B2 | Front left | Rear left | PLUS | |
| Select | BTN_1 | Rear left #1 | Select | START | B | B1 | Rear left | Rear right | MINUS | ||
| SUB1 | BTN_2 | Rear left #2 | A | SELECT | SELECT | A2 | Stick button | Front right | 1 | ||
| SUB2 | BTN_3 | Rear left #3 | B | START | C1 | 2 | |||||
| SUB3 | BTN_4 | Rear left #3 | C2 | HOME | |||||||
| Up | BTN_5 | Top back | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ | ↑ | ||
| Down | BTN_6 | Bottom back | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ||
| Left | BTN_7 | ← | ← | ← | ← | ← | ← | ← | |||
| Right | BTN_8 | → | → | → | → | → | → | → |
Pedals support
Starting v40, pedals are supported out of the box. By default, they are automatically mapped on the following key according to each player:
Ckey forPlayer 1Vkey forPlayer 2Bkey forPlayer 3Nkey forPlayer 4
This can be customized to your taste in D - Controllers section of /userdata/system/batocera.conf by adding one line per player:
controllers.pedals1=c
1 is the player number; c is the chosen key. If you want player 2 foot pedal to be right crtl, then:
controllers.pedals2=rctrl
Support across emulators is a work in progress.
If you can't rebind your foot pedal in any existing tool (hardcoded), jump in #lightguns channel in our discord, or create a new issue on our Github with `FOOT PEDAL` in the title. We will make it work out of the box natively. As of v40, only VEC Infinity 3 USB Digital Foot Control was added to the list.
| Emulator | Pedal support |
|---|---|
| Dolphin | ✘ |
| Duckstation | ✔ |
| Flycast | ✘ |
| Hypseus Singe | ✘ |
| Libretro cores | ✔ |
| MAME (standalone) | ✔ |
| model2emu | ✘ |
| PCSX2 | ✔ |
| Play! | ✘ |
| Supermodel | ✘ |
| RPCS3 | ✘ |
Per-game testing spreadsheet
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.
Per-emulator notes
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 for games that require it.
3DO (lr-opera)
In-game recalibration is required, located in the game menu options. This is different per-game. This only needs to be done once.
Arcade (general)
MAME
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]):
- While in the MAME gamelist, press
[SELECT]. Then go to ADVANCED SYSTEM SETTINGS. - 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.
The current accuracy is not perfectly 1:1, caused by a fake and forced 4:3 ratio. This will be fixed in the future.
Commodore 64
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.
Model 2 (model2emu)
Model2emu crosshair does not follow where the light gun is actually pointing. Keep it disabled to best accuracy.
Model 3 (Supermodel)
Supermodel white border for Sinden Lightguns is enabled on rpi4 and rpi5 starting v41.
PSX (all)
Starting v39, all gun games are compatible with both Justifier and GunCon light gun controller type in PCSX-reARMed core. If a GunCon conversion patch was applied to the ROM, you will need to force GunCon controller type in EmulationStation. Starting v40, DuckStation is compatible with Justifier and GunCon light gun controller type.
Area 51 has no known working patch.
Saturn (only libretro: beetle-saturn)
In-game recalibration is required, located in the game menu options. This is different per-game. This only needs to be done once.
SNES
The Justifier controller type does not work in libretro: mesen-s and libretro: bsnes, rendering Lethal Enforcers unplayable with these cores.
A note about the controller type option
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.
Troubleshooting
Wiimote issues
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.
Otherwise, ensure that CONTROLLER & BLUETOOTH SETTINGS → WIIMOTE GUN SETTINGS → MODE and set it to “GUN”.
My recoil isn't working
Replug the light gun or change recoil settings.
My second Sinden crosshair is stuck upper-left corner
Batocera is not compatible with beta firmware. If your gun is on v1.9 or later, please downgrade to v1.8.
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). If using a Raspberry Pi, make sure you have enough power voltage.
A reboot might be necessary if hot plugged in.
RPi4:
Plug your first sinden in USB3 port.
Wait 10s.
Plug your second sinden in USB2 port.
Wait 10s.
You need a good amount of power voltage too.
Steam Deck dock: Most issues are fixed with a good quality SDCard and the official Steam Deck dock with good amount of power voltage.
Later Sinden Lightgun models (currently fixed in Batocera v40) There actually is a known issue with later models cameras. If you bought in mid-2023 and later, you might encounter this issue even if it works fine on Windows.
Open the file manager (F1) or connect with SSH and navigate to /var/log/ folder. There, you should see virtual-sindenlightgun* file logs. Open it and if you see this :
Or this :
You might need to update your camera name by following the the guide here (.PDF).
My Sinden Lightgun shows "Unknown SindenLightgun connected" notification
If you are on Batocera v40+, make sure Disable Joystick mode is clicked when flashing firmware on Windows (v1.09 and above).
If you tried to flash your light gun from linux itself or Steam OS, you must downgrade to 1.08 or 1.03 and upgrade again.
My aiming accuracy in certain games is much worse than others
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.
I'm having another issue
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.
- emulators/lightgun_games.txt
- Last modified: 6 weeks ago
- by tovarichtch




































