mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Merge branch 'master' into voice
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
<Root>
|
||||
<File Name="locerrmsg" Segment="1">
|
||||
<Texture Name="gNotDesignedForSystemErrorTex" OutName="not_designed_for_system_error" Format="i4" Width="208" Height="16" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Root>
|
||||
<File Name="memerrmsg" Segment="1">
|
||||
<Texture Name="gExpansionPakNotInstalledErrorTex" OutName="expansion_pak_not_installed_error" Format="i4" Width="128" Height="37" Offset="0x0"/>
|
||||
<Texture Name="gSeeInstructionBookletErrorTex" OutName="see_instruction_booklet_error" Format="i4" Width="128" Height="37" Offset="0x940"/>
|
||||
</File>
|
||||
</Root>
|
||||
@@ -134,6 +134,7 @@ typedef struct {
|
||||
/* 0x101 */ u8 map[PFS_INODE_DIST_MAP];
|
||||
} __OSInodeCache; // size = 0x202
|
||||
|
||||
s32 __osCheckPackId(OSPfs* pfs, __OSPackId* check);
|
||||
s32 __osGetId(OSPfs* pfs);
|
||||
s32 osPfsChecker(OSPfs* pfs);
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#ifndef SCHED_H
|
||||
#define SCHED_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "ultra64/vi.h"
|
||||
#include "ultra64/sptask.h"
|
||||
|
||||
#define OS_SC_NEEDS_RDP 0x0001
|
||||
#define OS_SC_NEEDS_RSP 0x0002
|
||||
#define OS_SC_DRAM_DLIST 0x0004
|
||||
#define OS_SC_PARALLEL_TASK 0x0010
|
||||
#define OS_SC_LAST_TASK 0x0020
|
||||
#define OS_SC_SWAPBUFFER 0x0040
|
||||
|
||||
#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;
|
||||
/* 0x08 */ u32 flags;
|
||||
/* 0x0C */ void* framebuffer;
|
||||
/* 0x10 */ OSTask list;
|
||||
/* 0x50 */ OSMesgQueue* msgQ;
|
||||
/* 0x54 */ OSMesg msg;
|
||||
} OSScTask; // size = 0x58
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 type;
|
||||
/* 0x2 */ u8 misc[30];
|
||||
} OSScMsg;
|
||||
|
||||
#endif
|
||||
@@ -3,6 +3,9 @@
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
|
||||
// For checking the alpha bit in an RGBA16 pixel
|
||||
#define RGBA16_PIXEL_OPAQUE 1
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 r;
|
||||
/* 0x1 */ u8 g;
|
||||
|
||||
+31
-31
@@ -15,9 +15,9 @@ s32 DmaMgr_FindDmaIndex(u32 vromAddr);
|
||||
const char* func_800809F4(u32 param_1);
|
||||
void DmaMgr_ProcessMsg(DmaRequest* req);
|
||||
void DmaMgr_ThreadEntry(void* arg);
|
||||
s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, u32 vromStart, size_t size, UNK_TYPE4 unused,
|
||||
s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, uintptr_t vromStart, size_t size, UNK_TYPE4 unused,
|
||||
OSMesgQueue* callback, void* callbackMesg);
|
||||
s32 DmaMgr_SendRequest0(void* vramStart, u32 vromStart, size_t size);
|
||||
s32 DmaMgr_SendRequest0(void* vramStart, uintptr_t vromStart, size_t size);
|
||||
void DmaMgr_Start(void);
|
||||
void DmaMgr_Stop(void);
|
||||
void* Yaz0_FirstDMA(void);
|
||||
@@ -356,8 +356,8 @@ const char* strchr(const char* __s, s32 __c);
|
||||
size_t strlen(const char* __s);
|
||||
void* memcpy(void* __dest, const void* __src, size_t __n);
|
||||
void osCreateMesgQueue(OSMesgQueue* mq, OSMesg* msq, s32 count);
|
||||
void osInvalICache(void* vaddr, s32 nbytes);
|
||||
void osInvalDCache(void* vaddr, s32 nbytes);
|
||||
void osInvalICache(void* vaddr, size_t nbytes);
|
||||
void osInvalDCache(void* vaddr, size_t nbytes);
|
||||
void __osTimerServicesInit(void);
|
||||
void __osTimerInterrupt(void);
|
||||
void __osSetTimerIntr(OSTime tim);
|
||||
@@ -995,7 +995,7 @@ s32 func_800C45C4(CollisionContext* colCtx, u32 arg1, Vec3f* arg2, Vec3f* arg3,
|
||||
// void func_800C5538(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
|
||||
s32 func_800C55C4(CollisionContext* colCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, CollisionPoly** arg4, u32 arg5, u32 arg6, u32 arg7, u32 arg8, u32* arg9);
|
||||
// void func_800C5650(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11);
|
||||
// void func_800C56E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10, UNK_TYPE4 param_11, UNK_TYPE4 param_12);
|
||||
s32 func_800C56E0(CollisionContext* colCtx, Vec3f* posA, Vec3f* posB, Vec3f* posResult, CollisionPoly** outPoly, s32 chkWall, s32 chkFloor, s32 chkCeil, s32 chkOneFace, s32* bgId, Actor* actor, f32 chkDist);
|
||||
s32 func_800C576C(CollisionContext* colCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, CollisionPoly** arg4, u32 arg5, u32 arg6, u32 arg7, u32 arg8, u32* arg9);
|
||||
// void func_800C57F8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_800C583C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9);
|
||||
@@ -1109,22 +1109,22 @@ void BgCheck2_UpdateActorPosition(CollisionContext* colCtx, s32 index, Actor* ac
|
||||
void BgCheck2_UpdateActorYRotation(CollisionContext* colCtx, s32 index, Actor* actor);
|
||||
void BgCheck2_AttachToMesh(CollisionContext* colCtx, Actor* actor, s32 index);
|
||||
u32 BgCheck2_UpdateActorAttachedToMesh(CollisionContext* colCtx, s32 index, Actor* actor);
|
||||
void BcCheck3_BgActorInit(DynaPolyActor* actor, UNK_TYPE4 param_2);
|
||||
void BgCheck3_LoadMesh(GlobalContext* globalCtx, DynaPolyActor* actor, CollisionHeader* meshHeader);
|
||||
void BgCheck3_ResetFlags(DynaPolyActor* actor);
|
||||
void func_800CAE88(DynaPolyActor* actor);
|
||||
void func_800CAE9C(DynaPolyActor* actor);
|
||||
void func_800CAEB0(CollisionContext* colCtx, s32 index);
|
||||
void func_800CAEE0(DynaPolyActor* actor);
|
||||
void func_800CAEF4(CollisionContext* colCtx, s32 index);
|
||||
void func_800CAF24(DynaPolyActor* actor);
|
||||
void func_800CAF38(DynaPolyActor* actor);
|
||||
s32 func_800CAF4C(DynaPolyActor* actor);
|
||||
s32 func_800CAF70(DynaPolyActor* actor);
|
||||
s32 func_800CAF94(DynaPolyActor* actor);
|
||||
s32 func_800CAFB8(DynaPolyActor* actor);
|
||||
s32 func_800CAFDC(DynaPolyActor* actor);
|
||||
// void func_800CB000(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
|
||||
void DynaPolyActor_Init(DynaPolyActor* dynaActor, s32 flags);
|
||||
void DynaPolyActor_LoadMesh(GlobalContext* globalCtx, DynaPolyActor* dynaActor, CollisionHeader* meshHeader);
|
||||
void DynaPolyActor_ResetState(DynaPolyActor* dynaActor);
|
||||
void DynaPolyActor_SetRidingFallingState(DynaPolyActor* dynaActor);
|
||||
void DynaPolyActor_SetRidingMovingState(DynaPolyActor* dynaActor);
|
||||
void DynaPolyActor_SetRidingMovingStateByIndex(CollisionContext* colCtx, s32 index);
|
||||
void DynaPolyActor_SetRidingRotatingState(DynaPolyActor* dynaActor);
|
||||
void DynaPolyActor_SetRidingRotatingStateByIndex(CollisionContext* colCtx, s32 index);
|
||||
void DynaPolyActor_SetSwitchPressedState(DynaPolyActor* dynaActor);
|
||||
void DynaPolyActor_SetHeavySwitchPressedState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInRidingFallingState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInRidingMovingState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInRidingRotatingState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInSwitchPressedState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_IsInHeavySwitchPressedState(DynaPolyActor* dynaActor);
|
||||
s32 DynaPolyActor_ValidateMove(GlobalContext* globalCtx, DynaPolyActor* dynaActor, s16 arg2, s16 arg3, s16 arg4);
|
||||
f32 Camera_fabsf(f32 f);
|
||||
f32 Camera_LengthVec3f(Vec3f* v);
|
||||
// void func_800CB270(void);
|
||||
@@ -1308,7 +1308,7 @@ s16 Camera_ClearFlags(Camera* camera, s16 flags);
|
||||
// UNK_TYPE4 func_800E0228(void);
|
||||
// void func_800E0238(void);
|
||||
void func_800E02AC(Camera* camera, Actor* actor);
|
||||
// void func_800E0308(void);
|
||||
void func_800E0308(Camera* camera, Actor* actor);
|
||||
// void func_800E031C(void);
|
||||
void func_800E0348(Camera* camera);
|
||||
DamageTable* DamageTable_Get(s32 index);
|
||||
@@ -2675,17 +2675,17 @@ void func_8013A46C(s32 flag);
|
||||
u32 func_8013A4C4(s32 flag);
|
||||
s16 func_8013A504(s16 val);
|
||||
s32 func_8013A530(GlobalContext* globalCtx, Actor* actor, s32 flag, Vec3f* pos, Vec3s* rot, f32 distanceMin, f32 distanceMax, s16 angleError);
|
||||
// void func_8013A7C0(void);
|
||||
Actor* func_8013A7C0(GlobalContext* globalCtx, s32 arg1);
|
||||
// void func_8013A860(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE4 param_10);
|
||||
Gfx* func_8013AB00(GlobalContext* globalCtx, void** skeleton, Vec3s* jointTable, s32 dListCount, void* func1, void* func2, void* func3, Actor* actor, Gfx* gfx);
|
||||
s32 func_8013AD6C(GlobalContext* globalCtx);
|
||||
// void func_8013AD9C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
void func_8013AD9C(s16 arg0, s16 arg1, Vec3f* arg2, Vec3s* arg3, s32 arg4, s32 arg5);
|
||||
void func_8013AED4(u16* param_1, u16 param_2, u16 param_3);
|
||||
void func_8013AF00(UNK_PTR arg0, UNK_TYPE arg1, UNK_TYPE arg2);
|
||||
void func_8013AF00(f32 arg0[], UNK_TYPE arg1, UNK_TYPE arg2);
|
||||
// void func_8013B010(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_8013B0C8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void func_8013B350(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
s32 func_8013B6B0(Path* path, UNK_PTR arg1, s32* arg2, s32 arg3, s32 arg4, s32* arg5, UNK_PTR arg6, Vec3f* arg7, s16 arg8);
|
||||
s32 func_8013B6B0(Path* path, UNK_PTR arg1, s32* arg2, s32 arg3, s32 arg4, s32* arg5, f32 arg6[], Vec3f* arg7, s16 arg8);
|
||||
void func_8013B878(GlobalContext* globalCtx, Path* path, s32 arg2, Vec3f* arg3);
|
||||
Path* func_8013BB34(GlobalContext* globalCtx, u8 arg1, s32 arg2);
|
||||
Actor* func_8013BB7C(Actor* actor, GlobalContext* globalCtx, s32 actorCategory, s32 actorId);
|
||||
@@ -2709,7 +2709,7 @@ UNK_TYPE func_8013D768(Actor* actor, UNK_PTR arg1, s16 arg2);
|
||||
// void func_8013D83C(void);
|
||||
s32 func_8013D8DC(s8 arg0, GlobalContext* globalCtx);
|
||||
s8 func_8013D924(s32 arg0, GlobalContext* globalCtx);
|
||||
Actor* func_ActorCategoryIterateById(GlobalContext* globalCtx, Actor* actorListStart, s32 actorCategory, s32 actorId);
|
||||
Actor* func_ActorCategoryIterateById(GlobalContext* globalCtx, Actor* actorListStart, u8 actorCategory, s16 actorId);
|
||||
void func_8013D9C8(GlobalContext* globalCtx, s16* arg1, s16* arg2, UNK_TYPE arg3);
|
||||
u8 func_8013DB90(GlobalContext* globalCtx, UNK_PTR arg1, f32 arg2);
|
||||
// void func_8013DC40(void);
|
||||
@@ -3257,10 +3257,10 @@ s32 func_80178A94(s32 param_1, s32 param_2);
|
||||
// void func_80178DAC(void);
|
||||
// void func_80178E3C(void);
|
||||
// void func_80178E7C(void);
|
||||
void Check_WriteRGBA16Pixel(u16* buffer, u32 x, u32 y, u16 value);
|
||||
void Check_WriteI4Pixel(u16* buffer, u32 x, u32 y, u32 value);
|
||||
void Check_DrawI4Texture(u16* buffer, u32 x, u32 y, u32 width, u32 height, u8* texture);
|
||||
void Check_ClearRGBA16(s16* buffer);
|
||||
// void Check_WriteRGBA16Pixel(u16* buffer, u32 x, u32 y, u32 value);
|
||||
// void Check_WriteI4Pixel(u16* buffer, u32 x, u32 y, u32 value);
|
||||
// void Check_DrawI4Texture(u16* buffer, u32 x, u32 y, u32 width, u32 height, u8* texture);
|
||||
// void Check_ClearRGBA16(u16* buffer);
|
||||
// void Check_DrawExpansionPakErrorMessage(void);
|
||||
// void Check_DrawRegionLockErrorMessage(void);
|
||||
void Check_ExpansionPak(void);
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef IRQMGR_H
|
||||
#define IRQMGR_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "PR/sched.h"
|
||||
#include "ultra64/message.h"
|
||||
|
||||
typedef struct IrqMgrClient {
|
||||
/* 0x0 */ struct IrqMgrClient* next;
|
||||
/* 0x4 */ OSMesgQueue* queue;
|
||||
} IrqMgrClient; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ OSScMsg verticalRetraceMesg;
|
||||
/* 0x020 */ OSScMsg prenmiMsg;
|
||||
/* 0x040 */ OSScMsg nmiMsg;
|
||||
/* 0x060 */ OSMesgQueue irqQueue;
|
||||
/* 0x078 */ OSMesg irqBuffer[8];
|
||||
/* 0x098 */ OSThread thread;
|
||||
/* 0x248 */ IrqMgrClient* callbacks;
|
||||
/* 0x24C */ u8 prenmiStage;
|
||||
/* 0x250 */ OSTime lastPrenmiTime;
|
||||
/* 0x258 */ OSTimer prenmiTimer;
|
||||
/* 0x278 */ OSTime lastFrameTime;
|
||||
} IrqMgr; // size = 0x280
|
||||
|
||||
#endif
|
||||
@@ -5,6 +5,12 @@
|
||||
#include "convert.h"
|
||||
#include "z64.h"
|
||||
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
|
||||
#define SCREEN_WIDTH_HIGH_RES 576
|
||||
#define SCREEN_HEIGHT_HIGH_RES 454
|
||||
|
||||
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
||||
#define ARRAY_COUNTU(arr) (u32)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
#ifndef _OS_H_
|
||||
#define _OS_H_
|
||||
|
||||
#include "libc/stdint.h"
|
||||
#include "libc/stdlib.h"
|
||||
#include "ultra64/thread.h"
|
||||
#include "ultra64/message.h"
|
||||
@@ -84,7 +85,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x00 */ OSIoMesgHdr hdr;
|
||||
/* 0x08 */ void* dramAddr;
|
||||
/* 0x0C */ u32 devAddr;
|
||||
/* 0x0C */ uintptr_t devAddr;
|
||||
/* 0x10 */ size_t size;
|
||||
/* 0x14 */ OSPiHandle* piHandle;
|
||||
} OSIoMesg; // size = 0x88
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
#ifndef SCHEDULER_H
|
||||
#define SCHEDULER_H
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "PR/sched.h"
|
||||
#include "ultra64/vi.h"
|
||||
#include "ultra64/sptask.h"
|
||||
#include "irqmgr.h"
|
||||
|
||||
#define TASK_FRAMEBUFFER(task) ((CfbInfo*)(task)->framebuffer)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16* fb1;
|
||||
/* 0x04 */ u16* swapBuffer;
|
||||
/* 0x08 */ OSViMode* viMode;
|
||||
/* 0x0C */ u32 features;
|
||||
/* 0x10 */ u8 unk_10;
|
||||
/* 0x11 */ s8 updateRate;
|
||||
/* 0x12 */ s8 updateRate2;
|
||||
/* 0x13 */ u8 unk_13;
|
||||
/* 0x14 */ f32 xScale;
|
||||
/* 0x18 */ f32 yScale;
|
||||
} CfbInfo; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ OSMesgQueue interruptQ;
|
||||
/* 0x018 */ OSMesg intBuf[64];
|
||||
/* 0x118 */ OSMesgQueue cmdQ;
|
||||
/* 0x130 */ OSMesg cmdMsgBuf[8];
|
||||
/* 0x150 */ OSThread thread;
|
||||
/* 0x300 */ OSScTask* audioListHead;
|
||||
/* 0x304 */ OSScTask* gfxListHead;
|
||||
/* 0x308 */ OSScTask* audioListTail;
|
||||
/* 0x30C */ OSScTask* gfxListTail;
|
||||
/* 0x310 */ OSScTask* curRSPTask;
|
||||
/* 0x314 */ OSScTask* curRDPTask;
|
||||
/* 0x318 */ s32 retraceCount;
|
||||
/* 0x318 */ s32 doAudio;
|
||||
/* 0x320 */ CfbInfo* curBuf;
|
||||
/* 0x324 */ CfbInfo* pendingSwapBuf1;
|
||||
/* 0x328 */ CfbInfo* pendingSwapBuf2;
|
||||
/* 0x32C */ char unk_32C[0x3];
|
||||
/* 0x32F */ u8 shouldUpdateVi;
|
||||
/* 0x330 */ IrqMgrClient irqClient;
|
||||
} SchedContext; // size = 0x338
|
||||
|
||||
#endif
|
||||
@@ -1161,7 +1161,9 @@ DECLARE_ROM_SEGMENT(scene_texture_07)
|
||||
DECLARE_ROM_SEGMENT(scene_texture_08)
|
||||
DECLARE_ROM_SEGMENT(nintendo_rogo_static)
|
||||
DECLARE_ROM_SEGMENT(title_static)
|
||||
DECLARE_SEGMENT(memerrmsg)
|
||||
DECLARE_ROM_SEGMENT(memerrmsg)
|
||||
DECLARE_SEGMENT(locerrmsg)
|
||||
DECLARE_ROM_SEGMENT(locerrmsg)
|
||||
DECLARE_ROM_SEGMENT(parameter_static)
|
||||
DECLARE_ROM_SEGMENT(week_static)
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
#ifndef _ULTRA64_VI_H_
|
||||
#define _ULTRA64_VI_H_
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
#include "ultra64/message.h"
|
||||
|
||||
/* Special Features */
|
||||
#define OS_VI_GAMMA_ON 0x0001
|
||||
#define OS_VI_GAMMA_OFF 0x0002
|
||||
#define OS_VI_GAMMA_DITHER_ON 0x0004
|
||||
#define OS_VI_GAMMA_DITHER_OFF 0x0008
|
||||
#define OS_VI_DIVOT_ON 0x0010
|
||||
#define OS_VI_DIVOT_OFF 0x0020
|
||||
#define OS_VI_DITHER_FILTER_ON 0x0040
|
||||
#define OS_VI_DITHER_FILTER_OFF 0x0080
|
||||
#define OS_VI_GAMMA_ON (1 << 0)
|
||||
#define OS_VI_GAMMA_OFF (1 << 1)
|
||||
#define OS_VI_GAMMA_DITHER_ON (1 << 2)
|
||||
#define OS_VI_GAMMA_DITHER_OFF (1 << 3)
|
||||
#define OS_VI_DIVOT_ON (1 << 4)
|
||||
#define OS_VI_DIVOT_OFF (1 << 5)
|
||||
#define OS_VI_DITHER_FILTER_ON (1 << 6)
|
||||
#define OS_VI_DITHER_FILTER_OFF (1 << 7)
|
||||
|
||||
#define OS_VI_GAMMA 0x08
|
||||
#define OS_VI_GAMMA_DITHER 0x04
|
||||
|
||||
+3
-2
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "z64.h"
|
||||
#include "segment_symbols.h"
|
||||
#include "macros.h"
|
||||
|
||||
// pre-boot variables
|
||||
extern u32 osTvType;
|
||||
@@ -11,7 +12,7 @@ extern u32 osRomBase;
|
||||
extern u32 osResetType;
|
||||
extern u32 osCicId;
|
||||
extern u32 osVersion;
|
||||
extern u32 osMemSize;
|
||||
extern size_t osMemSize;
|
||||
extern s32 osAppNmiBuffer[0x10];
|
||||
extern u16 gFramebuffer1[SCREEN_HEIGHT][SCREEN_WIDTH]; // at 0x80000500
|
||||
extern u8 D_80025D00[];
|
||||
@@ -3272,7 +3273,7 @@ extern u8 D_801F4E30;
|
||||
// extern UNK_TYPE1 D_801F4E68;
|
||||
extern f32 D_801F4E70;
|
||||
// extern UNK_TYPE1 D_801F4E74;
|
||||
// extern UNK_TYPE1 D_801F4E78;
|
||||
extern u16 D_801F4E78;
|
||||
extern s16 D_801F4E7A;
|
||||
// extern UNK_TYPE1 D_801F4E80;
|
||||
// extern UNK_TYPE1 D_801F4EE0;
|
||||
|
||||
+10
-91
@@ -13,12 +13,14 @@
|
||||
#include "io/controller.h"
|
||||
#include "osint.h"
|
||||
#include "os.h"
|
||||
#include "irqmgr.h"
|
||||
#include "scheduler.h"
|
||||
#include "xstdio.h"
|
||||
|
||||
#include "bgm.h"
|
||||
#include "sfx.h"
|
||||
#include "color.h"
|
||||
#include "ichain.h"
|
||||
#include "sfx.h"
|
||||
|
||||
#include "z64actor.h"
|
||||
#include "z64animation.h"
|
||||
@@ -37,12 +39,6 @@
|
||||
#include "z64transition.h"
|
||||
#include "regs.h"
|
||||
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
|
||||
#define SCREEN_WIDTH_HIGH_RES 576
|
||||
#define SCREEN_HEIGHT_HIGH_RES 454
|
||||
|
||||
#define Z_THREAD_ID_IDLE 1
|
||||
#define Z_THREAD_ID_SLOWLY 2
|
||||
#define Z_THREAD_ID_MAIN 3
|
||||
@@ -249,30 +245,6 @@ typedef struct {
|
||||
/* 0x14 */ s16 data[REG_GROUPS * REG_PER_GROUP]; // 0xAE0 entries
|
||||
} GameInfo; // size = 0x15D4
|
||||
|
||||
typedef struct IrqMgrClient {
|
||||
/* 0x0 */ struct IrqMgrClient* next;
|
||||
/* 0x4 */ OSMesgQueue* queue;
|
||||
} IrqMgrClient; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 type;
|
||||
/* 0x2 */ u8 misc[30];
|
||||
} OSScMsg;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ OSScMsg verticalRetraceMesg;
|
||||
/* 0x020 */ OSScMsg prenmiMsg;
|
||||
/* 0x040 */ OSScMsg nmiMsg;
|
||||
/* 0x060 */ OSMesgQueue irqQueue;
|
||||
/* 0x078 */ OSMesg irqBuffer[8];
|
||||
/* 0x098 */ OSThread thread;
|
||||
/* 0x248 */ IrqMgrClient* callbacks;
|
||||
/* 0x24C */ u8 prenmiStage;
|
||||
/* 0x250 */ OSTime lastPrenmiTime;
|
||||
/* 0x258 */ OSTimer prenmiTimer;
|
||||
/* 0x278 */ OSTime lastFrameTime;
|
||||
} IrqMgr; // size = 0x280
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ u32 size;
|
||||
/* 0x0004 */ void* bufp;
|
||||
@@ -316,44 +288,6 @@ typedef struct {
|
||||
/* 0x20308 */ u16 tailMagic; // 5678
|
||||
} GfxPool; // size = 0x20310
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16* fb1;
|
||||
/* 0x04 */ u16* swapBuffer;
|
||||
/* 0x08 */ OSViMode* viMode;
|
||||
/* 0x0C */ u32 features;
|
||||
/* 0x10 */ u8 unk_10;
|
||||
/* 0x11 */ s8 updateRate;
|
||||
/* 0x12 */ s8 updateRate2;
|
||||
/* 0x13 */ u8 unk_13;
|
||||
/* 0x14 */ f32 xScale;
|
||||
/* 0x18 */ f32 yScale;
|
||||
} CfbInfo; // size = 0x1C
|
||||
|
||||
#define OS_SC_NEEDS_RDP 0x0001
|
||||
#define OS_SC_NEEDS_RSP 0x0002
|
||||
#define OS_SC_DRAM_DLIST 0x0004
|
||||
#define OS_SC_PARALLEL_TASK 0x0010
|
||||
#define OS_SC_LAST_TASK 0x0020
|
||||
#define OS_SC_SWAPBUFFER 0x0040
|
||||
|
||||
#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;
|
||||
/* 0x08 */ u32 flags;
|
||||
/* 0x0C */ CfbInfo* framebuffer;
|
||||
/* 0x10 */ OSTask list;
|
||||
/* 0x50 */ OSMesgQueue* msgQ;
|
||||
/* 0x54 */ OSMesg msg;
|
||||
} OSScTask; // size = 0x58
|
||||
|
||||
typedef struct GraphicsContext {
|
||||
/* 0x000 */ Gfx* polyOpaBuffer; // Pointer to "Zelda 0"
|
||||
/* 0x004 */ Gfx* polyXluBuffer; // Pointer to "Zelda 1"
|
||||
@@ -392,28 +326,6 @@ typedef struct GraphicsContext {
|
||||
/* 0x2FC */ GfxMasterList* masterList;
|
||||
} GraphicsContext; // size = 0x300
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ OSMesgQueue interruptQ;
|
||||
/* 0x018 */ OSMesg intBuf[64];
|
||||
/* 0x118 */ OSMesgQueue cmdQ;
|
||||
/* 0x130 */ OSMesg cmdMsgBuf[8];
|
||||
/* 0x150 */ OSThread thread;
|
||||
/* 0x300 */ OSScTask* audioListHead;
|
||||
/* 0x304 */ OSScTask* gfxListHead;
|
||||
/* 0x308 */ OSScTask* audioListTail;
|
||||
/* 0x30C */ OSScTask* gfxListTail;
|
||||
/* 0x310 */ OSScTask* curRSPTask;
|
||||
/* 0x314 */ OSScTask* curRDPTask;
|
||||
/* 0x318 */ s32 retraceCount;
|
||||
/* 0x318 */ s32 doAudio;
|
||||
/* 0x320 */ CfbInfo* curBuf;
|
||||
/* 0x324 */ CfbInfo* pendingSwapBuf1;
|
||||
/* 0x328 */ CfbInfo* pendingSwapBuf2;
|
||||
/* 0x32C */ char unk_32C[0x3];
|
||||
/* 0x32F */ u8 shouldUpdateVi;
|
||||
/* 0x330 */ IrqMgrClient irqClient;
|
||||
} SchedContext; // size = 0x338
|
||||
|
||||
typedef enum IRQ_MSG_TYPE {
|
||||
IRQ_VERTICAL_RETRACE_MSG = 0x1,
|
||||
IRQ_PRENMI_2_MSG = 0x3,
|
||||
@@ -601,6 +513,13 @@ typedef union {
|
||||
F3DVertexNormal normal;
|
||||
} F3DVertex; // size = 0x10
|
||||
|
||||
// End of RDRAM without the Expansion Pak installed
|
||||
#define NORMAL_RDRAM_END 0x80400000
|
||||
// End of RDRAM with the Expansion Pak installed
|
||||
#define EXPANDED_RDRAM_END 0x80800000
|
||||
// Address at the end of normal RDRAM after which is room for a screen buffer
|
||||
#define FAULT_FB_ADDRESS (NORMAL_RDRAM_END - sizeof(u16[SCREEN_HEIGHT][SCREEN_WIDTH]))
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16* fb;
|
||||
/* 0x04 */ u16 w;
|
||||
|
||||
+4
-4
@@ -228,12 +228,12 @@ typedef enum {
|
||||
typedef struct {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ s32 bgId;
|
||||
/* 0x148 */ f32 unk148;
|
||||
/* 0x148 */ f32 pushForce;
|
||||
/* 0x14C */ f32 unk14C;
|
||||
/* 0x150 */ s16 unk150;
|
||||
/* 0x150 */ s16 yRotation;
|
||||
/* 0x152 */ u16 unk152;
|
||||
/* 0x154 */ u32 unk154;
|
||||
/* 0x158 */ u8 unk_158;
|
||||
/* 0x154 */ u32 flags;
|
||||
/* 0x158 */ u8 stateFlags;
|
||||
/* 0x15A */ s16 pad15A;
|
||||
} DynaPolyActor; // size = 0x15C
|
||||
|
||||
|
||||
@@ -457,7 +457,6 @@ beginseg
|
||||
include "build/data/code/z_bgcheck.bss.o"
|
||||
include "build/src/code/z_bg_collect.o"
|
||||
include "build/src/code/z_bg_item.o"
|
||||
include "build/src/code/code_800CB000.o"
|
||||
include "build/src/code/z_camera.o"
|
||||
include "build/data/code/z_camera.data.o"
|
||||
include "build/data/code/z_camera.bss.o"
|
||||
@@ -3827,8 +3826,7 @@ beginseg
|
||||
name "ovl_En_Pm"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Pm/z_en_pm.o"
|
||||
include "build/data/ovl_En_Pm/ovl_En_Pm.data.o"
|
||||
include "build/data/ovl_En_Pm/ovl_En_Pm.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Pm/ovl_En_Pm_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -8861,14 +8859,16 @@ beginseg
|
||||
name "memerrmsg"
|
||||
compress
|
||||
romalign 0x1000
|
||||
include "build/baserom/memerrmsg.o"
|
||||
include "build/assets/misc/memerrmsg/memerrmsg.o"
|
||||
number 1
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
name "locerrmsg"
|
||||
compress
|
||||
romalign 0x1000
|
||||
include "build/baserom/locerrmsg.o"
|
||||
include "build/assets/misc/locerrmsg/locerrmsg.o"
|
||||
number 1
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "prevent_bss_reordering.h"
|
||||
|
||||
UNK_TYPE4 D_8009BE30;
|
||||
UNK_TYPE4 D_8009BE34;
|
||||
|
||||
@@ -714,7 +714,7 @@ void Fault_CommitFB() {
|
||||
osViSetYScale(1.0f);
|
||||
osViSetMode(&osViModeNtscLan1);
|
||||
osViSetSpecialFeatures(0x42); // gama_disable|dither_fliter_enable_aa_mode3_disable
|
||||
osViBlack(0);
|
||||
osViBlack(false);
|
||||
|
||||
if (sFaultContext->fb) {
|
||||
fb = sFaultContext->fb;
|
||||
|
||||
@@ -5,7 +5,7 @@ extern const u32 sFaultDrawerFont[];
|
||||
|
||||
FaultDrawer* sFaultDrawContext = &sFaultDrawerStruct;
|
||||
FaultDrawer sFaultDrawerDefault = {
|
||||
(u16*)0x803DA800, // fb - TODO map out buffers in this region and avoid hard-coded pointer
|
||||
(u16*)FAULT_FB_ADDRESS, // fb
|
||||
SCREEN_WIDTH, // w
|
||||
SCREEN_HEIGHT, // h
|
||||
16, // yStart
|
||||
|
||||
@@ -19,11 +19,11 @@ OSMesgQueue gPiMgrCmdQ;
|
||||
|
||||
void Idle_ClearMemory(void* begin, void* end) {
|
||||
if (begin < end) {
|
||||
bzero(begin, (u32)end - (u32)begin);
|
||||
bzero(begin, (uintptr_t)end - (uintptr_t)begin);
|
||||
}
|
||||
}
|
||||
|
||||
void Idle_InitFramebuffer(u32* ptr, u32 numBytes, u32 value) {
|
||||
void Idle_InitFramebuffer(u32* ptr, size_t numBytes, u32 value) {
|
||||
s32 temp = sizeof(u32);
|
||||
|
||||
while (numBytes) {
|
||||
@@ -36,7 +36,7 @@ void Idle_InitScreen(void) {
|
||||
Idle_InitFramebuffer((u32*)gFramebuffer1, 0x25800, 0x00010001);
|
||||
ViConfig_UpdateVi(0);
|
||||
osViSwapBuffer(gFramebuffer1);
|
||||
osViBlack(0);
|
||||
osViBlack(false);
|
||||
}
|
||||
|
||||
void Idle_InitMemory(void) {
|
||||
@@ -52,7 +52,7 @@ void Idle_InitCodeAndMemory(void) {
|
||||
DmaRequest dmaReq;
|
||||
OSMesgQueue queue;
|
||||
OSMesg mesg;
|
||||
u32 oldSize;
|
||||
size_t oldSize;
|
||||
|
||||
osCreateMesgQueue(&queue, &mesg, 1);
|
||||
|
||||
@@ -71,7 +71,7 @@ void Idle_InitCodeAndMemory(void) {
|
||||
}
|
||||
|
||||
void Main_ThreadEntry(void* arg) {
|
||||
StackCheck_Init(&sIrqMgrStackInfo, sIrqMgrStack, sIrqMgrStack + sizeof(sIrqMgrStack), 0, 256, "irqmgr");
|
||||
StackCheck_Init(&sIrqMgrStackInfo, sIrqMgrStack, sIrqMgrStack + sizeof(sIrqMgrStack), 0, 0x100, "irqmgr");
|
||||
IrqMgr_Init(&gIrqMgr, &sIrqMgrStackInfo, Z_PRIORITY_IRQMGR, 1);
|
||||
DmaMgr_Start();
|
||||
Idle_InitCodeAndMemory();
|
||||
@@ -87,15 +87,15 @@ void Idle_InitVideo(void) {
|
||||
gViConfigYScale = 1.0;
|
||||
|
||||
switch (osTvType) {
|
||||
case 1:
|
||||
case OS_TV_NTSC:
|
||||
D_8009B290 = 2;
|
||||
gViConfigMode = osViModeNtscLan1;
|
||||
break;
|
||||
case 2:
|
||||
case OS_TV_MPAL:
|
||||
D_8009B290 = 30;
|
||||
gViConfigMode = osViModeMpalLan1;
|
||||
break;
|
||||
case 0:
|
||||
case OS_TV_PAL:
|
||||
D_8009B290 = 44;
|
||||
gViConfigMode = osViModeFpalLan1;
|
||||
gViConfigYScale = 0.833f;
|
||||
@@ -108,7 +108,7 @@ void Idle_InitVideo(void) {
|
||||
void Idle_ThreadEntry(void* arg) {
|
||||
Idle_InitVideo();
|
||||
osCreatePiManager(150, &gPiMgrCmdQ, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff));
|
||||
StackCheck_Init(&sMainStackInfo, sMainStack, sMainStack + sizeof(sMainStack), 0, 1024, "main");
|
||||
StackCheck_Init(&sMainStackInfo, sMainStack, sMainStack + sizeof(sMainStack), 0, 0x400, "main");
|
||||
osCreateThread(&gMainThread, Z_THREAD_ID_MAIN, Main_ThreadEntry, arg, sMainStack + sizeof(sMainStack),
|
||||
Z_PRIORITY_MAIN);
|
||||
osStartThread(&gMainThread);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user