+static void update_multitap()
+{
+ struct retro_variable var;
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_multitap1";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ multitap1 = 1;
+ else if (strcmp(var.value, "disabled") == 0)
+ multitap1 = 0;
+ else // 'auto' case
+ {
+ // If a gamepad is plugged after port 2, we need a first multitap.
+ multitap1 = 0;
+ for (int port = 2; port < PORTS_NUMBER; port++)
+ multitap1 |= in_type[port] != PSE_PAD_TYPE_NONE;
+ }
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_multitap2";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ multitap2 = 1;
+ else if (strcmp(var.value, "disabled") == 0)
+ multitap2 = 0;
+ else // 'auto' case
+ {
+ // If a gamepad is plugged after port 4, we need a second multitap.
+ multitap2 = 0;
+ for (int port = 4; port < PORTS_NUMBER; port++)
+ multitap2 |= in_type[port] != PSE_PAD_TYPE_NONE;
+ }
+ }
+}
+