Light Gun API Core Findings

Snes has been hit or miss reloading the game sometimes makes it work I think.

So I’ve found that, for some reason, the Zapper mouse support for Nestopia UE (version 1.49-WIP b499024, RetroArch v1.7.0, Linux Mint 18) only partially works. Specifically, it shows and moves the crosshairs around just fine, but clicking the mouse buttons does nothing. And it doesn’t seem to matter at all what input plugin I use, because it’s same with all of them (or rather, all of them which actually recognize the mouse). On the other hand, FCEUmm doesn’t have this problem, with the Zapper working perfectly fine when the appropriate device is set to Zapper.

1 Like

Hi there,

I am running Retroarch 1.6.9 via RetroPie on my x64 Ubuntu Mate installation. Using beetle-psx-libretro I am having trouble using my mouse for certain light gun games. Namely Time Crisis - on the menu you can see the crosshair and start the game, but once the rendering starts in 3D, the crosshair disappears, however I can still control the game with the mouse, but with no crosshair visible it’s impossible to hit targets.

If I change my input device from mouse back to the controller, the crosshair comes back again.

Other emulators such as beetle-saturn, fceumm etc seem to work fine.

I also tried the game ‘Area 51’, and this works absolutely fine. But it is a 2D render I understand, so that kind of rings true with it partially working in Time Crisis, under the 3D render starts.

I have tried both software and hardware render modes, as well as different input drivers, but I get the same result every time.

Does anyone have any idea what might be up? Do I need to be on RA 1.7.0, was there additional support added since 1.6.9? Beetle is fully up to date.

Cheers!

Yes there were meaningful changes in light gun support between 1.6.9 and 1.7.0, but I don’t know if that will solve your issue.

Thanks for the reply. Yes I did see there were some changes, I will try to update my retroarch when I get chance.

I also tried Area 51, and that works fine, but is 2D. It only seems to happen during 3D rendering (crosshair disappears).

Can anyone replicate this with Time Crisis?

1 Like

Finally have the time to test this.

Apologies for the messily formatted test results.

Following this guide: Configuring RA for multi-mouse (spinners, lightguns, tackballs)

Using RetroArch on Windows 10 x64.

  • Using Input Driver: raw in RetroArch.
  • I have two mice connected to my computer via USB.
  • Mouse Indexes and lightgun inputs are set up correctly.

Beetle PSX

Device:

  • Guncon / G-Con 45

Game:

  • Point Blank (USA)

Multi-Mouse:

  • Testing 2 Players in Point Blank (USA)

Before test notes:

  • I set User 1 and User 2 device types to Guncon / G-Con 45
  • Using the software renderer. Internal GPU resolution is at 2x.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/beetle_psx/#lightgun.
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.
  • Found a note in the source code saying ‘todo – support multiple guns.’
  • Found a note in the source code saying ‘TODO: Test with PAL games.’

Test results:

  • Inputs confirmed working for each player.
  • I wasn’t able to move Player 1 and Player 2 crosshairs independently from each other. This core doesn’t have proper multi-mouse support for Guncon / G-Con 45.
  • When increasing the internal GPU resolution past 1x with the software renderer, the crosshairs will shrink and become unaligned with where you’re actually aiming.

Device:

  • Justifier

Game:

  • Area 51 (USA) (v1.1)

Multi-Mouse:

  • Testing 2 Players in Area 51 (USA) (v1.1)

Before test notes:

  • I set User 1 and 2 device types to Justifier
  • Using the software renderer. Internal GPU resolution is at 2x.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/beetle_psx/#lightgun.
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.
  • Found a note in the source code saying ‘todo – support multiple guns.’
  • Found a note in the source code saying ‘TODO: Test with PAL games.’

Test results:

  • Inputs confirmed working for each player.
  • I wasn’t able to move Player 1 and Player 2 crosshairs independently from each other. This core doesn’t have proper multi-mouse support for Justifier.
  • When increasing the internal GPU resolution past 1x with the software renderer, the crosshairs will shrink and become unaligned with where you’re actually aiming.

