Provide experimental (non-working) mouse support

This commit is contained in:
Xavier Del Campo Romero 2021-01-03 00:50:25 +01:00
parent a9b446f915
commit cbd6cab28b
2 changed files with 23 additions and 0 deletions

View File

@ -224,6 +224,8 @@ void PSX_InitEx(unsigned int flags);
*/
void PSX_ReadPad(unsigned short *padbuf, unsigned short *padbuf2);
void PSX_ReadMouse(unsigned short* dig_pad1, unsigned short* adc_pad1);
void PSX_PollPad_Fast(int pad_num, psx_pad_state *pad_state);
void PSX_PollPad_Fast_Ex(const unsigned char* const arr, psx_pad_state* const pad_state);

View File

@ -141,6 +141,27 @@ void PSX_ReadPad(unsigned short *padbuf, unsigned short *padbuf2)
unsigned char psxsdkPadArr[PAD_READ_RAW_SIZE][2];
void PSX_ReadMouse(unsigned short* dig_pad1, unsigned short* adc_pad1)
{
unsigned char* arr = psxsdkPadArr[0];
const unsigned char pad_cmd[PAD_READ_RAW_SIZE] = {1,0x42,0,0,0,0,0}; // 2 extra bytes than digital pad
QueryPAD(0, pad_cmd, arr, sizeof(pad_cmd));
if(arr[2] == 0x5A)
{
*dig_pad1 = (arr[3]<<8)|arr[4];
*dig_pad1 = ~*dig_pad1;
*adc_pad1 = (arr[5]<<8)|arr[6];
}
else
{
*dig_pad1 = 0;
*adc_pad1 = 0;
}
}
void PSX_PollPad_Fast_Ex(const unsigned char* const arr, psx_pad_state* const pad_state)
{
//Rely on pad_read_raw being called AFTER PSX_ReadPad(),