mirror of https://github.com/zeldaret/mm.git
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:
parent
6a15ce9521
commit
db8f5f5ccc
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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*);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -2,12 +2,14 @@
|
|||
#define FAULT_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "unk.h"
|
||||
|
||||
#include "libc/stdarg.h"
|
||||
#include "libc/stdint.h"
|
||||
#include "PR/controller.h"
|
||||
|
||||
#include "padmgr.h"
|
||||
#include "stack.h"
|
||||
#include "unk.h"
|
||||
|
||||
// These are the same as the 3-bit ansi color codes
|
||||
#define FAULT_COLOR_BLACK 0
|
||||
|
|
|
@ -2,13 +2,18 @@
|
|||
#define SCHEDULER_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "PR/sched.h"
|
||||
#include "PR/os_vi.h"
|
||||
#include "PR/sched.h"
|
||||
#include "PR/sptask.h"
|
||||
#include "irqmgr.h"
|
||||
|
||||
#include "irqmgr.h"
|
||||
#include "unk.h"
|
||||
|
||||
#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_PRE_NMI_MSG 4
|
||||
|
||||
#define TASK_FRAMEBUFFER(task) ((CfbInfo*)(task)->framebuffer)
|
||||
|
||||
typedef struct {
|
||||
|
|
1425
include/variables.h
1425
include/variables.h
File diff suppressed because it is too large
Load Diff
|
@ -186,7 +186,7 @@ typedef enum {
|
|||
#define DYNA_INTERACT_ACTOR_ON_SWITCH (1 << 3) // Like the ACTOR_ON_TOP flag but only actors with ACTOR_FLAG_CAN_PRESS_SWITCH
|
||||
#define DYNA_INTERACT_ACTOR_ON_HEAVY_SWITCH (1 << 4) // Like the ACTOR_ON_TOP flag but only actors with ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCH
|
||||
|
||||
typedef struct {
|
||||
typedef struct DynaPolyActor {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ s32 bgId;
|
||||
/* 0x148 */ f32 pushForce;
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
#ifndef Z64BGCHECK_H
|
||||
#define Z64BGCHECK_H
|
||||
|
||||
#include "ultra64.h"
|
||||
|
||||
#include "z64math.h"
|
||||
|
||||
struct PlayState;
|
||||
struct Actor;
|
||||
struct DynaPolyActor;
|
||||
|
@ -302,7 +306,7 @@ typedef struct {
|
|||
} DynaLookup; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Actor* actor;
|
||||
/* 0x00 */ struct Actor* actor;
|
||||
/* 0x04 */ CollisionHeader* colHeader;
|
||||
/* 0x08 */ DynaLookup dynaLookup;
|
||||
/* 0x10 */ u16 vtxStartIndex;
|
||||
|
@ -377,7 +381,7 @@ typedef struct
|
|||
/* 0x20 */ f32 outDistSq;
|
||||
/* 0x24 */ f32 checkDist;
|
||||
/* 0x28 */ s32 bccFlags;
|
||||
/* 0x2C */ Actor* actor;
|
||||
/* 0x2C */ struct Actor* actor;
|
||||
} StaticLineTest; // size = 0x30
|
||||
|
||||
typedef struct {
|
||||
|
@ -392,7 +396,7 @@ typedef struct {
|
|||
/* 0x20 */ s32 checkOneFace; // bccFlags & 0x8
|
||||
/* 0x24 */ f32* distSq; // distance from posA to poly squared
|
||||
/* 0x28 */ f32 checkDist; // distance from poly
|
||||
/* 0x2C */ Actor* actor;
|
||||
/* 0x2C */ struct Actor* actor;
|
||||
/* 0x30 */ s32 bgId;
|
||||
} DynaLineTest; // size = 0x34
|
||||
|
||||
|
@ -465,40 +469,40 @@ void BgCheck_Allocate(CollisionContext* colCtx, struct PlayState* play, Collisio
|
|||
void BgCheck_SetContextFlags(CollisionContext* colCtx, u32 flags);
|
||||
void BgCheck_UnsetContextFlags(CollisionContext* colCtx, u32 flags);
|
||||
CollisionHeader* BgCheck_GetCollisionHeader(CollisionContext* colCtx, s32 bgId);
|
||||
f32 BgCheck_RaycastFloorImpl(struct PlayState* play, CollisionContext* colCtx, u16 xpFlags, CollisionPoly** outPoly, s32* outBgId, Vec3f* pos, Actor* actor, u32 arg7, f32 checkDist, s32 arg9);
|
||||
f32 BgCheck_RaycastFloorImpl(struct PlayState* play, CollisionContext* colCtx, u16 xpFlags, CollisionPoly** outPoly, s32* outBgId, Vec3f* pos, struct Actor* actor, u32 arg7, f32 checkDist, s32 arg9);
|
||||
f32 BgCheck_CameraRaycastFloor1(CollisionContext* colCtx, CollisionPoly** outPoly, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor1(CollisionContext* colCtx, CollisionPoly** outPoly, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor2(struct PlayState* play, CollisionContext* colCtx, CollisionPoly** outPoly, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor2_1(struct PlayState* play, CollisionContext* colCtx, CollisionPoly** outPoly, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor3(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor5(CollisionContext* colCtx, CollisionPoly** outPoly, s32* outBgId, Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor5_2(struct PlayState* play, CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor5_3(struct PlayState* play, CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor6(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Actor* actor, Vec3f* pos, f32 checkDist);
|
||||
f32 BgCheck_EntityRaycastFloor7(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor5(CollisionContext* colCtx, CollisionPoly** outPoly, s32* outBgId, struct Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor5_2(struct PlayState* play, CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, struct Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor5_3(struct PlayState* play, CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, struct Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor6(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, struct Actor* actor, Vec3f* pos, f32 checkDist);
|
||||
f32 BgCheck_EntityRaycastFloor7(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, struct Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_AnyRaycastFloor1(CollisionContext* colCtx, CollisionPoly* outPoly, Vec3f* pos);
|
||||
f32 BgCheck_AnyRaycastFloor2(CollisionContext* colCtx, CollisionPoly* outPoly, s32* bgId, Vec3f* pos);
|
||||
f32 BgCheck_CameraRaycastFloor2(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor8(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor8(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, struct Actor* actor, Vec3f* pos);
|
||||
f32 BgCheck_EntityRaycastFloor9(CollisionContext* colCtx, CollisionPoly** outPoly, s32* bgId, Vec3f* pos);
|
||||
s32 BgCheck_CheckWallImpl(CollisionContext* colCtx, u16 xpFlags, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, s32* outBgId, Actor* actor, f32 checkHeight, u8 argA);
|
||||
s32 BgCheck_CheckWallImpl(CollisionContext* colCtx, u16 xpFlags, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, s32* outBgId, struct Actor* actor, f32 checkHeight, u8 argA);
|
||||
s32 BgCheck_EntitySphVsWall1(CollisionContext* colCtx, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, f32 checkHeight);
|
||||
s32 BgCheck_EntitySphVsWall2(CollisionContext* colCtx, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, s32* outBgId, f32 checkHeight);
|
||||
s32 BgCheck_EntitySphVsWall3(CollisionContext* colCtx, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, s32* outBgId, Actor* actor, f32 checkHeight);
|
||||
s32 BgCheck_EntitySphVsWall4(CollisionContext* colCtx, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, s32* outBgId, Actor* actor, f32 checkHeight);
|
||||
s32 BgCheck_CheckCeilingImpl(CollisionContext* colCtx, u16 xpFlags, f32* outY, Vec3f* pos, f32 checkHeight, CollisionPoly** outPoly, s32* outBgId, Actor* actor);
|
||||
s32 BgCheck_EntitySphVsWall3(CollisionContext* colCtx, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, s32* outBgId, struct Actor* actor, f32 checkHeight);
|
||||
s32 BgCheck_EntitySphVsWall4(CollisionContext* colCtx, Vec3f* posResult, Vec3f* posNext, Vec3f* posPrev, f32 radius, CollisionPoly** outPoly, s32* outBgId, struct Actor* actor, f32 checkHeight);
|
||||
s32 BgCheck_CheckCeilingImpl(CollisionContext* colCtx, u16 xpFlags, f32* outY, Vec3f* pos, f32 checkHeight, CollisionPoly** outPoly, s32* outBgId, struct Actor* actor);
|
||||
s32 BgCheck_AnyCheckCeiling(CollisionContext* colCtx, f32* outY, Vec3f* pos, f32 checkHeight);
|
||||
s32 BgCheck_EntityCheckCeiling(CollisionContext* colCtx, f32* outY, Vec3f* pos, f32 checkHeight, CollisionPoly** outPoly, s32* outBgId, Actor* actor);
|
||||
s32 BgCheck_EntityCheckCeiling(CollisionContext* colCtx, f32* outY, Vec3f* pos, f32 checkHeight, CollisionPoly** outPoly, s32* outBgId, struct Actor* actor);
|
||||
s32 BgCheck_CameraLineTest1(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId);
|
||||
s32 BgCheck_CameraLineTest2(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId);
|
||||
s32 BgCheck_EntityLineTest1(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId);
|
||||
s32 BgCheck_EntityLineTest2(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId, Actor* actor);
|
||||
s32 BgCheck_EntityLineTest3(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId, Actor* actor, f32 checkDist);
|
||||
s32 BgCheck_EntityLineTest2(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId, struct Actor* actor);
|
||||
s32 BgCheck_EntityLineTest3(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId, struct Actor* actor, f32 checkDist);
|
||||
s32 BgCheck_ProjectileLineTest(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId);
|
||||
s32 BgCheck_AnyLineTest1(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkOneFace);
|
||||
s32 BgCheck_AnyLineTest2(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace);
|
||||
s32 BgCheck_AnyLineTest3(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 checkWall, s32 checkFloor, s32 checkCeil, s32 checkOneFace, s32* bgId);
|
||||
s32 BgCheck_SphVsFirstPolyImpl(CollisionContext* colCtx, u16 xpFlags, CollisionPoly** outPoly, s32* outBgId, Vec3f* center, f32 radius, Actor* actor, u16 bciFlags);
|
||||
s32 BgCheck_SphVsFirstPolyImpl(CollisionContext* colCtx, u16 xpFlags, CollisionPoly** outPoly, s32* outBgId, Vec3f* center, f32 radius, struct Actor* actor, u16 bciFlags);
|
||||
s32 BgCheck_SphVsFirstPoly(CollisionContext* colCtx, Vec3f* center, f32 radius);
|
||||
s32 BgCheck_SphVsFirstWall(CollisionContext* colCtx, Vec3f* center, f32 radius);
|
||||
void SSNodeList_Init(SSNodeList* this);
|
||||
|
@ -513,7 +517,7 @@ void DynaLookup_Reset(DynaLookup* dynaLookup);
|
|||
void DynaLookup_ResetVtxStartIndex(u16* vtxStartIndex);
|
||||
void DynaLookup_ResetWaterBoxStartIndex(u16* waterBoxStartIndex);
|
||||
void BgActor_Init(struct PlayState* play, BgActor* bgActor);
|
||||
void BgActor_SetActor(BgActor* bgActor, Actor* actor, CollisionHeader* colHeader);
|
||||
void BgActor_SetActor(BgActor* bgActor, struct Actor* actor, CollisionHeader* colHeader);
|
||||
s32 BgActor_IsTransformUnchanged(BgActor* bgActor);
|
||||
void DynaPoly_NullPolyList(CollisionPoly** polyList);
|
||||
void DynaPoly_AllocPolyList(struct PlayState* play, CollisionPoly** polyList, s32 numPolys);
|
||||
|
@ -525,8 +529,8 @@ void DynaPoly_SetBgActorPrevTransform(struct PlayState* play, BgActor* bgActor);
|
|||
s32 DynaPoly_IsBgIdBgActor(s32 bgId);
|
||||
void DynaPoly_Init(struct PlayState* play, DynaCollisionContext* dyna);
|
||||
void DynaPoly_Alloc(struct PlayState* play, DynaCollisionContext* dyna);
|
||||
s32 DynaPoly_SetBgActor(struct PlayState* play, DynaCollisionContext* dyna, Actor* actor, CollisionHeader* colHeader);
|
||||
DynaPolyActor* DynaPoly_GetActor(CollisionContext* colCtx, s32 bgId);
|
||||
s32 DynaPoly_SetBgActor(struct PlayState* play, DynaCollisionContext* dyna, struct Actor* actor, CollisionHeader* colHeader);
|
||||
struct DynaPolyActor* DynaPoly_GetActor(CollisionContext* colCtx, s32 bgId);
|
||||
void DynaPoly_DisableCollision(struct PlayState* play, DynaCollisionContext* dyna, s32 bgId);
|
||||
void DynaPoly_EnableCollision(struct PlayState* play, DynaCollisionContext* dyna, s32 bgId);
|
||||
void DynaPoly_DisableCeilingCollision(struct PlayState* play, DynaCollisionContext* dyna, s32 bgId);
|
||||
|
@ -537,7 +541,7 @@ void DynaPoly_InvalidateLookup(struct PlayState* play, DynaCollisionContext* dyn
|
|||
void DynaPoly_DeleteBgActor(struct PlayState* play, DynaCollisionContext* dyna, s32 bgId);
|
||||
void BgCheck_CalcWaterboxDimensions(Vec3f* minPos, Vec3f* maxXPos, Vec3f* maxZPos, Vec3s* minPosOut, s16* xLength, s16* zLength);
|
||||
void DynaPoly_AddBgActorToLookup(struct PlayState* play, DynaCollisionContext* dyna, s32 bgId, s32* vtxStartIndex, s32* polyStartIndex, s32* waterBoxStartIndex);
|
||||
void DynaPoly_UnsetAllInteractFlags(struct PlayState* play, DynaCollisionContext* dyna, Actor* actor);
|
||||
void DynaPoly_UnsetAllInteractFlags(struct PlayState* play, DynaCollisionContext* dyna, struct Actor* actor);
|
||||
void DynaPoly_UpdateContext(struct PlayState* play, DynaCollisionContext* dyna);
|
||||
void func_800C756C(DynaCollisionContext* dyna, s32* numPolygons, s32* numVertices, s32* numWaterBoxes);
|
||||
void DynaPoly_UpdateBgActorTransforms(struct PlayState* play, DynaCollisionContext* dyna);
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
#include "ultra64.h"
|
||||
#include "z64dma.h"
|
||||
|
||||
struct GraphicsContext;
|
||||
struct Input;
|
||||
struct PlayState;
|
||||
|
||||
#define DEFINE_PERSON(enum, _photo, _description, _metEnum, _metMessage, _metFlag) enum,
|
||||
|
@ -52,7 +54,7 @@ typedef struct {
|
|||
} BombersNotebook; // size = 0xAC
|
||||
|
||||
void BombersNotebook_Draw(BombersNotebook* this, struct GraphicsContext* gfxCtx);
|
||||
void BombersNotebook_Update(struct PlayState* play, BombersNotebook* this, Input* input);
|
||||
void BombersNotebook_Update(struct PlayState* play, BombersNotebook* this, struct Input* input);
|
||||
void BombersNotebook_Init(BombersNotebook* this);
|
||||
void BombersNotebook_Destroy(BombersNotebook* this);
|
||||
|
||||
|
|
|
@ -2,8 +2,11 @@
|
|||
#define Z64MESSAGE_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "z64view.h"
|
||||
#include "libc/stdbool.h"
|
||||
|
||||
#include "unk.h"
|
||||
#include "z64bombers_notebook.h"
|
||||
#include "z64view.h"
|
||||
|
||||
struct Actor;
|
||||
struct MessageTableEntry;
|
||||
|
@ -328,7 +331,7 @@ void Message_HandleOcarina(struct PlayState* play);
|
|||
void Message_LoadItemIcon(struct PlayState* play, u16 itemId, s16 arg2);
|
||||
void Message_DecodeHeader(struct PlayState* play);
|
||||
void func_801514B0(struct PlayState* play, u16 arg1, u8 arg2);
|
||||
void Message_StartTextbox(struct PlayState* play, u16 textId, Actor* actor);
|
||||
void Message_StartTextbox(struct PlayState* play, u16 textId, struct Actor* actor);
|
||||
void Message_ContinueTextbox(struct PlayState* play, u16 textId);
|
||||
void Message_DisplaySceneTitleCard(struct PlayState* play, u16 textId);
|
||||
void Message_BombersNotebookQueueEvent(struct PlayState* play, u8 event);
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
#ifndef Z64SPEED_METER_H
|
||||
#define Z64SPEED_METER_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "PR/ultratypes.h"
|
||||
#include "PR/os_time.h"
|
||||
#include "unk.h"
|
||||
|
||||
struct GameState;
|
||||
struct GraphicsContext;
|
||||
|
||||
typedef struct SpeedMeter {
|
||||
/* 0x00 */ char unk_00[0x18];
|
||||
/* 0x00 */ UNK_TYPE1 unk_00[0x18];
|
||||
/* 0x18 */ s32 x; // Unused
|
||||
/* 0x1C */ s32 y;
|
||||
} SpeedMeter; // size = 0x20
|
||||
|
|
|
@ -5,6 +5,11 @@
|
|||
#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
|
||||
|
||||
typedef enum OSVoiceWordId {
|
||||
/* 0 */ VOICE_WORD_ID_HOURS,
|
||||
/* 1 */ VOICE_WORD_ID_CHEESE,
|
||||
|
|
|
@ -1263,8 +1263,8 @@ void AudioLoad_Init(void* heap, size_t heapSize) {
|
|||
gAudioCtx.curAiBufferIndex = 0;
|
||||
gAudioCtx.soundMode = SOUNDMODE_STEREO;
|
||||
gAudioCtx.curTask = NULL;
|
||||
gAudioCtx.rspTask[0].task.t.dataSize = 0;
|
||||
gAudioCtx.rspTask[1].task.t.dataSize = 0;
|
||||
gAudioCtx.rspTask[0].task.t.data_size = 0;
|
||||
gAudioCtx.rspTask[1].task.t.data_size = 0;
|
||||
|
||||
osCreateMesgQueue(&gAudioCtx.syncDmaQueue, &gAudioCtx.syncDmaMesg, 1);
|
||||
osCreateMesgQueue(&gAudioCtx.curAudioFrameDmaQueue, gAudioCtx.currAudioFrameDmaMesgBuf,
|
||||
|
|
|
@ -168,21 +168,21 @@ AudioTask* AudioThread_UpdateImpl(void) {
|
|||
task = &gAudioCtx.curTask->task.t;
|
||||
task->type = M_AUDTASK;
|
||||
task->flags = 0;
|
||||
task->ucodeBoot = aspMainTextStart;
|
||||
task->ucodeBootSize = SP_UCODE_SIZE;
|
||||
task->ucodeDataSize = ((aspMainDataEnd - aspMainDataStart) * sizeof(u64)) - 1;
|
||||
task->ucode_boot = aspMainTextStart;
|
||||
task->ucode_boot_size = SP_UCODE_SIZE;
|
||||
task->ucode_data_size = ((aspMainDataEnd - aspMainDataStart) * sizeof(u64)) - 1;
|
||||
task->ucode = aspMainTextStart;
|
||||
task->ucodeData = aspMainDataStart;
|
||||
task->ucodeSize = SP_UCODE_SIZE;
|
||||
task->dramStack = (u64*)D_801D6200;
|
||||
task->dramStackSize = 0;
|
||||
task->outputBuff = NULL;
|
||||
task->outputBuffSize = NULL;
|
||||
task->ucode_data = aspMainDataStart;
|
||||
task->ucode_size = SP_UCODE_SIZE;
|
||||
task->dram_stack = (u64*)D_801D6200;
|
||||
task->dram_stack_size = 0;
|
||||
task->output_buff = NULL;
|
||||
task->output_buff_size = NULL;
|
||||
if (1) {}
|
||||
task->dataPtr = (u64*)gAudioCtx.abiCmdBufs[index];
|
||||
task->dataSize = numAbiCmds * sizeof(Acmd);
|
||||
task->yieldDataPtr = NULL;
|
||||
task->yieldDataSize = 0;
|
||||
task->data_ptr = (u64*)gAudioCtx.abiCmdBufs[index];
|
||||
task->data_size = numAbiCmds * sizeof(Acmd);
|
||||
task->yield_data_ptr = NULL;
|
||||
task->yield_data_size = 0;
|
||||
|
||||
if (gAudioCtx.numAbiCmdsMax < numAbiCmds) {
|
||||
gAudioCtx.numAbiCmdsMax = numAbiCmds;
|
||||
|
|
|
@ -280,7 +280,7 @@ s32 func_801A5808(void) {
|
|||
PadMgr_VoiceReleaseSerialEventQueue(serialEventQueue);
|
||||
|
||||
if (func_801A51F0(errorCode) == 0) {
|
||||
switch (gVoiceHandle.status) {
|
||||
switch (gVoiceHandle.cmd_status) {
|
||||
case VOICE_STATUS_READY:
|
||||
sVoiceContext.mode = VOICE_MODE_2;
|
||||
break;
|
||||
|
@ -305,10 +305,10 @@ s32 func_801A5808(void) {
|
|||
|
||||
case VOICE_MODE_2:
|
||||
if (((D_801FD5C8.warning & sVoiceContext.warning) == 0) &&
|
||||
(sVoiceContext.answerNum >= D_801FD5C8.answerNum) &&
|
||||
(sVoiceContext.answerNum >= D_801FD5C8.answer_num) &&
|
||||
(sVoiceContext.distance >= D_801FD5C8.distance[0]) &&
|
||||
(D_801FD5C8.voiceLevel >= sVoiceContext.voiceLevel) &&
|
||||
(D_801FD5C8.voiceRelLevel >= sVoiceContext.voiceRelLevel)) {
|
||||
(D_801FD5C8.voice_level >= sVoiceContext.voiceLevel) &&
|
||||
(D_801FD5C8.voice_sn >= sVoiceContext.voiceRelLevel)) {
|
||||
D_801FD5E8 = D_801FD5C8;
|
||||
sVoiceContext.data = &D_801FD5E8;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "CIC6105.h"
|
||||
|
||||
#include "build.h"
|
||||
#include "fault.h"
|
||||
|
||||
|
|
|
@ -7,9 +7,13 @@ void MtxConv_F2L(Mtx* mtx, MtxF* mf) {
|
|||
for (i = 0; i < 4; i++) {
|
||||
for (j = 0; j < 4; j++) {
|
||||
s32 value = (mf->mf[i][j] * 0x10000);
|
||||
struct {
|
||||
u16 intPart[4][4];
|
||||
u16 fracPart[4][4];
|
||||
}* mu = (void*)mtx;
|
||||
|
||||
mtx->intPart[i][j] = value >> 16;
|
||||
mtx->fracPart[i][j] = value;
|
||||
mu->intPart[i][j] = value >> 16;
|
||||
mu->fracPart[i][j] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "carthandle.h"
|
||||
#include "CIC6105.h"
|
||||
#include "idle.h"
|
||||
#include "stack.h"
|
||||
#include "stackcheck.h"
|
||||
#include "CIC6105.h"
|
||||
#include "z64thread.h"
|
||||
|
||||
StackEntry sBootStackInfo;
|
||||
|
|
|
@ -39,19 +39,18 @@
|
|||
* DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen.
|
||||
* DPad-Down disables sending fault pages over osSyncPrintf.
|
||||
*/
|
||||
|
||||
#include "fault_internal.h"
|
||||
#include "fault.h"
|
||||
#include "fault_internal.h"
|
||||
|
||||
#include "libc64/sprintf.h"
|
||||
#include "libc64/sleep.h"
|
||||
#include "vt.h"
|
||||
#include "libc64/sprintf.h"
|
||||
#include "PR/osint.h"
|
||||
|
||||
#include "macros.h"
|
||||
#include "main.h"
|
||||
#include "vt.h"
|
||||
#include "stackcheck.h"
|
||||
#include "z64thread.h"
|
||||
#include "main.h"
|
||||
#include "macros.h"
|
||||
#include "global.h"
|
||||
|
||||
FaultMgr* sFaultInstance;
|
||||
f32 sFaultTimeTotal; // read but not set anywhere
|
||||
|
@ -547,7 +546,7 @@ void Fault_Wait5Seconds(void) {
|
|||
|
||||
do {
|
||||
Fault_Sleep(1000 / 60);
|
||||
} while ((osGetTime() - start) <= OS_SEC_TO_CYCLES(5));
|
||||
} while ((osGetTime() - start) <= OS_USEC_TO_CYCLES(5 * 1000 * 1000));
|
||||
|
||||
sFaultInstance->autoScroll = true;
|
||||
}
|
||||
|
@ -931,7 +930,6 @@ void Fault_SetOptions(void) {
|
|||
uintptr_t ra;
|
||||
uintptr_t sp;
|
||||
|
||||
// BTN_RESET is the "neutral reset". Corresponds to holding L+R and pressing S
|
||||
if (CHECK_BTN_ALL(input3->press.button, BTN_RESET)) {
|
||||
faultCustomOptions = !faultCustomOptions;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
|
||||
#include "fault.h"
|
||||
#include "fault_internal.h"
|
||||
#include "global.h"
|
||||
|
||||
#include "macros.h"
|
||||
#include "vt.h"
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -35,7 +35,9 @@
|
|||
#include "irqmgr.h"
|
||||
|
||||
#include "libc/stdbool.h"
|
||||
|
||||
#include "macros.h"
|
||||
#include "scheduler.h"
|
||||
#include "stackcheck.h"
|
||||
#include "z64thread.h"
|
||||
|
||||
|
@ -145,7 +147,7 @@ void IrqMgr_HandlePreNMI(IrqMgr* irqMgr) {
|
|||
sIrqMgrResetTime = irqMgr->resetTime = osGetTime();
|
||||
|
||||
// Wait .45 seconds then generate a stage 2 prenmi interrupt
|
||||
osSetTimer(&irqMgr->timer, OS_MSEC_TO_CYCLES(450), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI450_MSG);
|
||||
osSetTimer(&irqMgr->timer, OS_USEC_TO_CYCLES(450 * 1000), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI450_MSG);
|
||||
|
||||
IrqMgr_JamMesgToClients(irqMgr, (OSMesg)&irqMgr->prenmiMsg);
|
||||
}
|
||||
|
@ -159,14 +161,14 @@ void IrqMgr_HandlePRENMI450(IrqMgr* irqMgr) {
|
|||
irqMgr->resetStatus = IRQ_RESET_STATUS_NMI;
|
||||
|
||||
// Wait .03 seconds then generate a stage 3 prenmi interrupt
|
||||
osSetTimer(&irqMgr->timer, OS_MSEC_TO_CYCLES(30), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI480_MSG);
|
||||
osSetTimer(&irqMgr->timer, OS_USEC_TO_CYCLES(30 * 1000), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI480_MSG);
|
||||
|
||||
IrqMgr_SendMesgToClients(irqMgr, (OSMesg)&irqMgr->nmiMsg);
|
||||
}
|
||||
|
||||
void IrqMgr_HandlePRENMI480(IrqMgr* irqMgr) {
|
||||
// Wait .52 seconds. After this we will have waited an entire second
|
||||
osSetTimer(&irqMgr->timer, OS_MSEC_TO_CYCLES(520), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI500_MSG);
|
||||
osSetTimer(&irqMgr->timer, OS_USEC_TO_CYCLES(520 * 1000), 0, &irqMgr->queue, (OSMesg)IRQ_PRENMI500_MSG);
|
||||
|
||||
osAfterPreNMI();
|
||||
}
|
||||
|
|
|
@ -5,18 +5,19 @@
|
|||
* buffer copies and coverage drawing. Also contains software implementations of the Video Interface anti-aliasing and
|
||||
* divot filters.
|
||||
*/
|
||||
|
||||
#include "z64prerender.h"
|
||||
#include "global.h"
|
||||
#include "PR/gs2dex.h"
|
||||
|
||||
#include "libc/alloca.h"
|
||||
#include "libc/stdbool.h"
|
||||
#include "PR/gs2dex.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "color.h"
|
||||
#include "macros.h"
|
||||
#include "gfx.h"
|
||||
#include "slowly.h"
|
||||
#include "stack.h"
|
||||
#include "stackcheck.h"
|
||||
#include "prevent_bss_reordering.h"
|
||||
|
||||
/**
|
||||
* Assigns the "save" values in PreRender
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include "global.h"
|
||||
#include "libc64/sleep.h"
|
||||
|
||||
void func_80183070(void) {
|
||||
|
|
|
@ -170,20 +170,20 @@ retry:
|
|||
|
||||
task->type = M_GFXTASK;
|
||||
task->flags = OS_SC_DRAM_DLIST;
|
||||
task->ucodeBoot = SysUcode_GetUCodeBoot();
|
||||
task->ucodeBootSize = SysUcode_GetUCodeBootSize();
|
||||
task->ucode_boot = SysUcode_GetUCodeBoot();
|
||||
task->ucode_boot_size = SysUcode_GetUCodeBootSize();
|
||||
task->ucode = SysUcode_GetUCode();
|
||||
task->ucodeData = SysUcode_GetUCodeData();
|
||||
task->ucodeSize = SP_UCODE_SIZE;
|
||||
task->ucodeDataSize = SP_UCODE_DATA_SIZE;
|
||||
task->dramStack = (u64*)gGfxSPTaskStack;
|
||||
task->dramStackSize = sizeof(gGfxSPTaskStack);
|
||||
task->outputBuff = gGfxSPTaskOutputBufferPtr;
|
||||
task->outputBuffSize = (void*)gGfxSPTaskOutputBufferEnd;
|
||||
task->dataPtr = (u64*)gGfxMasterDL;
|
||||
task->dataSize = 0;
|
||||
task->yieldDataPtr = (u64*)gGfxSPTaskYieldBuffer;
|
||||
task->yieldDataSize = sizeof(gGfxSPTaskYieldBuffer);
|
||||
task->ucode_data = SysUcode_GetUCodeData();
|
||||
task->ucode_size = SP_UCODE_SIZE;
|
||||
task->ucode_data_size = SP_UCODE_DATA_SIZE;
|
||||
task->dram_stack = (u64*)gGfxSPTaskStack;
|
||||
task->dram_stack_size = sizeof(gGfxSPTaskStack);
|
||||
task->output_buff = gGfxSPTaskOutputBufferPtr;
|
||||
task->output_buff_size = (void*)gGfxSPTaskOutputBufferEnd;
|
||||
task->data_ptr = (u64*)gGfxMasterDL;
|
||||
task->data_size = 0;
|
||||
task->yield_data_ptr = (u64*)gGfxSPTaskYieldBuffer;
|
||||
task->yield_data_size = sizeof(gGfxSPTaskYieldBuffer);
|
||||
|
||||
scTask->next = NULL;
|
||||
scTask->flags = OS_SC_RCP_MASK | OS_SC_SWAPBUFFER | OS_SC_LAST_TASK;
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
#include "scheduler.h"
|
||||
|
||||
#include "libc64/sleep.h"
|
||||
|
||||
#include "fault.h"
|
||||
#include "idle.h"
|
||||
#include "libc64/sleep.h"
|
||||
#include "macros.h"
|
||||
#include "regs.h"
|
||||
#include "stackcheck.h"
|
||||
#include "viconfig.h"
|
||||
#include "z64speed_meter.h"
|
||||
#include "z64thread.h"
|
||||
|
||||
// Variables are put before most headers as a hacky way to bypass bss reordering
|
||||
FaultClient sSchedFaultClient;
|
||||
|
||||
OSTime sRSPGFXStartTime;
|
||||
|
@ -16,17 +21,24 @@ OSTime sRDPStartTime;
|
|||
u64* gAudioSPDataPtr;
|
||||
u32 gAudioSPDataSize;
|
||||
|
||||
#include "functions.h"
|
||||
#include "stackcheck.h"
|
||||
#include "z64speed_meter.h"
|
||||
#include "z64thread.h"
|
||||
|
||||
#define RSP_DONE_MSG 667
|
||||
#define RDP_DONE_MSG 668
|
||||
#define NOTIFY_MSG 670
|
||||
#define RDP_AUDIO_CANCEL_MSG 671
|
||||
#define RSP_GFX_CANCEL_MSG 672
|
||||
|
||||
#define OS_SC_DP 0x0001
|
||||
#define OS_SC_SP 0x0002
|
||||
#define OS_SC_YIELD 0x0010
|
||||
#define OS_SC_YIELDED 0x0020
|
||||
|
||||
#define OS_SC_XBUS (OS_SC_SP | OS_SC_DP)
|
||||
#define OS_SC_DRAM (OS_SC_SP | OS_SC_DP | OS_SC_DRAM_DLIST)
|
||||
#define OS_SC_DP_XBUS (OS_SC_SP)
|
||||
#define OS_SC_DP_DRAM (OS_SC_SP | OS_SC_DRAM_DLIST)
|
||||
#define OS_SC_SP_XBUS (OS_SC_DP)
|
||||
#define OS_SC_SP_DRAM (OS_SC_DP | OS_SC_DRAM_DLIST)
|
||||
|
||||
/**
|
||||
* Set the current framebuffer to the swapbuffer pointed to by the provided cfb
|
||||
*/
|
||||
|
@ -193,7 +205,7 @@ halt_rdp:
|
|||
if (dpTask->type == M_GFXTASK) {
|
||||
// Try to stop DP
|
||||
osSyncPrintf("DP止めようとします\n");
|
||||
bzero(dpTask->outputBuff, (uintptr_t)dpTask->outputBuffSize - (uintptr_t)dpTask->outputBuff);
|
||||
bzero(dpTask->output_buff, (uintptr_t)dpTask->output_buff_size - (uintptr_t)dpTask->output_buff);
|
||||
osSendMesg(&sched->interruptQueue, (OSMesg)RDP_DONE_MSG, OS_MESG_NOBLOCK);
|
||||
}
|
||||
}
|
||||
|
@ -376,8 +388,8 @@ void Sched_RunTask(Scheduler* sched, OSScTask* spTask, OSScTask* dpTask) {
|
|||
|
||||
if (spTask->list.t.type == M_AUDTASK) {
|
||||
// Set global pointers to audio task data for use in audio processing
|
||||
gAudioSPDataPtr = spTask->list.t.dataPtr;
|
||||
gAudioSPDataSize = spTask->list.t.dataSize;
|
||||
gAudioSPDataPtr = spTask->list.t.data_ptr;
|
||||
gAudioSPDataSize = spTask->list.t.data_size;
|
||||
}
|
||||
|
||||
// Begin task execution
|
||||
|
@ -584,7 +596,7 @@ void Sched_FaultClient(void* arg0, void* arg1) {
|
|||
spTask = sched->curRSPTask;
|
||||
if (spTask != NULL) {
|
||||
FaultDrawer_Printf("RSPTask %08x %08x %02x %02x\n%01x %08x %08x\n", spTask, spTask->next, spTask->state,
|
||||
spTask->flags, spTask->list.t.type, spTask->list.t.dataPtr, spTask->list.t.dataSize);
|
||||
spTask->flags, spTask->list.t.type, spTask->list.t.data_ptr, spTask->list.t.data_size);
|
||||
}
|
||||
|
||||
dpTask = sched->curRDPTask;
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "z64speed_meter.h"
|
||||
|
||||
#include "libc64/malloc.h"
|
||||
|
||||
#include "gfx.h"
|
||||
#include "main.h"
|
||||
#include "regs.h"
|
||||
#include "sys_cfb.h"
|
||||
#include "libc64/malloc.h"
|
||||
#include "z64game.h"
|
||||
#include "z64malloc.h"
|
||||
#include "z64view.h"
|
||||
|
||||
#include "variables.h"
|
||||
|
||||
/**
|
||||
* How much time the RSP ran audio tasks for over the course of `gGraphUpdatePeriod`.
|
||||
*/
|
||||
|
@ -78,15 +77,15 @@ typedef struct {
|
|||
#define gDrawRect(gfx, color, ulx, uly, lrx, lry) \
|
||||
do { \
|
||||
if (gSysCfbHiResEnabled == true) { \
|
||||
u32 tmp = color; \
|
||||
u32 c = color; \
|
||||
gDPPipeSync(gfx); \
|
||||
gDPSetFillColor(gfx, ((tmp) << 16) | (tmp)); \
|
||||
gDPSetFillColor(gfx, ((c) << 16) | (c)); \
|
||||
gDPFillRectangle(gfx, (ulx)*2, (uly)*2, (lrx)*2, (lry)*2); \
|
||||
if (1) {} \
|
||||
} else { \
|
||||
u32 tmp = color; \
|
||||
u32 c = color; \
|
||||
gDPPipeSync(gfx); \
|
||||
gDPSetFillColor(gfx, ((tmp) << 16) | (tmp)); \
|
||||
gDPSetFillColor(gfx, ((c) << 16) | (c)); \
|
||||
gDPFillRectangle(gfx, (ulx), (uly), (lrx), (lry)); \
|
||||
} \
|
||||
} while (0)
|
||||
|
|
|
@ -77,43 +77,46 @@
|
|||
*/
|
||||
void Mtx_SetTranslateScaleMtx(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY,
|
||||
f32 translateZ) {
|
||||
Mtx* m = mtx;
|
||||
struct {
|
||||
u16 intPart[4][4];
|
||||
u16 fracPart[4][4];
|
||||
}* mu = (void*)mtx;
|
||||
s32 fixedPoint;
|
||||
|
||||
m->m[0][1] = 0; // [i02, i03] == [0, 0]
|
||||
m->m[2][1] = 0; // [f02, f03] == [0, 0]
|
||||
m->m[0][3] = 0; // [i12, i13] == [0, 0]
|
||||
m->m[2][3] = 0; // [f22, f23] == [0, 0]
|
||||
m->m[1][0] = 0; // [i20, i21] == [0, 0]
|
||||
//
|
||||
fixedPoint = scaleX * 0x10000; //
|
||||
m->m[0][0] = fixedPoint; // [i00, i01] == [scaleX.i, scaleX.f]; i01 is now "dirty"
|
||||
m->intPart[0][1] = 0; // Clean i01 by zeroing it: [i00, i01] == [scaleX.i, 0]
|
||||
m->m[2][0] = (u32)fixedPoint << 16; // [f00, f01] == [scaleX.f, 0]
|
||||
//
|
||||
fixedPoint = scaleY * 0x10000; //
|
||||
m->m[0][2] = (u32)fixedPoint >> 16; // [i10, i11] == [0, scaleY.i]
|
||||
m->m[2][2] = fixedPoint & 0xFFFF; // [f10, f11] == [0, scaleY.f]
|
||||
//
|
||||
fixedPoint = scaleZ * 0x10000; //
|
||||
m->m[1][1] = fixedPoint; // [i22, i23] == [scaleZ.i, scaleZ.f]
|
||||
m->intPart[2][3] = 0; // [i22, i23] == [scaleZ.i, 0]
|
||||
m->m[3][1] = (u32)fixedPoint << 16; // [f22, f23] == [scaleZ.f, 0]
|
||||
//
|
||||
m->m[3][0] = 0; // [f20, f21] == [0, 0]
|
||||
//
|
||||
fixedPoint = translateX * 0x10000; //
|
||||
m->intPart[3][0] = ((u32)fixedPoint >> 16) & 0xFFFF; // [i30, i31] == [translateX.i, ?]
|
||||
m->fracPart[3][0] = fixedPoint & 0xFFFF; // [f30, f31] == [translateX.f, ?]
|
||||
//
|
||||
fixedPoint = translateY * 0x10000; //
|
||||
m->intPart[3][1] = ((u32)fixedPoint >> 16) & 0xFFFF; // [i30, i31] == [translateX.i, translateY.i]
|
||||
m->fracPart[3][1] = fixedPoint & 0xFFFF; // [f30, f31] == [translateX.f, translateY.f]
|
||||
//
|
||||
fixedPoint = translateZ * 0x10000; //
|
||||
m->intPart[3][2] = ((u32)fixedPoint >> 16) & 0xFFFF; // [i30, i31] == [translateZ.i, ?]
|
||||
m->intPart[3][3] = 1; // [i32, i33] == [translateZ.i, 1]
|
||||
m->m[3][3] = (u32)fixedPoint << 16; // [f32, f33] == [translateZ.f, 0]
|
||||
mtx->m[0][1] = 0; // [i02, i03] == [0, 0]
|
||||
mtx->m[2][1] = 0; // [f02, f03] == [0, 0]
|
||||
mtx->m[0][3] = 0; // [i12, i13] == [0, 0]
|
||||
mtx->m[2][3] = 0; // [f22, f23] == [0, 0]
|
||||
mtx->m[1][0] = 0; // [i20, i21] == [0, 0]
|
||||
//
|
||||
fixedPoint = scaleX * 0x10000; //
|
||||
mtx->m[0][0] = fixedPoint; // [i00, i01] == [scaleX.i, scaleX.f]; i01 is now "dirty"
|
||||
mu->intPart[0][1] = 0; // Clean i01 by zeroing it: [i00, i01] == [scaleX.i, 0]
|
||||
mtx->m[2][0] = (u32)fixedPoint << 16; // [f00, f01] == [scaleX.f, 0]
|
||||
//
|
||||
fixedPoint = scaleY * 0x10000; //
|
||||
mtx->m[0][2] = (u32)fixedPoint >> 16; // [i10, i11] == [0, scaleY.i]
|
||||
mtx->m[2][2] = fixedPoint & 0xFFFF; // [f10, f11] == [0, scaleY.f]
|
||||
//
|
||||
fixedPoint = scaleZ * 0x10000; //
|
||||
mtx->m[1][1] = fixedPoint; // [i22, i23] == [scaleZ.i, scaleZ.f]
|
||||
mu->intPart[2][3] = 0; // [i22, i23] == [scaleZ.i, 0]
|
||||
mtx->m[3][1] = (u32)fixedPoint << 16; // [f22, f23] == [scaleZ.f, 0]
|
||||
//
|
||||
mtx->m[3][0] = 0; // [f20, f21] == [0, 0]
|
||||
//
|
||||
fixedPoint = translateX * 0x10000; //
|
||||
mu->intPart[3][0] = ((u32)fixedPoint >> 16) & 0xFFFF; // [i30, i31] == [translateX.i, ?]
|
||||
mu->fracPart[3][0] = fixedPoint & 0xFFFF; // [f30, f31] == [translateX.f, ?]
|
||||
//
|
||||
fixedPoint = translateY * 0x10000; //
|
||||
mu->intPart[3][1] = ((u32)fixedPoint >> 16) & 0xFFFF; // [i30, i31] == [translateX.i, translateY.i]
|
||||
mu->fracPart[3][1] = fixedPoint & 0xFFFF; // [f30, f31] == [translateX.f, translateY.f]
|
||||
//
|
||||
fixedPoint = translateZ * 0x10000; //
|
||||
mu->intPart[3][2] = ((u32)fixedPoint >> 16) & 0xFFFF; // [i30, i31] == [translateZ.i, ?]
|
||||
mu->intPart[3][3] = 1; // [i32, i33] == [translateZ.i, 1]
|
||||
mtx->m[3][3] = (u32)fixedPoint << 16; // [f32, f33] == [translateZ.f, 0]
|
||||
|
||||
// So we end up with
|
||||
// [scaleX.i, 0], [0, 0],
|
||||
|
@ -159,6 +162,7 @@ void Mtx_SetTranslateScaleMtx(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32
|
|||
*
|
||||
* @remark Original name: probably something like "suMtxMakeR" or "suMtxMakeRotateVector"
|
||||
*/
|
||||
// TODO: Find a way to match without the intPart/fracPart union (see Mtx_SetTranslateScaleMtx)
|
||||
void Mtx_SetRotationMtx(Mtx* mtx, s32 angle, f32 axisX, f32 axisY, f32 axisZ) {
|
||||
//! FAKE? The somewhat peculiar distribution of temps in this function seems necessary to match?
|
||||
f32 tempX;
|
||||
|
@ -275,6 +279,7 @@ void Mtx_SetRotationMtx(Mtx* mtx, s32 angle, f32 axisX, f32 axisY, f32 axisZ) {
|
|||
* @remark Original name: probably something like "suMtxMakeSRT", although Animal Forest function is a Tait-Bryan
|
||||
* rotation rather than axis-angle.
|
||||
*/
|
||||
// TODO: Find a way to match without the intPart/fracPart union (see Mtx_SetTranslateScaleMtx)
|
||||
void Mtx_SetTranslationRotationScaleMtx(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, s32 angle, f32 axisX, f32 axisY,
|
||||
f32 axisZ, f32 translateX, f32 translateY, f32 translateZ) {
|
||||
f32 tempX;
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "sys_flashrom.h"
|
||||
|
||||
#include "libc64/malloc.h"
|
||||
#include "PR/os_internal_flash.h"
|
||||
|
||||
#include "fault.h"
|
||||
#include "macros.h"
|
||||
#include "stack.h"
|
||||
#include "stackcheck.h"
|
||||
#include "libc64/malloc.h"
|
||||
#include "z64thread.h"
|
||||
#include "sys_flashrom.h"
|
||||
#include "PR/os_internal_flash.h"
|
||||
|
||||
OSMesgQueue sFlashromMesgQueue;
|
||||
OSMesg sFlashromMesg[1];
|
||||
|
|
|
@ -38,9 +38,12 @@
|
|||
* Throughout this file, `mode` indicates whether to multiply the matrix on top of the stack by the new construction
|
||||
* (APPLY), or to just overwrite it (NEW).
|
||||
*/
|
||||
#include "sys_matrix.h"
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "gfx.h"
|
||||
#include "macros.h"
|
||||
#include "z64game.h"
|
||||
#include "z64skin_matrix.h"
|
||||
|
||||
/* data */
|
||||
|
||||
|
|
|
@ -2,35 +2,20 @@
|
|||
* File: z_actor.c
|
||||
* Description:
|
||||
*/
|
||||
|
||||
#include "z64actor.h"
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "fault.h"
|
||||
#include "sys_cfb.h"
|
||||
#include "loadfragment.h"
|
||||
#include "z64horse.h"
|
||||
#include "z64malloc.h"
|
||||
#include "z64quake.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
|
||||
#include "overlays/actors/ovl_En_Part/z_en_part.h"
|
||||
#include "overlays/actors/ovl_En_Box/z_en_box.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
|
||||
#include "objects/object_bdoor/object_bdoor.h"
|
||||
|
||||
// bss
|
||||
// Variables are put before most headers as a hacky way to bypass bss reordering
|
||||
FaultClient sActorFaultClient; // 2 funcs
|
||||
|
||||
CollisionPoly* D_801ED8B0; // 1 func
|
||||
s32 D_801ED8B4; // 2 funcs
|
||||
struct CollisionPoly* D_801ED8B0; // 1 func
|
||||
s32 D_801ED8B4; // 2 funcs
|
||||
|
||||
Actor* sTargetableNearestActor;
|
||||
Actor* sTargetablePrioritizedActor;
|
||||
Actor* D_801ED8C0;
|
||||
Actor* D_801ED8C4;
|
||||
struct Actor* sTargetableNearestActor;
|
||||
struct Actor* sTargetablePrioritizedActor;
|
||||
struct Actor* D_801ED8C0;
|
||||
struct Actor* D_801ED8C4;
|
||||
|
||||
f32 sTargetableNearestActorDistSq;
|
||||
f32 sBgmEnemyDistSq;
|
||||
|
@ -41,7 +26,22 @@ s16 sTargetPlayerRotY;
|
|||
|
||||
Mtx sActorHiliteMtx;
|
||||
|
||||
Actor* D_801ED920; // 2 funcs. 1 out of z_actor
|
||||
struct Actor* D_801ED920; // 2 funcs. 1 out of z_actor
|
||||
|
||||
#include "z64actor.h"
|
||||
|
||||
#include "z64horse.h"
|
||||
#include "z64malloc.h"
|
||||
#include "z64quake.h"
|
||||
#include "z64rumble.h"
|
||||
|
||||
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
|
||||
#include "overlays/actors/ovl_En_Part/z_en_part.h"
|
||||
#include "overlays/actors/ovl_En_Box/z_en_box.h"
|
||||
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
|
||||
#include "objects/object_bdoor/object_bdoor.h"
|
||||
|
||||
#define ACTOR_AUDIO_FLAG_SFX_ACTOR_POS (1 << 0)
|
||||
#define ACTOR_AUDIO_FLAG_SFX_CENTERED_1 (1 << 1)
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "fault.h"
|
||||
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "fault.h"
|
||||
#include "z64bgcheck.h"
|
||||
|
||||
#include "libc64/fixed_point.h"
|
||||
#include "libc64/sprintf.h"
|
||||
|
||||
#include "fault.h"
|
||||
#include "vt.h"
|
||||
#include "z64actor.h"
|
||||
|
||||
#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
|
||||
|
||||
#define DYNA_RAYCAST_FLOORS 1
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "z64collision_check.h"
|
||||
|
||||
#include "z64actor.h"
|
||||
|
|
|
@ -53,10 +53,10 @@ void Jpeg_ScheduleDecoderTask(JpegContext* jpegCtx) {
|
|||
workBuf->taskData.qTableVPtr = &workBuf->qTableV;
|
||||
|
||||
sJpegTask.flags = 0;
|
||||
sJpegTask.ucodeBoot = SysUcode_GetUCodeBoot();
|
||||
sJpegTask.ucodeBootSize = SysUcode_GetUCodeBootSize();
|
||||
sJpegTask.yieldDataPtr = (u64*)&workBuf->yieldData;
|
||||
sJpegTask.dataPtr = (u64*)&workBuf->taskData;
|
||||
sJpegTask.ucode_boot = SysUcode_GetUCodeBoot();
|
||||
sJpegTask.ucode_boot_size = SysUcode_GetUCodeBootSize();
|
||||
sJpegTask.yield_data_ptr = (u64*)&workBuf->yieldData;
|
||||
sJpegTask.data_ptr = (u64*)&workBuf->taskData;
|
||||
|
||||
jpegCtx->scTask.next = NULL;
|
||||
jpegCtx->scTask.flags = OS_SC_NEEDS_RSP;
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "z64message.h"
|
||||
#include "message_data_static.h"
|
||||
|
||||
#include "padmgr.h"
|
||||
#include "z64actor.h"
|
||||
#include "z64horse.h"
|
||||
#include "z64shrink_window.h"
|
||||
#include "z64view.h"
|
||||
#include "message_data_static.h"
|
||||
#include "interface/parameter_static/parameter_static.h"
|
||||
|
||||
#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
|
||||
|
||||
#include "interface/parameter_static/parameter_static.h"
|
||||
|
||||
u8 D_801C6A70 = 0;
|
||||
s16 sOcarinaButtonIndexBufPos = 0;
|
||||
s16 sOcarinaButtonIndexBufLen = 0;
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "libc/string.h"
|
||||
#include "z64quake.h"
|
||||
|
||||
#include "libc/string.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "z64view.h"
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
|
||||
s32 sMatAnimStep;
|
||||
|
|
|
@ -2,11 +2,12 @@
|
|||
* File: z_shrink_window.c
|
||||
* Description: Draws black top/bottom/side borders on the viewing window (e.g. Z-targeting, talking to NPC)
|
||||
*/
|
||||
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "z64shrink_window.h"
|
||||
|
||||
#include "gfx.h"
|
||||
#include "main.h"
|
||||
#include "z64math.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s8 letterboxTarget;
|
||||
/* 0x1 */ s8 letterboxSize;
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "z64skin.h"
|
||||
|
||||
#include "libc/stdbool.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "gfx.h"
|
||||
#include "sys_matrix.h"
|
||||
#include "z64actor.h"
|
||||
|
||||
// 60 is an arbitrary number which specifies the max amount of limbs per skeleton this system supports
|
||||
MtxF gSkinLimbMatrices[60];
|
||||
|
||||
|
|
|
@ -14,12 +14,12 @@ OSTask* _VirtualToPhysicalTask(OSTask* intp) {
|
|||
bcopy(intp, tp, sizeof(OSTask));
|
||||
|
||||
_osVirtualToPhysical(tp->t.ucode);
|
||||
_osVirtualToPhysical(tp->t.ucodeData);
|
||||
_osVirtualToPhysical(tp->t.dramStack);
|
||||
_osVirtualToPhysical(tp->t.outputBuff);
|
||||
_osVirtualToPhysical(tp->t.outputBuffSize);
|
||||
_osVirtualToPhysical(tp->t.dataPtr);
|
||||
_osVirtualToPhysical(tp->t.yieldDataPtr);
|
||||
_osVirtualToPhysical(tp->t.ucode_data);
|
||||
_osVirtualToPhysical(tp->t.dram_stack);
|
||||
_osVirtualToPhysical(tp->t.output_buff);
|
||||
_osVirtualToPhysical(tp->t.output_buff_size);
|
||||
_osVirtualToPhysical(tp->t.data_ptr);
|
||||
_osVirtualToPhysical(tp->t.yield_data_ptr);
|
||||
|
||||
return tp;
|
||||
}
|
||||
|
@ -28,12 +28,12 @@ void osSpTaskLoad(OSTask* intp) {
|
|||
OSTask* tp = _VirtualToPhysicalTask(intp);
|
||||
|
||||
if (tp->t.flags & OS_TASK_YIELDED) {
|
||||
tp->t.ucodeData = tp->t.yieldDataPtr;
|
||||
tp->t.ucodeDataSize = tp->t.yieldDataSize;
|
||||
tp->t.ucode_data = tp->t.yield_data_ptr;
|
||||
tp->t.ucode_data_size = tp->t.yield_data_size;
|
||||
intp->t.flags &= ~OS_TASK_YIELDED;
|
||||
|
||||
if (tp->t.flags & OS_TASK_LOADABLE) {
|
||||
tp->t.ucode = (void*)IO_READ((uintptr_t)intp->t.yieldDataPtr + OS_YIELD_DATA_SIZE - 4);
|
||||
tp->t.ucode = (void*)IO_READ((uintptr_t)intp->t.yield_data_ptr + OS_YIELD_DATA_SIZE - 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ void osSpTaskLoad(OSTask* intp) {
|
|||
|
||||
while (__osSpDeviceBusy()) {}
|
||||
|
||||
while (__osSpRawStartDma(1, SP_IMEM_START, tp->t.ucodeBoot, tp->t.ucodeBootSize) == -1) {}
|
||||
while (__osSpRawStartDma(1, SP_IMEM_START, tp->t.ucode_boot, tp->t.ucode_boot_size) == -1) {}
|
||||
}
|
||||
|
||||
void osSpTaskStartGo(OSTask* tp) {
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
#include "PR/os_voice.h"
|
||||
|
||||
s32 __osVoiceCheckResult(OSVoiceHandle* hd, u8* status) {
|
||||
s32 errorCode = __osVoiceGetStatus(hd->mq, hd->channel, status);
|
||||
s32 errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, status);
|
||||
u8 data[2];
|
||||
|
||||
if (errorCode == 0) {
|
||||
if (*status & 1) {
|
||||
errorCode = CONT_ERR_VOICE_NO_RESPONSE;
|
||||
} else {
|
||||
errorCode = __osVoiceContRead2(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContRead2(hd->__mq, hd->__channel, 0, data);
|
||||
if (errorCode == 0) {
|
||||
hd->status = data[0] & 7;
|
||||
hd->cmd_status = data[0] & 7;
|
||||
|
||||
if (data[0] & 0x40) {
|
||||
errorCode = CONT_ERR_VOICE_NO_RESPONSE;
|
||||
|
|
|
@ -19,7 +19,7 @@ s32 osVoiceClearDictionary(OSVoiceHandle* hd, u8 numWords) {
|
|||
u8 status;
|
||||
u8 data[4];
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ s32 osVoiceClearDictionary(OSVoiceHandle* hd, u8 numWords) {
|
|||
*(u32*)data = 0x2000000;
|
||||
data[2] = numWords;
|
||||
|
||||
errorCode = __osVoiceContWrite4(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContWrite4(hd->__mq, hd->__channel, 0, data);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ s32 osVoiceControlGain(OSVoiceHandle* hd, s32 analog, s32 digital) {
|
|||
cmd = 0x98;
|
||||
}
|
||||
|
||||
errorCode = __osVoiceSetADConverter(hd->mq, hd->channel, cmd);
|
||||
errorCode = __osVoiceSetADConverter(hd->__mq, hd->__channel, cmd);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ s32 osVoiceControlGain(OSVoiceHandle* hd, s32 analog, s32 digital) {
|
|||
return CONT_ERR_INVALID;
|
||||
}
|
||||
|
||||
errorCode = __osVoiceSetADConverter(hd->mq, hd->channel, cmd);
|
||||
errorCode = __osVoiceSetADConverter(hd->__mq, hd->__channel, cmd);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
|
|
@ -15,9 +15,9 @@ s32 osVoiceGetReadData(OSVoiceHandle* hd, OSVoiceData* result) {
|
|||
u8 status;
|
||||
u8 data[36];
|
||||
|
||||
switch (hd->mode) {
|
||||
switch (hd->__mode) {
|
||||
case VOICE_HANDLE_MODE_1:
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -26,21 +26,21 @@ s32 osVoiceGetReadData(OSVoiceHandle* hd, OSVoiceData* result) {
|
|||
return CONT_ERR_NOT_READY;
|
||||
}
|
||||
|
||||
errorCode = __osVoiceContRead2(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContRead2(hd->__mq, hd->__channel, 0, data);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
sHandleStatus = data[0] & 7;
|
||||
hd->status = sHandleStatus;
|
||||
hd->cmd_status = sHandleStatus;
|
||||
if ((sHandleStatus != VOICE_STATUS_READY) && (sHandleStatus != VOICE_STATUS_END)) {
|
||||
return CONT_ERR_NOT_READY;
|
||||
}
|
||||
// fallthrough
|
||||
case VOICE_HANDLE_MODE_2:
|
||||
hd->mode = VOICE_HANDLE_MODE_2;
|
||||
hd->__mode = VOICE_HANDLE_MODE_2;
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -50,15 +50,15 @@ s32 osVoiceGetReadData(OSVoiceHandle* hd, OSVoiceData* result) {
|
|||
}
|
||||
|
||||
*(u32*)data = 0x600;
|
||||
errorCode = __osVoiceContWrite4(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContWrite4(hd->__mq, hd->__channel, 0, data);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
// fallthrough
|
||||
case VOICE_HANDLE_MODE_3:
|
||||
hd->mode = VOICE_HANDLE_MODE_3;
|
||||
hd->__mode = VOICE_HANDLE_MODE_3;
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -67,16 +67,16 @@ s32 osVoiceGetReadData(OSVoiceHandle* hd, OSVoiceData* result) {
|
|||
return CONT_ERR_VOICE_NO_RESPONSE;
|
||||
}
|
||||
|
||||
errorCode = __osVoiceContRead36(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContRead36(hd->__mq, hd->__channel, 0, data);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
result->warning = data[4] + (data[5] << 8);
|
||||
result->answerNum = data[6];
|
||||
result->voiceLevel = data[8] + (data[9] << 8);
|
||||
result->voiceRelLevel = data[10] + (data[11] << 8);
|
||||
result->voiceTime = data[12] + (data[13] << 8);
|
||||
result->answer_num = data[6];
|
||||
result->voice_level = data[8] + (data[9] << 8);
|
||||
result->voice_sn = data[10] + (data[11] << 8);
|
||||
result->voice_time = data[12] + (data[13] << 8);
|
||||
|
||||
for (i = 0; i < 5; i++) {
|
||||
result->answer[i] = data[14 + (i << 2)] + (data[15 + (i << 2)] << 8);
|
||||
|
@ -84,18 +84,18 @@ s32 osVoiceGetReadData(OSVoiceHandle* hd, OSVoiceData* result) {
|
|||
}
|
||||
|
||||
if (result->answer[0] == 0x7FFF) {
|
||||
result->answerNum = 0;
|
||||
result->answer_num = 0;
|
||||
}
|
||||
|
||||
hd->status = data[34] & 7;
|
||||
if ((sHandleStatus == VOICE_STATUS_READY) || (hd->status == VOICE_STATUS_READY)) {
|
||||
hd->cmd_status = data[34] & 7;
|
||||
if ((sHandleStatus == VOICE_STATUS_READY) || (hd->cmd_status == VOICE_STATUS_READY)) {
|
||||
break;
|
||||
}
|
||||
// fallthrough
|
||||
case VOICE_HANDLE_MODE_4:
|
||||
hd->mode = VOICE_HANDLE_MODE_4;
|
||||
hd->__mode = VOICE_HANDLE_MODE_4;
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -104,12 +104,12 @@ s32 osVoiceGetReadData(OSVoiceHandle* hd, OSVoiceData* result) {
|
|||
return CONT_ERR_VOICE_NO_RESPONSE;
|
||||
}
|
||||
|
||||
errorCode = __osVoiceContRead2(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContRead2(hd->__mq, hd->__channel, 0, data);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
hd->status = data[0] & 7;
|
||||
hd->cmd_status = data[0] & 7;
|
||||
if (data[0] & 7) {
|
||||
return CONT_ERR_VOICE_NO_RESPONSE;
|
||||
}
|
||||
|
@ -120,6 +120,6 @@ s32 osVoiceGetReadData(OSVoiceHandle* hd, OSVoiceData* result) {
|
|||
return CONT_ERR_INVALID;
|
||||
}
|
||||
|
||||
hd->mode = VOICE_HANDLE_MODE_0;
|
||||
hd->__mode = VOICE_HANDLE_MODE_0;
|
||||
return errorCode;
|
||||
}
|
||||
|
|
|
@ -20,9 +20,9 @@ s32 osVoiceInit(OSMesgQueue* mq, OSVoiceHandle* hd, int channel) {
|
|||
u8 status = 0;
|
||||
u8 data[4];
|
||||
|
||||
hd->channel = channel;
|
||||
hd->mq = mq;
|
||||
hd->mode = VOICE_HANDLE_MODE_0;
|
||||
hd->__channel = channel;
|
||||
hd->__mq = mq;
|
||||
hd->__mode = VOICE_HANDLE_MODE_0;
|
||||
|
||||
errorCode = __osVoiceGetStatus(mq, channel, &status);
|
||||
if (errorCode != 0) {
|
||||
|
|
|
@ -17,7 +17,7 @@ s32 osVoiceMaskDictionary(OSVoiceHandle* hd, u8* maskPattern, int size) {
|
|||
u8 status;
|
||||
u8 data[20];
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ s32 osVoiceMaskDictionary(OSVoiceHandle* hd, u8* maskPattern, int size) {
|
|||
data[ARRAY_COUNT(data) - 1] = 0;
|
||||
}
|
||||
|
||||
errorCode = __osVoiceContWrite20(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContWrite20(hd->__mq, hd->__channel, 0, data);
|
||||
if (errorCode == 0) {
|
||||
errorCode = __osVoiceCheckResult(hd, &status);
|
||||
if (errorCode & 0xFF00) {
|
||||
|
|
|
@ -17,7 +17,7 @@ s32 osVoiceSetWord(OSVoiceHandle* hd, u8* word) {
|
|||
u8 status;
|
||||
u8 data[40];
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -42,13 +42,13 @@ s32 osVoiceSetWord(OSVoiceHandle* hd, u8* word) {
|
|||
data[ARRAY_COUNT(data) - 1 - i - 5] = 3;
|
||||
|
||||
if (k >= 15) {
|
||||
errorCode = __osVoiceContWrite20(hd->mq, hd->channel, 0, &data[0]);
|
||||
errorCode = __osVoiceContWrite20(hd->__mq, hd->__channel, 0, &data[0]);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
}
|
||||
|
||||
errorCode = __osVoiceContWrite20(hd->mq, hd->channel, 0, &data[20]);
|
||||
errorCode = __osVoiceContWrite20(hd->__mq, hd->__channel, 0, &data[20]);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ s32 osVoiceStartReadData(OSVoiceHandle* hd) {
|
|||
u8 status;
|
||||
u8 data[4];
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ s32 osVoiceStartReadData(OSVoiceHandle* hd) {
|
|||
return CONT_ERR_VOICE_NO_RESPONSE;
|
||||
}
|
||||
|
||||
if (hd->mode != VOICE_HANDLE_MODE_0) {
|
||||
if (hd->__mode != VOICE_HANDLE_MODE_0) {
|
||||
return CONT_ERR_INVALID;
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ s32 osVoiceStartReadData(OSVoiceHandle* hd) {
|
|||
* data[3] = 0
|
||||
*/
|
||||
*(u32*)data = 0x5000000;
|
||||
errorCode = __osVoiceContWrite4(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContWrite4(hd->__mq, hd->__channel, 0, data);
|
||||
|
||||
if (errorCode == 0) {
|
||||
errorCode = __osVoiceCheckResult(hd, &status);
|
||||
|
@ -41,7 +41,7 @@ s32 osVoiceStartReadData(OSVoiceHandle* hd) {
|
|||
if (errorCode & 0xFF00) {
|
||||
errorCode = CONT_ERR_INVALID;
|
||||
} else {
|
||||
hd->mode = VOICE_HANDLE_MODE_1;
|
||||
hd->__mode = VOICE_HANDLE_MODE_1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ s32 osVoiceStopReadData(OSVoiceHandle* hd) {
|
|||
u8 status;
|
||||
u8 data[4];
|
||||
|
||||
errorCode = __osVoiceGetStatus(hd->mq, hd->channel, &status);
|
||||
errorCode = __osVoiceGetStatus(hd->__mq, hd->__channel, &status);
|
||||
if (errorCode != 0) {
|
||||
return errorCode;
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ s32 osVoiceStopReadData(OSVoiceHandle* hd) {
|
|||
return CONT_ERR_VOICE_NO_RESPONSE;
|
||||
}
|
||||
|
||||
if (hd->mode == VOICE_HANDLE_MODE_0) {
|
||||
if (hd->__mode == VOICE_HANDLE_MODE_0) {
|
||||
return CONT_ERR_INVALID;
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ s32 osVoiceStopReadData(OSVoiceHandle* hd) {
|
|||
* data[3] = 0
|
||||
*/
|
||||
*(u32*)data = 0x700;
|
||||
errorCode = __osVoiceContWrite4(hd->mq, hd->channel, 0, data);
|
||||
errorCode = __osVoiceContWrite4(hd->__mq, hd->__channel, 0, data);
|
||||
|
||||
if (errorCode == 0) {
|
||||
i = 0;
|
||||
|
@ -43,12 +43,12 @@ s32 osVoiceStopReadData(OSVoiceHandle* hd) {
|
|||
if (errorCode & 0xFF00) {
|
||||
if (((errorCode & 7) == 0) || ((errorCode & 7) == 7)) {
|
||||
errorCode = 0;
|
||||
hd->mode = VOICE_HANDLE_MODE_0;
|
||||
hd->__mode = VOICE_HANDLE_MODE_0;
|
||||
} else {
|
||||
errorCode = CONT_ERR_INVALID;
|
||||
}
|
||||
} else {
|
||||
hd->mode = VOICE_HANDLE_MODE_0;
|
||||
hd->__mode = VOICE_HANDLE_MODE_0;
|
||||
}
|
||||
i++;
|
||||
} while ((errorCode == CONT_ERR_VOICE_NO_RESPONSE) && (i < 20));
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
* Overlay: ovl_En_Fishing
|
||||
* Description: Fishing Pond Elements (Owner, Fish, Props, Effects...)
|
||||
*/
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "z_en_fishing.h"
|
||||
#include "z64rumble.h"
|
||||
#include "z64shrink_window.h"
|
||||
|
|
Loading…
Reference in New Issue