Device:

  • Mouse

Game:

  • Project - Horned Owl (USA)

Multi-Mouse:

  • Testing 2 Players in Project - Horned Owl (USA)

Before test notes:

  • I set User 1 and 2 device types to Mouse.
  • Using the software render. Internal GPU resolution is at 2x.
  • This device 100% uses the mouse API.
  • There’s a table of inputs here. https://docs.libretro.com/library/beetle_psx/#mouse
  • You should be able to control cursor, left button, right button via mouse.

Test results:

  • Inputs confirmed working for each player.
  • Multi-mouse for Mouse works! I was able to move Player and Player 2 cursors independently.

Beetle PSX HW

Device:

  • Guncon / G-Con 45

Game:

  • Point Blank (USA)

Multi-Mouse:

  • Testing 2 Players in Point Blank (USA)

Before test notes:

  • I set User 1 and 2 device types to Guncon / G-Con 45
  • Using the opengl and vulkan hardware renderers. Internal GPU resolution is at 2x.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/beetle_psx_hw/#lightgun.
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.
  • Found a note in the source code saying ‘todo – support multiple guns.’
  • Found a note in the source code saying ‘TODO: Test with PAL games.’

Test results:

  • The core reacts to inputs but crosshairs do not show up at all so playing games is impossible. OpenGL and Vulkan hardware renderers most likely break the crosshairs.
  • Cannot test multi-mouse due to crosshairs not showing up. Most likely wouldn’t work even if they did show up.

Device:

  • Justifier

Game:

  • Area 51 (USA) (v1.1)

Multi-Mouse:

  • Testing 2 Players in Area 51 (USA) (v1.1)

Before test notes:

  • I set User 1 and User 2 device types to Justifier.
  • Using the opengl and vulkan hardware renderers. Internal GPU resolution is at 2x.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/beetle_psx_hw/#lightgun.
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.
  • Found a note in the source code saying ‘todo – support multiple guns.’
  • Found a note in the source code saying ‘TODO: Test with PAL games.’

Test results:

  • The core reacts to inputs but crosshairs do not show up at all so playing games is impossible. OpenGL and Vulkan hardware renderers most likely break the crosshairs.
  • Cannot test multi-mouse due to crosshairs not showing up. Most likely wouldn’t work even if they did show up.

Device:

  • Mouse

Game:

  • Project - Horned Owl (USA)

Multi-Mouse:

  • Testing 2 Players in Project - Horned Owl (USA)

Before test notes:

  • I set User 1 and 2 device types to Mouse.
  • Using the opengl and vulkan hardware renderers. Internal GPU resolution is at 2x.
  • This device 100% uses the mouse API.
  • There’s a table of inputs here. https://docs.libretro.com/library/beetle_psx_hw/#mouse
  • You should be able to control cursor, left button, right button via mouse.

Test results:

  • Inputs confirmed working for each player.
  • Multi-mouse for Mouse works! I was able to move Player and Player 2 cursors independently.

Beetle Saturn

Device:

  • Mouse

Game:

  • Virtua Cop (Japan) (2M)

Multi-Mouse:

  • Testing 2 Players in Virtua Cop (Japan) (2M)

Before test notes:

  • I set User 1 and 2 device types to Mouse.
  • This device 100% uses the mouse API.
  • There’s a table of inputs here. https://docs.libretro.com/library/beetle_saturn/#mouse
  • You should able to use all the controls via mouse.
  • Looking through the source code, I noticed that it lets you use the start input on your joypad instead of mouse 4 and mouse 5 in case you don’t have those buttons.

Test results:

  • Inputs confirmed working for each player.
  • Multi-mouse works! I was able to move Player 1 and Player 2 cursors independently.

Device:

  • Stunner

Game:

  • Virtua Cop (USA) (8S, 12S)

