General Cleanup 2 (#1538)

* Cleanup

* Cleanup variables.h

* Cleanup fault headers

* Some includes/headers cleanup

* Libultra btn wrappers

* Mark differences to original libultra headers

* Remove duplicate include in fault

* format

* Update include/PR/os_voice.h

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* align

---------

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>
This commit is contained in:
Derek Hensley
2024-01-28 16:27:50 -08:00
committed by GitHub
parent 6a15ce9521
commit db8f5f5ccc
54 changed files with 373 additions and 1785 deletions
+2
View File
@@ -5,6 +5,8 @@
#include "ultratypes.h"
/* Not original to libultra: Point Lights, DW, and Mtx intPart/FracPart union */
/* To enable Fast3DEX grucode support, define F3DEX_GBI. */
/* Types */
+8 -5
View File
@@ -74,11 +74,14 @@
*
**************************************************************************/
#define M_GFXTASK 1
#define M_AUDTASK 2
#define M_VIDTASK 3
#define M_HVQTASK 6
#define M_HVQMTASK 7
/* Not original to libultra: Some added task defines */
#define M_NULTASK 0
#define M_GFXTASK 1
#define M_AUDTASK 2
#define M_VIDTASK 3
#define M_NJPEGTASK 4
#define M_HVQTASK 6
#define M_HVQMTASK 7
/**************************************************************************
*
+31 -16
View File
@@ -41,23 +41,38 @@ typedef struct {
#define CONT_ADDR_CRC_ER 0x04
#define CONT_EEPROM_BUSY 0x80
// TODO: use real libultra button defines instead of this
#define R_CBUTTONS 0x0001
#define L_CBUTTONS 0x0002
#define D_CBUTTONS 0x0004
#define U_CBUTTONS 0x0008
#define R_TRIG 0x0010
#define L_TRIG 0x0020
#define R_JPAD 0x0100
#define L_JPAD 0x0200
#define D_JPAD 0x0400
#define U_JPAD 0x0800
#define START_BUTTON 0x1000
#define Z_TRIG 0x2000
#define B_BUTTON 0x4000
#define A_BUTTON 0x8000
/* Not original to libultra: button macros */
/* Buttons */
#define BTN_CRIGHT 0x0001
#define BTN_CLEFT 0x0002
#define BTN_CDOWN 0x0004
#define BTN_CUP 0x0008
#define BTN_R 0x0010
#define BTN_L 0x0020
#define BTN_RESET 0x0080
#define BTN_DRIGHT 0x0100
#define BTN_DLEFT 0x0200
#define BTN_DDOWN 0x0400
#define BTN_DUP 0x0800
#define BTN_START 0x1000
#define BTN_Z 0x2000
#define BTN_B 0x4000
#define BTN_A 0x8000
#define BTN_CRIGHT R_CBUTTONS
#define BTN_CLEFT L_CBUTTONS
#define BTN_CDOWN D_CBUTTONS
#define BTN_CUP U_CBUTTONS
#define BTN_R R_TRIG
#define BTN_L L_TRIG
#define BTN_RESET 0x0080 /* "neutral reset": Corresponds to holding L+R and pressing S */
#define BTN_DRIGHT R_JPAD
#define BTN_DLEFT L_JPAD
#define BTN_DDOWN D_JPAD
#define BTN_DUP U_JPAD
#define BTN_START START_BUTTON
#define BTN_Z Z_TRIG
#define BTN_B B_BUTTON
#define BTN_A A_BUTTON
#define CONT_ERR_NO_CONTROLLER PFS_ERR_NOPACK /* 1 */
#define CONT_ERR_CONTRFAIL CONT_OVERRUN_ERROR /* 4 */
-3
View File
@@ -18,9 +18,6 @@
#define OS_PHYSICAL_TO_K0(x) (void*)(((u32)(x)+0x80000000))
#define OS_PHYSICAL_TO_K1(x) (void*)(((u32)(x)+0xA0000000))
#define OS_MSEC_TO_CYCLES(n) OS_USEC_TO_CYCLES((n) * 1000)
#define OS_SEC_TO_CYCLES(n) OS_MSEC_TO_CYCLES((n) * 1000)
/* Functions */
extern uintptr_t osVirtualToPhysical(void*);
+8 -13
View File
@@ -13,18 +13,18 @@ typedef enum OsVoiceHandleMode {
} OsVoiceHandleMode;
typedef struct {
/* 0x0 */ OSMesgQueue* mq;
/* 0x4 */ s32 channel; // Controller port
/* 0x8 */ OsVoiceHandleMode mode;
/* 0xC */ u8 status;
/* 0x0 */ OSMesgQueue* __mq;
/* 0x4 */ s32 __channel; // Controller port
/* 0x8 */ s32 __mode;
/* 0xC */ u8 cmd_status;
} OSVoiceHandle; // size = 0x10
typedef struct {
/* 0x00 */ u16 warning; // Warning
/* 0x02 */ u16 answerNum; // Candidate number (0~5)
/* 0x04 */ u16 voiceLevel; // Voice input level
/* 0x06 */ u16 voiceRelLevel; // Relative voice level "voice_sn"
/* 0x08 */ u16 voiceTime; // Voice input time
/* 0x02 */ u16 answer_num; // Candidate number (0~5)
/* 0x04 */ u16 voice_level; // Voice input level
/* 0x06 */ u16 voice_sn; // Relative voice level
/* 0x08 */ u16 voice_time; // Voice input time
/* 0x0A */ u16 answer[5]; // Candidate word number
/* 0x14 */ u16 distance[5]; // Distance value
} OSVoiceData; // size = 0x20
@@ -40,11 +40,6 @@ typedef struct {
#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
s32 osVoiceInit(OSMesgQueue* mq, OSVoiceHandle* hd, int channel);
s32 osVoiceSetWord(OSVoiceHandle* hd, u8* word);
s32 osVoiceCheckWord(u8* word);
+3 -6
View File
@@ -9,8 +9,10 @@
#define OS_SC_RETRACE_MSG 1
#define OS_SC_DONE_MSG 2
#define OS_SC_NMI_MSG 3 // name is made up, 3 is OS_SC_RDP_DONE_MSG in the original sched.c
#define OS_SC_RDP_DONE_MSG 3
#define OS_SC_PRE_NMI_MSG 4
#define OS_SC_LAST_MSG 4 /* this should have highest number */
#define OS_SC_MAX_MESGS 8
#define OS_SC_NEEDS_RDP 0x0001
#define OS_SC_NEEDS_RSP 0x0002
@@ -22,11 +24,6 @@
#define OS_SC_RCP_MASK 0x0003
#define OS_SC_TYPE_MASK 0x0007
#define OS_SC_DP 0x0001
#define OS_SC_SP 0x0002
#define OS_SC_YIELD 0x0010
#define OS_SC_YIELDED 0x0020
typedef struct OSScTask {
/* 0x00 */ struct OSScTask* next;
/* 0x04 */ u32 state;
+13 -72
View File
@@ -2,20 +2,7 @@
#define PR_SPTASK_H
#include "PR/ultratypes.h"
#include "libc/stddef.h"
/* Task Types */
#define M_NULTASK 0
#define M_GFXTASK 1
#define M_AUDTASK 2
#define M_VIDTASK 3
#define M_NJPEGTASK 4
#define M_HVQTASK 6
#define M_HVQMTASK 7
/* Task Flags */
#define M_TASK_FLAG0 (1 << 0)
#define M_TASK_FLAG1 (1 << 1)
/* Task Flag Fields */
#define OS_TASK_YIELDED (1 << 0)
@@ -30,76 +17,30 @@
#define OS_YIELD_DATA_SIZE 0xC00
#define OS_YIELD_AUDIO_SIZE 0x400
/* SpStatus */
/* Write */
#define SPSTATUS_CLEAR_HALT (1 << 0)
#define SPSTATUS_SET_HALT (1 << 1)
#define SPSTATUS_CLEAR_BROKE (1 << 2)
#define SPSTATUS_CLEAR_INTR (1 << 3)
#define SPSTATUS_SET_INTR (1 << 4)
#define SPSTATUS_CLEAR_SSTEP (1 << 5)
#define SPSTATUS_SET_SSTEP (1 << 6)
#define SPSTATUS_CLEAR_INTR_ON_BREAK (1 << 7)
#define SPSTATUS_SET_INTR_ON_BREAK (1 << 8)
#define SPSTATUS_CLEAR_SIGNAL0 (1 << 9)
#define SPSTATUS_SET_SIGNAL0 (1 << 10)
#define SPSTATUS_CLEAR_SIGNAL1 (1 << 11)
#define SPSTATUS_SET_SIGNAL1 (1 << 12)
#define SPSTATUS_CLEAR_SIGNAL2 (1 << 13)
#define SPSTATUS_SET_SIGNAL2 (1 << 14)
#define SPSTATUS_CLEAR_SIGNAL3 (1 << 15)
#define SPSTATUS_SET_SIGNAL3 (1 << 16)
#define SPSTATUS_CLEAR_SIGNAL4 (1 << 17)
#define SPSTATUS_SET_SIGNAL4 (1 << 18)
#define SPSTATUS_CLEAR_SIGNAL5 (1 << 19)
#define SPSTATUS_SET_SIGNAL5 (1 << 20)
#define SPSTATUS_CLEAR_SIGNAL6 (1 << 21)
#define SPSTATUS_SET_SIGNAL6 (1 << 23)
#define SPSTATUS_CLEAR_SIGNAL7 (1 << 24)
#define SPSTATUS_SET_SIGNAL7 (1 << 25)
/* Read */
#define SPSTATUS_HALT (1 << 0)
#define SPSTATUS_BROKE (1 << 1)
#define SPSTATUS_DMA_BUSY (1 << 2)
#define SPSTATUS_DMA_FULL (1 << 3)
#define SPSTATUS_IO_FULL (1 << 4)
#define SPSTATUS_SINGLE_STEP (1 << 5)
#define SPSTATUS_INTERRUPT_ON_BREAK (1 << 6)
#define SPSTATUS_SIGNAL0_SET (1 << 7)
#define SPSTATUS_SIGNAL1_SET (1 << 8)
#define SPSTATUS_SIGNAL2_SET (1 << 9)
#define SPSTATUS_SIGNAL3_SET (1 << 10)
#define SPSTATUS_SIGNAL4_SET (1 << 11)
#define SPSTATUS_SIGNAL5_SET (1 << 12)
#define SPSTATUS_SIGNAL6_SET (1 << 13)
#define SPSTATUS_SIGNAL7_SET (1 << 14)
typedef struct {
/* 0x00 */ u32 type;
/* 0x04 */ u32 flags;
/* 0x08 */ u64* ucodeBoot;
/* 0x0C */ u32 ucodeBootSize; // ucode will load these sizes with lw, so need to be 32-bit
/* 0x08 */ u64* ucode_boot;
/* 0x0C */ u32 ucode_boot_size; // ucode will load these sizes with lw, so need to be 32-bit
/* 0x10 */ u64* ucode;
/* 0x14 */ u32 ucodeSize;
/* 0x14 */ u32 ucode_size;
/* 0x18 */ u64* ucodeData;
/* 0x1C */ u32 ucodeDataSize;
/* 0x18 */ u64* ucode_data;
/* 0x1C */ u32 ucode_data_size;
/* 0x20 */ u64* dramStack;
/* 0x24 */ u32 dramStackSize;
/* 0x20 */ u64* dram_stack;
/* 0x24 */ u32 dram_stack_size;
/* 0x28 */ u64* outputBuff;
/* 0x2C */ u64* outputBuffSize;
/* 0x28 */ u64* output_buff;
/* 0x2C */ u64* output_buff_size;
/* 0x30 */ u64* dataPtr;
/* 0x34 */ u32 dataSize;
/* 0x30 */ u64* data_ptr;
/* 0x34 */ u32 data_size;
/* 0x38 */ u64* yieldDataPtr;
/* 0x3C */ u32 yieldDataSize;
/* 0x38 */ u64* yield_data_ptr;
/* 0x3C */ u32 yield_data_size;
} OSTask_t; // size = 0x40
typedef union {