From 26cd8f9387d401a652d032fac4543e020a644722 Mon Sep 17 00:00:00 2001 From: engineer124 Date: Wed, 10 Nov 2021 14:01:29 +1100 Subject: [PATCH] Match osVoiceCheckWord --- src/libultra/voice/voicecheckword.c | 147 ++++++++++++++-------------- 1 file changed, 73 insertions(+), 74 deletions(-) diff --git a/src/libultra/voice/voicecheckword.c b/src/libultra/voice/voicecheckword.c index f7c640760..84f8985ab 100644 --- a/src/libultra/voice/voicecheckword.c +++ b/src/libultra/voice/voicecheckword.c @@ -1,105 +1,104 @@ #include "global.h" // Checks whether or not a word can be registered in the dictionary -#ifdef NON_EQUIVALENT s32 osVoiceCheckWord(u8* word) { s32 i; s32 errorCode = 0; - u16 currentWord; // currentLetter? currentSyllable? - u16 new_var; + u16 currentSyllable; + u16 prevSyllable = 0; for (i = 0; word[i] != 0; i += 2) { - new_var = word[i]; // Fake? But helps? - currentWord = word[i + 1] + (new_var << 8); - if (((currentWord != 0x815B) && (currentWord < 0x829F)) || - ((currentWord >= 0x82F2) && (currentWord < 0x8340)) || (currentWord == 0x837F) || (currentWord >= 0x8397)) { + currentSyllable = (word[i] << 8) + word[i + 1]; + if (((currentSyllable != 0x815B) && (currentSyllable < 0x829F)) || + ((currentSyllable >= 0x82F2) && (currentSyllable < 0x8340)) || (currentSyllable == 0x837F) || + (currentSyllable >= 0x8397)) { errorCode = CONT_ERR_VOICE_WORD; - } else if ((i == 0) && ((currentWord == 0x815B) || (currentWord == 0x82F1) || (currentWord == 0x82C1) || - (currentWord == 0x82EC) || (currentWord == 0x8393) || (currentWord == 0x8362) || - (currentWord == 0x838E) || (currentWord == 0x8395) || (currentWord == 0x8396))) { + } else if ((i == 0) && + ((currentSyllable == 0x815B) || (currentSyllable == 0x82F1) || (currentSyllable == 0x82C1) || + (currentSyllable == 0x82EC) || (currentSyllable == 0x8393) || (currentSyllable == 0x8362) || + (currentSyllable == 0x838E) || (currentSyllable == 0x8395) || (currentSyllable == 0x8396))) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x829F) || (currentWord == 0x8340)) && (currentWord != 0x82D3) && - (currentWord != 0x8374) && (currentWord != 0x8394)) { + } else if (((currentSyllable == 0x829F) || (currentSyllable == 0x8340)) && (prevSyllable != 0x82D3) && + (prevSyllable != 0x8374) && (prevSyllable != 0x8394)) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x82A1) || (currentWord == 0x8342)) && (currentWord != 0x82A4) && - (currentWord != 0x82C4) && (currentWord != 0x82C5) && (currentWord != 0x82D3) && - (currentWord != 0x8345) && (currentWord != 0x8365) && (currentWord != 0x8366) && - (currentWord != 0x8374) && (currentWord != 0x8394)) { + } else if (((currentSyllable == 0x82A1) || (currentSyllable == 0x8342)) && (prevSyllable != 0x82A4) && + (prevSyllable != 0x82C4) && (prevSyllable != 0x82C5) && (prevSyllable != 0x82D3) && + (prevSyllable != 0x8345) && (prevSyllable != 0x8365) && (prevSyllable != 0x8366) && + (prevSyllable != 0x8374) && (prevSyllable != 0x8394)) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x82A3) || (currentWord == 0x8344)) && (currentWord != 0x82C6) && - (currentWord != 0x82C7) && (currentWord != 0x82D3) && (currentWord != 0x8367) && - (currentWord != 0x8368) && (currentWord != 0x8374) && (currentWord != 0x8394)) { + } else if (((currentSyllable == 0x82A3) || (currentSyllable == 0x8344)) && (prevSyllable != 0x82C6) && + (prevSyllable != 0x82C7) && (prevSyllable != 0x82D3) && (prevSyllable != 0x8367) && + (prevSyllable != 0x8368) && (prevSyllable != 0x8374) && (prevSyllable != 0x8394)) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x82A5) || (currentWord == 0x8346)) && (currentWord != 0x82A4) && - (currentWord != 0x82B5) && (currentWord != 0x82B6) && (currentWord != 0x82BF) && - (currentWord != 0x82C0) && (currentWord != 0x82C2) && (currentWord != 0x82D3) && - (currentWord != 0x8345) && (currentWord != 0x8356) && (currentWord != 0x8357) && - (currentWord != 0x8360) && (currentWord != 0x8361) && (currentWord != 0x8363) && - (currentWord != 0x8374) && (currentWord != 0x8394)) { + } else if (((currentSyllable == 0x82A5) || (currentSyllable == 0x8346)) && (prevSyllable != 0x82A4) && + (prevSyllable != 0x82B5) && (prevSyllable != 0x82B6) && (prevSyllable != 0x82BF) && + (prevSyllable != 0x82C0) && (prevSyllable != 0x82C2) && (prevSyllable != 0x82D3) && + (prevSyllable != 0x8345) && (prevSyllable != 0x8356) && (prevSyllable != 0x8357) && + (prevSyllable != 0x8360) && (prevSyllable != 0x8361) && (prevSyllable != 0x8363) && + (prevSyllable != 0x8374) && (prevSyllable != 0x8394)) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x82A7) || (currentWord == 0x8348)) && (currentWord != 0x82A4) && - (currentWord != 0x82D3) && (currentWord != 0x8345) && (currentWord != 0x8374) && - (currentWord != 0x8394)) { + } else if (((currentSyllable == 0x82A7) || (currentSyllable == 0x8348)) && (prevSyllable != 0x82A4) && + (prevSyllable != 0x82D3) && (prevSyllable != 0x8345) && (prevSyllable != 0x8374) && + (prevSyllable != 0x8394)) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x82E1) || (currentWord == 0x82E3) || (currentWord == 0x82E5) || - (currentWord == 0x8383) || (currentWord == 0x8385) || (currentWord == 0x8387)) && - (currentWord != 0x82AB) && (currentWord != 0x82B5) && (currentWord != 0x82BF) && - (currentWord != 0x82C9) && (currentWord != 0x82D0) && (currentWord != 0x82DD) && - (currentWord != 0x82E8) && (currentWord != 0x82AC) && (currentWord != 0x82B6) && - (currentWord != 0x82C0) && (currentWord != 0x82D1) && (currentWord != 0x82D2) && - (currentWord != 0x834C) && (currentWord != 0x8356) && (currentWord != 0x8360) && - (currentWord != 0x836A) && (currentWord != 0x8371) && (currentWord != 0x837E) && - (currentWord != 0x838A) && (currentWord != 0x834D) && (currentWord != 0x8357) && - (currentWord != 0x8361) && (currentWord != 0x8372) && (currentWord != 0x8373) && - (currentWord != 0x8394)) { + } else if (((currentSyllable == 0x82E1) || (currentSyllable == 0x82E3) || (currentSyllable == 0x82E5) || + (currentSyllable == 0x8383) || (currentSyllable == 0x8385) || (currentSyllable == 0x8387)) && + (prevSyllable != 0x82AB) && (prevSyllable != 0x82B5) && (prevSyllable != 0x82BF) && + (prevSyllable != 0x82C9) && (prevSyllable != 0x82D0) && (prevSyllable != 0x82DD) && + (prevSyllable != 0x82E8) && (prevSyllable != 0x82AC) && (prevSyllable != 0x82B6) && + (prevSyllable != 0x82C0) && (prevSyllable != 0x82D1) && (prevSyllable != 0x82D2) && + (prevSyllable != 0x834C) && (prevSyllable != 0x8356) && (prevSyllable != 0x8360) && + (prevSyllable != 0x836A) && (prevSyllable != 0x8371) && (prevSyllable != 0x837E) && + (prevSyllable != 0x838A) && (prevSyllable != 0x834D) && (prevSyllable != 0x8357) && + (prevSyllable != 0x8361) && (prevSyllable != 0x8372) && (prevSyllable != 0x8373) && + (prevSyllable != 0x8394)) { errorCode = CONT_ERR_VOICE_WORD; - } else if ((currentWord == 0x815B) && ((currentWord == 0x82F1) || (currentWord == 0x82C1) || - (currentWord == 0x8393) || (currentWord == 0x8362))) { + } else if ((currentSyllable == 0x815B) && ((prevSyllable == 0x82F1) || (prevSyllable == 0x82C1) || + (prevSyllable == 0x8393) || (prevSyllable == 0x8362))) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x82F1) || (currentWord == 0x8393)) && - ((currentWord == 0x82F1) || (currentWord == 0x8393))) { + } else if (((currentSyllable == 0x82F1) || (currentSyllable == 0x8393)) && + ((prevSyllable == 0x82F1) || (prevSyllable == 0x8393))) { errorCode = CONT_ERR_VOICE_WORD; - } else if (((currentWord == 0x82C1) || (currentWord == 0x8362)) && - ((currentWord == 0x815B) || (currentWord == 0x82A0) || (currentWord == 0x82A2) || - (currentWord == 0x82A4) || (currentWord == 0x82A6) || (currentWord == 0x82A8) || - (currentWord == 0x82C8) || (currentWord == 0x82C9) || (currentWord == 0x82CA) || - (currentWord == 0x82CB) || (currentWord == 0x82CC) || (currentWord == 0x82DC) || - (currentWord == 0x82DD) || (currentWord == 0x82DE) || (currentWord == 0x82DF) || - (currentWord == 0x82E0) || (currentWord == 0x82E2) || (currentWord == 0x82E4) || - (currentWord == 0x82E6) || (currentWord == 0x82E7) || (currentWord == 0x82E8) || - (currentWord == 0x82E9) || (currentWord == 0x82EA) || (currentWord == 0x82EB) || - (currentWord == 0x82ED) || (currentWord == 0x82EE) || (currentWord == 0x82EF) || - (currentWord == 0x82F0) || (currentWord == 0x82F1) || (currentWord == 0x829F) || - (currentWord == 0x82A1) || (currentWord == 0x82A3) || (currentWord == 0x82A5) || - (currentWord == 0x82A7) || (currentWord == 0x82E1) || (currentWord == 0x82E3) || - (currentWord == 0x82E5) || (currentWord == 0x82C1) || (currentWord == 0x82EC) || - (currentWord == 0x8341) || (currentWord == 0x8343) || (currentWord == 0x8345) || - (currentWord == 0x8347) || (currentWord == 0x8349) || (currentWord == 0x8369) || - (currentWord == 0x836A) || (currentWord == 0x836B) || (currentWord == 0x836C) || - (currentWord == 0x836D) || (currentWord == 0x837D) || (currentWord == 0x837E) || - (currentWord == 0x8380) || (currentWord == 0x8381) || (currentWord == 0x8382) || - (currentWord == 0x8384) || (currentWord == 0x8386) || (currentWord == 0x8388) || - (currentWord == 0x8389) || (currentWord == 0x838A) || (currentWord == 0x838B) || - (currentWord == 0x838C) || (currentWord == 0x838D) || (currentWord == 0x838F) || - (currentWord == 0x8390) || (currentWord == 0x8391) || (currentWord == 0x8392) || - (currentWord == 0x8393) || (currentWord == 0x8340) || (currentWord == 0x8342) || - (currentWord == 0x8344) || (currentWord == 0x8346) || (currentWord == 0x8348) || - (currentWord == 0x8383) || (currentWord == 0x8385) || (currentWord == 0x8387) || - (currentWord == 0x8362) || (currentWord == 0x838E))) { + } else if (((prevSyllable == 0x82C1) || (prevSyllable == 0x8362)) && + ((currentSyllable == 0x815B) || (currentSyllable == 0x82A0) || (currentSyllable == 0x82A2) || + (currentSyllable == 0x82A4) || (currentSyllable == 0x82A6) || (currentSyllable == 0x82A8) || + (currentSyllable == 0x82C8) || (currentSyllable == 0x82C9) || (currentSyllable == 0x82CA) || + (currentSyllable == 0x82CB) || (currentSyllable == 0x82CC) || (currentSyllable == 0x82DC) || + (currentSyllable == 0x82DD) || (currentSyllable == 0x82DE) || (currentSyllable == 0x82DF) || + (currentSyllable == 0x82E0) || (currentSyllable == 0x82E2) || (currentSyllable == 0x82E4) || + (currentSyllable == 0x82E6) || (currentSyllable == 0x82E7) || (currentSyllable == 0x82E8) || + (currentSyllable == 0x82E9) || (currentSyllable == 0x82EA) || (currentSyllable == 0x82EB) || + (currentSyllable == 0x82ED) || (currentSyllable == 0x82EE) || (currentSyllable == 0x82EF) || + (currentSyllable == 0x82F0) || (currentSyllable == 0x82F1) || (currentSyllable == 0x829F) || + (currentSyllable == 0x82A1) || (currentSyllable == 0x82A3) || (currentSyllable == 0x82A5) || + (currentSyllable == 0x82A7) || (currentSyllable == 0x82E1) || (currentSyllable == 0x82E3) || + (currentSyllable == 0x82E5) || (currentSyllable == 0x82C1) || (currentSyllable == 0x82EC) || + (currentSyllable == 0x8341) || (currentSyllable == 0x8343) || (currentSyllable == 0x8345) || + (currentSyllable == 0x8347) || (currentSyllable == 0x8349) || (currentSyllable == 0x8369) || + (currentSyllable == 0x836A) || (currentSyllable == 0x836B) || (currentSyllable == 0x836C) || + (currentSyllable == 0x836D) || (currentSyllable == 0x837D) || (currentSyllable == 0x837E) || + (currentSyllable == 0x8380) || (currentSyllable == 0x8381) || (currentSyllable == 0x8382) || + (currentSyllable == 0x8384) || (currentSyllable == 0x8386) || (currentSyllable == 0x8388) || + (currentSyllable == 0x8389) || (currentSyllable == 0x838A) || (currentSyllable == 0x838B) || + (currentSyllable == 0x838C) || (currentSyllable == 0x838D) || (currentSyllable == 0x838F) || + (currentSyllable == 0x8390) || (currentSyllable == 0x8391) || (currentSyllable == 0x8392) || + (currentSyllable == 0x8393) || (currentSyllable == 0x8340) || (currentSyllable == 0x8342) || + (currentSyllable == 0x8344) || (currentSyllable == 0x8346) || (currentSyllable == 0x8348) || + (currentSyllable == 0x8383) || (currentSyllable == 0x8385) || (currentSyllable == 0x8387) || + (currentSyllable == 0x8362) || (currentSyllable == 0x838E))) { errorCode = CONT_ERR_VOICE_WORD; } if (errorCode != 0) { return errorCode; } + + prevSyllable = currentSyllable; } - if ((currentWord == 0x82C1) || (currentWord == 0x8362)) { + if ((currentSyllable == 0x82C1) || (currentSyllable == 0x8362)) { errorCode = CONT_ERR_VOICE_WORD; } return errorCode; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/boot/voicecheckword/osVoiceCheckWord.s") -#endif