Multi-Mouse:

  • Testing 2 Players in Virtua Cop (USA) (8S, 12S)

Before test notes:

  • I set User 1 and 2 device types to Stunner
  • This device is just the North America equivalent of the Virtua Gun.
  • This device 100% uses the lightgun API.
  • Theres a table of inputs here. https://docs.libretro.com/library/beetle_saturn/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Inputs confirmed working for each player.
  • I wasn’t able to move Player 1 and Player 2 crosshairs independently from each other. This core doesn’t have proper multi-mouse support for Stunner.

Device:

  • Virtua Gun

Game:

  • Virtua Cop (Japan) (2M)

Multi-Mouse:

  • Testing 2 Players in Virtua Cop (Japan) (2M)

Before test notes:

  • I set User 1 and 2 device types to Virtua Gun
  • This device 100% uses the lightgun API.
  • Theres a table of inputs here. https://docs.libretro.com/library/beetle_saturn/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Inputs confirmed working for each player.
  • I wasn’t able to move Player 1 and Player 2 crosshairs independently from each other. This core doesn’t have proper multi-mouse support for Virtua Gun.

bsnes (Accuracy/Balanced/Performance)

Device:

  • SNES Mouse

Game:

  • Troddlers (USA)

Multi-Mouse:

  • Testing 2 Players in Troddlers (USA)

Before test notes:

Test results:

  • Inputs confirmed working for each player.
  • Multi-mouse works! I was able to move Player 1 and Player 2 cursors independently.

Device:

  • SuperScope

Game:

  • Super Scope 6 (USA)

Multi-Mouse:

  • Can’t test? My research tells me there’s no SNES games where you can use two SuperScopes simultaneously.

Before test notes:

  • I set User 2 device type to SuperScope.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/bsnes_accuracy/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Inputs confirmed working.

Device:

  • Justifier

Game:

  • Lethal Enforcers (USA)

Multi-Mouse:

  • Not testing. Assuming this is only one lightgun since there’s an other device type explicitly called ‘Justifiers’

Before test notes:

  • I set User 2 device type to Justifier.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/bsnes_accuracy/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Switching to this device type made RetroArch crash a bunch. Odd. Eventually got the game to boot and switched to the Justifier device type successfully.
  • Inputs confirmed working.

Device:

  • Justifiers

Game:

  • Lethal Enforcers (USA)

Multi-Mouse:

  • Testing 2 Players in Lethal Enforcers (USA)

Before test notes:

  • I set User 2 device type to Justifiers.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/bsnes_accuracy/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • This makes RetroArch crash too. Eventually got it working.
  • Player 1 and 2 crosshairs show up.
  • Inputs don’t work for Player 2. Can’t move Player 2’s crosshair. This core doesn’t have proper multi-mouse support for Justifiers.

bsnes-mercury (Accuracy/Balanced/Performance)

After looking at the source code, the way it handles mouse and lightgun inputs is identical to the bsnes (Accuracy/Balanced/Performance) cores. Did a bit of testing that confirmed this. This has the same problems as bsnes (Accuracy/Balanced/Performance).

bsnes C++98 (v085)

Once again same problems as bsnes (Accuracy/Balanced/Performance) except the core doesn’t crash at all when switching to the Justifier and Justifiers device types.

higan Accuracy

Device:

  • SNES Mouse

Game:

  • Troddlers (USA)

Multi-Mouse:

  • Testing 2 Players in Troddlers (USA)

Before test notes:

Test results:

  • Inputs confirmed working for each player.
  • Multi-mouse works! I was able to move Player 1 and Player 2 cursors independently.

Device:

  • SuperScope

Test results:

Device:

  • Justifier

Test results:

Device:

  • Justifiers

Test results:

nSide Balanced

Same as higan Accuracy. https://github.com/hex-usr/nSide/blob/master/nSide/target-libretro/libretro-sfc.cpp#L443

Snes9x

Device:

  • SNES Mouse

