You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What we should do is remove our 4 byte serial and replace it with the first-last-hash? 4 bytes of the unique Pico ID serial. This can be done at driver start-up once.
The text was updated successfully, but these errors were encountered:
We are already doing this for the Xbox One which uses a much larger 16 byte serial ID. We are doing it with the following code:
static const uint8_t * xbone_get_string_descriptor(int index) {
if ( index == 3 ) {
// Generate a serial number from the pico's unique ID
pico_unique_board_id_t id;
pico_get_unique_board_id(&id);
memcpy(uniqueSerial, (uint8_t*)&id, PICO_UNIQUE_BOARD_ID_SIZE_BYTES);
return uniqueSerial;
} else if ( index == 4 ) { // security method used
return xboxSecurityMethod;
} else if ( index == 0xEE ) { // ONLY WINDOWS DOES THIS??
return xboxOSDescriptor;
}
return xbone_string_descriptors[index];
}
If we could convert this to our 3-byte serial ID for the xbox OG, we'd be in good shape
Currently we have an X-Input String version with a static value of "08FEC93" in XInputDescriptors.h
According to https://learn.microsoft.com/en-us/windows-hardware/test/hlk/testref/0f2d5113-cf70-4cda-8afc-b7005d1e2739 the version ID with the serial should be unique per device to tell Windows when a "new" device has been plugged in versus an already recognized device.
What we should do is remove our 4 byte serial and replace it with the first-last-hash? 4 bytes of the unique Pico ID serial. This can be done at driver start-up once.
The text was updated successfully, but these errors were encountered: