From 132c5de82262dc97caa70d79090e0b97cdc636ef Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 28 Sep 2021 23:32:45 +1000 Subject: [PATCH] Decompile func0f14b228 --- src/game/camdraw.c | 133 +++++++++--------------- src/include/types.h | 239 ++------------------------------------------ 2 files changed, 61 insertions(+), 311 deletions(-) diff --git a/src/game/camdraw.c b/src/game/camdraw.c index e40b85145..e70d629f0 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -1385,89 +1385,56 @@ void func0f14b178(void) } } -GLOBAL_ASM( -glabel func0f14b228 -/* f14b228: 908e03f4 */ lbu $t6,0x3f4($a0) -/* f14b22c: ac80003c */ sw $zero,0x3c($a0) -/* f14b230: 00001025 */ or $v0,$zero,$zero -/* f14b234: 31cfff7f */ andi $t7,$t6,0xff7f -/* f14b238: a08f03f4 */ sb $t7,0x3f4($a0) -/* f14b23c: 00801825 */ or $v1,$a0,$zero -/* f14b240: 240500ff */ addiu $a1,$zero,0xff -.L0f14b244: -/* f14b244: 24420001 */ addiu $v0,$v0,0x1 -/* f14b248: 284100c8 */ slti $at,$v0,0xc8 -/* f14b24c: 24630001 */ addiu $v1,$v1,0x1 -/* f14b250: 1420fffc */ bnez $at,.L0f14b244 -/* f14b254: a065003f */ sb $a1,0x3f($v1) -/* f14b258: 00001025 */ or $v0,$zero,$zero -/* f14b25c: 00801825 */ or $v1,$a0,$zero -.L0f14b260: -/* f14b260: 24420001 */ addiu $v0,$v0,0x1 -/* f14b264: 284100a0 */ slti $at,$v0,0xa0 -/* f14b268: 24630001 */ addiu $v1,$v1,0x1 -/* f14b26c: 1420fffc */ bnez $at,.L0f14b260 -/* f14b270: a06502fb */ sb $a1,0x2fb($v1) -/* f14b274: 00001025 */ or $v0,$zero,$zero -/* f14b278: 00801825 */ or $v1,$a0,$zero -.L0f14b27c: -/* f14b27c: 24420001 */ addiu $v0,$v0,0x1 -/* f14b280: 284101f4 */ slti $at,$v0,0x1f4 -/* f14b284: 24630001 */ addiu $v1,$v1,0x1 -/* f14b288: 1420fffc */ bnez $at,.L0f14b27c -/* f14b28c: a0650107 */ sb $a1,0x107($v1) -/* f14b290: 3c013f80 */ lui $at,0x3f80 -/* f14b294: 44810000 */ mtc1 $at,$f0 -/* f14b298: 00001025 */ or $v0,$zero,$zero -/* f14b29c: 00801825 */ or $v1,$a0,$zero -/* f14b2a0: 24050007 */ addiu $a1,$zero,0x7 -.L0f14b2a4: -/* f14b2a4: 24420001 */ addiu $v0,$v0,0x1 -/* f14b2a8: 24630004 */ addiu $v1,$v1,0x4 -/* f14b2ac: 1445fffd */ bne $v0,$a1,.L0f14b2a4 -/* f14b2b0: e46003cc */ swc1 $f0,0x3cc($v1) -/* f14b2b4: 909903f4 */ lbu $t9,0x3f4($a0) -/* f14b2b8: 24180003 */ addiu $t8,$zero,0x3 -/* f14b2bc: 2402ffff */ addiu $v0,$zero,-1 -/* f14b2c0: 332affbf */ andi $t2,$t9,0xffbf -/* f14b2c4: 354c0020 */ ori $t4,$t2,0x20 -/* f14b2c8: a08a03f4 */ sb $t2,0x3f4($a0) -/* f14b2cc: 318e00ef */ andi $t6,$t4,0xef -/* f14b2d0: a08c03f4 */ sb $t4,0x3f4($a0) -/* f14b2d4: a0980036 */ sb $t8,0x36($a0) -/* f14b2d8: a08e03f4 */ sb $t6,0x3f4($a0) -/* f14b2dc: 31cf00f7 */ andi $t7,$t6,0xf7 -/* f14b2e0: 24180010 */ addiu $t8,$zero,0x10 -/* f14b2e4: 24190006 */ addiu $t9,$zero,0x6 -/* f14b2e8: 24080080 */ addiu $t0,$zero,0x80 -/* f14b2ec: 2409000a */ addiu $t1,$zero,0xa -/* f14b2f0: 240a0036 */ addiu $t2,$zero,0x36 -/* f14b2f4: 240b0003 */ addiu $t3,$zero,0x3 -/* f14b2f8: 240c003d */ addiu $t4,$zero,0x3d -/* f14b2fc: ac800028 */ sw $zero,0x28($a0) -/* f14b300: ac80002c */ sw $zero,0x2c($a0) -/* f14b304: a4800034 */ sh $zero,0x34($a0) -/* f14b308: e4800030 */ swc1 $f0,0x30($a0) -/* f14b30c: a08f03f4 */ sb $t7,0x3f4($a0) -/* f14b310: ac80039c */ sw $zero,0x39c($a0) -/* f14b314: ac8003a0 */ sw $zero,0x3a0($a0) -/* f14b318: ac8003a4 */ sw $zero,0x3a4($a0) -/* f14b31c: ac8203a8 */ sw $v0,0x3a8($a0) -/* f14b320: ac8203ac */ sw $v0,0x3ac($a0) -/* f14b324: ac8203b0 */ sw $v0,0x3b0($a0) -/* f14b328: ac9803b4 */ sw $t8,0x3b4($a0) -/* f14b32c: ac9903b8 */ sw $t9,0x3b8($a0) -/* f14b330: ac8803bc */ sw $t0,0x3bc($a0) -/* f14b334: ac8903c0 */ sw $t1,0x3c0($a0) -/* f14b338: ac8a03c4 */ sw $t2,0x3c4($a0) -/* f14b33c: ac8b03c8 */ sw $t3,0x3c8($a0) -/* f14b340: ac8c03cc */ sw $t4,0x3cc($a0) -/* f14b344: ac8003ec */ sw $zero,0x3ec($a0) -/* f14b348: ac8003f0 */ sw $zero,0x3f0($a0) -/* f14b34c: ac8003f8 */ sw $zero,0x3f8($a0) -/* f14b350: 03e00008 */ jr $ra -/* f14b354: a48003fc */ sh $zero,0x3fc($a0) -); +void func0f14b228(struct var8007f8e0 *arg0) +{ + s32 i; + + arg0->unk03c = 0; + arg0->unk3f4_00 = false; + + for (i = 0; i < ARRAYCOUNT(arg0->unk040); i++) { + arg0->unk040[i] = 0xff; + } + + for (i = 0; i < ARRAYCOUNT(arg0->unk2fc); i++) { + arg0->unk2fc[i] = 0xff; + } + + for (i = 0; i < ARRAYCOUNT(arg0->unk108); i++) { + arg0->unk108[i] = 0xff; + } + + for (i = 0; i < ARRAYCOUNT(arg0->unk3d0); i++) { + arg0->unk3d0[i] = 1.0f; + } + + arg0->unk036 = 3; + arg0->unk3f4_01 = false; + arg0->unk3f4_02 = true; + arg0->unk3f4_03 = false; + arg0->unk028 = 0; + arg0->unk02c = 0; + arg0->unk034 = 0; + arg0->unk030 = 1.0f; + arg0->unk3f4_04 = false; + arg0->colournum = 0; + arg0->stylenum = 0; + arg0->unk3a4 = 0; + arg0->unk3a8 = -1; + arg0->unk3ac = -1; + arg0->unk3b0 = -1; + arg0->unk3b4 = 0x10; + arg0->unk3b8 = 6; + arg0->unk3bc = 0x80; + arg0->unk3c0 = 10; + arg0->unk3c4 = 0x36; + arg0->unk3c8 = 3; + arg0->unk3cc = 0x3d; + arg0->unk3ec = 0; + arg0->unk3f0 = 0; + arg0->fileguid.fileid = 0; + arg0->fileguid.deviceserial = 0; +} void func0f14b358(void) { diff --git a/src/include/types.h b/src/include/types.h index 2100c2d96..5044192e7 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -7434,245 +7434,28 @@ struct var8007f8e0 { // perfect head? /*0x024*/ u32 unk024; /*0x028*/ u32 unk028; /*0x02c*/ u32 unk02c; - /*0x030*/ u32 unk030; - /*0x034*/ u32 unk034; + /*0x030*/ f32 unk030; + /*0x034*/ u16 unk034; + /*0x036*/ u8 unk036; /*0x038*/ u32 unk038; /*0x03c*/ u32 unk03c; - /*0x040*/ u32 unk040; - /*0x044*/ u32 unk044; - /*0x048*/ u32 unk048; - /*0x04c*/ u32 unk04c; - /*0x050*/ u32 unk050; - /*0x054*/ u32 unk054; - /*0x058*/ u32 unk058; - /*0x05c*/ u32 unk05c; - /*0x060*/ u32 unk060; - /*0x064*/ u32 unk064; - /*0x068*/ u32 unk068; - /*0x06c*/ u32 unk06c; - /*0x070*/ u32 unk070; - /*0x074*/ u32 unk074; - /*0x078*/ u32 unk078; - /*0x07c*/ u32 unk07c; - /*0x080*/ u32 unk080; - /*0x084*/ u32 unk084; - /*0x088*/ u32 unk088; - /*0x08c*/ u32 unk08c; - /*0x090*/ u32 unk090; - /*0x094*/ u32 unk094; - /*0x098*/ u32 unk098; - /*0x09c*/ u32 unk09c; - /*0x0a0*/ u32 unk0a0; - /*0x0a4*/ u32 unk0a4; - /*0x0a8*/ u32 unk0a8; - /*0x0ac*/ u32 unk0ac; - /*0x0b0*/ u32 unk0b0; - /*0x0b4*/ u32 unk0b4; - /*0x0b8*/ u32 unk0b8; - /*0x0bc*/ u32 unk0bc; - /*0x0c0*/ u32 unk0c0; - /*0x0c4*/ u32 unk0c4; - /*0x0c8*/ u32 unk0c8; - /*0x0cc*/ u32 unk0cc; - /*0x0d0*/ u32 unk0d0; - /*0x0d4*/ u32 unk0d4; - /*0x0d8*/ u32 unk0d8; - /*0x0dc*/ u32 unk0dc; - /*0x0e0*/ u32 unk0e0; - /*0x0e4*/ u32 unk0e4; - /*0x0e8*/ u32 unk0e8; - /*0x0ec*/ u32 unk0ec; - /*0x0f0*/ u32 unk0f0; - /*0x0f4*/ u32 unk0f4; - /*0x0f8*/ u32 unk0f8; - /*0x0fc*/ u32 unk0fc; - /*0x100*/ u32 unk100; - /*0x104*/ u32 unk104; - /*0x108*/ u32 unk108; - /*0x10c*/ u32 unk10c; - /*0x110*/ u32 unk110; - /*0x114*/ u32 unk114; - /*0x118*/ u32 unk118; - /*0x11c*/ u32 unk11c; - /*0x120*/ u32 unk120; - /*0x124*/ u32 unk124; - /*0x128*/ u32 unk128; - /*0x12c*/ u32 unk12c; - /*0x130*/ u32 unk130; - /*0x134*/ u32 unk134; - /*0x138*/ u32 unk138; - /*0x13c*/ u32 unk13c; - /*0x140*/ u32 unk140; - /*0x144*/ u32 unk144; - /*0x148*/ u32 unk148; - /*0x14c*/ u32 unk14c; - /*0x150*/ u32 unk150; - /*0x154*/ u32 unk154; - /*0x158*/ u32 unk158; - /*0x15c*/ u32 unk15c; - /*0x160*/ u32 unk160; - /*0x164*/ u32 unk164; - /*0x168*/ u32 unk168; - /*0x16c*/ u32 unk16c; - /*0x170*/ u32 unk170; - /*0x174*/ u32 unk174; - /*0x178*/ u32 unk178; - /*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; + /*0x040*/ u8 unk040[200]; + /*0x108*/ u8 unk108[500]; + /*0x2fc*/ u8 unk2fc[160]; /*0x39c*/ s32 colournum; /*0x3a0*/ s32 stylenum; /*0x3a4*/ u32 unk3a4; - /*0x3a8*/ u32 unk3a8; - /*0x3ac*/ u32 unk3ac; - /*0x3b0*/ u32 unk3b0; + /*0x3a8*/ s32 unk3a8; + /*0x3ac*/ s32 unk3ac; + /*0x3b0*/ s32 unk3b0; /*0x3b4*/ u32 unk3b4; /*0x3b8*/ u32 unk3b8; /*0x3bc*/ u32 unk3bc; /*0x3c0*/ u32 unk3c0; /*0x3c4*/ u32 unk3c4; - /*0x3c8*/ u32 unk3c8; + /*0x3c8*/ s32 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; + /*0x3d0*/ f32 unk3d0[7]; /*0x3ec*/ u32 unk3ec; /*0x3f0*/ u32 unk3f0; /*0x3f4*/ u32 unk3f4_00 : 1;