Game:

  • Troddlers (USA)

Multi-Mouse:

  • Testing 2 players in Troddlers (USA)

Before test notes:

Test results:

  • Inputs confirmed working for each player.
  • Multi-mouse works! I was able to move Player 1 and Player 2 cursors independently.

Device:

  • SuperScope

Game:

  • Super Scope 6 (USA)

Multi-Mouse:

  • Can’t test? My research tells me there’s no SNES games where you can use two SuperScopes simultaneously.

Before test notes:

  • I set User 2 device type to SuperScope.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/snes9x/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Inputs confirmed working.

Device:

  • Justifier

Game:

  • Lethal Enforcers (USA)

Multi-Mouse:

  • Not testing. Assuming this is only one lightgun.

Before test notes:

  • Strange how this core doesn’t have a Justifiers device type.
  • I set User 2 device type to Justifier.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/snes9x/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Inputs confirmed working.

Snes9x 2010

  • SNES Mouse - Mouse

Game:

  • Troddlers (USA)

Multi-Mouse:

  • Testing 2 players in Troddlers (USA)

Before test notes:

Test results:

  • Inputs confirmed working for each player.
  • Multi-mouse works! I was able to move Player 1 and Player 2 cursors independently.

Device:

  • SuperScope

Game:

  • Super Scope 6 (USA)

Multi-Mouse:

  • Can’t test? My research tells me there’s no SNES games where you can use two SuperScopes simultaneously.

Before test notes:

  • I set User 2 device type to SuperScope.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/snes9x_2010/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Crosshair doesn’t show up at all. It’s like it’s permanently offscreen.
  • Inputs work but it fires nowhere near where my mouse is.

Device:

  • Justifier

Game:

  • Lethal Enforcers (USA)

Multi-Mouse:

  • Not testing. Assuming this is only one lightgun.

Before test notes:

  • I set User 2 device type to Justifier.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/snes9x_2010/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Crosshair doesn’t show up at all. It’s like it’s permanently offscreen.
  • Inputs work but it fires offscreen?

Device:

  • Justifiers

Game:

  • Lethal Enforcers (USA)

Multi-Mouse:

  • Testing 2 players in Lethal Enforcers (USA)

Before test notes:

  • I set User 2 device type to Justifiers.
  • This device 100% uses the lightgun API.
  • There’s a table of inputs here. https://docs.libretro.com/library/snes9x_2010/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Crosshair doesn’t show up at all. It’s like it’s permanently offscreen.
  • Inputs work but it fires offscreen?
  • Cannot test multi-mouse due to the device firing offscreen.

Genesis Plus GX

Device:

  • MS Light Phaser

Game:

  • Gangster Town (USA. Europe)

Multi-Mouse:

  • Testing 2 players in Gangster Town (USA, Europe)

Before test notes:

  • I set User 1 and 2 device types to MS Light Phaser
  • This device uses the pointer API and the lightgun API.
  • There’s a table of inputs here.
  • https://docs.libretro.com/library/genesis_plus_gx/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Can’t move crosshairs. Seems like the pointer API doesn’t work with the raw input driver.
  • Inputs for each player confirmed working.
  • Couldn’t test multi-mouse, couldn’t move crosshairs.

Device:

  • MS Graphic Board

Game:

  • Terebi Oekaki (Japan)

Multi-Mouse:

  • Can’t test. This is only for one player games.

Before test notes:

Test results:

  • Inputs confirmed working.

Devices:

  • MD Mouse + MD Menacer

Game:

  • Body Count (Europe)

Multi-Mouse:

  • Testing 2 players in Body Bount (Europe)

Before test notes:

Test results:

  • Inputs for each player confirmed working.
  • Couldn’t move Player 2 crosshair. - Can’t move crosshairs. Seems like the pointer API doesn’t work with the raw input driver.

Device:

  • MD Justifiers

Game:

  • Lethal Enforcers (USA)

