Fake VPADResult when pressing the config menu buttonn combo to avoid error message in some games (#110)

This commit is contained in:
Maschell 2025-02-15 19:08:40 +01:00 committed by GitHub
parent c4ba7030d9
commit 9275d98e47
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -101,6 +101,11 @@ DECL_FUNCTION(int32_t, VPADRead, int32_t chan, VPADStatus *buffer, uint32_t buff
case 0x00050000'1017D900: // Hyrule Warriors EUR
while (gConfigMenuOpened)
OSSleepTicks(OSMillisecondsToTicks(10));
default:
break; // nothing
}
if (error) {
*error = VPAD_READ_NO_SAMPLES;
}
return 0;
}
@ -109,10 +114,17 @@ DECL_FUNCTION(int32_t, VPADRead, int32_t chan, VPADStatus *buffer, uint32_t buff
const int32_t result = real_VPADRead(chan, buffer, buffer_size, &real_error);
if (result > 0 && real_error == VPAD_READ_SUCCESS && buffer && ((buffer[0].hold & 0xFFFFF) == (VPAD_BUTTON_L | VPAD_BUTTON_DOWN | VPAD_BUTTON_MINUS)) && sVpadPressCooldown == 0 && !gConfigMenuOpened) {
sWantsToOpenConfigMenu = true;
sVpadPressCooldown = 0x3C;
return 0;
if (error) {
*error = VPAD_READ_SUCCESS;
}
buffer->hold = 0;
buffer->trigger = 0;
buffer->release = 0;
return 1;
}
if (error) {
*error = real_error;