Really close to matching osVoiceStopReadData

This commit is contained in:
engineer124
2021-11-08 01:03:04 +11:00
parent 23d3f1980e
commit b0c4073267
+48
View File
@@ -1,4 +1,52 @@
#include "global.h"
// Forcibly stops voice recognition processing by the Voice Recognition System
#ifdef NON_EQUIVALENT
s32 osVoiceStopReadData(OSVoiceHandle* hd) {
s32 i;
s32 errorCode;
u8 sp3F;
s32 sp38;
errorCode = __osVoiceGetStatus(hd->mq, hd->port, &sp3F);
if (errorCode != 0) {
return errorCode;
}
if (sp3F & 2) {
return 0xF;
}
if (hd->mode == 0) {
return 5;
}
sp38 = 0x700;
errorCode = __osVoiceContWrite4(hd->mq, hd->port, 0, &sp38);
if (errorCode == 0) {
for (i = 0; i < 20; i++) {
errorCode = __osVoiceCheckResult(hd, &sp3F);
if (errorCode & 0xFF00) {
if (((errorCode & 7) == 0) || ((errorCode & 7) == 7)) {
if (hd) {}
errorCode = 0;
hd->mode = 0;
} else {
errorCode = 5;
}
} else {
hd->mode = 0;
}
if (errorCode != 0xF) {
break;
}
}
}
return errorCode;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/boot/voicestopread/osVoiceStopReadData.s")
#endif