Multi-Mouse:

  • Testing 2 players in Lethal Enforcers (USA)

Before test notes:

  • I set User 2 device type to MD Justifiers
  • This device uses the pointer and lightgun api.
  • There’s a table of inputs here. https://docs.libretro.com/library/genesis_plus_gx/#lightgun
  • You should be able to control crosshairs via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Inputs for each player confirmed working.
  • Couldn’t move Player 2 crosshair. - Can’t move crosshairs. Seems like the pointer API doesn’t work with the raw input driver.

Device:

  • PICO tablet

Game:

  • Berenstain Bears, The - A School Day (USA)

Multi-Mouse:

  • Not testing. This is a 1 player only device.

Before test notes:

  • The Genesis Plus GX core can emulate PICO tablet inputs but this is done automatically, based off the game’s crc, and cannot be manually selected as a device type.
  • This device uses the pointer, mouse and joypad api
  • There’s a table of inputs here. https://docs.libretro.com/library/genesis_plus_gx/#other
  • You should able to control this via mouse and joypad.

Test results:

  • Inputs confirmed working.
  • Couldn’t move mouse. Seems like the pointer API doesn’t work with the raw input driver.

Device:

  • Terebi Oekaki tablet

Game:

  • Terebi Oekaki (Japan)

Multi-Mouse:

  • Not testing. This is a 1 player only device.

Before test notes:

  • The Genesis Plus GX core can emulate Terebi Oekaki table inputs but this is done automatically, based off the game’s crc, and cannot be manually selected a device type.
  • This device uses the pointer and mouse api.
  • There’s a table of inputs here. https://docs.libretro.com/library/genesis_plus_gx/#other
  • You should able to control this via mouse.

Test results:

  • Inputs confirmed working.
  • Couldn’t move mouse. Seems like the pointer API doesn’t work with the raw input driver.

Nestopia UE

Device:

  • Zapper

Game:

  • Duck Hunt (World)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Zapper modes that work in Nestopia UE.

Before test notes:

  • This device 100% uses the lightgun api.
  • In order for the Nestopia UE core to emulate the Zapper. You need NstDatabase.xml in RetroArch’s system directory.
  • There’s a table of inputs here. https://docs.libretro.com/library/nestopia_ue/#lightgun
  • You should be able to control crosshair via mouse and the lightgun inputs with whatever you have them bound to in RetroArch’s input settings.

Test results:

  • Inputs confirmed working.

FCEUmm

Device:

  • Zapper

Game:

  • Duck Hunt (World)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Zapper modes.

Before test notes:

  • This device will use either the pointer api or the mouse api depended on what the 'Zapper Mode core option is set to.
  • There’s a table of inputs here. https://docs.libretro.com/library/fceumm/#mouse
  • The FCEUmm core will automatically emulate Zapper controls based off the game’s crc. No need to switch device types.
  • When Zapper Mode is set to mouse mode, you should be able to control it via mouse.

Test results:

  • Inputs confirmed working for Zapper mouse mode.
  • Pointer API isn’t implemented in raw input driver so Zapper pointer mode doesn’t work.

Device:

  • Arkanoid

Game:

  • Arkanoid (USA)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Arkanoid modes.

Before test notes:

Test results:

  • Inputs confirmed working.

Device:

  • Bandai Hyper Shot Gun

Game:

  • Space Shadow (Japan)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Bandai Hyper Shot Gun modes.

Before test notes:

Test results:

  • Inputs confirmed working.

Device:

  • Oeka Kids Tablet

Game:

  • Oeka Kids - Anpanman no Hiragana Daisuki (Japan)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Oeka Kids Tablet modes.

Before test notes:

Test results:

  • Inputs confirmed working.

Mesen

Device:

  • Arkanoid

Game:

  • Arkanoid (USA)

Multi-Mouse:

  • Not testing, there’s no officially licensed NES games with 2 player Arkanoid mode.

Before test notes:

Test results:

  • Inputs confirmed working.

