This commit is contained in:
RevoSucks
2023-10-31 20:25:29 -04:00
23 changed files with 562 additions and 88 deletions
+26
View File
@@ -29,6 +29,32 @@ typedef struct {
/* 0x14 */ u16 distance[5]; // Distance value
} OSVoiceData; // size = 0x20
#define VOICE_STATUS_READY 0 /* stop/end */
#define VOICE_STATUS_START 1 /* Voice Undetected (no voice input) */
#define VOICE_STATUS_CANCEL 3 /* Cancel (cancel extraneous noise) */
#define VOICE_STATUS_BUSY 5 /* Detected/Detecting (voice being input, recognition processing under way) */
#define VOICE_STATUS_END 7 /* End recognition processing (enable execution of Get Recognition Results command) */
#define VOICE_WARN_TOO_SMALL 0x400 /* Voice level is too low (100 < Voice Level < 150) */
#define VOICE_WARN_TOO_LARGE 0x800 /* Voice level is too high (Voice Level > 3500) */
#define VOICE_WARN_NOT_FIT 0x4000 /* No words match recognition word (No. 1 Candidate Distance Value > 1600) */
#define VOICE_WARN_TOO_NOISY 0x8000 /* Too much ambient noise (Relative Voice Level =< 400) */
typedef struct {
/* 0x000 */ u16 words[20][15]; // 20 words, each with up to 15 syllables
/* 0x258 */ u8 numWords;
} OSVoiceDictionary; // size = 0x25C
typedef struct {
/* 0x00 */ OSVoiceDictionary* dict;
/* 0x04 */ s8 mode;
/* 0x08 */ OSVoiceData* data;
/* 0x0C */ u16 distance;
/* 0x0E */ u16 answerNum;
/* 0x10 */ u16 warning;
/* 0x12 */ u16 voiceLevel;
/* 0x14 */ u16 voiceRelLevel;
} OSVoiceUnk; // size = 0x18
s32 osVoiceInit(OSMesgQueue* mq, OSVoiceHandle* hd, int channel);
s32 osVoiceSetWord(OSVoiceHandle* hd, u8* word);
-19
View File
@@ -1194,25 +1194,6 @@ u8 func_801A3950(u8 seqPlayerIndex, u8 resetChannelIO);
u8 func_801A39F8(void);
s32 func_801A46F8(void);
void func_801A4EB0(void);
// void func_801A4EB8(void);
void func_801A4FD8(void);
void func_801A5080(u16 arg0);
u16 func_801A5100(void);
void func_801A5118(void);
UNK_TYPE func_801A51F0(UNK_TYPE arg0);
// void func_801A5228(void);
// void func_801A5390(void);
// void func_801A53E8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
// void func_801A541C(void);
// void func_801A5488(void);
// void func_801A54C4(void);
// void func_801A54D0(void);
// void func_801A5680(void);
// void func_801A5808(void);
void AudioVoice_ResetData(void);
// void func_801A5A1C(void);
void AudioSfx_MuteBanks(u16 muteMask);
void AudioSfx_LowerBgmVolume(u8 channelIndex);
void AudioSfx_RestoreBgmVolume(u8 channelIndex);
+3 -3
View File
@@ -305,9 +305,9 @@ extern UNK_PTR D_801D8B24;
// extern UNK_TYPE2 D_801D8BD0;
// extern UNK_TYPE4 D_801D8BD4;
// extern UNK_TYPE1 D_801D8BE0;
// extern UNK_TYPE1 D_801D8E3C;
// extern u8 D_801D8E3C;
// extern UNK_TYPE4 D_801D8E40;
// extern UNK_TYPE2 D_801D8E44;
// extern u16 sTopScoreWordId;
// extern UNK_TYPE1 D_801D8E48;
// extern UNK_TYPE1 D_801D8E50;
// extern UNK_TYPE1 D_801D8F70;
@@ -1723,7 +1723,7 @@ extern s32 D_801FD120;
// extern UNK_TYPE1 D_801FD5C4;
// extern UNK_TYPE1 D_801FD5C8;
// extern UNK_TYPE1 D_801FD5E8;
// extern UNK_TYPE1 D_801FD608;
extern u8 sVoiceMaskPattern[];
// extern UNK_TYPE1 D_801FD610;
extern ActiveSfx gActiveSfx[7][3];
extern SeqRequest sSeqRequests[][5];
+2 -3
View File
@@ -1369,11 +1369,10 @@ typedef enum {
#define WEEKEVENTREG_86_20 PACK_WEEKEVENTREG_FLAG(86, 0x20)
#define WEEKEVENTREG_86_40 PACK_WEEKEVENTREG_FLAG(86, 0x40)
#define WEEKEVENTREG_86_80 PACK_WEEKEVENTREG_FLAG(86, 0x80)
#define WEEKEVENTREG_87_01 PACK_WEEKEVENTREG_FLAG(87, 0x01)
// Currently talking to a cow using the voice recognition unit
#define WEEKEVENTREG_TALKING_TO_COW_WITH_VOICE PACK_WEEKEVENTREG_FLAG(87, 0x01)
// Set by Anju
#define WEEKEVENTREG_COUPLES_MASK_CUTSCENE_STARTED PACK_WEEKEVENTREG_FLAG(87, 0x02)
#define WEEKEVENTREG_87_04 PACK_WEEKEVENTREG_FLAG(87, 0x04)
#define WEEKEVENTREG_87_08 PACK_WEEKEVENTREG_FLAG(87, 0x08)
#define WEEKEVENTREG_87_10 PACK_WEEKEVENTREG_FLAG(87, 0x10)
+34
View File
@@ -0,0 +1,34 @@
#ifndef Z64VOICE_H
#define Z64VOICE_H
#include "PR/ultratypes.h"
#include "unk.h"
#include "PR/os_voice.h"
typedef enum {
/* 0 */ VOICE_WORD_ID_HOURS,
/* 1 */ VOICE_WORD_ID_CHEESE,
/* 2 */ VOICE_WORD_ID_WAKE_UP,
/* 3 */ VOICE_WORD_ID_SIT,
/* 4 */ VOICE_WORD_ID_MILK,
/* 5 */ VOICE_WORD_ID_HIYA,
/* 6 */ VOICE_WORD_ID_MAX,
/* -1 */ VOICE_WORD_ID_NONE = 0xFFFF
} OSVoiceWordId;
void func_801A4EB0(void);
void func_801A4FD8(void);
void func_801A5080(u16 wordId);
u16 AudioVoice_GetWord(void);
void func_801A5118(void);
s32 func_801A51F0(s32 errorCode);
s32 func_801A5228(OSVoiceDictionary* dict);
OSVoiceData* func_801A5390(void);
void func_801A53E8(u16 distance, u16 answerNum, u16 warning, u16 voiceLevel, u16 voiceRelLevel);
u8* func_801A54C4(void);
s32 func_801A54D0(u16 wordId);
s32 func_801A5680(u16 wordId);
s32 func_801A5808(void);
void AudioVoice_ResetData(void);
#endif