input: support for second analog stick.

This commit is contained in:
Sorgelig
2021-10-10 19:09:15 +08:00
parent b86374cefc
commit be75d3d623
3 changed files with 81 additions and 26 deletions

View File

@@ -1291,7 +1291,7 @@ int user_io_get_joyswap()
return joyswap;
}
void user_io_analog_joystick(unsigned char joystick, char valueX, char valueY)
void user_io_l_analog_joystick(unsigned char joystick, char valueX, char valueY)
{
uint8_t joy = (joystick > 1 || !joyswap) ? joystick : (joystick >= 15) ? (joystick ^ 16) : (joystick ^ 1);
@@ -1308,6 +1308,23 @@ void user_io_analog_joystick(unsigned char joystick, char valueX, char valueY)
}
}
void user_io_r_analog_joystick(unsigned char joystick, char valueX, char valueY)
{
uint8_t joy = (joystick > 1 || !joyswap) ? joystick : (joystick ^ 1);
if (core_type == CORE_TYPE_8BIT)
{
spi_uio_cmd8_cont(UIO_ASTICK_2, joy);
if (io_ver) spi_w((valueY << 8) | (uint8_t)(valueX));
else
{
spi8(valueX);
spi8(valueY);
}
DisableIO();
}
}
void user_io_digital_joystick(unsigned char joystick, uint32_t map, int newdir)
{
uint8_t joy = (joystick>1 || !joyswap) ? joystick : joystick ^ 1;
@@ -1322,7 +1339,7 @@ void user_io_digital_joystick(unsigned char joystick, uint32_t map, int newdir)
if (!is_minimig() && joy_transl == 1 && newdir)
{
user_io_analog_joystick(joystick, (map & 2) ? 128 : (map & 1) ? 127 : 0, (map & 8) ? 128 : (map & 4) ? 127 : 0);
user_io_l_analog_joystick(joystick, (map & 2) ? 128 : (map & 1) ? 127 : 0, (map & 8) ? 128 : (map & 4) ? 127 : 0);
}
}