From 1a35e2c3b9b9591620922ce3638eaaf67d5a6196 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 23 Dec 2020 23:58:07 +1000 Subject: [PATCH] Decompile gfxGetMasterDisplayList --- src/game/game_166e40.c | 19 ++++++------------- src/include/game/game_166e40.h | 2 +- src/lib/main.c | 2 +- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/game/game_166e40.c b/src/game/game_166e40.c index a7b1a36cb..b31e1f705 100644 --- a/src/game/game_166e40.c +++ b/src/game/game_166e40.c @@ -480,19 +480,12 @@ const char var7f1b7730[] = "fr: %d\n"; const char var7f1b7738[] = "cutsceneframe: %d\n"; const char var7f1b774c[] = "pos:%s%s %.2f %.2f %.2f\n"; -GLOBAL_ASM( -glabel func0f16793c -/* f16793c: 3c0f800b */ lui $t7,%hi(var800aa5a0) -/* f167940: 91efa5a0 */ lbu $t7,%lo(var800aa5a0)($t7) -/* f167944: 3c02800b */ lui $v0,%hi(g_GfxBuffers) -/* f167948: 240e0001 */ addiu $t6,$zero,0x1 -/* f16794c: 000fc080 */ sll $t8,$t7,0x2 -/* f167950: 3c01800b */ lui $at,%hi(var800aa5a4) -/* f167954: 00581021 */ addu $v0,$v0,$t8 -/* f167958: ac2ea5a4 */ sw $t6,%lo(var800aa5a4)($at) -/* f16795c: 03e00008 */ jr $ra -/* f167960: 8c42a580 */ lw $v0,%lo(g_GfxBuffers)($v0) -); +Gfx *gfxGetMasterDisplayList(void) +{ + var800aa5a4 = 1; + + return (Gfx *)g_GfxBuffers[var800aa5a0]; +} struct gfxvtx *gfxAllocateVertices(s32 count) { diff --git a/src/include/game/game_166e40.h b/src/include/game/game_166e40.h index d633d663b..856af55a6 100644 --- a/src/include/game/game_166e40.h +++ b/src/include/game/game_166e40.h @@ -19,7 +19,7 @@ u32 func0f1672a8(void); void func0f1672f0(u8 arg0); void func0f167330(void); void func0f167350(void); -Gfx *func0f16793c(void); +Gfx *gfxGetMasterDisplayList(void); struct gfxvtx *gfxAllocateVertices(s32 count); void *gfxAllocateMatrix(void); void *gfxAllocate4Words(s32 count); diff --git a/src/lib/main.c b/src/lib/main.c index 9790a785c..37623a18a 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -1096,7 +1096,7 @@ void mainTick(void) func00001b28(0); if (var8005d9c8) { - gdl = gdlstart = func0f16793c(); + gdl = gdlstart = gfxGetMasterDisplayList(); gDPSetTile(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); gDPSetTile(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_4b, 0, 0x0100, 6, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);