mirror of
https://github.com/libretro/beetle-wswan-libretro.git
synced 2024-12-03 05:52:46 +00:00
Merge pull request #45 from fr500/master
Fix dualshock analogs, and other fixes
This commit is contained in:
commit
25577ff7bc
20
libretro.cpp
Normal file → Executable file
20
libretro.cpp
Normal file → Executable file
@ -584,9 +584,18 @@ static void check_variables(void)
|
||||
hookup_ports(true);
|
||||
}
|
||||
|
||||
|
||||
var.key = "psx_enable_multitap_port1";
|
||||
var.key = "psx_enable_analog_toggle";
|
||||
|
||||
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var))
|
||||
{
|
||||
if (strcmp(var.value, "enabled") == 0)
|
||||
setting_psx_analog_toggle = 1;
|
||||
else if (strcmp(var.value, "disabled") == 0)
|
||||
setting_psx_analog_toggle = 0;
|
||||
}
|
||||
|
||||
var.key = "psx_enable_multitap_port1";
|
||||
|
||||
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var))
|
||||
{
|
||||
if (strcmp(var.value, "enabled") == 0)
|
||||
@ -753,7 +762,8 @@ static void hookup_ports(bool force)
|
||||
case RETRO_DEVICE_ANALOG:
|
||||
{
|
||||
log_cb(RETRO_LOG_INFO, "[%s]: Selected analog controller type %s.\n", mednafen_core_str, psx_analog_type);
|
||||
currgame->SetInput(j, psx_analog_type, &buf.u8[j]);
|
||||
currgame->SetInput(j, psx_analog_type, &buf.u8[j]);
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -1467,9 +1477,11 @@ void retro_set_environment(retro_environment_t cb)
|
||||
#elif defined(WANT_PSX_EMU)
|
||||
static const struct retro_variable vars[] = {
|
||||
{ "psx_dithering", "Dithering; enabled|disabled" },
|
||||
{ "psx_enable_dual_analog_type", "Analog controller mode; disabled|dualshock|dualanalog|flightstick" },
|
||||
{ "psx_enable_dual_analog_type", "Analog controller mode; disabled|dualshock|dualanalog|flightstick" },
|
||||
{ "psx_enable_analog_toggle", "Dualshock analog button; disabled|enabled" },
|
||||
{ "psx_enable_multitap_port1", "Port 1: Multitap enable; disabled|enabled" },
|
||||
{ "psx_enable_multitap_port2", "Port 2: Multitap enable; disabled|enabled" },
|
||||
|
||||
|
||||
{ NULL, NULL },
|
||||
};
|
||||
|
7
mednafen/psx-09333/input/dualshock.cpp
Normal file → Executable file
7
mednafen/psx-09333/input/dualshock.cpp
Normal file → Executable file
@ -151,6 +151,12 @@ void InputDevice_DualShock::ResetTS(void)
|
||||
void InputDevice_DualShock::SetAMCT(bool enabled)
|
||||
{
|
||||
amct_enabled = enabled;
|
||||
if(amct_enabled)
|
||||
analog_mode = false;
|
||||
else
|
||||
analog_mode = true;
|
||||
|
||||
MDFN_DispMessage(_("%s: Mode button is %s, analogs are now %s"), gp_name.c_str(), amct_enabled ? _("enabled") : _("disabled"), analog_mode?_("on") : _("off"));
|
||||
}
|
||||
|
||||
//
|
||||
@ -224,7 +230,6 @@ void InputDevice_DualShock::Power(void)
|
||||
transmit_pos = 0;
|
||||
transmit_count = 0;
|
||||
|
||||
analog_mode = false;
|
||||
analog_mode_locked = false;
|
||||
|
||||
mad_munchkins = false;
|
||||
|
7
mednafen/settings.cpp
Normal file → Executable file
7
mednafen/settings.cpp
Normal file → Executable file
@ -31,6 +31,7 @@ uint32_t setting_pce_keepaspect = 1;
|
||||
#elif defined(WANT_PSX_EMU)
|
||||
uint32_t setting_psx_multitap_port_1 = 0;
|
||||
uint32_t setting_psx_multitap_port_2 = 0;
|
||||
uint32_t setting_psx_analog_toggle = 0;
|
||||
uint32_t setting_psx_fastboot = 1;
|
||||
#elif defined(WANT_NGP_EMU)
|
||||
uint32_t setting_ngp_language = 0;
|
||||
@ -225,14 +226,14 @@ bool MDFN_GetSettingB(const char *name)
|
||||
return 1;
|
||||
if (!strcmp("psx.input.port8.memcard", name))
|
||||
return 1;
|
||||
if (!strcmp("psx.input.port1.multitap", name)) /* make configurable */
|
||||
if (!strcmp("psx.input.pport1.multitap", name)) /* make configurable */
|
||||
return setting_psx_multitap_port_1;
|
||||
if (!strcmp("psx.input.port2.multitap", name)) /* make configurable */
|
||||
if (!strcmp("psx.input.pport2.multitap", name)) /* make configurable */
|
||||
return setting_psx_multitap_port_2;
|
||||
if (!strcmp("psx.region_autodetect", name)) /* make configurable */
|
||||
return 1;
|
||||
if (!strcmp("psx.input.analog_mode_ct", name)) /* make configurable */
|
||||
return 1;
|
||||
return setting_psx_analog_toggle;
|
||||
if (!strcmp("psx.fastboot", name))
|
||||
return setting_psx_fastboot;
|
||||
#elif defined(WANT_NGP_EMU)
|
||||
|
1
mednafen/settings.h
Normal file → Executable file
1
mednafen/settings.h
Normal file → Executable file
@ -13,6 +13,7 @@ extern uint32_t setting_pce_keepaspect;
|
||||
#elif defined(WANT_PSX_EMU)
|
||||
extern uint32_t setting_psx_multitap_port_1;
|
||||
extern uint32_t setting_psx_multitap_port_2;
|
||||
extern uint32_t setting_psx_analog_toggle;
|
||||
extern uint32_t setting_psx_fastboot;
|
||||
#elif defined(WANT_NGP_EMU)
|
||||
extern uint32_t setting_ngp_language;
|
||||
|
Loading…
Reference in New Issue
Block a user