diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2021-01-03 00:50:25 +0100 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2021-01-03 01:02:25 +0100 |
| commit | cbd6cab28b6b3d03e9625e9d429f8acaa34aa8a5 (patch) | |
| tree | 4d61f9ed9d313c4a58ad0ee5465d3d94481ede4d /libpsx/src | |
| parent | a9b446f915e3b14a0171cefdc35ff75d1d585ccd (diff) | |
| download | psxsdk-cbd6cab28b6b3d03e9625e9d429f8acaa34aa8a5.tar.gz | |
Provide experimental (non-working) mouse support
Diffstat (limited to 'libpsx/src')
| -rw-r--r-- | libpsx/src/psxsdk.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libpsx/src/psxsdk.c b/libpsx/src/psxsdk.c index 6fd97af..df623e2 100644 --- a/libpsx/src/psxsdk.c +++ b/libpsx/src/psxsdk.c @@ -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(), |
