first attempt of implementing light gun support for Libretro

This commit is contained in:
Thomas Jentzsch 2022-01-29 11:37:00 +01:00
parent 096f2434c0
commit ce3fdec7c1
3 changed files with 64 additions and 53 deletions

View File

@ -55,7 +55,7 @@ Lightgun::Lightgun(Jack jack, const Event& event, const System& system,
else if (romMd5 == "2559948f39b91682934ea99d90ede631" || else if (romMd5 == "2559948f39b91682934ea99d90ede631" ||
romMd5 == "e75ab446017448045b152eea78bf7910") romMd5 == "e75ab446017448045b152eea78bf7910")
{ {
// Booby is Hungry // Bobby is Hungry
myOfsX = -21; myOfsX = -21;
myOfsY = 5; myOfsY = 5;
} }

View File

@ -126,6 +126,13 @@ int32_t input_bitmask[4];
EVENT(Event::LeftJoystickFire9, pad, RETRO_DEVICE_ID_JOYPAD_Y); EVENT(Event::LeftJoystickFire9, pad, RETRO_DEVICE_ID_JOYPAD_Y);
break; break;
case Controller::Type::Lightgun:
EVENT(Event::MouseAxisXValue, input_state_cb(pad, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_SCREEN_X));
EVENT(Event::MouseAxisYValue, input_state_cb(pad, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_SCREEN_Y));
EVENT(Event::MouseButtonLeftValue, input_state_cb(pad, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_TRIGGER));
EVENT(Event::MouseButtonRightValue, input_state_cb(pad, RETRO_DEVICE_LIGHTGUN, 0, RETRO_DEVICE_ID_LIGHTGUN_TRIGGER));
break;
default: default:
break; break;
} }
@ -574,6 +581,10 @@ bool retro_load_game(const struct retro_game_info *info)
{ 3, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT, "Right" }, { 3, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT, "Right" },
{ 3, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B, "Fire" }, { 3, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B, "Fire" },
{ 0, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_X, "Pointer X" },
{ 0, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_Y, "Pointer Y" },
{ 0, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_PRESSED, "Pointer Button" },
{ 0, 0, 0, 0, NULL }, { 0, 0, 0, 0, NULL },
}; };