Device:

  • SNES Mouse

Test results:

  • This is just for homebrew games. No need to test it.

Device:

  • Hori Track

Game:

  • Moe Pro! '90 - Kandou Hen (Japan)

Multi-Mouse:

  • Not testing, there’s no officially licensed NES games with 2 player Hori Track mode.

Before test notes:

  • I set User 5’s device type to Hori Track.

Test results:

  • Inputs confirmed working.

Device:

  • Zapper

Game:

  • Duck Hunt (World)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Zapper modes.

Before test notes:

Test results:

  • Inputs confirmed working
  • Can’t move crosshair. Pointer api doesn’t work with raw input driver.

Device:

  • Bandai Hypershot

Game:

  • Space Shadow (Japan)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Bandai Hyper Shot Gun modes.

Before test notes:

Test results:

  • Inputs confirmed working
  • Can’t move crosshair. Pointer api doesn’t work with raw input driver.

Device:

  • Oeka Kids Tablet

Game:

  • Oeka Kids - Anpanman no Hiragana Daisuki (Japan)

Multi-Mouse:

  • Not testing. There’s no officially licensed NES games with 2 player Oeka Kids Tablet modes.

Before test notes:

Test results:

  • Inputs confirmed working
  • Can’t move crosshair. Pointer api doesn’t work with raw input driver.

Beetle PC-FX

Device:

  • PCFX Mouse

Game:

  • Anime Freak FX Vol 2

Multi-Mouse:

  • Not testing. I know close to nothing about this console. I have no idea how much mice this console supports.

Before test notes:

Test results:

  • Inputs confirmed working.

Beetle PCE FAST

Device:

  • Mouse

Game:

  • Vasteel 2 (Japan) (Rev 1)

Multi-Mouse:

  • Not testing. I know close to nothing about this console. I have no idea how much mice this console supports.

Before test notes:

Test results:

  • Inputs don’t work. Cursor doesn’t show. Mouse device type doesn’t work in this core.

Beetle SGX

Device:

  • PCE Mouse

Game:

  • Vasteel 2 (Japan) (Rev 1)

Multi-Mouse:

  • Not testing. I know close to nothing about this console. I have no idea how much mice this console supports.

Before test notes:

Test results:

  • Inputs confirmed working.

ParaLLEl N64

Device:

  • Mouse

Game:

  • Mario Kart 64 (USA)

Multi-Mouse:

  • Testing 2 players in Mario Kart 64 (USA)

Before test notes:

  • I set User 1 and 2 device type’s to Mouse.

Test results:

  • Inputs confirmed working.
  • Multi-Mouse works. I was able to control Player 1 with Mouse 1 and Player 2 with Mouse 2.
5 Likes

Really i think you done a stellar job.

Hopefully theres something in the saturn code thats compatible and transferable for the others. Time Crisis dream lives on!

1 Like

Here’s a condensed list of my findings.

Following this guide: Configuring RA for multi-mouse (spinners, lightguns, tackballs)

  • Using RetroArch on Windows 10 x64.
  • Using Input Driver: raw in RetroArch.
  • I have two mice connected to my computer via USB.
  • Mouse Indexes and lightgun inputs are set up correctly.

I assume the following problems also exist in the udev input driver on Linux.

Beetle PSX

  • Multi-Mouse doesn’t work with Guncon.
  • Multi-Mouse doesn’t work with Justifier.
  • Software renderer: when increasing the internal GPU resolution past 1x, the crosshairs will shrink and become unaligned with where you’re actually aiming.

Beetle PSX HW

  • OpenGL renderer breaks Guncon crosshair.
  • OpenGL renderer breaks Justifier crosshair.
  • Vulkan renderer breaks Guncon crosshair.
  • Vulkan renderer breaks Justifier crosshair.
  • Multi-Mouse doesn’t work with Guncon.
  • Multi-Mouse doesn’t work with Justifier.

