mm/include/z64voice.h

42 lines
1.2 KiB
C
Raw Normal View History

Audio Voice Decompiled (#1490) * Add Tharo's documentation comments * Voice progress * Match osVoiceControlGain * Match osVoiceStartReadData * Cleanup * Add docs from n64devkit * WIP on osVoiceGetReadData * Add comment * Match voiceinit.c * Remove CONT_ERR, already present in controller.h * Really close to matching osVoiceStopReadData * Progress on voicecheckword * Match osVoiceSetWord * Add error codes * Matched __osVoiceContRead2... Somehow... * Add small amount of docs * __osVoiceContRead36 was basically identical from __osVoiceContRead2 * docs, but maybe a little carried away * Match __osVoiceContWrite4, Write is very similar to Read * Match __osVoiceContWrite20 from __osVoiceContWrite4, ez * Some docs * Improve osVoiceGetReadData * Match osVoiceCheckWord * currentSyllable -> currSyllable * Match osVoiceMaskDictionary * Match __osVoiceSetADConverter * Meme matched osVoiceStopReadData * small cleanup * Missed macros * osVoiceGetReadData Meme Match * Small clean-up * format * Properly split voice files from code * Use proper flags for voice files * Add basic docs for func_801A5AF0 * Import Voice Data * Update matching functions in code_801A51F0 from audio WIP * Update matching functions in code_801A4EB0 from audio WIP * Match func_801A5A1C * Match func_801A5228 * Match func_801A54D0 * Doc padmgr functions used * Match func_801A5680, it's near identical to func_801A54D0 * code_801A51F0 OK * Match func_801A4EB8 * Match func_801A4FD8 (mips2c got it matching directly) * code_801A4EB0 & all of voice, OK * Import bss * Better match for func_801A5A1C * format * Cleanup * Clean up dictionary * Introduce OSVoiceDictionary * More voice docs * Fix bss * Import code_801A4EB0 data * Introduce Word Id enum * Dictionary: u8 -> u16 * Introduce bgms * Fill in bgm enums * Rename bgm to clearer names * Fix spacing * Fix "No_Music" define * remove comment * import rodata * Improve bgm names, found another seqId function * Another seqId function * Another name change * Woods of Mystery -> Sarias Song * Fix match in osVoiceControlGain * Fix bss reordering * Fix bss file split * add saria's song bgm to pierre * Another bgm function found! * Add bgm's to `gSaveContext.seqIndex` * Fix BSS * fix bss * Fix bss * cleanup * more cleanup * cow voice weekeventflag * small cleanup * some docs * cleanup var * global * more docs * PR Review --------- Co-authored-by: Elliptic Ellipsis <elliptic.ellipsis@gmail.com> Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
2023-11-17 01:29:42 +00:00
#ifndef Z64VOICE_H
#define Z64VOICE_H
#include "PR/ultratypes.h"
#include "unk.h"
#include "PR/os_voice.h"
typedef struct {
/* 0x000 */ u16 words[20][15]; // 20 words, each with up to 15 syllables
/* 0x258 */ u8 numWords;
} OSVoiceDictionary; // size = 0x25C
Audio Voice Decompiled (#1490) * Add Tharo's documentation comments * Voice progress * Match osVoiceControlGain * Match osVoiceStartReadData * Cleanup * Add docs from n64devkit * WIP on osVoiceGetReadData * Add comment * Match voiceinit.c * Remove CONT_ERR, already present in controller.h * Really close to matching osVoiceStopReadData * Progress on voicecheckword * Match osVoiceSetWord * Add error codes * Matched __osVoiceContRead2... Somehow... * Add small amount of docs * __osVoiceContRead36 was basically identical from __osVoiceContRead2 * docs, but maybe a little carried away * Match __osVoiceContWrite4, Write is very similar to Read * Match __osVoiceContWrite20 from __osVoiceContWrite4, ez * Some docs * Improve osVoiceGetReadData * Match osVoiceCheckWord * currentSyllable -> currSyllable * Match osVoiceMaskDictionary * Match __osVoiceSetADConverter * Meme matched osVoiceStopReadData * small cleanup * Missed macros * osVoiceGetReadData Meme Match * Small clean-up * format * Properly split voice files from code * Use proper flags for voice files * Add basic docs for func_801A5AF0 * Import Voice Data * Update matching functions in code_801A51F0 from audio WIP * Update matching functions in code_801A4EB0 from audio WIP * Match func_801A5A1C * Match func_801A5228 * Match func_801A54D0 * Doc padmgr functions used * Match func_801A5680, it's near identical to func_801A54D0 * code_801A51F0 OK * Match func_801A4EB8 * Match func_801A4FD8 (mips2c got it matching directly) * code_801A4EB0 & all of voice, OK * Import bss * Better match for func_801A5A1C * format * Cleanup * Clean up dictionary * Introduce OSVoiceDictionary * More voice docs * Fix bss * Import code_801A4EB0 data * Introduce Word Id enum * Dictionary: u8 -> u16 * Introduce bgms * Fill in bgm enums * Rename bgm to clearer names * Fix spacing * Fix "No_Music" define * remove comment * import rodata * Improve bgm names, found another seqId function * Another seqId function * Another name change * Woods of Mystery -> Sarias Song * Fix match in osVoiceControlGain * Fix bss reordering * Fix bss file split * add saria's song bgm to pierre * Another bgm function found! * Add bgm's to `gSaveContext.seqIndex` * Fix BSS * fix bss * Fix bss * cleanup * more cleanup * cow voice weekeventflag * small cleanup * some docs * cleanup var * global * more docs * PR Review --------- Co-authored-by: Elliptic Ellipsis <elliptic.ellipsis@gmail.com> Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
2023-11-17 01:29:42 +00:00
typedef enum OSVoiceWordId {
/* 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 AudioVoice_Noop(void);
void AudioVoice_ResetWord(void);
void AudioVoice_InitWord(u16 wordId);
u16 AudioVoice_GetWord(void);
void AudioVoice_Update(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* AudioVoice_GetVoiceMaskPattern(void);
s32 AudioVoice_InitWordImplAlt(u16 wordId);
s32 AudioVoice_InitWordImpl(u16 wordId);
s32 func_801A5808(void);
void AudioVoice_ResetData(void);
extern OSVoiceHandle gVoiceHandle;
#endif