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=90fde88dbb0b0aeaed3ae34596debafc2f407eea;hb=1e07f71d8e8645f9060fcb2ed13f4cb4e0267982;hpb=4c08b9e7dd350a48fc3e0515913d6ccc8b15e5ae diff --git a/plugins/dfinput/pad.c b/plugins/dfinput/pad.c index 90fde88d..a8019b94 100644 --- a/plugins/dfinput/pad.c +++ b/plugins/dfinput/pad.c @@ -203,6 +203,21 @@ static void do_cmd2(unsigned char value) break; } break; + + case CMD_READ_DATA_AND_VIBRATE: + if (value == 1 && CurPad == 0 && in_enable_vibration) + 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); } } @@ -219,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++; @@ -228,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