Beetle Saturn

  • Multi-Mouse doesn’t work with Stunner.
  • Multi-Mouse doesn’t work with Virtua Gun.

bsnes (Accuracy/Balanced/Performance)

  • Multi-Mouse doesn’t work with Justifiers.
  • Justifier and Justifiers device types sometimes make the core crash.

bsnes-mercury (Accuracy/Balanced/Performance)

  • Multi-Mouse doesn’t work with Justifiers.
  • Justifier and Justifiers device types sometimes make the core crash.

bsnes C++98 (v085)

  • Multi-Mouse doesn’t work with Justifiers.

higan Accuracy

  • SuperScope and Justifier(s) aren’t hooked up in this core at all.

nSide Balanced

  • SuperScope and Justifier(s) aren’t hooked up in this core at all.

Snes9x

  • Doesn’t have Justifiers as a device type.
  • Even if it did have Justifiers as a device type. Mutli-Mouse probably wouldn’t work with it.

Snes9x 2010

  • SuperScope and Justifier(s) crosshairs don’t show up. It’s like they’re always offscreen.
  • SuperScope and Justifier(s) inputs work but they fire offscreen.
  • Multi-Mouse doesn’t work for Justifiers

Genesis Plus GX

  • Pointer API isn’t implemented in raw input driver so crosshairs/cursors for device types that use the pointer API don’t work.
  • I need to test this core for Multi-Mouse support once pointer api support is added to the raw input driver.

FCEUmm

  • Pointer API isn’t implemented in raw input driver so crosshairs/cursors for device types that use the pointer API don’t work.

Mesen

  • Pointer API isn’t implemented in raw input driver so crosshairs/cursors for device types that use the pointer API don’t work.

Beetle PCE FAST

  • Mouse device type does not work at all.

MY TESTING IS NOW FINISHED.

THESE ARE THE CORES THAT I DON’T HAVE ENOUGH EXPERIENCE WITH OR DIDN’T HAVE ENOUGH PATIENCE TO TEST.

  • MAME 2000
  • MAME 2010
  • MAME 2014
  • MAME 2016
  • MAME
  • FB Alpha
  • FB Alpha 2012
  • FB Alpha 2012 CPS-1
  • FB Alpha 2012 CPS-2
  • FB Alpha 2012 CPS-3
  • FB Alpha 2012 Neo Geo
  • MESS 2014
  • UME 2014
3 Likes

@dougan78, @Nephilim and others – this is such a useful reference!

I have taken the liberty of removing the RetroArch version number from the thread title so folks realize that this is the most current and comprehensive resource available regarding lightgun API implementation across the various cores.

1 Like

Hi everyone. I just “came back” to retrogaming after a bit of a hiatus and I was thrilled to learn there has been progress made on light gun developments. I use a Raspberry Pi 2B, and I use a Wiimote/DolphinBar combo for light gun games. At the time, when I was last tinkering around with all this, the only core it would work on was AdvMame and I had about 50 games that worked great with no calibration, but sadly none of the consoles worked for light gun games. I got the latest edition of RetroPie that came out in April, with a fresh install, which has the latest RetroArch as well, and I was quite excited to see that most of the NES games work now in the lr-fceumm core, with no further calibration. Unfortunately, SMS/Genesis (lr-genesis-plus-gx) doesn’t work, but I noticed something odd. Before, the actual trigger would work, I could fire and fire away, but I couldn’t move the crosshairs. Now, I have the exact opposite problem - the crosshairs move fine with no lag/choppiness… but not the trigger doesn’t work. I pulled up some old posts that mentioned a setting called RETRO_DEVICE_LIGHTGUN, but I don’t know how to enable this setting on genesis plus gx. I also tried re-mapping the buttons in the RetroArch in-game GUI, but to no avail. Can anyone point me in the right direction as far as setting up the GX? Or does it just not work? Sorry for the super long post, and thanks for your time!

2 Likes

Hello,

