X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfinput%2Fpad.c;h=a8019b942ac2e60d901f4f7a45bdd6ac7525838f;hp=ab55db0f2ee289f53b1cd34f1dde35776a99dd95;hb=1e07f71d8e8645f9060fcb2ed13f4cb4e0267982;hpb=b944a30eda75c36c94ef71e7768497801887612b diff --git a/plugins/dfinput/pad.c b/plugins/dfinput/pad.c index ab55db0f..a8019b94 100644 --- a/plugins/dfinput/pad.c +++ b/plugins/dfinput/pad.c @@ -206,11 +206,21 @@ static void do_cmd2(unsigned char value) case CMD_READ_DATA_AND_VIBRATE: if (value == 1 && CurPad == 0 && in_enable_vibration) - plat_trigger_vibrate(); + plat_trigger_vibrate(0); break; } } +static void do_cmd3(unsigned char value) +{ + if (in_enable_vibration && CurCmd == CMD_READ_DATA_AND_VIBRATE && CurPad == 0) { + if (value >= 0xf0) + plat_trigger_vibrate(1); + else if (value > 0x40) + plat_trigger_vibrate(0); + } +} + #if 0 #include unsigned char PADpoll_(unsigned char value); @@ -224,7 +234,8 @@ unsigned char PADpoll(unsigned char value) { unsigned char PADpoll_pad(unsigned char value) { - if (CurByte == 0) { + switch (CurByte) { + case 0: CurCmd = value; CurByte++; @@ -233,10 +244,13 @@ unsigned char PADpoll_pad(unsigned char value) { CurCmd = CMD_READ_DATA_AND_VIBRATE; return do_cmd(); - } - - if (CurByte == 2) + case 2: do_cmd2(value); + break; + case 3: + do_cmd3(value); + break; + } if (CurByte >= CmdLen) return 0xff; // verified