Linux and Retro Distros · Volume 7
Where It Runs — The Per-System and Per-Game Table for Linux
Every system with a gun-capable emulator on Linux, by platform (Batocera on a PC, a Pi 5 and a Pi 4, and upstream desktop Linux), with multi-gun and game-driven recoil, followed by the per-game notes that decide whether a given title actually plays
7.1 How to read the table
This volume gathers the dive’s findings into one place. Its sources are three, and each column says which it rests on:
- Batocera’s own table of light-gun support by system and emulator, with the release that added it, crosshair support and multi-gun support (wiki, Light gun guide, “Emulator support”). It is the most complete public record for Linux, and it is maintained by the people who wrote the support. It is about Batocera; the same emulator outside Batocera may behave differently, for the reasons in Volume 1, section 1.4.
- Batocera’s build configuration on its
masterbranch (20 October 2026), for which emulator exists on which board (Volume 4, section 4.1). - The upstream emulators’ sources and the QMamehook README, for desktop Linux without Batocera’s patches and for game-driven recoil (Volumes 1, 2 and 6).
None of it has been tried with the project’s gun yet. The “test first” list in 7.5 is ordered to turn the most of this table into measured fact for the least time.
7.2 The matrix

The same information in full, with the Batocera version that added gun support and the notes from its table:
Table 1 — The same information in full, with the Batocera version that added gun support and the notes from its table
| System | Emulator | Batocera since | Multi-gun (Batocera) | x86-64 | Pi 5 | Pi 4 | Upstream desktop Linux | Game-driven recoil on Linux |
|---|---|---|---|---|---|---|---|---|
| Arcade | MAME (standalone) | v35 | Yes | Yes | Yes | Yes | Two guns with the x11 provider on X11; one with sdl | Yes (output network) |
| Arcade | MAME core (current) | v40 | Yes | Yes | Yes | Yes | Yes (RetroArch udev); set mame_lightgun_mode | Yes (mame.ini) |
| Arcade | MAME 2003-Plus core | v35 | Yes | Yes | Yes | Yes | Yes (udev) | Not documented |
| Arcade | FBNeo core | v35 | Yes | Yes | Yes | Yes | Yes (udev) | Not documented |
| Arcade | MAME 2010 core | — | No gun support | |||||
| Atomiswave, NAOMI | Flycast core | v35 | Yes | Yes | Yes | Yes | Yes (udev) | No (issue #1189) |
| Atomiswave, NAOMI | Flycast (standalone) | v35 (NAOMI), v43 (Atomiswave) | “multiplayer unsupported for now” | Yes | Yes | Yes | One gun (SDL pointer) | Raw, unnamed output bits (Broadcast Digital Outputs); recoil bit per game, untested |
| Dreamcast | Flycast core | v35 | Yes | Yes | Yes | Yes | Yes (udev) | No (console) |
| Dreamcast | Flycast (standalone) / Redream | v35 | No | Yes | Yes | Yes | One gun | No (console) |
| Model 2 | model2emu (Wine), SM2-Emu from v44 | v37 | ”Multiplayer unsupported for now” | Yes | v44 | No | No | Not documented |
| Model 3 | Supermodel | v37 | Yes (from v37) | Yes | Yes | v43 only | One gun (multi-mouse is Windows Raw Input) | No — lamps only, no gun recoil output |
| Sega Lindbergh | Lindbergh loader | v42 (crosshair v43) | Yes | Yes | No | No | Not documented | Not documented |
| Namco System 246/256 | Play! (v43) / PCSX2X6 (master) | v43 | ”One light gun only” | Yes | No | No | No | Not documented |
| NES | FCEUmm, Nestopia (Mesen: no crosshair) | v35 | (one Zapper) | Yes | Yes | Yes | Yes (udev) | No (console) |
| Master System | Genesis Plus GX | v35 | 2P only with Gangster Town | Yes | Yes | Yes | Same | No (console) |
| Mega Drive | Genesis Plus GX | v35 | No | Yes | Yes | Yes | Same | No (console) |
| Mega-CD | Genesis Plus GX (PicoDrive: no) | v35 | — | Yes | Yes | Yes | Same | No (console) |
| SNES | Snes9x (Snes9x Next: no; Mesen-S, bsnes: no Justifier) | v35 | 2P only with Lethal Enforcers | Yes | Yes | Yes | Same | No (console) |
| Saturn | Beetle Saturn (Kronos: no) | v35 | Yes | Yes | Yes | No | Yes (udev) | No (console) |
| 3DO | Opera | v35 | ”Multiplayer unsupported for now” | Yes | Yes | Yes | Same | No (console) |
| PlayStation | DuckStation | v40 | Yes | Yes | Yes | Yes | One gun (no Linux per-mouse source) | No (console) |
| PlayStation | PCSX ReARMed core | v35 | Yes | Yes | Yes | Yes | Yes (udev) | No (console) |
| PlayStation | SwanStation core | v35 | No | Yes | Yes | Yes | Same | No (console) |
| PlayStation | Beetle PSX core | v35 | No; “Only works with software renderer” | Yes | Yes | No | Same | No (console) |
| PlayStation 2 | PCSX2 | v37 | Yes | Yes | No | No | One gun (MAX_POINTER_DEVICES = 1) | No (console) |
| PlayStation 3 | RPCS3 | v36 | Yes; “PS Move emulation is very early” | Yes | No | No | Not tested | No (console) |
| Wii | Dolphin; Dolphin core (v43) | v36 | Yes | Yes | Yes | No | Not tested | No (console) |
| Laserdisc | Hypseus Singe | v36 | Yes | Yes | Yes | Yes | Not tested | — |
| Commodore 64 | VICE | v35 | Yes (standalone) | Yes | Yes | Yes | Not tested | No |
| Atari 2600 | Stella core | v35 | Yes (no crosshair) | Yes | Yes | Yes | Same | No |
| Amstrad CPC, GX4000 | Caprice32 core | v37 “not out of the box” | — | Yes | Yes | Yes | Same | No |
| Steam (PC games) | Steam | v35 | No | Yes | — | — | — | — |
| Windows games | Wine/Lutris | ”Untested” | No | Yes | — | — | — | Via DemulShooter in Wine only |
| Xbox | xemu | No gun support (Chihiro fork with guns from v44) |
“Same” in the upstream column means the RetroArch core is the same outside Batocera and gets the same gun support through RetroArch’s udev input driver (Volume 2). The Pi columns follow Batocera’s build rules; for the cores marked “Yes” on a Pi, Batocera builds them, which is not a promise that every game runs at full speed.
7.3 System by system
The points the table cannot carry, from the same sources:
- Arcade (MAME). The largest library and the only one with working game-driven recoil on Linux. Batocera’s wiki: “The current accuracy is not perfectly 1:1, caused by a fake and forced 4:3 ratio” in its MAME set-up. Batocera pre-calibrates over a hundred MAME files on first launch (Volume 3, section 3.6). Off-screen reload, for games that need “point away and pull”, comes from MAME’s
offscreenreloadplugin or the gun’s off-screen button mode (Volume 2, section 2.6). - NAOMI and Atomiswave. The core gives two guns and no outputs on Linux; the standalone emulator gives one gun and the board’s raw output bits, which can carry a per-shot kick once the right bit is found for the game (Volume 6, section 6.2). Choose per game: House of the Dead 2 two-player wants the core; a single player who wants per-shot kick can try the standalone.
- Model 2 and Model 3. The home of Virtua Cop, House of the Dead and The Lost World. A PC or, from Batocera v44, a Pi 5; not a Pi 4. Batocera’s wiki: “Model2emu crosshair does not follow where the light gun is actually pointing. Keep it disabled to best accuracy.”
- PlayStation. From Batocera 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”; “Area 51 has no known working patch” (as a GunCon conversion — the game itself runs as a Justifier title).
- SNES. “The Justifier controller type does not work in libretro: mesen-s and libretro: bsnes, rendering Lethal Enforcers unplayable with these cores.” Use Snes9x.
- Saturn and 3DO. “In-game recalibration is required, located in the game menu options. This is different per-game. This only needs to be done once.”
- Commodore 64. Tape releases often carried a joystick version on one side and the light-gun version on the other; “the light gun version of the game is needed”.
- PlayStation 2 and Namco System 246/256. PC only. Batocera’s PCSX2 gets two guns through its own patch; upstream PCSX2 on Linux gets one.
- Wii. Batocera maps a light gun onto the emulated Wii Remote’s pointer, with per-game geometry in its game database; since v39, “Wii gun games now 100% playable with light guns (based on 5 buttons mapping)“.
7.4 Per-game notes
Batocera keeps a per-game test list, “mainly tested on x86_64 and rpi4 architectures with default settings (except for MAME)”. The notes below are the ones that change what a player has to do; everything not listed is marked as working without comment in that list. Quoted text is Batocera’s.
Table 2 — 7.4 Per-game notes
| System | Game | Note |
|---|---|---|
| MAME | Jurassic Park | ”Broken accuracy in MAME, use FBNeo version” (Batocera v43 fixed MAME input in jpark, opwolf3 and policetr) |
| MAME | Time Crisis | Works with the 0.258 ROM set, not the 0.78+ set; “Flash removal possible with cheats.zip” |
| MAME | Time Crisis II | ”0.272+ required” |
| MAME | Golgo 13 Juusei no Requiem | ”0.256+ required. Trigger/secondary are inversed.” |
| MAME | Point Blank 3 | ”0.256+ required” |
| MAME | CarnEvil, Line of Fire | ”Calibration required for older ROMset” |
| MAME | Lucky & Wild | ”Wheel (acceleration, turning) need to be mapped.” |
| MAME | Triple Hunt | ”Change game in dipswitch” |
| FBNeo | Bronx | ”Axis and screen are inverted” |
| FBNeo | Golly! Ghost!, Bubble Trouble | ”Not loading” |
| FBNeo | Mobile Suit Gundam Final Shooting | dip switch for control must be set to “Light gun” |
| NAOMI | House of the Dead 2 | ”Secondary trigger can reload” |
| NAOMI | Manic Panic Ghosts! | ”No light gun input” |
| Namco 246 | Time Crisis 3 | ”Calibrate gun in service menu first” |
| Model 2 | Behind Enemy Lines | Pre-calibrated from v36 |
| Model 3 | Star Wars Trilogy Arcade | Pre-calibrated from v36 |
| NES | Space Shadow | ”Only works with mesen core” |
| NES | Super Russian Roulette (homebrew) | “Mapper 413 is missing from emulators” |
| NES | Chiller | ”2 players light guns not supported yet” |
| Master System | Laser Ghost | ”Press A (south button) on second controller until you can’t, then shoot” |
| SNES | M.A.C.S. Basic Rifle Marksmanship | Change controller type to the M.A.C.S. rifle |
| 3DO | Shootout at Old Tucson | Force the light-gun setting, load the arcade BIOS, calibrate in the service menu |
| PlayStation | Moorhuhn 2, Moorhuhn X | ”Poor aiming” |
| PlayStation | Gunfighter: The Legend of Jesse James, Policenauts | GunCon on port 2 |
| PlayStation 2 | Cocoto Funfair | ”GunCon only, not emulated yet in PCSX2” |
| PlayStation 2 | Time Crisis: Crisis Zone | ”Enable the texture hack to remove the white fog” |
| PlayStation 2 | Virtua Cop: Elite Edition | ”Skip the calibration screen by shooting offscreen” |
| PlayStation 3 | Time Crisis 4 | ”GunCon3 only.” |
| PlayStation 3 | House of the Dead: Overkill | ”Calibration not working, no aim” |
| PlayStation 3 | Heavy Fire series, The Shoot | ”Broken calibration” |
| PlayStation 3 | Mad Dog McCree, Mad Dog II, The Last Bounty Hunter | ”Can’t reload” |
| PlayStation 3 | Time Crisis: Razing Storm | Shoot a bit beyond the targets to calibrate; enable “Write Colors Buffer”; frame limit 30 for Time Crisis 4 |
| Wii | Medal of Honor: Heroes 2 | ”Nunchuk required (Arcade mode)” |
Counted from that list on 20 October 2026: about 92 MAME and 39 FBNeo titles, 16 laserdisc, 6 Model 2, 4 Model 3, 7 NAOMI, 5 Atomiswave, 4 Namco 246/256, 35 NES, 11 Master System, 6 Mega Drive, 14 SNES, 8 Mega-CD, 11 3DO, 33 PlayStation, 15 Saturn, 7 Dreamcast, 39 Wii, 11 PlayStation 2 and 19 PlayStation 3 entries, a few of them games with only a light-gun mini-game. Batocera’s game database flags 791 game entries as gun games across all systems (Volume 3, section 3.5).
The PlayStation 3 column is the weakest on Linux: many titles there need the motion-controller “shake” for reload or calibrate badly, because RPCS3 emulates a PlayStation Move from the gun, and Batocera calls that emulation “very early”.
7.5 What to test first with the project’s gun
The table is mostly read from documents. A short bench programme converts the parts that matter most for this project into measured results, in this order:
- Batocera on the lab’s x86-64 PC, one gun, preset P1. Is it recognised (
OpenFIRE light gun P1present), and does the D-pad work (Volume 3, section 3.3)? One MAME game, one PlayStation game (DuckStation), one NAOMI game (Flycast core). - Second gun, preset P2. Two-player House of the Dead 2 (Flycast core) and a two-player MAME game.
- Desktop Linux, RetroArch
udevand QMamehook. A MAME gun game withoutput network: the first game-driven kick on Linux (Volume 6). - Pi 5 with Batocera. Repeat 1 and 2; then the latency rig from Volume 2, section 2.7 with run-ahead 0 and 1.
- Steam Deck Game Mode. The cursor test from Volume 5, section 5.2.
7.6 What could not be verified
- None of the table has been tried with the project’s gun.
- Whether the MAME 2003-Plus and FBNeo cores publish outputs a Linux hook can read: neither the cores’ documentation nor QMamehook’s README says.
- Upstream (non-Batocera) Dolphin, RPCS3, Hypseus Singe and VICE with an absolute-mouse gun on Linux.
- The Batocera multi-gun column for NES (the table leaves it blank); NES Zapper games are single-gun on the original console except where a game supports two.
Sources
- Batocera wiki, Light gun guide (Emulator support, Per-emulator notes), wiki.batocera.org/emulators:lightgun_games (raw export) — read 2026-10-20.
- Batocera wiki, Tested games with light gun support, wiki.batocera.org/emulators:light_gun_game_spreadsheet (raw export) — read 2026-10-20.
- Batocera,
package/batocera/core/batocera-system/Config.in, commit c2cb58a39, andbatocera-Changelog.md— read 2026-10-20. - batocera-linux/batocera-emulationstation,
resources/gamesdb.xml— read 2026-10-20. - Upstream sources as cited in Volumes 1, 2 and 6 (MAME, RetroArch, Flycast, DuckStation, PCSX2, Supermodel, libretro/mame core options); QMamehook README; libretro/flycast issue #1189 — read 2026-10-20.
Comments (0)