In beetle_psx, I’ve got the mouse working to move the cursor in Time Crisis, but can’t find a way to map any of the buttons to actually shoot. So I get stuck on the calibration screen. Googled this over and over and can’t find anything. Not sure where to go from here :confused:

Have you looked under Settings>Input>User 1 binds?

U’m sure mouse buttobs are there. Also ther are setup details in this thread iirc

So I found the issue. The buttons ARE there in input like you said, but they are listed as N/A, no matter what device is set in the input. I just had to trial and error until I found the right one. But it works now! Thanks for the reply.

Have you got Area 51 to work in beetle? I know some have gotten it to work in AdvMame with the CHD file but for some reason it’s just never worked for me.

1 Like

i can’t for the life of me get my actlab guns to work on saturn, please help!

EDIT: so i got the lightguns working by selecting mouse as the controller type. thing is they are not accurate at all. even after calibration, they become worse. any thought?

Same here with Time Crisis on Retroarch 1.7.3 Beetle PSX HW 0.9.44.1 Ubuntu 18.04.

When using mouse input, it works great in game menus (blue dot), but no more crosshair when gameplay starting (3d scene). The input is working because when firing (right-mouse button to un/duck and left-mouse to fire are both ok) I see little blue flash around pointer, so I must constantly fire to see the cursor position…

I tried messing with libretro options to force mouse cursor always on (F11), but it doesn’t match ingame cursor position.

Is someone working on the Light Gun issues (PSX-HW etc.)?

So anything Changed in the Last Year with Light Gun API’s?

So anything Changed in the Last Year with Light Gun API’s?

Nope!

For now - as it was last year - if you want to play PSX light gun games like Elemental Gearbolt or Time Crisis, you’ll need to either use Beetle PSX or run Beetle PSX HW in software mode by choosing a RetroArch backend video driver other than OGL or Vulkan.

Beyond that, it has worked in all the games and cores I’ve tried it in except Corpse Killer on the 4DO, but no one cares because it’s the 3DO and 90% of its games are awful. (Shout out to Star Control II and Super Street Fighter II: Turbo though)

I’ve tried RetroArch’s light gun functionality on the bsnes mercury core with Metal Combat: Falcon’s Revenge and that pack-in cartridge for the Super Scope; House of The Dead and Virtua Cop 2 with Beetle Saturn; and also Terminator 2, Area 51, and Lethal Enforcers on the MAME 2010 core. I have yet to try it in any NES or Sega MD/MS/CD cores.

Here’s a couple tips for using a Windows PC mouse to emulate light guns in RetroArch for anyone who finds their way to this thread from a Google search:

First off, light gun mouse control won’t work with the raw input driver, so use dinput. Secondly, make sure your mouse binds are set correctly in the user input binds section. Go to settings>input>user 1 binds>scroll to the bottom>Gun trigger, gun aux, gun start etc. That last part is important because some light guns, like the Guncon, had multiple buttons.

On the SNES, the Super Scope needed to be plugged into the second controller port, so make sure you’re emulating it on the correct port and binding user 2’s mouse buttons correctly in settings>input. In the bsnes core, the mouse sensitivity is really high, so you may need to adjust that in your OS’s mouse settings or with the DPI selector switch on the mouse if it has one. I haven’t found a way to adjust mouse sensitivity in RetroArch yet.

Here’s another tip, many two-player light gun arcade games need both guns calibrated before the game will boot, even if you’re only playing it with a single player. So you’ll need to create binds for player 2’s light gun as well to pass the calibration test. I just assign player 2’s trigger and start button to some random keys on my keyboard so I can click through the calibration test.

I’ve also noticed some light gun games start off rotated 90 degrees in MAME 2010, so you need to bring up the in-game MAME menu and rotate it back, just FYI.

This concludes today’s installment of “RetroArch Protips From Someone Who Really Likes Playing Light Gun Games on PC”.

5 Likes

There is an open issue at GitHub for the broken Beetle PSX Lighgun support:

1 Like