Decompile z_rpc.c

This commit is contained in:
rozlette 2020-04-22 15:38:09 -05:00
parent 639df45a03
commit c1bb5f00d6
14 changed files with 1616 additions and 317 deletions

View File

@ -2769,7 +2769,7 @@ _DW({ \
#define gSPClearGeometryMode(pkt, word) gSPGeometryMode((pkt),(word),0)
#define gsSPClearGeometryMode(word) gsSPGeometryMode((word),0)
#define gSPLoadGeometryMode(pkt, word) gSPGeometryMode((pkt),-1,(word))
#define gsSPLoadGeometryMode(pkt, word) gsSPGeometryMode(-1,(word))
#define gsSPLoadGeometryMode(word) gsSPGeometryMode(-1,(word))
#else /* F3DEX_GBI_2 */
#define gSPSetGeometryMode(pkt, word) \
@ -2922,13 +2922,13 @@ _DW({ \
(c0) | (c1))
#define gSetImage(pkt, cmd, fmt, siz, width, i) \
{ \
_DW({ \
Gfx *_g = (Gfx *)(pkt); \
\
_g->words.w0 = _SHIFTL(cmd, 24, 8) | _SHIFTL(fmt, 21, 3) | \
_SHIFTL(siz, 19, 2) | _SHIFTL((width)-1, 0, 12); \
_g->words.w1 = (unsigned int)(i); \
}
})
#define gsSetImage(cmd, fmt, siz, width, i) \
{ \
@ -4212,7 +4212,7 @@ _DW({ \
#define gDPSetScissorFrac(pkt, mode, ulx, uly, lrx, lry) \
{ \
_DW({ \
Gfx *_g = (Gfx *)pkt; \
\
_g->words.w0 = _SHIFTL(G_SETSCISSOR, 24, 8) | \
@ -4221,7 +4221,7 @@ _DW({ \
_g->words.w1 = _SHIFTL(mode, 24, 2) | \
_SHIFTL((int)((lrx)), 12, 12) | \
_SHIFTL((int)((lry)), 0, 12); \
}
})
#define gsDPSetScissor(mode, ulx, uly, lrx, lry) \
{ \
@ -4245,13 +4245,13 @@ _DW({ \
/* Fraction never used in fill */
#define gDPFillRectangle(pkt, ulx, uly, lrx, lry) \
{ \
_DW({ \
Gfx *_g = (Gfx *)(pkt); \
\
_g->words.w0 = (_SHIFTL(G_FILLRECT, 24, 8) | \
_SHIFTL((lrx), 14, 10) | _SHIFTL((lry), 2, 10));\
_g->words.w1 = (_SHIFTL((ulx), 14, 10) | _SHIFTL((uly), 2, 10));\
}
})
#define gsDPFillRectangle(ulx, uly, lrx, lry) \
{ \

View File

@ -2321,85 +2321,85 @@ void func_8012AF18(void); // func_8012AF18
void func_8012AF38(void); // func_8012AF38
void func_8012AF9C(void); // func_8012AF9C
void func_8012BBE8(void); // func_8012BBE8
void func_8012BC50(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); // func_8012BC50
void func_8012BD8C(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); // func_8012BD8C
void func_8012BF08(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); // func_8012BF08
Gfx* func_8012BF3C(Gfx* param_1, s32 param_2); // func_8012BF3C
void func_8012BF78(void); // func_8012BF78
void func_8012BF98(void); // func_8012BF98
void func_8012BFC4(void); // func_8012BFC4
UNK_PTR func_8012BFEC(UNK_PTR param_1); // func_8012BFEC
void func_8012C014(void); // func_8012C014
void func_8012C058(int param_1); // func_8012C058
void func_8012C080(void); // func_8012C080
void func_8012C0A8(int param_1); // func_8012C0A8
void func_8012C0D0(int param_1); // func_8012C0D0
void func_8012C0F8(int param_1); // func_8012C0F8
void func_8012C120(int param_1); // func_8012C120
void func_8012C148(void); // func_8012C148
void func_8012C170(int param_1); // func_8012C170
void func_8012C198(void); // func_8012C198
void func_8012C1C0(void); // func_8012C1C0
void func_8012C1EC(void); // func_8012C1EC
void func_8012C214(void); // func_8012C214
void func_8012C240(void); // func_8012C240
Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); // func_8012BC50
Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); // func_8012BD8C
Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); // func_8012BF08
Gfx* Gfx_CallSetupDLImpl(Gfx* gfx, u32 i); // func_8012BF3C
Gfx* Gfx_CallSetupDL(Gfx* gfx, u32 i); // func_8012BF78
void Gfx_CallSetupDLAtPtr(Gfx** gfxp, u32 i); // func_8012BF98
Gfx* func_8012BFC4(Gfx* gfx); // func_8012BFC4
Gfx* func_8012BFEC(Gfx* gfx); // func_8012BFEC
Gfx* func_8012C014(Gfx* gfx); // func_8012C014
void func_8012C058(GraphicsContext* gCtxt); // func_8012C058
void func_8012C080(GraphicsContext* gCtxt); // func_8012C080
void func_8012C0A8(GraphicsContext* gCtxt); // func_8012C0A8
void func_8012C0D0(GraphicsContext* gCtxt); // func_8012C0D0
void func_8012C0F8(GraphicsContext* gCtxt); // func_8012C0F8
void func_8012C120(GraphicsContext* gCtxt); // func_8012C120
void func_8012C148(GraphicsContext* gCtxt); // func_8012C148
void func_8012C170(GraphicsContext* gCtxt); // func_8012C170
Gfx* func_8012C198(Gfx* gfx); // func_8012C198
void func_8012C1C0(GraphicsContext* gCtxt); // func_8012C1C0
Gfx* func_8012C1EC(Gfx* gfx); // func_8012C1EC
void func_8012C214(GraphicsContext* gCtxt); // func_8012C214
void func_8012C240(GraphicsContext* gCtxt); // func_8012C240
void func_8012C268(GlobalContext* ctxt); // func_8012C268
void func_8012C28C(GraphicsContext* gCtxt); // func_8012C28C
void func_8012C2B4(void); // func_8012C2B4
Gfx* func_8012C2B4(Gfx* gfx); // func_8012C2B4
void func_8012C2DC(GraphicsContext* gCtxt); // func_8012C2DC
void func_8012C304(void); // func_8012C304
void func_8012C32C(int param_1); // func_8012C32C
void func_8012C354(int param_1); // func_8012C354
void func_8012C37C(int param_1); // func_8012C37C
void func_8012C3A4(void); // func_8012C3A4
void func_8012C3CC(void); // func_8012C3CC
void func_8012C3F4(void); // func_8012C3F4
void func_8012C420(int param_1); // func_8012C420
Gfx* func_8012C304(Gfx* gfx); // func_8012C304
void func_8012C32C(GraphicsContext* gCtxt); // func_8012C32C
void func_8012C354(GraphicsContext* gCtxt); // func_8012C354
void func_8012C37C(GraphicsContext* gCtxt); // func_8012C37C
Gfx* func_8012C3A4(Gfx* gfx); // func_8012C3A4
Gfx* func_8012C3CC(Gfx* gfx); // func_8012C3CC
void func_8012C3F4(GraphicsContext* gCtxt); // func_8012C3F4
void func_8012C420(GraphicsContext* gCtxt); // func_8012C420
void func_8012C448(GraphicsContext* gCtxt); // func_8012C448
void func_8012C470(void); // func_8012C470
UNK_PTR func_8012C498(UNK_PTR param_1); // func_8012C498
void func_8012C4C0(void); // func_8012C4C0
void func_8012C4E8(int param_1); // func_8012C4E8
void func_8012C510(int param_1); // func_8012C510
void func_8012C538(int param_1); // func_8012C538
void func_8012C470(GraphicsContext* gCtxt); // func_8012C470
Gfx* func_8012C498(Gfx* gfx); // func_8012C498
void func_8012C4C0(GraphicsContext* gCtxt); // func_8012C4C0
void func_8012C4E8(GraphicsContext* gCtxt); // func_8012C4E8
void func_8012C510(GraphicsContext* gCtxt); // func_8012C510
void func_8012C538(GraphicsContext* gCtxt); // func_8012C538
void func_8012C560(GraphicsContext* gCtxt); // func_8012C560
void func_8012C588(void); // func_8012C588
void func_8012C5B0(void); // func_8012C5B0
void func_8012C5D8(int param_1); // func_8012C5D8
void func_8012C600(void); // func_8012C600
void func_8012C588(GraphicsContext* gCtxt); // func_8012C588
void func_8012C5B0(GraphicsContext* gCtxt); // func_8012C5B0
void func_8012C5D8(GraphicsContext* gCtxt); // func_8012C5D8
Gfx* func_8012C600(Gfx* gfx); // func_8012C600
void func_8012C628(GraphicsContext* gCtxt); // func_8012C628
void func_8012C654(void); // func_8012C654
void func_8012C680(void); // func_8012C680
void func_8012C6AC(void); // func_8012C6AC
void func_8012C6D4(int param_1); // func_8012C6D4
void func_8012C6FC(void); // func_8012C6FC
void func_8012C724(void); // func_8012C724
UNK_PTR func_8012C74C(UNK_PTR param_1); // func_8012C74C
UNK_PTR func_8012C774(UNK_PTR param_1); // func_8012C774
UNK_PTR func_8012C7B8(UNK_PTR param_1); // func_8012C7B8
Gfx* func_8012C7FC(Gfx* puParm1); // func_8012C7FC
UNK_PTR func_8012C840(UNK_PTR param_1); // func_8012C840
void func_8012C868(void); // func_8012C868
void func_8012C654(GraphicsContext* gCtxt); // func_8012C654
void func_8012C680(Gfx** gfxp); // func_8012C680
void func_8012C6AC(GraphicsContext* gCtxt); // func_8012C6AC
void func_8012C6D4(GraphicsContext* gCtxt); // func_8012C6D4
void func_8012C6FC(GraphicsContext* gCtxt); // func_8012C6FC
Gfx* func_8012C724(Gfx* gfx); // func_8012C724
Gfx* func_8012C74C(Gfx* gfx); // func_8012C74C
Gfx* func_8012C774(Gfx* gfx); // func_8012C774
Gfx* func_8012C7B8(Gfx* gfx); // func_8012C7B8
Gfx* func_8012C7FC(Gfx* gfx); // func_8012C7FC
Gfx* func_8012C840(Gfx* gfx); // func_8012C840
Gfx* func_8012C868(Gfx* gfx); // func_8012C868
void func_8012C8AC(GraphicsContext* gCtxt); // func_8012C8AC
void func_8012C8D4(void); // func_8012C8D4
void func_8012C8FC(int param_1); // func_8012C8FC
void func_8012C924(int param_1); // func_8012C924
void func_8012C94C(void); // func_8012C94C
void func_8012C974(void); // func_8012C974
void func_8012C9BC(void); // func_8012C9BC
void func_8012C9E4(int param_1); // func_8012C9E4
void func_8012CA0C(void); // func_8012CA0C
void func_8012CA38(int param_1); // func_8012CA38
void func_8012CA60(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); // func_8012CA60
void func_8012CB04(void); // func_8012CB04
void func_8012CB28(void); // func_8012CB28
Gfx* Rcp_GenerateSetTileSizeDl(GraphicsContext* gCtxt, u32 upperS, u32 upperT, u32 lengthS, u32 lengthT); // func_8012CB4C
Gfx* Rcp_GenerateSetTileSize2Dl(GraphicsContext* gCtxt, u32 tile1, u32 upperS1, u32 upperT1, u32 lengthS1, u32 lengthT1, u32 tile2, u32 upperS2, u32 upperT2, u32 lengthS2, u32 lengthT2); // func_8012CBD0
void func_8012CCF0(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, UNK_TYPE4 param_13, UNK_TYPE4 param_14, UNK_TYPE4 param_15); // func_8012CCF0
void func_8012CE50(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); // func_8012CE50
void func_8012CEA8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6); // func_8012CEA8
void func_8012CF0C(GraphicsContext* gCtxt, int iParm2, int iParm3, unsigned int uParm4, u8 param_5, u8 param_6); // func_8012CF0C
void func_8012D374(void); // func_8012D374
void func_8012C8D4(GraphicsContext* gCtxt); // func_8012C8D4
void func_8012C8FC(GraphicsContext* gCtxt); // func_8012C8FC
void func_8012C924(GraphicsContext* gCtxt); // func_8012C924
void func_8012C94C(GraphicsContext* gCtxt); // func_8012C94C
void func_8012C974(GraphicsContext* gCtxt); // func_8012C974
void func_8012C9BC(GraphicsContext* gCtxt); // func_8012C9BC
void func_8012C9E4(GraphicsContext* gCtxt); // func_8012C9E4
void func_8012CA0C(Gfx** gfxp); // func_8012CA0C
void func_8012CA38(GraphicsContext* gCtxt); // func_8012CA38
Gfx* Gfx_BranchTexScroll(Gfx** gfxp, u32 x, u32 y, s32 width, s32 height); // func_8012CA60
void func_8012CB04(Gfx** gfxp, u32 x, u32 y); // func_8012CB04
Gfx* func_8012CB28(GraphicsContext* gfxCtx, u32 x, u32 y); // func_8012CB28
Gfx* Gfx_TexScroll(GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height); // func_8012CB4C
Gfx* Gfx_TwoTexScroll(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2); // func_8012CBD0
Gfx* Gfx_TwoTexScrollEnvColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a); // func_8012CCF0
Gfx* Gfx_EnvColor(GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a); // func_8012CE50
Gfx* Gfx_PrimColor(GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s32 a); // func_8012CEA8
void func_8012CF0C(GraphicsContext* gCtxt, s32 iParm2, s32 iParm3, u8 r, u8 g, u8 b); // func_8012CF0C
void func_8012D374(GraphicsContext* gCtxt, u8 r, u8 g, u8 b); // func_8012D374
void func_8012D40C(f32* param_1, f32* param_2, s16* param_3); // func_8012D40C
void Room_nop8012D510(GlobalContext* ctxt, Room* room, UNK_PTR param_3, UNK_TYPE1 param_4); // func_8012D510
void Room_DrawType3Mesh(GlobalContext* ctxt, Room* room, u32 flags); // func_8012D528
@ -3149,21 +3149,21 @@ void* Gamealloc_Alloc(GameAlloc* heap, u32 size); // func_80173C10
void Gamealloc_Free(GameAlloc* heap, void* ptr); // func_80173C7C
void Gamealloc_FreeAll(GameAlloc* heap); // func_80173CC8
void Gamealloc_Init(GameAlloc* iParm1); // func_80173D18
void Graph_FaultDrawFunc(void); // func_80173D30
void Graph_FaultClient(void); // func_80173D30
void Graph_DlAlloc(DispBuf* dl, void* memoryBlock, u32 size); // func_80173DAC
void Graph_RenderSetup(GraphicsContext* gCtxt); // func_80173DCC
GameStateOverlay* Graph_GetNextGameStateMetaInfo(GameState* ctxt); // func_80173F98
void Graph_InitTHGA(GraphicsContext* gCtxt); // func_80173DCC
GameStateOverlay* Graph_GetNextGameState(GameState* ctxt); // func_80173F98
void* Graph_FaultAddrConvFunc(void* addr); // func_80174060
void Graph_ContextInit(GraphicsContext* gCtxt); // func_801740D0
void Graph_Fini(void); // func_80174174
void Graph_Init(GraphicsContext* gCtxt); // func_801740D0
void Graph_Destroy(void); // func_80174174
void Graph_Render(GraphicsContext* gCtxt, GameState* ctxt); // func_801741A8
void Graph_FrameSetup(GameState* ctxt); // func_801744AC
void Graph_RenderFrame(GraphicsContext* gCtxt, GameState* ctxt); // func_801744F8
void Graph_DoFrame(GraphicsContext* gCtxt, GameState* ctxt); // func_80174868
void Graph_ThreadEntry(void* arg); // func_801748A0
void func_80174A40(void); // func_80174A40
void func_80174A4C(void); // func_80174A4C
void func_80174A64(void); // func_80174A64
Gfx* Graph_GfxPlusOne(Gfx* gfx); // func_80174A40
Gfx* Graph_BranchDlist(Gfx* gfx, Gfx* dst); // func_80174A4C
void* Graph_DlistAlloc(Gfx** gfx, u32 size); // func_80174A64
void func_80174AA0(void); // func_80174AA0
void func_80174AB4(void); // func_80174AB4
void func_80174B20(void); // func_80174B20
@ -3236,7 +3236,7 @@ void func_80178818(void); // func_80178818
void func_80178978(void); // func_80178978
void func_801789D4(void); // func_801789D4
u32* get_framebuffer(s32 index); // func_801789EC
void func_80178A14(void); // func_80178A14
u16* get_zbuffer(void); // func_80178A14
UNK_TYPE4 func_80178A24(void); // func_80178A24
void func_80178A34(void); // func_80178A34
s32 func_80178A94(s32 param_1, s32 param_2); // func_80178A94

View File

@ -6,6 +6,12 @@
extern UNK_TYPE D_04029CB0; // D_04029CB0
extern UNK_TYPE D_04029CF0; // D_04029CF0
extern UNK_TYPE D_0E000048;
extern UNK_TYPE D_0E000088;
extern UNK_TYPE D_0E000140;
extern UNK_TYPE D_0E0001C8;
extern UNK_TYPE D_0E0002C8;
extern Gfx object_ikana_obj_001100[];
extern AnimatedTexture object_ikana_obj_001228[];

View File

@ -489,7 +489,8 @@ typedef struct {
/* 0x1B8 */ DispBuf unk1B8;
/* 0x1C8 */ UNK_TYPE1 pad1C8[0xAC];
/* 0x274 */ OSViMode* unk274;
/* 0x278 */ UNK_TYPE1 pad278[0x20];
/* 0x278 */ void* zbuffer;
/* 0x27C */ UNK_TYPE1 pad27C[0x1C];
/* 0x298 */ DispBuf overlay;
/* 0x2A8 */ DispBuf polyOpa;
/* 0x2B8 */ DispBuf polyXlu;

View File

@ -1389,57 +1389,9 @@ extern UNK_TYPE1 D_801C0EC8; // D_801C0EC8
extern UNK_TYPE2 D_801C0EE4; // D_801C0EE4
extern UNK_TYPE2 D_801C0EE8; // D_801C0EE8
extern UNK_TYPE2 D_801C0EEC; // D_801C0EEC
extern Gfx D_801C0EF0[6]; // D_801C0EF0
extern Gfx D_801C0F50[6]; // D_801C0F50
extern Gfx D_801C0FB0[6]; // D_801C0FB0
extern Gfx D_801C12B0[6]; // D_801C12B0
extern Gfx D_801C1340[6]; // D_801C1340
extern Gfx D_801C13A0[6]; // D_801C13A0
extern Gfx D_801C13D0[6]; // D_801C13D0
extern Gfx D_801C1400[6]; // D_801C1400
extern Gfx D_801C1430[6]; // D_801C1430
extern Gfx D_801C14C0[6]; // D_801C14C0
extern Gfx D_801C14F0[6]; // D_801C14F0
extern Gfx D_801C1520[6]; // D_801C1520
extern Gfx D_801C1550[6]; // D_801C1550
extern Gfx D_801C1580[6]; // D_801C1580
extern Gfx D_801C15B0[6]; // D_801C15B0
extern Gfx D_801C15E0[6]; // D_801C15E0
extern Gfx D_801C1610[6]; // D_801C1610
extern Gfx D_801C1640[6]; // D_801C1640
extern Gfx D_801C1670[6]; // D_801C1670
extern Gfx D_801C16A0[6]; // D_801C16A0
extern Gfx D_801C16D0[6]; // D_801C16D0
extern Gfx D_801C1700[6]; // D_801C1700
extern Gfx D_801C1730[6]; // D_801C1730
extern Gfx D_801C1760[6]; // D_801C1760
extern Gfx D_801C1790[6]; // D_801C1790
extern Gfx D_801C17C0[6]; // D_801C17C0
extern Gfx D_801C17F0[6]; // D_801C17F0
extern Gfx D_801C1820[6]; // D_801C1820
extern Gfx D_801C1850[6]; // D_801C1850
extern Gfx D_801C1880[6]; // D_801C1880
extern Gfx D_801C18B0[6]; // D_801C18B0
extern Gfx D_801C18E0[6]; // D_801C18E0
extern Gfx D_801C1910[6]; // D_801C1910
extern Gfx D_801C1940[6]; // D_801C1940
extern Gfx D_801C1970[6]; // D_801C1970
extern Gfx D_801C19A0[6]; // D_801C19A0
extern Gfx D_801C19D0[6]; // D_801C19D0
extern Gfx D_801C1A00[6]; // D_801C1A00
extern Gfx D_801C1A30[6]; // D_801C1A30
extern Gfx D_801C1A60[6]; // D_801C1A60
extern Gfx D_801C1AF0[6]; // D_801C1AF0
extern Gfx D_801C1B20[6]; // D_801C1B20
extern Gfx D_801C1B50[6]; // D_801C1B50
extern Gfx D_801C1B80[6]; // D_801C1B80
extern Gfx D_801C1BB0[6]; // D_801C1BB0
extern Gfx D_801C1BE0[6]; // D_801C1BE0
extern Gfx D_801C1C10[6]; // D_801C1C10
extern Gfx D_801C1C40[6]; // D_801C1C40
extern Gfx D_801C1C70[6]; // D_801C1C70
extern Gfx D_801C1CA0[12]; // D_801C1CA0
extern Gfx D_801C1D00[1]; // D_801C1D00
extern Gfx sSetupDL[438]; // D_801C0EF0
extern Gfx sFillSetupDL[12]; // D_801C1CA0
extern Gfx gEmptyDL[1]; // D_801C1D00
extern Vec3f D_801C1D10; // D_801C1D10
extern room_draw_func roomDrawFuncs[4]; // D_801C1D1C
extern u32 gBitFlags[32]; // D_801C1D30
@ -2373,8 +2325,8 @@ extern f32 gFramerateDivisorHalf; // D_801D1508
extern f32 gFramerateDivisorThird; // D_801D150C
extern UNK_TYPE4 D_801D1510; // D_801D1510
extern UNK_TYPE4 D_801D1514; // D_801D1514
extern u32 screenWidth; // D_801D1520
extern u32 screenHeight; // D_801D1524
extern s32 gScreenWidth; // D_801D1520
extern s32 gScreenHeight; // D_801D1524
extern UNK_TYPE4 startHeapSize; // D_801D1528
extern PadmgrThreadStruct* padmgrContext; // D_801D1530
extern UNK_TYPE4 controllerInputsCaptured; // D_801D1534
@ -4206,7 +4158,7 @@ extern UNK_TYPE1 D_801FBB28; // D_801FBB28
extern OSViMode D_801FBB30; // D_801FBB30
extern u32* gFramebuffers[2]; // D_801FBB80
extern OSViMode* D_801FBB88; // D_801FBB88
extern UNK_TYPE1 D_801FBB8C; // D_801FBB8C
extern u16* gZBufferPtr; // D_801FBB8C
extern UNK_TYPE4 D_801FBB90; // D_801FBB90
extern UNK_TYPE1 D_801FBB94; // D_801FBB94
extern UNK_TYPE1 D_801FBB98; // D_801FBB98

View File

@ -335,7 +335,7 @@ SECTIONS
build/asm/code_0x800CB000.o(.text)
build/asm/z_camera.o(.text)
build/src/code/code_0x800E03A0.o(.text)
. += 0x10; /* XXX pad with NOPs*/
. += 0x10;
build/asm/z_collision_check.o(.text)
build/src/code/code_0x800E8EA0.o(.text)
build/asm/code_0x800E9360.o(.text)
@ -373,7 +373,8 @@ SECTIONS
build/asm/z_player_lib.o(.text)
build/asm/z_prenmi.o(.text)
build/asm/code_0x8012A080.o(.text)
build/asm/z_rcp.o(.text)
build/src/code/z_rcp.o(.text)
. += 0x10;
build/src/code/z_room.o(.text)
build/asm/code_0x8012EC80.o(.text)
build/src/code/z_scene.o(.text)
@ -490,7 +491,7 @@ SECTIONS
build/asm/code_data_z_parameter.o(.text)
build/asm/code_data_z_player_lib.o(.text)
build/asm/code_data_0x8012A080.o(.text)
build/asm/code_data_z_rcp.o(.text)
build/src/code/z_rcp.o(.data)
build/asm/code_data_z_room.o(.text)
build/asm/code_data_0x801C1D30.o(.text)
build/asm/code_data_z_scene.o(.text)

View File

@ -6,3 +6,9 @@ object_ikana_obj_001228 = 0x06001228;
object_fu_kaiten_0005D0 = 0x060005D0;
object_fu_kaiten_002D30 = 0x06002D30;
D_0E000048 = 0x0E000048;
D_0E000088 = 0x0E000088;
D_0E000140 = 0x0E000140;
D_0E0001C8 = 0x0E0001C8;
D_0E0002C8 = 0x0E0002C8;

1329
src/code/z_rcp.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -13,11 +13,11 @@ void SceneProc_DrawSceneConfig0(GlobalContext* ctxt) {
}
Gfx* SceneProc_SetTile1Layer(GlobalContext* ctxt, ScrollingTextureParams* params) {
return Rcp_GenerateSetTileSizeDl((ctxt->state).gfxCtx,
params->xStep * gSceneProcStep,
-(params->yStep * gSceneProcStep),
params->width,
params->height);
return Gfx_TexScroll((ctxt->state).gfxCtx,
params->xStep * gSceneProcStep,
-(params->yStep * gSceneProcStep),
params->width,
params->height);
}
void SceneProc_DrawType0Texture(GlobalContext* ctxt, u32 segment, ScrollingTextureParams* params) {
@ -36,17 +36,17 @@ void SceneProc_DrawType0Texture(GlobalContext* ctxt, u32 segment, ScrollingTextu
}
Gfx* SceneProc_SetTile2Layers(GlobalContext* ctxt, ScrollingTextureParams* params) {
return Rcp_GenerateSetTileSize2Dl((ctxt->state).gfxCtx,
0,
params[0].xStep * gSceneProcStep,
-(params[0].yStep * gSceneProcStep),
params[0].width,
params[0].height,
1,
params[1].xStep * gSceneProcStep,
-(params[1].yStep * gSceneProcStep),
params[1].width,
params[1].height);
return Gfx_TwoTexScroll((ctxt->state).gfxCtx,
0,
params[0].xStep * gSceneProcStep,
-(params[0].yStep * gSceneProcStep),
params[0].width,
params[0].height,
1,
params[1].xStep * gSceneProcStep,
-(params[1].yStep * gSceneProcStep),
params[1].width,
params[1].height);
}
void SceneProc_DrawType1Texture(GlobalContext* ctxt, u32 segment, ScrollingTextureParams* params) {
@ -307,23 +307,23 @@ void SceneProc_DrawSceneConfig3(GlobalContext* ctxt) {
gSPSegment(gfxCtx->polyXlu.p++, 8,
Rcp_GenerateSetTileSizeDl(ctxt->state.gfxCtx, 0, frames & 0x3f, 0x100, 0x10));
gSPSegment(gfxCtx->polyXlu.p++, 9,
Rcp_GenerateSetTileSize2Dl(ctxt->state.gfxCtx,
0, 0x7F - (frames & 0x7F), frames & 0x7F, 0x20, 0x20,
1, frames & 0x7F, frames & 0x7F, 0x20, 0x20));
Gfx_TwoTexScroll(ctxt->state.gfxCtx,
0, 0x7F - (frames & 0x7F), frames & 0x7F, 0x20, 0x20,
1, frames & 0x7F, frames & 0x7F, 0x20, 0x20));
gSPSegment(gfxCtx->polyOpa.p++, 10,
Rcp_GenerateSetTileSize2Dl(ctxt->state.gfxCtx,
0, 0, 0, 0x20, 0x20,
1, 0, 0x7F - (frames & 0x7F), 0x20, 0x20));
Gfx_TwoTexScroll(ctxt->state.gfxCtx,
0, 0, 0, 0x20, 0x20,
1, 0, 0x7F - (frames & 0x7F), 0x20, 0x20));
gSPSegment(gfxCtx->polyOpa.p++, 11,
Rcp_GenerateSetTileSizeDl(ctxt->state.gfxCtx, 0, frames & 0x7F, 0x20, 0x20));
gSPSegment(gfxCtx->polyXlu.p++, 12,
Rcp_GenerateSetTileSize2Dl(ctxt->state.gfxCtx,
0, 0, frames * 0x32 & 0x7Ff, 8, 0x200,
1, 0, frames * 0x3c & 0x7Ff, 8, 0x200));
Gfx_TwoTexScroll(ctxt->state.gfxCtx,
0, 0, frames * 0x32 & 0x7Ff, 8, 0x200,
1, 0, frames * 0x3c & 0x7Ff, 8, 0x200));
gSPSegment(gfxCtx->polyOpa.p++, 13,
Rcp_GenerateSetTileSize2Dl(ctxt->state.gfxCtx,
0, 0, 0, 0x20, 0x40,
1, 0, frames & 0x7F, 0x20, 0x20));
Gfx_TwoTexScroll(ctxt->state.gfxCtx,
0, 0, 0, 0x20, 0x40,
1, 0, frames & 0x7F, 0x20, 0x20));
gDPPipeSync(gfxCtx->polyXlu.p++);
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x80, 0x80, 0x80, 0x80);
@ -344,9 +344,9 @@ void SceneProc_DrawSceneConfig4(GlobalContext* ctxt) {
frames2 = frames * 1;
gSPSegment(gfxCtx->polyXlu.p++, 8,
Rcp_GenerateSetTileSize2Dl(ctxt->state.gfxCtx,
0, 0x7F - (frames & 0x7F), frames2 & 0x7F, 0x20, 0x20,
1, (frames & 0x7F), frames2 & 0x7F, 0x20, 0x20));
Gfx_TwoTexScroll(ctxt->state.gfxCtx,
0, 0x7F - (frames & 0x7F), frames2 & 0x7F, 0x20, 0x20,
1, (frames & 0x7F), frames2 & 0x7F, 0x20, 0x20));
gDPPipeSync(gfxCtx->polyOpa.p++);
gDPSetEnvColor(gfxCtx->polyOpa.p++, 0x80, 0x80, 0x80, 0x80);

View File

@ -18,3 +18,4 @@ z_scene_proc
z_std_dma
z_scene
z_view
z_rcp

View File

@ -2318,85 +2318,85 @@
0x8012AF38:("func_8012AF38","void","void"),
0x8012AF9C:("func_8012AF9C","void","void"),
0x8012BBE8:("func_8012BBE8","void","void"),
0x8012BC50:("func_8012BC50","void","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"),
0x8012BD8C:("func_8012BD8C","void","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"),
0x8012BF08:("func_8012BF08","void","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"),
0x8012BF3C:("func_8012BF3C","Gfx*","Gfx* param_1, s32 param_2"),
0x8012BF78:("func_8012BF78","void","void"),
0x8012BF98:("func_8012BF98","void","void"),
0x8012BFC4:("func_8012BFC4","void","void"),
0x8012BFEC:("func_8012BFEC","UNK_PTR","UNK_PTR param_1"),
0x8012C014:("func_8012C014","void","void"),
0x8012C058:("func_8012C058","void","int param_1"),
0x8012C080:("func_8012C080","void","void"),
0x8012C0A8:("func_8012C0A8","void","int param_1"),
0x8012C0D0:("func_8012C0D0","void","int param_1"),
0x8012C0F8:("func_8012C0F8","void","int param_1"),
0x8012C120:("func_8012C120","void","int param_1"),
0x8012C148:("func_8012C148","void","void"),
0x8012C170:("func_8012C170","void","int param_1"),
0x8012C198:("func_8012C198","void","void"),
0x8012C1C0:("func_8012C1C0","void","void"),
0x8012C1EC:("func_8012C1EC","void","void"),
0x8012C214:("func_8012C214","void","void"),
0x8012C240:("func_8012C240","void","void"),
0x8012BC50:("Gfx_SetFog","Gfx*","Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f"),
0x8012BD8C:("Gfx_SetFogWithSync","Gfx*","Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f"),
0x8012BF08:("Gfx_SetFog2","Gfx*","Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f"),
0x8012BF3C:("Gfx_CallSetupDLImpl","Gfx*","Gfx* gfx, u32 i"),
0x8012BF78:("Gfx_CallSetupDL","Gfx*","Gfx* gfx, u32 i"),
0x8012BF98:("Gfx_CallSetupDLAtPtr","void","Gfx** gfxp, u32 i"),
0x8012BFC4:("func_8012BFC4","Gfx*","Gfx* gfx"),
0x8012BFEC:("func_8012BFEC","Gfx*","Gfx* gfx"),
0x8012C014:("func_8012C014","Gfx*","Gfx* gfx"),
0x8012C058:("func_8012C058","void","GraphicsContext* gCtxt"),
0x8012C080:("func_8012C080","void","GraphicsContext* gCtxt"),
0x8012C0A8:("func_8012C0A8","void","GraphicsContext* gCtxt"),
0x8012C0D0:("func_8012C0D0","void","GraphicsContext* gCtxt"),
0x8012C0F8:("func_8012C0F8","void","GraphicsContext* gCtxt"),
0x8012C120:("func_8012C120","void","GraphicsContext* gCtxt"),
0x8012C148:("func_8012C148","void","GraphicsContext* gCtxt"),
0x8012C170:("func_8012C170","void","GraphicsContext* gCtxt"),
0x8012C198:("func_8012C198","Gfx*","Gfx* gfx"),
0x8012C1C0:("func_8012C1C0","void","GraphicsContext* gCtxt"),
0x8012C1EC:("func_8012C1EC","Gfx*","Gfx* gfx"),
0x8012C214:("func_8012C214","void","GraphicsContext* gCtxt"),
0x8012C240:("func_8012C240","void","GraphicsContext* gCtxt"),
0x8012C268:("func_8012C268","void","GlobalContext* ctxt"),
0x8012C28C:("func_8012C28C","void","GraphicsContext* gCtxt"),
0x8012C2B4:("func_8012C2B4","void","void"),
0x8012C2B4:("func_8012C2B4","Gfx*","Gfx* gfx"),
0x8012C2DC:("func_8012C2DC","void","GraphicsContext* gCtxt"),
0x8012C304:("func_8012C304","void","void"),
0x8012C32C:("func_8012C32C","void","int param_1"),
0x8012C354:("func_8012C354","void","int param_1"),
0x8012C37C:("func_8012C37C","void","int param_1"),
0x8012C3A4:("func_8012C3A4","void","void"),
0x8012C3CC:("func_8012C3CC","void","void"),
0x8012C3F4:("func_8012C3F4","void","void"),
0x8012C420:("func_8012C420","void","int param_1"),
0x8012C304:("func_8012C304","Gfx*","Gfx* gfx"),
0x8012C32C:("func_8012C32C","void","GraphicsContext* gCtxt"),
0x8012C354:("func_8012C354","void","GraphicsContext* gCtxt"),
0x8012C37C:("func_8012C37C","void","GraphicsContext* gCtxt"),
0x8012C3A4:("func_8012C3A4","Gfx*","Gfx* gfx"),
0x8012C3CC:("func_8012C3CC","Gfx*","Gfx* gfx"),
0x8012C3F4:("func_8012C3F4","void","GraphicsContext* gCtxt"),
0x8012C420:("func_8012C420","void","GraphicsContext* gCtxt"),
0x8012C448:("func_8012C448","void","GraphicsContext* gCtxt"),
0x8012C470:("func_8012C470","void","void"),
0x8012C498:("func_8012C498","UNK_PTR","UNK_PTR param_1"),
0x8012C4C0:("func_8012C4C0","void","void"),
0x8012C4E8:("func_8012C4E8","void","int param_1"),
0x8012C510:("func_8012C510","void","int param_1"),
0x8012C538:("func_8012C538","void","int param_1"),
0x8012C470:("func_8012C470","void","GraphicsContext* gCtxt"),
0x8012C498:("func_8012C498","Gfx*","Gfx* gfx"),
0x8012C4C0:("func_8012C4C0","void","GraphicsContext* gCtxt"),
0x8012C4E8:("func_8012C4E8","void","GraphicsContext* gCtxt"),
0x8012C510:("func_8012C510","void","GraphicsContext* gCtxt"),
0x8012C538:("func_8012C538","void","GraphicsContext* gCtxt"),
0x8012C560:("func_8012C560","void","GraphicsContext* gCtxt"),
0x8012C588:("func_8012C588","void","void"),
0x8012C5B0:("func_8012C5B0","void","void"),
0x8012C5D8:("func_8012C5D8","void","int param_1"),
0x8012C600:("func_8012C600","void","void"),
0x8012C588:("func_8012C588","void","GraphicsContext* gCtxt"),
0x8012C5B0:("func_8012C5B0","void","GraphicsContext* gCtxt"),
0x8012C5D8:("func_8012C5D8","void","GraphicsContext* gCtxt"),
0x8012C600:("func_8012C600","Gfx*","Gfx* gfx"),
0x8012C628:("func_8012C628","void","GraphicsContext* gCtxt"),
0x8012C654:("func_8012C654","void","void"),
0x8012C680:("func_8012C680","void","void"),
0x8012C6AC:("func_8012C6AC","void","void"),
0x8012C6D4:("func_8012C6D4","void","int param_1"),
0x8012C6FC:("func_8012C6FC","void","void"),
0x8012C724:("func_8012C724","void","void"),
0x8012C74C:("func_8012C74C","UNK_PTR","UNK_PTR param_1"),
0x8012C774:("func_8012C774","UNK_PTR","UNK_PTR param_1"),
0x8012C7B8:("func_8012C7B8","UNK_PTR","UNK_PTR param_1"),
0x8012C7FC:("func_8012C7FC","Gfx*","Gfx* puParm1"),
0x8012C840:("func_8012C840","UNK_PTR","UNK_PTR param_1"),
0x8012C868:("func_8012C868","void","void"),
0x8012C654:("func_8012C654","void","GraphicsContext* gCtxt"),
0x8012C680:("func_8012C680","void","Gfx** gfxp"),
0x8012C6AC:("func_8012C6AC","void","GraphicsContext* gCtxt"),
0x8012C6D4:("func_8012C6D4","void","GraphicsContext* gCtxt"),
0x8012C6FC:("func_8012C6FC","void","GraphicsContext* gCtxt"),
0x8012C724:("func_8012C724","Gfx*","Gfx* gfx"),
0x8012C74C:("func_8012C74C","Gfx*","Gfx* gfx"),
0x8012C774:("func_8012C774","Gfx*","Gfx* gfx"),
0x8012C7B8:("func_8012C7B8","Gfx*","Gfx* gfx"),
0x8012C7FC:("func_8012C7FC","Gfx*","Gfx* gfx"),
0x8012C840:("func_8012C840","Gfx*","Gfx* gfx"),
0x8012C868:("func_8012C868","Gfx*","Gfx* gfx"),
0x8012C8AC:("func_8012C8AC","void","GraphicsContext* gCtxt"),
0x8012C8D4:("func_8012C8D4","void","void"),
0x8012C8FC:("func_8012C8FC","void","int param_1"),
0x8012C924:("func_8012C924","void","int param_1"),
0x8012C94C:("func_8012C94C","void","void"),
0x8012C974:("func_8012C974","void","void"),
0x8012C9BC:("func_8012C9BC","void","void"),
0x8012C9E4:("func_8012C9E4","void","int param_1"),
0x8012CA0C:("func_8012CA0C","void","void"),
0x8012CA38:("func_8012CA38","void","int param_1"),
0x8012CA60:("func_8012CA60","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5"),
0x8012CB04:("func_8012CB04","void","void"),
0x8012CB28:("func_8012CB28","void","void"),
0x8012CB4C:("Rcp_GenerateSetTileSizeDl","Gfx*","GraphicsContext* gCtxt, u32 upperS, u32 upperT, u32 lengthS, u32 lengthT"),
0x8012CBD0:("Rcp_GenerateSetTileSize2Dl","Gfx*","GraphicsContext* gCtxt, u32 tile1, u32 upperS1, u32 upperT1, u32 lengthS1, u32 lengthT1, u32 tile2, u32 upperS2, u32 upperT2, u32 lengthS2, u32 lengthT2"),
0x8012CCF0:("func_8012CCF0","void","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, UNK_TYPE4 param_13, UNK_TYPE4 param_14, UNK_TYPE4 param_15"),
0x8012CE50:("func_8012CE50","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5"),
0x8012CEA8:("func_8012CEA8","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6"),
0x8012CF0C:("func_8012CF0C","void","GraphicsContext* gCtxt, int iParm2, int iParm3, unsigned int uParm4, u8 param_5, u8 param_6"),
0x8012D374:("func_8012D374","void","void"),
0x8012C8D4:("func_8012C8D4","void","GraphicsContext* gCtxt"),
0x8012C8FC:("func_8012C8FC","void","GraphicsContext* gCtxt"),
0x8012C924:("func_8012C924","void","GraphicsContext* gCtxt"),
0x8012C94C:("func_8012C94C","void","GraphicsContext* gCtxt"),
0x8012C974:("func_8012C974","void","GraphicsContext* gCtxt"),
0x8012C9BC:("func_8012C9BC","void","GraphicsContext* gCtxt"),
0x8012C9E4:("func_8012C9E4","void","GraphicsContext* gCtxt"),
0x8012CA0C:("func_8012CA0C","void","Gfx** gfxp"),
0x8012CA38:("func_8012CA38","void","GraphicsContext* gCtxt"),
0x8012CA60:("Gfx_BranchTexScroll","Gfx*","Gfx** gfxp, u32 x, u32 y, s32 width, s32 height"),
0x8012CB04:("func_8012CB04","void","Gfx** gfxp, u32 x, u32 y"),
0x8012CB28:("func_8012CB28","Gfx*","GraphicsContext* gfxCtx, u32 x, u32 y"),
0x8012CB4C:("Gfx_TexScroll","Gfx*","GraphicsContext* gfxCtx, u32 x, u32 y, s32 width, s32 height"),
0x8012CBD0:("Gfx_TwoTexScroll","Gfx*","GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2"),
0x8012CCF0:("Gfx_TwoTexScrollEnvColor","Gfx*","GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y1, s32 width1, s32 height1, s32 tile2, u32 x2, u32 y2, s32 width2, s32 height2, s32 r, s32 g, s32 b, s32 a"),
0x8012CE50:("Gfx_EnvColor","Gfx*","GraphicsContext* gfxCtx, s32 r, s32 g, s32 b, s32 a"),
0x8012CEA8:("Gfx_PrimColor","Gfx*","GraphicsContext* gfxCtx, s32 lodfrac, s32 r, s32 g, s32 b, s32 a"),
0x8012CF0C:("func_8012CF0C","void","GraphicsContext* gCtxt, s32 iParm2, s32 iParm3, u8 r, u8 g, u8 b"),
0x8012D374:("func_8012D374","void","GraphicsContext* gCtxt, u8 r, u8 g, u8 b"),
0x8012D40C:("func_8012D40C","void","f32* param_1, f32* param_2, s16* param_3"),
0x8012D510:("Room_nop8012D510","void","GlobalContext* ctxt, Room* room, UNK_PTR param_3, UNK_TYPE1 param_4"),
0x8012D528:("Room_DrawType3Mesh","void","GlobalContext* ctxt, Room* room, u32 flags"),
@ -3146,21 +3146,21 @@
0x80173C7C:("Gamealloc_Free","void","GameAlloc* heap, void* ptr"),
0x80173CC8:("Gamealloc_FreeAll","void","GameAlloc* heap"),
0x80173D18:("Gamealloc_Init","void","GameAlloc* iParm1"),
0x80173D30:("Graph_FaultDrawFunc","void","void"),
0x80173D30:("Graph_FaultClient","void","void"),
0x80173DAC:("Graph_DlAlloc","void","DispBuf* dl, void* memoryBlock, u32 size"),
0x80173DCC:("Graph_RenderSetup","void","GraphicsContext* gCtxt"),
0x80173F98:("Graph_GetNextGameStateMetaInfo","GameStateOverlay*","GameState* ctxt"),
0x80173DCC:("Graph_InitTHGA","void","GraphicsContext* gCtxt"),
0x80173F98:("Graph_GetNextGameState","GameStateOverlay*","GameState* ctxt"),
0x80174060:("Graph_FaultAddrConvFunc","void*","void* addr"),
0x801740D0:("Graph_ContextInit","void","GraphicsContext* gCtxt"),
0x80174174:("Graph_Fini","void","void"),
0x801740D0:("Graph_Init","void","GraphicsContext* gCtxt"),
0x80174174:("Graph_Destroy","void","void"),
0x801741A8:("Graph_Render","void","GraphicsContext* gCtxt, GameState* ctxt"),
0x801744AC:("Graph_FrameSetup","void","GameState* ctxt"),
0x801744F8:("Graph_RenderFrame","void","GraphicsContext* gCtxt, GameState* ctxt"),
0x80174868:("Graph_DoFrame","void","GraphicsContext* gCtxt, GameState* ctxt"),
0x801748A0:("Graph_ThreadEntry","void","void* arg"),
0x80174A40:("func_80174A40","void","void"),
0x80174A4C:("func_80174A4C","void","void"),
0x80174A64:("func_80174A64","void","void"),
0x80174A40:("Graph_GfxPlusOne","Gfx*","Gfx* gfx"),
0x80174A4C:("Graph_BranchDlist","Gfx*","Gfx* gfx, Gfx* dst"),
0x80174A64:("Graph_DlistAlloc","void*","Gfx** gfx, u32 size"),
0x80174AA0:("func_80174AA0","void","void"),
0x80174AB4:("func_80174AB4","void","void"),
0x80174B20:("func_80174B20","void","void"),
@ -3233,7 +3233,7 @@
0x80178978:("func_80178978","void","void"),
0x801789D4:("func_801789D4","void","void"),
0x801789EC:("get_framebuffer","u32*","s32 index"),
0x80178A14:("func_80178A14","void","void"),
0x80178A14:("get_zbuffer","u16*","void"),
0x80178A24:("func_80178A24","UNK_TYPE4","void"),
0x80178A34:("func_80178A34","void","void"),
0x80178A94:("func_80178A94","s32","s32 param_1, s32 param_2"),

View File

@ -1386,57 +1386,9 @@
0x801C0EE4:("D_801C0EE4","UNK_TYPE2","",0x2),
0x801C0EE8:("D_801C0EE8","UNK_TYPE2","",0x2),
0x801C0EEC:("D_801C0EEC","UNK_TYPE2","",0x2),
0x801C0EF0:("D_801C0EF0","Gfx","[6]",0x30),
0x801C0F50:("D_801C0F50","Gfx","[6]",0x30),
0x801C0FB0:("D_801C0FB0","Gfx","[6]",0x30),
0x801C12B0:("D_801C12B0","Gfx","[6]",0x30),
0x801C1340:("D_801C1340","Gfx","[6]",0x30),
0x801C13A0:("D_801C13A0","Gfx","[6]",0x30),
0x801C13D0:("D_801C13D0","Gfx","[6]",0x30),
0x801C1400:("D_801C1400","Gfx","[6]",0x30),
0x801C1430:("D_801C1430","Gfx","[6]",0x30),
0x801C14C0:("D_801C14C0","Gfx","[6]",0x30),
0x801C14F0:("D_801C14F0","Gfx","[6]",0x30),
0x801C1520:("D_801C1520","Gfx","[6]",0x30),
0x801C1550:("D_801C1550","Gfx","[6]",0x30),
0x801C1580:("D_801C1580","Gfx","[6]",0x30),
0x801C15B0:("D_801C15B0","Gfx","[6]",0x30),
0x801C15E0:("D_801C15E0","Gfx","[6]",0x30),
0x801C1610:("D_801C1610","Gfx","[6]",0x30),
0x801C1640:("D_801C1640","Gfx","[6]",0x30),
0x801C1670:("D_801C1670","Gfx","[6]",0x30),
0x801C16A0:("D_801C16A0","Gfx","[6]",0x30),
0x801C16D0:("D_801C16D0","Gfx","[6]",0x30),
0x801C1700:("D_801C1700","Gfx","[6]",0x30),
0x801C1730:("D_801C1730","Gfx","[6]",0x30),
0x801C1760:("D_801C1760","Gfx","[6]",0x30),
0x801C1790:("D_801C1790","Gfx","[6]",0x30),
0x801C17C0:("D_801C17C0","Gfx","[6]",0x30),
0x801C17F0:("D_801C17F0","Gfx","[6]",0x30),
0x801C1820:("D_801C1820","Gfx","[6]",0x30),
0x801C1850:("D_801C1850","Gfx","[6]",0x30),
0x801C1880:("D_801C1880","Gfx","[6]",0x30),
0x801C18B0:("D_801C18B0","Gfx","[6]",0x30),
0x801C18E0:("D_801C18E0","Gfx","[6]",0x30),
0x801C1910:("D_801C1910","Gfx","[6]",0x30),
0x801C1940:("D_801C1940","Gfx","[6]",0x30),
0x801C1970:("D_801C1970","Gfx","[6]",0x30),
0x801C19A0:("D_801C19A0","Gfx","[6]",0x30),
0x801C19D0:("D_801C19D0","Gfx","[6]",0x30),
0x801C1A00:("D_801C1A00","Gfx","[6]",0x30),
0x801C1A30:("D_801C1A30","Gfx","[6]",0x30),
0x801C1A60:("D_801C1A60","Gfx","[6]",0x30),
0x801C1AF0:("D_801C1AF0","Gfx","[6]",0x30),
0x801C1B20:("D_801C1B20","Gfx","[6]",0x30),
0x801C1B50:("D_801C1B50","Gfx","[6]",0x30),
0x801C1B80:("D_801C1B80","Gfx","[6]",0x30),
0x801C1BB0:("D_801C1BB0","Gfx","[6]",0x30),
0x801C1BE0:("D_801C1BE0","Gfx","[6]",0x30),
0x801C1C10:("D_801C1C10","Gfx","[6]",0x30),
0x801C1C40:("D_801C1C40","Gfx","[6]",0x30),
0x801C1C70:("D_801C1C70","Gfx","[6]",0x30),
0x801C1CA0:("D_801C1CA0","Gfx","[12]",0x60),
0x801C1D00:("D_801C1D00","Gfx","[1]",0x8),
0x801C0EF0:("sSetupDL","Gfx","[438]",0xdb0),
0x801C1CA0:("sFillSetupDL","Gfx","[12]",0x60),
0x801C1D00:("gEmptyDL","Gfx","[1]",0x8),
0x801C1D10:("D_801C1D10","Vec3f","",0xc),
0x801C1D1C:("roomDrawFuncs","room_draw_func","[4]",0x10),
0x801C1D30:("gBitFlags","u32","[32]",0x80),
@ -2370,8 +2322,8 @@
0x801D150C:("gFramerateDivisorThird","f32","",0x4),
0x801D1510:("D_801D1510","UNK_TYPE4","",0x4),
0x801D1514:("D_801D1514","UNK_TYPE4","",0x4),
0x801D1520:("screenWidth","u32","",0x4),
0x801D1524:("screenHeight","u32","",0x4),
0x801D1520:("gScreenWidth","s32","",0x4),
0x801D1524:("gScreenHeight","s32","",0x4),
0x801D1528:("startHeapSize","UNK_TYPE4","",0x4),
0x801D1530:("padmgrContext","PadmgrThreadStruct*","",0x4),
0x801D1534:("controllerInputsCaptured","UNK_TYPE4","",0x4),
@ -4325,7 +4277,7 @@
0x801FBB30:("D_801FBB30","OSViMode","",0x50),
0x801FBB80:("gFramebuffers","u32*","[2]",0x8),
0x801FBB88:("D_801FBB88","OSViMode*","",0x4),
0x801FBB8C:("D_801FBB8C","UNK_TYPE1","",0x1),
0x801FBB8C:("gZBufferPtr","u16*","",0x4),
0x801FBB90:("D_801FBB90","UNK_TYPE4","",0x4),
0x801FBB94:("D_801FBB94","UNK_TYPE1","",0x1),
0x801FBB98:("D_801FBB98","UNK_TYPE1","",0x1),

View File

@ -132,6 +132,38 @@ def generate_output(self, path):
'\n'
)
def parse_geometry_mode_flags(flags):
flag_strs = []
if flags & 0x00000001 == 0x00000001:
flag_strs.append('G_ZBUFFER')
if flags & 0x00000004 == 0x00000004:
flag_strs.append('G_SHADE')
if flags & 0x00000600 == 0x00000600:
flag_strs.append('G_CULL_BOTH')
elif flags & 0x00000600 == 0x00000200:
flag_strs.append('G_CULL_FRONT')
elif flags & 0x00000600 == 0x00000400:
flag_strs.append('G_CULL_BACK')
if flags & 0x00010000 == 0x00010000:
flag_strs.append('G_FOG')
if flags & 0x00020000 == 0x00020000:
flag_strs.append('G_LIGHTING')
if flags & 0x00040000 == 0x00040000:
flag_strs.append('G_TEXTURE_GEN')
if flags & 0x00080000 == 0x00080000:
flag_strs.append('G_TEXTURE_GEN_LINEAR')
if flags & 0x00200000 == 0x00200000:
flag_strs.append('G_SHADING_SMOOTH')
result = ''
for flag_str in flag_strs:
if result == '':
result = flag_str
else:
result += ' | ' + flag_str
return result
class Parser:
class VertexList:
@ -548,7 +580,14 @@ class Parser:
scaleT = (w1 & 0x0000FFFF)
if on != 0 and on != 1:
return invalid
return (True, False, 'gsSPTexture(0x{:04X}, 0x{:04X}, {}, {}, {})'.format(scaleS, scaleT, level, tile, on))
onStr = 'G_OFF' if on == 0 else 'G_ON'
if tile == 0:
tileStr = 'G_TX_RENDERTILE'
elif tile == 7:
tileStr = 'G_TX_LOADTILE'
else:
tileStr = str(tile)
return (True, False, 'gsSPTexture(0x{:04X}, 0x{:04X}, {}, {}, {})'.format(scaleS, scaleT, level, tileStr, onStr))
else:
return invalid
@ -560,7 +599,19 @@ class Parser:
return invalid
if cmd == 0xD9: # G_GEOMETRYMODE
return (True, False, 'gsDPNoOp() # TODO G_GEOMETRYMODE')
if w1 & 0xFF000000 == 0:
clear_str = parse_geometry_mode_flags(~w0)
set_str = parse_geometry_mode_flags(w1)
if (w0 == 0xD9FFFFFF):
return (True, False, 'gsSPSetGeometryMode({})'.format(set_str))
elif (w1 == 0):
return (True, False, 'gsSPClearGeometryMode({})'.format(clear_str))
elif (w0 == 0xD9000000):
return (True, False, 'gsSPLoadGeometryMode({})'.format(set_str))
else:
return (True, False, 'gsSPGeometryMode({}, {})'.format(clear_str, set_str))
else:
return invalid
if cmd == 0xDA: # G_MTX
if (w0 & 0xFFFFFF00) == 0xDA380000:
@ -966,7 +1017,7 @@ class Parser:
green = (w1 & 0x00FF0000) >> 16
blue = (w1 & 0x0000FF00) >> 8
alpha = (w1 & 0x000000FF)
return (True, False, 'gsDPBlendColor({}, {}, {}, {})'.format(red, green, blue, alpha))
return (True, False, 'gsDPSetBlendColor({}, {}, {}, {})'.format(red, green, blue, alpha))
else:
return invalid

View File

@ -437,7 +437,7 @@ D_801FBB28 = code_bss_start + 0x00017B88;
D_801FBB30 = code_bss_start + 0x00017B90;
gFramebuffers = code_bss_start + 0x00017BE0;
D_801FBB88 = code_bss_start + 0x00017BE8;
D_801FBB8C = code_bss_start + 0x00017BEC;
gZBufferPtr = code_bss_start + 0x00017BEC;
D_801FBB90 = code_bss_start + 0x00017BF0;
D_801FBB94 = code_bss_start + 0x00017BF4;
D_801FBB98 = code_bss_start + 0x00017BF8;