From 2bd8dd5e8e8cc23da6320074525732b7c7207c1c Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 28 Sep 2021 19:04:51 +1000 Subject: [PATCH] Decompile func0f14a240 --- src/game/camdraw.c | 85 +++++++------------ src/include/types.h | 198 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 227 insertions(+), 56 deletions(-) diff --git a/src/game/camdraw.c b/src/game/camdraw.c index 07cf28b27..6e5b2e638 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -883,60 +883,35 @@ glabel func0f14a20c /* f14a23c: 01cf1021 */ addu $v0,$t6,$t7 ); -GLOBAL_ASM( -glabel func0f14a240 -/* f14a240: 3c03800a */ lui $v1,%hi(var800a45a0) -/* f14a244: 246345a0 */ addiu $v1,$v1,%lo(var800a45a0) -/* f14a248: 8c6e0000 */ lw $t6,0x0($v1) -/* f14a24c: 240dffff */ addiu $t5,$zero,-1 -/* f14a250: 00001025 */ or $v0,$zero,$zero -/* f14a254: adc0048c */ sw $zero,0x48c($t6) -/* f14a258: 8c6f0000 */ lw $t7,0x0($v1) -/* f14a25c: 24040008 */ addiu $a0,$zero,0x8 -/* f14a260: 24050004 */ addiu $a1,$zero,0x4 -/* f14a264: ade00484 */ sw $zero,0x484($t7) -/* f14a268: 8c780000 */ lw $t8,0x0($v1) -/* f14a26c: 240f0001 */ addiu $t7,$zero,0x1 -/* f14a270: af000470 */ sw $zero,0x470($t8) -/* f14a274: 8c790000 */ lw $t9,0x0($v1) -/* f14a278: af200474 */ sw $zero,0x474($t9) -/* f14a27c: 8c680000 */ lw $t0,0x0($v1) -/* f14a280: ad000478 */ sw $zero,0x478($t0) -/* f14a284: 8c690000 */ lw $t1,0x0($v1) -/* f14a288: ad20047c */ sw $zero,0x47c($t1) -/* f14a28c: 8c6a0000 */ lw $t2,0x0($v1) -/* f14a290: ad400480 */ sw $zero,0x480($t2) -/* f14a294: 8c6b0000 */ lw $t3,0x0($v1) -/* f14a298: ad60037c */ sw $zero,0x37c($t3) -/* f14a29c: 8c6c0000 */ lw $t4,0x0($v1) -/* f14a2a0: ad800000 */ sw $zero,0x0($t4) -/* f14a2a4: 8c6e0000 */ lw $t6,0x0($v1) -/* f14a2a8: adcd0004 */ sw $t5,0x4($t6) -/* f14a2ac: 8c780000 */ lw $t8,0x0($v1) -/* f14a2b0: af0f0008 */ sw $t7,0x8($t8) -/* f14a2b4: 00001825 */ or $v1,$zero,$zero -.L0f14a2b8: -/* f14a2b8: 24630001 */ addiu $v1,$v1,0x1 -.L0f14a2bc: -/* f14a2bc: 5464ffff */ bnel $v1,$a0,.L0f14a2bc -/* f14a2c0: 24630001 */ addiu $v1,$v1,0x1 -/* f14a2c4: 24420001 */ addiu $v0,$v0,0x1 -/* f14a2c8: 28410004 */ slti $at,$v0,0x4 -/* f14a2cc: 5420fffa */ bnezl $at,.L0f14a2b8 -/* f14a2d0: 00001825 */ or $v1,$zero,$zero -/* f14a2d4: 00001025 */ or $v0,$zero,$zero -/* f14a2d8: 00001825 */ or $v1,$zero,$zero -.L0f14a2dc: -/* f14a2dc: 24630001 */ addiu $v1,$v1,0x1 -.L0f14a2e0: -/* f14a2e0: 5464ffff */ bnel $v1,$a0,.L0f14a2e0 -/* f14a2e4: 24630001 */ addiu $v1,$v1,0x1 -/* f14a2e8: 24420001 */ addiu $v0,$v0,0x1 -/* f14a2ec: 5445fffb */ bnel $v0,$a1,.L0f14a2dc -/* f14a2f0: 00001825 */ or $v1,$zero,$zero -/* f14a2f4: 03e00008 */ jr $ra -/* f14a2f8: 00000000 */ nop -); +void func0f14a240(void) +{ + s32 i; + s32 j; + + var800a45a0->unk48c = 0; + var800a45a0->unk484 = 0; + var800a45a0->unk470 = 0; + var800a45a0->unk474 = 0; + var800a45a0->unk478 = 0; + var800a45a0->unk47c = 0; + var800a45a0->unk480 = 0; + var800a45a0->unk37c = 0; + var800a45a0->unk000 = 0; + var800a45a0->unk004 = -1; + var800a45a0->unk008 = 1; + + for (i = 0; i < 4; i++) { + for (j = 0; j < 8; j++) { + // empty + } + } + + for (i = 0; i < 4; i++) { + for (j = 0; j < 8; j++) { + // empty + } + } +} GLOBAL_ASM( glabel func0f14a2fc @@ -959,7 +934,7 @@ void phAllocate(void) if (IS8MB()) { u32 size1 = align16(sizeof(struct var8007f8dc) * 4); - u32 size2 = align16(0x490); + u32 size2 = align16(sizeof(struct var800a45a0)); var8007f8dc = malloc(size1, MEMPOOL_PERMANENT); var800a45a0 = malloc(size2, MEMPOOL_PERMANENT); diff --git a/src/include/types.h b/src/include/types.h index 75ca10419..6a2991c08 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -7218,7 +7218,203 @@ struct var800a45a0 { /*0x170*/ u32 unk170; /*0x174*/ u32 unk174; /*0x178*/ u32 unk178; - // len 0x490? + /*0x17c*/ u32 unk17c; + /*0x180*/ u32 unk180; + /*0x184*/ u32 unk184; + /*0x188*/ u32 unk188; + /*0x18c*/ u32 unk18c; + /*0x190*/ u32 unk190; + /*0x194*/ u32 unk194; + /*0x198*/ u32 unk198; + /*0x19c*/ u32 unk19c; + /*0x1a0*/ u32 unk1a0; + /*0x1a4*/ u32 unk1a4; + /*0x1a8*/ u32 unk1a8; + /*0x1ac*/ u32 unk1ac; + /*0x1b0*/ u32 unk1b0; + /*0x1b4*/ u32 unk1b4; + /*0x1b8*/ u32 unk1b8; + /*0x1bc*/ u32 unk1bc; + /*0x1c0*/ u32 unk1c0; + /*0x1c4*/ u32 unk1c4; + /*0x1c8*/ u32 unk1c8; + /*0x1cc*/ u32 unk1cc; + /*0x1d0*/ u32 unk1d0; + /*0x1d4*/ u32 unk1d4; + /*0x1d8*/ u32 unk1d8; + /*0x1dc*/ u32 unk1dc; + /*0x1e0*/ u32 unk1e0; + /*0x1e4*/ u32 unk1e4; + /*0x1e8*/ u32 unk1e8; + /*0x1ec*/ u32 unk1ec; + /*0x1f0*/ u32 unk1f0; + /*0x1f4*/ u32 unk1f4; + /*0x1f8*/ u32 unk1f8; + /*0x1fc*/ u32 unk1fc; + /*0x200*/ u32 unk200; + /*0x204*/ u32 unk204; + /*0x208*/ u32 unk208; + /*0x20c*/ u32 unk20c; + /*0x210*/ u32 unk210; + /*0x214*/ u32 unk214; + /*0x218*/ u32 unk218; + /*0x21c*/ u32 unk21c; + /*0x220*/ u32 unk220; + /*0x224*/ u32 unk224; + /*0x228*/ u32 unk228; + /*0x22c*/ u32 unk22c; + /*0x230*/ u32 unk230; + /*0x234*/ u32 unk234; + /*0x238*/ u32 unk238; + /*0x23c*/ u32 unk23c; + /*0x240*/ u32 unk240; + /*0x244*/ u32 unk244; + /*0x248*/ u32 unk248; + /*0x24c*/ u32 unk24c; + /*0x250*/ u32 unk250; + /*0x254*/ u32 unk254; + /*0x258*/ u32 unk258; + /*0x25c*/ u32 unk25c; + /*0x260*/ u32 unk260; + /*0x264*/ u32 unk264; + /*0x268*/ u32 unk268; + /*0x26c*/ u32 unk26c; + /*0x270*/ u32 unk270; + /*0x274*/ u32 unk274; + /*0x278*/ u32 unk278; + /*0x27c*/ u32 unk27c; + /*0x280*/ u32 unk280; + /*0x284*/ u32 unk284; + /*0x288*/ u32 unk288; + /*0x28c*/ u32 unk28c; + /*0x290*/ u32 unk290; + /*0x294*/ u32 unk294; + /*0x298*/ u32 unk298; + /*0x29c*/ u32 unk29c; + /*0x2a0*/ u32 unk2a0; + /*0x2a4*/ u32 unk2a4; + /*0x2a8*/ u32 unk2a8; + /*0x2ac*/ u32 unk2ac; + /*0x2b0*/ u32 unk2b0; + /*0x2b4*/ u32 unk2b4; + /*0x2b8*/ u32 unk2b8; + /*0x2bc*/ u32 unk2bc; + /*0x2c0*/ u32 unk2c0; + /*0x2c4*/ u32 unk2c4; + /*0x2c8*/ u32 unk2c8; + /*0x2cc*/ u32 unk2cc; + /*0x2d0*/ u32 unk2d0; + /*0x2d4*/ u32 unk2d4; + /*0x2d8*/ u32 unk2d8; + /*0x2dc*/ u32 unk2dc; + /*0x2e0*/ u32 unk2e0; + /*0x2e4*/ u32 unk2e4; + /*0x2e8*/ u32 unk2e8; + /*0x2ec*/ u32 unk2ec; + /*0x2f0*/ u32 unk2f0; + /*0x2f4*/ u32 unk2f4; + /*0x2f8*/ u32 unk2f8; + /*0x2fc*/ u32 unk2fc; + /*0x300*/ u32 unk300; + /*0x304*/ u32 unk304; + /*0x308*/ u32 unk308; + /*0x30c*/ u32 unk30c; + /*0x310*/ u32 unk310; + /*0x314*/ u32 unk314; + /*0x318*/ u32 unk318; + /*0x31c*/ u32 unk31c; + /*0x320*/ u32 unk320; + /*0x324*/ u32 unk324; + /*0x328*/ u32 unk328; + /*0x32c*/ u32 unk32c; + /*0x330*/ u32 unk330; + /*0x334*/ u32 unk334; + /*0x338*/ u32 unk338; + /*0x33c*/ u32 unk33c; + /*0x340*/ u32 unk340; + /*0x344*/ u32 unk344; + /*0x348*/ u32 unk348; + /*0x34c*/ u32 unk34c; + /*0x350*/ u32 unk350; + /*0x354*/ u32 unk354; + /*0x358*/ u32 unk358; + /*0x35c*/ u32 unk35c; + /*0x360*/ u32 unk360; + /*0x364*/ u32 unk364; + /*0x368*/ u32 unk368; + /*0x36c*/ u32 unk36c; + /*0x370*/ u32 unk370; + /*0x374*/ u32 unk374; + /*0x378*/ u32 unk378; + /*0x37c*/ u32 unk37c; + /*0x380*/ u32 unk380; + /*0x384*/ u32 unk384; + /*0x388*/ u32 unk388; + /*0x38c*/ u32 unk38c; + /*0x390*/ u32 unk390; + /*0x394*/ u32 unk394; + /*0x398*/ u32 unk398; + /*0x39c*/ u32 unk39c; + /*0x3a0*/ u32 unk3a0; + /*0x3a4*/ u32 unk3a4; + /*0x3a8*/ u32 unk3a8; + /*0x3ac*/ u32 unk3ac; + /*0x3b0*/ u32 unk3b0; + /*0x3b4*/ u32 unk3b4; + /*0x3b8*/ u32 unk3b8; + /*0x3bc*/ u32 unk3bc; + /*0x3c0*/ u32 unk3c0; + /*0x3c4*/ u32 unk3c4; + /*0x3c8*/ u32 unk3c8; + /*0x3cc*/ u32 unk3cc; + /*0x3d0*/ u32 unk3d0; + /*0x3d4*/ u32 unk3d4; + /*0x3d8*/ u32 unk3d8; + /*0x3dc*/ u32 unk3dc; + /*0x3e0*/ u32 unk3e0; + /*0x3e4*/ u32 unk3e4; + /*0x3e8*/ u32 unk3e8; + /*0x3ec*/ u32 unk3ec; + /*0x3f0*/ u32 unk3f0; + /*0x3f4*/ u32 unk3f4; + /*0x3f8*/ u32 unk3f8; + /*0x3fc*/ u32 unk3fc; + /*0x400*/ u32 unk400; + /*0x404*/ u32 unk404; + /*0x408*/ u32 unk408; + /*0x40c*/ u32 unk40c; + /*0x410*/ u32 unk410; + /*0x414*/ u32 unk414; + /*0x418*/ u32 unk418; + /*0x41c*/ u32 unk41c; + /*0x420*/ u32 unk420; + /*0x424*/ u32 unk424; + /*0x428*/ u32 unk428; + /*0x42c*/ u32 unk42c; + /*0x430*/ u32 unk430; + /*0x434*/ u32 unk434; + /*0x438*/ u32 unk438; + /*0x43c*/ u32 unk43c; + /*0x440*/ u32 unk440; + /*0x444*/ u32 unk444; + /*0x448*/ u32 unk448; + /*0x44c*/ u32 unk44c; + /*0x450*/ u32 unk450; + /*0x454*/ u32 unk454; + /*0x458*/ u32 unk458; + /*0x45c*/ u32 unk45c; + /*0x460*/ u32 unk460; + /*0x464*/ u32 unk464; + /*0x468*/ u32 unk468; + /*0x46c*/ u32 unk46c; + /*0x470*/ u32 unk470; + /*0x474*/ u32 unk474; + /*0x478*/ u32 unk478; + /*0x47c*/ u32 unk47c; + /*0x480*/ u32 unk480; + /*0x484*/ u32 unk484; + /*0x488*/ u32 unk488; + /*0x48c*/ u32 unk48c; }; struct var8007f8e0 { // perfect head?