From 9dd91592d1487c3570bbfde3172fdd2d432669a5 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 28 Sep 2021 18:57:41 +1000 Subject: [PATCH] Decompile phAllocate --- src/game/camdraw.c | 60 ++++++++++++-------------------------- src/include/game/camdraw.h | 6 ++-- src/include/types.h | 1 + src/lib/main.c | 8 ++--- 4 files changed, 26 insertions(+), 49 deletions(-) diff --git a/src/game/camdraw.c b/src/game/camdraw.c index 28dc6ecc2..07cf28b27 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -953,48 +953,24 @@ glabel func0f14a2fc /* f14a324: 01c01025 */ or $v0,$t6,$zero ); -GLOBAL_ASM( -glabel func0f14a328 -/* f14a328: 3c0e8009 */ lui $t6,%hi(g_Is4Mb) -/* f14a32c: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6) -/* f14a330: 27bdffe0 */ addiu $sp,$sp,-32 -/* f14a334: 24010001 */ addiu $at,$zero,0x1 -/* f14a338: afbf001c */ sw $ra,0x1c($sp) -/* f14a33c: afb10018 */ sw $s1,0x18($sp) -/* f14a340: 11c10019 */ beq $t6,$at,.L0f14a3a8 -/* f14a344: afb00014 */ sw $s0,0x14($sp) -/* f14a348: 0fc5db69 */ jal align16 -/* f14a34c: 24040410 */ addiu $a0,$zero,0x410 -/* f14a350: 00408025 */ or $s0,$v0,$zero -/* f14a354: 0fc5db69 */ jal align16 -/* f14a358: 24040490 */ addiu $a0,$zero,0x490 -/* f14a35c: 00408825 */ or $s1,$v0,$zero -/* f14a360: 02002025 */ or $a0,$s0,$zero -/* f14a364: 0c0048f2 */ jal malloc -/* f14a368: 24050006 */ addiu $a1,$zero,0x6 -/* f14a36c: 3c018008 */ lui $at,%hi(var8007f8dc) -/* f14a370: ac22f8dc */ sw $v0,%lo(var8007f8dc)($at) -/* f14a374: 02202025 */ or $a0,$s1,$zero -/* f14a378: 0c0048f2 */ jal malloc -/* f14a37c: 24050006 */ addiu $a1,$zero,0x6 -/* f14a380: 3c01800a */ lui $at,%hi(var800a45a0) -/* f14a384: 0fc52890 */ jal func0f14a240 -/* f14a388: ac2245a0 */ sw $v0,%lo(var800a45a0)($at) -/* f14a38c: 00008025 */ or $s0,$zero,$zero -/* f14a390: 24110004 */ addiu $s1,$zero,0x4 -.L0f14a394: -/* f14a394: 0fc52b56 */ jal func0f14ad58 -/* f14a398: 02002025 */ or $a0,$s0,$zero -/* f14a39c: 26100001 */ addiu $s0,$s0,0x1 -/* f14a3a0: 1611fffc */ bne $s0,$s1,.L0f14a394 -/* f14a3a4: 00000000 */ nop -.L0f14a3a8: -/* f14a3a8: 8fbf001c */ lw $ra,0x1c($sp) -/* f14a3ac: 8fb00014 */ lw $s0,0x14($sp) -/* f14a3b0: 8fb10018 */ lw $s1,0x18($sp) -/* f14a3b4: 03e00008 */ jr $ra -/* f14a3b8: 27bd0020 */ addiu $sp,$sp,0x20 -); +void phAllocate(void) +{ + s32 i; + + if (IS8MB()) { + u32 size1 = align16(sizeof(struct var8007f8dc) * 4); + u32 size2 = align16(0x490); + + var8007f8dc = malloc(size1, MEMPOOL_PERMANENT); + var800a45a0 = malloc(size2, MEMPOOL_PERMANENT); + + func0f14a240(); + + for (i = 0; i < 4; i++) { + func0f14ad58(i); + } + } +} void func0f14a3bc(void) { diff --git a/src/include/game/camdraw.h b/src/include/game/camdraw.h index 7b490d235..8ab9463b0 100644 --- a/src/include/game/camdraw.h +++ b/src/include/game/camdraw.h @@ -13,9 +13,9 @@ u32 func0f14a16c(void); u32 func0f14a1cc(void); u32 func0f14a1ec(void); u32 func0f14a20c(void); -u32 func0f14a240(void); +void func0f14a240(void); u32 func0f14a2fc(void); -void func0f14a328(void); +void phAllocate(void); void func0f14a3c4(void); u32 func0f14a52c(void); u32 func0f14a560(void); @@ -32,7 +32,7 @@ u32 func0f14aac4(void); u32 func0f14ab3c(void); u16 func0f14ad14(s32 device); s32 func0f14ad38(s32 device); -u32 func0f14ad58(void); +void func0f14ad58(s32 index); bool func0f14aea0(s32 device); void func0f14aed0(s32 device); u32 func0f14b178(void); diff --git a/src/include/types.h b/src/include/types.h index 6ad795418..75ca10419 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -7218,6 +7218,7 @@ struct var800a45a0 { /*0x170*/ u32 unk170; /*0x174*/ u32 unk174; /*0x178*/ u32 unk178; + // len 0x490? }; struct var8007f8e0 { // perfect head? diff --git a/src/lib/main.c b/src/lib/main.c index 5cf14dd47..b5080ba01 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -658,7 +658,7 @@ glabel mainInit /* d7a8: 00000000 */ nop /* d7ac: 0fc62468 */ jal mpSetDefaultSetup /* d7b0: 00000000 */ nop -/* d7b4: 0fc52bf6 */ jal func0f14a328 +/* d7b4: 0fc52bf6 */ jal phAllocate /* d7b8: 00000000 */ nop /* d7bc: 0fc4652e */ jal pakInitAll /* d7c0: 00000000 */ nop @@ -1061,7 +1061,7 @@ glabel mainInit /* da6c: 00000000 */ nop /* da70: 0fc62084 */ jal mpSetDefaultSetup /* da74: 00000000 */ nop -/* da78: 0fc528ca */ jal func0f14a328 +/* da78: 0fc528ca */ jal phAllocate /* da7c: 00000000 */ nop /* da80: 0fc46276 */ jal pakInitAll /* da84: 00000000 */ nop @@ -1434,7 +1434,7 @@ glabel mainInit /* df7c: 00000000 */ sll $zero,$zero,0x0 /* df80: 0fc60985 */ jal mpSetDefaultSetup /* df84: 00000000 */ sll $zero,$zero,0x0 -/* df88: 0fc512be */ jal func0f14a328 +/* df88: 0fc512be */ jal phAllocate /* df8c: 00000000 */ sll $zero,$zero,0x0 /* df90: 0fc44b4c */ jal pakInitAll /* df94: 00000000 */ sll $zero,$zero,0x0 @@ -1664,7 +1664,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // stub0f000910(); // stub0f000840(); // mpSetDefaultSetup(); -// func0f14a328(); +// phAllocate(); // pakInitAll(); // func0f14a3bc(); // func000233c0();