diff --git a/README.md b/README.md index 64eeb4da..07f19056 100755 --- a/README.md +++ b/README.md @@ -113,25 +113,25 @@ s32 is_drumstick_unlocked(void) { } ``` -As of Feburary 8th, 2022, this is our current score: +As of Feburary 15th, 2022, this is our current score: ``` ===================================================================== ADVENTURE ONE (ASM -> C Decompilation) - -------------------------- 20.02% Complete -------------------------- - # Decompiled functions: 1026 - # GLOBAL_ASM remaining: 722 - # NON_MATCHING functions: 3 - # NON_EQUIVALENT WIP functions: 93 + -------------------------- 20.51% Complete -------------------------- + # Decompiled functions: 1036 + # GLOBAL_ASM remaining: 713 + # NON_MATCHING functions: 4 + # NON_EQUIVALENT WIP functions: 95 ---------------------------- Game Status ---------------------------- Balloons: 11/47, Keys: 1/4, Trophies: 0/5 T.T. Amulets: 1/4, Wizpig Amulets: 0/4 --------------------------------------------------------------------- - We are collecting silver coins in Hot Top Volcano. (1/8 silver coins) + We are collecting silver coins in Hot Top Volcano. (4/8 silver coins) ===================================================================== ADVENTURE TWO (Cleanup & Documentation) -------------------------- 2.54% Complete -------------------------- # Documented functions: 134 - # Undocumented remaining: 1614 + # Undocumented remaining: 1615 ---------------------------- Game Status ---------------------------- Balloons: 1/47, Keys: 0/4, Trophies: 0/5 T.T. Amulets: 0/4, Wizpig Amulets: 0/4 diff --git a/asm/non_matchings/unknown_032760/obj_init_door.s b/asm/non_matchings/unknown_032760/obj_init_door.s deleted file mode 100644 index 2e9c57a0..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_door.s +++ /dev/null @@ -1,123 +0,0 @@ -.rdata -glabel D_800E5FB4 -.asciz "Illegal door no!!!\n" - -.text -glabel obj_init_door -/* 03C3CC 8003B7CC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 03C3D0 8003B7D0 AFBF001C */ sw $ra, 0x1c($sp) -/* 03C3D4 8003B7D4 AFB00018 */ sw $s0, 0x18($sp) -/* 03C3D8 8003B7D8 80A7000C */ lb $a3, 0xc($a1) -/* 03C3DC 8003B7DC 8C830064 */ lw $v1, 0x64($a0) -/* 03C3E0 8003B7E0 2401FFFF */ li $at, -1 -/* 03C3E4 8003B7E4 00808025 */ move $s0, $a0 -/* 03C3E8 8003B7E8 14E10008 */ bne $a3, $at, .L8003B80C -/* 03C3EC 8003B7EC 00A03025 */ move $a2, $a1 -/* 03C3F0 8003B7F0 AFA30024 */ sw $v1, 0x24($sp) -/* 03C3F4 8003B7F4 0C003308 */ jal func_8000CC20 -/* 03C3F8 8003B7F8 AFA5002C */ sw $a1, 0x2c($sp) -/* 03C3FC 8003B7FC 8FA6002C */ lw $a2, 0x2c($sp) -/* 03C400 8003B800 8FA30024 */ lw $v1, 0x24($sp) -/* 03C404 8003B804 10000009 */ b .L8003B82C -/* 03C408 8003B808 A0C2000C */ sb $v0, 0xc($a2) -.L8003B80C: -/* 03C40C 8003B80C 02002025 */ move $a0, $s0 -/* 03C410 8003B810 00E02825 */ move $a1, $a3 -/* 03C414 8003B814 AFA30024 */ sw $v1, 0x24($sp) -/* 03C418 8003B818 0C0032FC */ jal func_8000CBF0 -/* 03C41C 8003B81C AFA6002C */ sw $a2, 0x2c($sp) -/* 03C420 8003B820 8FA30024 */ lw $v1, 0x24($sp) -/* 03C424 8003B824 8FA6002C */ lw $a2, 0x2c($sp) -/* 03C428 8003B828 00000000 */ nop -.L8003B82C: -/* 03C42C 8003B82C 80CE000C */ lb $t6, 0xc($a2) -/* 03C430 8003B830 2401FFFF */ li $at, -1 -/* 03C434 8003B834 A06E000E */ sb $t6, 0xe($v1) -/* 03C438 8003B838 90CF000E */ lbu $t7, 0xe($a2) -/* 03C43C 8003B83C 8069000E */ lb $t1, 0xe($v1) -/* 03C440 8003B840 A06F000F */ sb $t7, 0xf($v1) -/* 03C444 8003B844 90D8000D */ lbu $t8, 0xd($a2) -/* 03C448 8003B848 3C04800E */ lui $a0, %hi(D_800E5FB4) # $a0, 0x800e -/* 03C44C 8003B84C A0780011 */ sb $t8, 0x11($v1) -/* 03C450 8003B850 90D9000D */ lbu $t9, 0xd($a2) -/* 03C454 8003B854 24845FB4 */ addiu $a0, %lo(D_800E5FB4) # addiu $a0, $a0, 0x5fb4 -/* 03C458 8003B858 A0790010 */ sb $t9, 0x10($v1) -/* 03C45C 8003B85C 90C8000B */ lbu $t0, 0xb($a2) -/* 03C460 8003B860 15210007 */ bne $t1, $at, .L8003B880 -/* 03C464 8003B864 A0680012 */ sb $t0, 0x12($v1) -/* 03C468 8003B868 AFA30024 */ sw $v1, 0x24($sp) -/* 03C46C 8003B86C 0C032755 */ jal rmonPrintf -/* 03C470 8003B870 AFA6002C */ sw $a2, 0x2c($sp) -/* 03C474 8003B874 8FA30024 */ lw $v1, 0x24($sp) -/* 03C478 8003B878 8FA6002C */ lw $a2, 0x2c($sp) -/* 03C47C 8003B87C 00000000 */ nop -.L8003B880: -/* 03C480 8003B880 90CA000A */ lbu $t2, 0xa($a2) -/* 03C484 8003B884 C6040010 */ lwc1 $f4, 0x10($s0) -/* 03C488 8003B888 A20A003A */ sb $t2, 0x3a($s0) -/* 03C48C 8003B88C 90CC0008 */ lbu $t4, 8($a2) -/* 03C490 8003B890 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 03C494 8003B894 000C6A80 */ sll $t5, $t4, 0xa -/* 03C498 8003B898 A60D0000 */ sh $t5, ($s0) -/* 03C49C 8003B89C AC600008 */ sw $zero, 8($v1) -/* 03C4A0 8003B8A0 E4640000 */ swc1 $f4, ($v1) -/* 03C4A4 8003B8A4 860E0000 */ lh $t6, ($s0) -/* 03C4A8 8003B8A8 44811000 */ mtc1 $at, $f2 -/* 03C4AC 8003B8AC AE0E0078 */ sw $t6, 0x78($s0) -/* 03C4B0 8003B8B0 90CF0009 */ lbu $t7, 9($a2) -/* 03C4B4 8003B8B4 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 03C4B8 8003B8B8 31F8003F */ andi $t8, $t7, 0x3f -/* 03C4BC 8003B8BC 0018CA80 */ sll $t9, $t8, 0xa -/* 03C4C0 8003B8C0 AE19007C */ sw $t9, 0x7c($s0) -/* 03C4C4 8003B8C4 90C90012 */ lbu $t1, 0x12($a2) -/* 03C4C8 8003B8C8 44814000 */ mtc1 $at, $f8 -/* 03C4CC 8003B8CC 44893000 */ mtc1 $t1, $f6 -/* 03C4D0 8003B8D0 00000000 */ nop -/* 03C4D4 8003B8D4 46803020 */ cvt.s.w $f0, $f6 -/* 03C4D8 8003B8D8 4602003C */ c.lt.s $f0, $f2 -/* 03C4DC 8003B8DC 00000000 */ nop -/* 03C4E0 8003B8E0 45000003 */ bc1f .L8003B8F0 -/* 03C4E4 8003B8E4 00000000 */ nop -/* 03C4E8 8003B8E8 46001006 */ mov.s $f0, $f2 -/* 03C4EC 8003B8EC 00000000 */ nop -.L8003B8F0: -/* 03C4F0 8003B8F0 46080003 */ div.s $f0, $f0, $f8 -/* 03C4F4 8003B8F4 8E0A0040 */ lw $t2, 0x40($s0) -/* 03C4F8 8003B8F8 240D0021 */ li $t5, 33 -/* 03C4FC 8003B8FC C54A000C */ lwc1 $f10, 0xc($t2) -/* 03C500 8003B900 240F0002 */ li $t7, 2 -/* 03C504 8003B904 24190014 */ li $t9, 20 -/* 03C508 8003B908 46005402 */ mul.s $f16, $f10, $f0 -/* 03C50C 8003B90C E6100008 */ swc1 $f16, 8($s0) -/* 03C510 8003B910 90CB000F */ lbu $t3, 0xf($a2) -/* 03C514 8003B914 00000000 */ nop -/* 03C518 8003B918 A06B0013 */ sb $t3, 0x13($v1) -/* 03C51C 8003B91C 80CC0011 */ lb $t4, 0x11($a2) -/* 03C520 8003B920 00000000 */ nop -/* 03C524 8003B924 A06C0014 */ sb $t4, 0x14($v1) -/* 03C528 8003B928 8E0E004C */ lw $t6, 0x4c($s0) -/* 03C52C 8003B92C 00000000 */ nop -/* 03C530 8003B930 A5CD0014 */ sh $t5, 0x14($t6) -/* 03C534 8003B934 8E18004C */ lw $t8, 0x4c($s0) -/* 03C538 8003B938 00000000 */ nop -/* 03C53C 8003B93C A30F0011 */ sb $t7, 0x11($t8) -/* 03C540 8003B940 8E08004C */ lw $t0, 0x4c($s0) -/* 03C544 8003B944 00000000 */ nop -/* 03C548 8003B948 A1190010 */ sb $t9, 0x10($t0) -/* 03C54C 8003B94C 8E09004C */ lw $t1, 0x4c($s0) -/* 03C550 8003B950 00000000 */ nop -/* 03C554 8003B954 A1200012 */ sb $zero, 0x12($t1) -/* 03C558 8003B958 8E0B0040 */ lw $t3, 0x40($s0) -/* 03C55C 8003B95C 820A003A */ lb $t2, 0x3a($s0) -/* 03C560 8003B960 816C0055 */ lb $t4, 0x55($t3) -/* 03C564 8003B964 00000000 */ nop -/* 03C568 8003B968 014C082A */ slt $at, $t2, $t4 -/* 03C56C 8003B96C 14200003 */ bnez $at, .L8003B97C -/* 03C570 8003B970 8FBF001C */ lw $ra, 0x1c($sp) -/* 03C574 8003B974 A200003A */ sb $zero, 0x3a($s0) -/* 03C578 8003B978 8FBF001C */ lw $ra, 0x1c($sp) -.L8003B97C: -/* 03C57C 8003B97C 8FB00018 */ lw $s0, 0x18($sp) -/* 03C580 8003B980 03E00008 */ jr $ra -/* 03C584 8003B984 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/non_matchings/unknown_032760/obj_init_goldenballoon.s b/asm/non_matchings/unknown_032760/obj_init_goldenballoon.s deleted file mode 100644 index 33d6d4db..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_goldenballoon.s +++ /dev/null @@ -1,99 +0,0 @@ -.rdata -glabel D_800E5FA0 -.asciz "Illegal door no!!!\n" - -.text -glabel obj_init_goldenballoon -/* 03BF68 8003B368 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 03BF6C 8003B36C AFBF001C */ sw $ra, 0x1c($sp) -/* 03BF70 8003B370 AFB00018 */ sw $s0, 0x18($sp) -/* 03BF74 8003B374 80A70008 */ lb $a3, 8($a1) -/* 03BF78 8003B378 2401FFFF */ li $at, -1 -/* 03BF7C 8003B37C 00808025 */ move $s0, $a0 -/* 03BF80 8003B380 14E10006 */ bne $a3, $at, .L8003B39C -/* 03BF84 8003B384 00A03025 */ move $a2, $a1 -/* 03BF88 8003B388 0C003308 */ jal func_8000CC20 -/* 03BF8C 8003B38C AFA50024 */ sw $a1, 0x24($sp) -/* 03BF90 8003B390 8FA60024 */ lw $a2, 0x24($sp) -/* 03BF94 8003B394 10000007 */ b .L8003B3B4 -/* 03BF98 8003B398 A0C20008 */ sb $v0, 8($a2) -.L8003B39C: -/* 03BF9C 8003B39C 02002025 */ move $a0, $s0 -/* 03BFA0 8003B3A0 00E02825 */ move $a1, $a3 -/* 03BFA4 8003B3A4 0C0032FC */ jal func_8000CBF0 -/* 03BFA8 8003B3A8 AFA60024 */ sw $a2, 0x24($sp) -/* 03BFAC 8003B3AC 8FA60024 */ lw $a2, 0x24($sp) -/* 03BFB0 8003B3B0 00000000 */ nop -.L8003B3B4: -/* 03BFB4 8003B3B4 80CE0008 */ lb $t6, 8($a2) -/* 03BFB8 8003B3B8 2401FFFF */ li $at, -1 -/* 03BFBC 8003B3BC 15C10006 */ bne $t6, $at, .L8003B3D8 -/* 03BFC0 8003B3C0 3C04800E */ lui $a0, %hi(D_800E5FA0) # $a0, 0x800e -/* 03BFC4 8003B3C4 24845FA0 */ addiu $a0, %lo(D_800E5FA0) # addiu $a0, $a0, 0x5fa0 -/* 03BFC8 8003B3C8 0C032755 */ jal rmonPrintf -/* 03BFCC 8003B3CC AFA60024 */ sw $a2, 0x24($sp) -/* 03BFD0 8003B3D0 8FA60024 */ lw $a2, 0x24($sp) -/* 03BFD4 8003B3D4 00000000 */ nop -.L8003B3D8: -/* 03BFD8 8003B3D8 8E18004C */ lw $t8, 0x4c($s0) -/* 03BFDC 8003B3DC 240F0002 */ li $t7, 2 -/* 03BFE0 8003B3E0 A70F0014 */ sh $t7, 0x14($t8) -/* 03BFE4 8003B3E4 8E08004C */ lw $t0, 0x4c($s0) -/* 03BFE8 8003B3E8 24190004 */ li $t9, 4 -/* 03BFEC 8003B3EC A1190011 */ sb $t9, 0x11($t0) -/* 03BFF0 8003B3F0 8E0A004C */ lw $t2, 0x4c($s0) -/* 03BFF4 8003B3F4 24090014 */ li $t1, 20 -/* 03BFF8 8003B3F8 A1490010 */ sb $t1, 0x10($t2) -/* 03BFFC 8003B3FC 8E0B004C */ lw $t3, 0x4c($s0) -/* 03C000 8003B400 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 03C004 8003B404 A1600012 */ sb $zero, 0x12($t3) -/* 03C008 8003B408 90CD0009 */ lbu $t5, 9($a2) -/* 03C00C 8003B40C 44811000 */ mtc1 $at, $f2 -/* 03C010 8003B410 448D2000 */ mtc1 $t5, $f4 -/* 03C014 8003B414 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 03C018 8003B418 46802020 */ cvt.s.w $f0, $f4 -/* 03C01C 8003B41C 44813000 */ mtc1 $at, $f6 -/* 03C020 8003B420 4602003C */ c.lt.s $f0, $f2 -/* 03C024 8003B424 00000000 */ nop -/* 03C028 8003B428 45000003 */ bc1f .L8003B438 -/* 03C02C 8003B42C 00000000 */ nop -/* 03C030 8003B430 46001006 */ mov.s $f0, $f2 -/* 03C034 8003B434 00000000 */ nop -.L8003B438: -/* 03C038 8003B438 46060003 */ div.s $f0, $f0, $f6 -/* 03C03C 8003B43C 8E0E0040 */ lw $t6, 0x40($s0) -/* 03C040 8003B440 8E020064 */ lw $v0, 0x64($s0) -/* 03C044 8003B444 C5C8000C */ lwc1 $f8, 0xc($t6) -/* 03C048 8003B448 44808000 */ mtc1 $zero, $f16 -/* 03C04C 8003B44C 240F00FF */ li $t7, 255 -/* 03C050 8003B450 46004282 */ mul.s $f10, $f8, $f0 -/* 03C054 8003B454 E60A0008 */ swc1 $f10, 8($s0) -/* 03C058 8003B458 A04F000D */ sb $t7, 0xd($v0) -/* 03C05C 8003B45C E4500000 */ swc1 $f16, ($v0) -/* 03C060 8003B460 AE000078 */ sw $zero, 0x78($s0) -/* 03C064 8003B464 80D8000A */ lb $t8, 0xa($a2) -/* 03C068 8003B468 00000000 */ nop -/* 03C06C 8003B46C 13000010 */ beqz $t8, .L8003B4B0 -/* 03C070 8003B470 8FBF001C */ lw $ra, 0x1c($sp) -/* 03C074 8003B474 0C01BAA4 */ jal get_settings -/* 03C078 8003B478 AFA60024 */ sw $a2, 0x24($sp) -/* 03C07C 8003B47C 8FA60024 */ lw $a2, 0x24($sp) -/* 03C080 8003B480 94590014 */ lhu $t9, 0x14($v0) -/* 03C084 8003B484 80C8000A */ lb $t0, 0xa($a2) -/* 03C088 8003B488 240A0001 */ li $t2, 1 -/* 03C08C 8003B48C 25090002 */ addiu $t1, $t0, 2 -/* 03C090 8003B490 012A5804 */ sllv $t3, $t2, $t1 -/* 03C094 8003B494 032B6024 */ and $t4, $t9, $t3 -/* 03C098 8003B498 11800003 */ beqz $t4, .L8003B4A8 -/* 03C09C 8003B49C 240D0001 */ li $t5, 1 -/* 03C0A0 8003B4A0 10000002 */ b .L8003B4AC -/* 03C0A4 8003B4A4 AE000078 */ sw $zero, 0x78($s0) -.L8003B4A8: -/* 03C0A8 8003B4A8 AE0D0078 */ sw $t5, 0x78($s0) -.L8003B4AC: -/* 03C0AC 8003B4AC 8FBF001C */ lw $ra, 0x1c($sp) -.L8003B4B0: -/* 03C0B0 8003B4B0 8FB00018 */ lw $s0, 0x18($sp) -/* 03C0B4 8003B4B4 03E00008 */ jr $ra -/* 03C0B8 8003B4B8 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/unknown_032760/obj_init_groundzipper.s b/asm/non_matchings/unknown_032760/obj_init_groundzipper.s deleted file mode 100644 index 87b5d5bd..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_groundzipper.s +++ /dev/null @@ -1,97 +0,0 @@ -glabel obj_init_groundzipper -/* 0366E8 80035AE8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0366EC 80035AEC AFBF0014 */ sw $ra, 0x14($sp) -/* 0366F0 80035AF0 90AF0009 */ lbu $t7, 9($a1) -/* 0366F4 80035AF4 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0366F8 80035AF8 448F2000 */ mtc1 $t7, $f4 -/* 0366FC 80035AFC 44811000 */ mtc1 $at, $f2 -/* 036700 80035B00 46802020 */ cvt.s.w $f0, $f4 -/* 036704 80035B04 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 036708 80035B08 44813000 */ mtc1 $at, $f6 -/* 03670C 80035B0C 4602003C */ c.lt.s $f0, $f2 -/* 036710 80035B10 240F00FF */ li $t7, 255 -/* 036714 80035B14 45000003 */ bc1f .L80035B24 -/* 036718 80035B18 00000000 */ nop -/* 03671C 80035B1C 46001006 */ mov.s $f0, $f2 -/* 036720 80035B20 00000000 */ nop -.L80035B24: -/* 036724 80035B24 46060003 */ div.s $f0, $f0, $f6 -/* 036728 80035B28 8C820040 */ lw $v0, 0x40($a0) -/* 03672C 80035B2C 8C980050 */ lw $t8, 0x50($a0) -/* 036730 80035B30 C448000C */ lwc1 $f8, 0xc($v0) -/* 036734 80035B34 00000000 */ nop -/* 036738 80035B38 46004282 */ mul.s $f10, $f8, $f0 -/* 03673C 80035B3C E48A0008 */ swc1 $f10, 8($a0) -/* 036740 80035B40 C4500004 */ lwc1 $f16, 4($v0) -/* 036744 80035B44 00000000 */ nop -/* 036748 80035B48 46008482 */ mul.s $f18, $f16, $f0 -/* 03674C 80035B4C E7120000 */ swc1 $f18, ($t8) -/* 036750 80035B50 90A8000A */ lbu $t0, 0xa($a1) -/* 036754 80035B54 8C8B0040 */ lw $t3, 0x40($a0) -/* 036758 80035B58 00084A80 */ sll $t1, $t0, 0xa -/* 03675C 80035B5C A4890000 */ sh $t1, ($a0) -/* 036760 80035B60 808A003A */ lb $t2, 0x3a($a0) -/* 036764 80035B64 816C0055 */ lb $t4, 0x55($t3) -/* 036768 80035B68 00000000 */ nop -/* 03676C 80035B6C 014C082A */ slt $at, $t2, $t4 -/* 036770 80035B70 14200003 */ bnez $at, .L80035B80 -/* 036774 80035B74 3C0141E0 */ lui $at, 0x41e0 -/* 036778 80035B78 A080003A */ sb $zero, 0x3a($a0) -/* 03677C 80035B7C 3C0141E0 */ li $at, 0x41E00000 # 28.000000 -.L80035B80: -/* 036780 80035B80 44812000 */ mtc1 $at, $f4 -/* 036784 80035B84 00000000 */ nop -/* 036788 80035B88 46002182 */ mul.s $f6, $f4, $f0 -/* 03678C 80035B8C 444DF800 */ cfc1 $t5, $31 -/* 036790 80035B90 00000000 */ nop -/* 036794 80035B94 35A10003 */ ori $at, $t5, 3 -/* 036798 80035B98 38210002 */ xori $at, $at, 2 -/* 03679C 80035B9C 44C1F800 */ ctc1 $at, $31 -/* 0367A0 80035BA0 00000000 */ nop -/* 0367A4 80035BA4 46003224 */ cvt.w.s $f8, $f6 -/* 0367A8 80035BA8 44024000 */ mfc1 $v0, $f8 -/* 0367AC 80035BAC 44CDF800 */ ctc1 $t5, $31 -/* 0367B0 80035BB0 2442000F */ addiu $v0, $v0, 0xf -/* 0367B4 80035BB4 04410002 */ bgez $v0, .L80035BC0 -/* 0367B8 80035BB8 AC820078 */ sw $v0, 0x78($a0) -/* 0367BC 80035BBC AC800078 */ sw $zero, 0x78($a0) -.L80035BC0: -/* 0367C0 80035BC0 8C8E0078 */ lw $t6, 0x78($a0) -/* 0367C4 80035BC4 00000000 */ nop -/* 0367C8 80035BC8 29C10100 */ slti $at, $t6, 0x100 -/* 0367CC 80035BCC 14200002 */ bnez $at, .L80035BD8 -/* 0367D0 80035BD0 00000000 */ nop -/* 0367D4 80035BD4 AC8F0078 */ sw $t7, 0x78($a0) -.L80035BD8: -/* 0367D8 80035BD8 8C99004C */ lw $t9, 0x4c($a0) -/* 0367DC 80035BDC 24180002 */ li $t8, 2 -/* 0367E0 80035BE0 A7380014 */ sh $t8, 0x14($t9) -/* 0367E4 80035BE4 8C88004C */ lw $t0, 0x4c($a0) -/* 0367E8 80035BE8 24090014 */ li $t1, 20 -/* 0367EC 80035BEC A1000011 */ sb $zero, 0x11($t0) -/* 0367F0 80035BF0 8C8B004C */ lw $t3, 0x4c($a0) -/* 0367F4 80035BF4 240CFF9C */ li $t4, -100 -/* 0367F8 80035BF8 A1690010 */ sb $t1, 0x10($t3) -/* 0367FC 80035BFC 8C8A004C */ lw $t2, 0x4c($a0) -/* 036800 80035C00 240E0064 */ li $t6, 100 -/* 036804 80035C04 A1400012 */ sb $zero, 0x12($t2) -/* 036808 80035C08 8C8D004C */ lw $t5, 0x4c($a0) -/* 03680C 80035C0C 00000000 */ nop -/* 036810 80035C10 A1AC0016 */ sb $t4, 0x16($t5) -/* 036814 80035C14 8C8F004C */ lw $t7, 0x4c($a0) -/* 036818 80035C18 00000000 */ nop -/* 03681C 80035C1C A1EE0017 */ sb $t6, 0x17($t7) -/* 036820 80035C20 0C0270C3 */ jal get_filtered_cheats -/* 036824 80035C24 AFA40018 */ sw $a0, 0x18($sp) -/* 036828 80035C28 8FA40018 */ lw $a0, 0x18($sp) -/* 03682C 80035C2C 0002C280 */ sll $t8, $v0, 0xa -/* 036830 80035C30 07010004 */ bgez $t8, .L80035C44 -/* 036834 80035C34 8FBF0014 */ lw $ra, 0x14($sp) -/* 036838 80035C38 0C003FEE */ jal gParticlePtrList_addObject -/* 03683C 80035C3C 00000000 */ nop -/* 036840 80035C40 8FBF0014 */ lw $ra, 0x14($sp) -.L80035C44: -/* 036844 80035C44 27BD0018 */ addiu $sp, $sp, 0x18 -/* 036848 80035C48 03E00008 */ jr $ra -/* 03684C 80035C4C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/obj_init_trigger.s b/asm/non_matchings/unknown_032760/obj_init_trigger.s deleted file mode 100644 index bbe58d9e..00000000 --- a/asm/non_matchings/unknown_032760/obj_init_trigger.s +++ /dev/null @@ -1,99 +0,0 @@ -.rdata -glabel D_800E5FC8 -.asciz "Illegal door no!!!\n" - -.text -glabel obj_init_trigger -/* 03D244 8003C644 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 03D248 8003C648 AFBF001C */ sw $ra, 0x1c($sp) -/* 03D24C 8003C64C AFB10018 */ sw $s1, 0x18($sp) -/* 03D250 8003C650 AFB00014 */ sw $s0, 0x14($sp) -/* 03D254 8003C654 80A60009 */ lb $a2, 9($a1) -/* 03D258 8003C658 2401FFFF */ li $at, -1 -/* 03D25C 8003C65C 00808025 */ move $s0, $a0 -/* 03D260 8003C660 14C10005 */ bne $a2, $at, .L8003C678 -/* 03D264 8003C664 00A08825 */ move $s1, $a1 -/* 03D268 8003C668 0C003308 */ jal func_8000CC20 -/* 03D26C 8003C66C 00000000 */ nop -/* 03D270 8003C670 10000004 */ b .L8003C684 -/* 03D274 8003C674 A2220009 */ sb $v0, 9($s1) -.L8003C678: -/* 03D278 8003C678 02002025 */ move $a0, $s0 -/* 03D27C 8003C67C 0C0032FC */ jal func_8000CBF0 -/* 03D280 8003C680 00C02825 */ move $a1, $a2 -.L8003C684: -/* 03D284 8003C684 822E0009 */ lb $t6, 9($s1) -/* 03D288 8003C688 2401FFFF */ li $at, -1 -/* 03D28C 8003C68C 15C10003 */ bne $t6, $at, .L8003C69C -/* 03D290 8003C690 3C04800E */ lui $a0, %hi(D_800E5FC8) # $a0, 0x800e -/* 03D294 8003C694 0C032755 */ jal rmonPrintf -/* 03D298 8003C698 24845FC8 */ addiu $a0, %lo(D_800E5FC8) # addiu $a0, $a0, 0x5fc8 -.L8003C69C: -/* 03D29C 8003C69C 92380008 */ lbu $t8, 8($s1) -/* 03D2A0 8003C6A0 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 03D2A4 8003C6A4 44982000 */ mtc1 $t8, $f4 -/* 03D2A8 8003C6A8 44811000 */ mtc1 $at, $f2 -/* 03D2AC 8003C6AC 46802020 */ cvt.s.w $f0, $f4 -/* 03D2B0 8003C6B0 3C014300 */ li $at, 0x43000000 # 128.000000 -/* 03D2B4 8003C6B4 44813000 */ mtc1 $at, $f6 -/* 03D2B8 8003C6B8 4602003C */ c.lt.s $f0, $f2 -/* 03D2BC 8003C6BC 00000000 */ nop -/* 03D2C0 8003C6C0 45000003 */ bc1f .L8003C6D0 -/* 03D2C4 8003C6C4 00000000 */ nop -/* 03D2C8 8003C6C8 46001006 */ mov.s $f0, $f2 -/* 03D2CC 8003C6CC 00000000 */ nop -.L8003C6D0: -/* 03D2D0 8003C6D0 46060003 */ div.s $f0, $f0, $f6 -/* 03D2D4 8003C6D4 8E020064 */ lw $v0, 0x64($s0) -/* 03D2D8 8003C6D8 E6000008 */ swc1 $f0, 8($s0) -/* 03D2DC 8003C6DC 9228000A */ lbu $t0, 0xa($s1) -/* 03D2E0 8003C6E0 00000000 */ nop -/* 03D2E4 8003C6E4 00084A80 */ sll $t1, $t0, 0xa -/* 03D2E8 8003C6E8 A6090000 */ sh $t1, ($s0) -/* 03D2EC 8003C6EC 86040000 */ lh $a0, ($s0) -/* 03D2F0 8003C6F0 0C01C1F1 */ jal func_800707C4 -/* 03D2F4 8003C6F4 AFA20020 */ sw $v0, 0x20($sp) -/* 03D2F8 8003C6F8 8FA20020 */ lw $v0, 0x20($sp) -/* 03D2FC 8003C6FC 44804000 */ mtc1 $zero, $f8 -/* 03D300 8003C700 E4400000 */ swc1 $f0, ($v0) -/* 03D304 8003C704 E4480004 */ swc1 $f8, 4($v0) -/* 03D308 8003C708 86040000 */ lh $a0, ($s0) -/* 03D30C 8003C70C 0C01C1FE */ jal func_800707F8 -/* 03D310 8003C710 00000000 */ nop -/* 03D314 8003C714 8FA20020 */ lw $v0, 0x20($sp) -/* 03D318 8003C718 240C0002 */ li $t4, 2 -/* 03D31C 8003C71C E4400008 */ swc1 $f0, 8($v0) -/* 03D320 8003C720 C610000C */ lwc1 $f16, 0xc($s0) -/* 03D324 8003C724 C44A0000 */ lwc1 $f10, ($v0) -/* 03D328 8003C728 C6040014 */ lwc1 $f4, 0x14($s0) -/* 03D32C 8003C72C 46105482 */ mul.s $f18, $f10, $f16 -/* 03D330 8003C730 00000000 */ nop -/* 03D334 8003C734 46040182 */ mul.s $f6, $f0, $f4 -/* 03D338 8003C738 46069200 */ add.s $f8, $f18, $f6 -/* 03D33C 8003C73C 46004287 */ neg.s $f10, $f8 -/* 03D340 8003C740 E44A000C */ swc1 $f10, 0xc($v0) -/* 03D344 8003C744 922A0008 */ lbu $t2, 8($s1) -/* 03D348 8003C748 00000000 */ nop -/* 03D34C 8003C74C AC4A0010 */ sw $t2, 0x10($v0) -/* 03D350 8003C750 922B000D */ lbu $t3, 0xd($s1) -/* 03D354 8003C754 00000000 */ nop -/* 03D358 8003C758 A04B0014 */ sb $t3, 0x14($v0) -/* 03D35C 8003C75C 8E0D004C */ lw $t5, 0x4c($s0) -/* 03D360 8003C760 00000000 */ nop -/* 03D364 8003C764 A5AC0014 */ sh $t4, 0x14($t5) -/* 03D368 8003C768 8E0E004C */ lw $t6, 0x4c($s0) -/* 03D36C 8003C76C 00000000 */ nop -/* 03D370 8003C770 A1C00011 */ sb $zero, 0x11($t6) -/* 03D374 8003C774 8E18004C */ lw $t8, 0x4c($s0) -/* 03D378 8003C778 922F0008 */ lbu $t7, 8($s1) -/* 03D37C 8003C77C 00000000 */ nop -/* 03D380 8003C780 A30F0010 */ sb $t7, 0x10($t8) -/* 03D384 8003C784 8E19004C */ lw $t9, 0x4c($s0) -/* 03D388 8003C788 00000000 */ nop -/* 03D38C 8003C78C A3200012 */ sb $zero, 0x12($t9) -/* 03D390 8003C790 8FBF001C */ lw $ra, 0x1c($sp) -/* 03D394 8003C794 8FB10018 */ lw $s1, 0x18($sp) -/* 03D398 8003C798 8FB00014 */ lw $s0, 0x14($sp) -/* 03D39C 8003C79C 03E00008 */ jr $ra -/* 03D3A0 8003C7A0 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_airzippers_waterzippers.s b/asm/non_matchings/unknown_032760/obj_loop_airzippers_waterzippers.s deleted file mode 100644 index c1b5fdcc..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_airzippers_waterzippers.s +++ /dev/null @@ -1,103 +0,0 @@ -glabel obj_loop_airzippers_waterzippers -/* 03656C 8003596C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 036570 80035970 AFBF002C */ sw $ra, 0x2c($sp) -/* 036574 80035974 AFB30024 */ sw $s3, 0x24($sp) -/* 036578 80035978 00809825 */ move $s3, $a0 -/* 03657C 8003597C AFB40028 */ sw $s4, 0x28($sp) -/* 036580 80035980 AFB20020 */ sw $s2, 0x20($sp) -/* 036584 80035984 AFB1001C */ sw $s1, 0x1c($sp) -/* 036588 80035988 AFB00018 */ sw $s0, 0x18($sp) -/* 03658C 8003598C 0C003873 */ jal func_8000E1CC -/* 036590 80035990 AFA5005C */ sw $a1, 0x5c($sp) -/* 036594 80035994 14400006 */ bnez $v0, .L800359B0 -/* 036598 80035998 00000000 */ nop -/* 03659C 8003599C 866E0006 */ lh $t6, 6($s3) -/* 0365A0 800359A0 00000000 */ nop -/* 0365A4 800359A4 35CF4000 */ ori $t7, $t6, 0x4000 -/* 0365A8 800359A8 10000005 */ b .L800359C0 -/* 0365AC 800359AC A66F0006 */ sh $t7, 6($s3) -.L800359B0: -/* 0365B0 800359B0 86780006 */ lh $t8, 6($s3) -/* 0365B4 800359B4 00000000 */ nop -/* 0365B8 800359B8 3319BFFF */ andi $t9, $t8, 0xbfff -/* 0365BC 800359BC A6790006 */ sh $t9, 6($s3) -.L800359C0: -/* 0365C0 800359C0 8E68004C */ lw $t0, 0x4c($s3) -/* 0365C4 800359C4 00000000 */ nop -/* 0365C8 800359C8 91090013 */ lbu $t1, 0x13($t0) -/* 0365CC 800359CC 00000000 */ nop -/* 0365D0 800359D0 29210064 */ slti $at, $t1, 0x64 -/* 0365D4 800359D4 1020003D */ beqz $at, .L80035ACC -/* 0365D8 800359D8 8FBF002C */ lw $ra, 0x2c($sp) -/* 0365DC 800359DC 866A0006 */ lh $t2, 6($s3) -/* 0365E0 800359E0 00000000 */ nop -/* 0365E4 800359E4 314B4000 */ andi $t3, $t2, 0x4000 -/* 0365E8 800359E8 15600038 */ bnez $t3, .L80035ACC -/* 0365EC 800359EC 8FBF002C */ lw $ra, 0x2c($sp) -/* 0365F0 800359F0 0C006E9D */ jal get_object_struct_array -/* 0365F4 800359F4 27A40040 */ addiu $a0, $sp, 0x40 -/* 0365F8 800359F8 8FAC0040 */ lw $t4, 0x40($sp) -/* 0365FC 800359FC 00008825 */ move $s1, $zero -/* 036600 80035A00 19800031 */ blez $t4, .L80035AC8 -/* 036604 80035A04 00409025 */ move $s2, $v0 -/* 036608 80035A08 24140001 */ li $s4, 1 -.L80035A0C: -/* 03660C 80035A0C 8E420000 */ lw $v0, ($s2) -/* 036610 80035A10 00000000 */ nop -/* 036614 80035A14 8C500064 */ lw $s0, 0x64($v0) -/* 036618 80035A18 00000000 */ nop -/* 03661C 80035A1C 920D01F5 */ lbu $t5, 0x1f5($s0) -/* 036620 80035A20 00000000 */ nop -/* 036624 80035A24 15A00024 */ bnez $t5, .L80035AB8 -/* 036628 80035A28 8FB90040 */ lw $t9, 0x40($sp) -/* 03662C 80035A2C 820E01D3 */ lb $t6, 0x1d3($s0) -/* 036630 80035A30 00000000 */ nop -/* 036634 80035A34 29C1000F */ slti $at, $t6, 0xf -/* 036638 80035A38 1020001F */ beqz $at, .L80035AB8 -/* 03663C 80035A3C 8FB90040 */ lw $t9, 0x40($sp) -/* 036640 80035A40 C444000C */ lwc1 $f4, 0xc($v0) -/* 036644 80035A44 C666000C */ lwc1 $f6, 0xc($s3) -/* 036648 80035A48 C4480010 */ lwc1 $f8, 0x10($v0) -/* 03664C 80035A4C 46062001 */ sub.s $f0, $f4, $f6 -/* 036650 80035A50 C66A0010 */ lwc1 $f10, 0x10($s3) -/* 036654 80035A54 46000102 */ mul.s $f4, $f0, $f0 -/* 036658 80035A58 460A4081 */ sub.s $f2, $f8, $f10 -/* 03665C 80035A5C C4500014 */ lwc1 $f16, 0x14($v0) -/* 036660 80035A60 C6720014 */ lwc1 $f18, 0x14($s3) -/* 036664 80035A64 46021182 */ mul.s $f6, $f2, $f2 -/* 036668 80035A68 46128381 */ sub.s $f14, $f16, $f18 -/* 03666C 80035A6C 460E7282 */ mul.s $f10, $f14, $f14 -/* 036670 80035A70 46062200 */ add.s $f8, $f4, $f6 -/* 036674 80035A74 0C0326B4 */ jal sqrtf -/* 036678 80035A78 460A4300 */ add.s $f12, $f8, $f10 -/* 03667C 80035A7C 444FF800 */ cfc1 $t7, $31 -/* 036680 80035A80 00000000 */ nop -/* 036684 80035A84 35E10003 */ ori $at, $t7, 3 -/* 036688 80035A88 38210002 */ xori $at, $at, 2 -/* 03668C 80035A8C 44C1F800 */ ctc1 $at, $31 -/* 036690 80035A90 00000000 */ nop -/* 036694 80035A94 46000424 */ cvt.w.s $f16, $f0 -/* 036698 80035A98 44188000 */ mfc1 $t8, $f16 -/* 03669C 80035A9C 44CFF800 */ ctc1 $t7, $31 -/* 0366A0 80035AA0 2B010064 */ slti $at, $t8, 0x64 -/* 0366A4 80035AA4 10200004 */ beqz $at, .L80035AB8 -/* 0366A8 80035AA8 8FB90040 */ lw $t9, 0x40($sp) -/* 0366AC 80035AAC A21401F5 */ sb $s4, 0x1f5($s0) -/* 0366B0 80035AB0 AE13014C */ sw $s3, 0x14c($s0) -/* 0366B4 80035AB4 8FB90040 */ lw $t9, 0x40($sp) -.L80035AB8: -/* 0366B8 80035AB8 26310001 */ addiu $s1, $s1, 1 -/* 0366BC 80035ABC 0239082A */ slt $at, $s1, $t9 -/* 0366C0 80035AC0 1420FFD2 */ bnez $at, .L80035A0C -/* 0366C4 80035AC4 26520004 */ addiu $s2, $s2, 4 -.L80035AC8: -/* 0366C8 80035AC8 8FBF002C */ lw $ra, 0x2c($sp) -.L80035ACC: -/* 0366CC 80035ACC 8FB00018 */ lw $s0, 0x18($sp) -/* 0366D0 80035AD0 8FB1001C */ lw $s1, 0x1c($sp) -/* 0366D4 80035AD4 8FB20020 */ lw $s2, 0x20($sp) -/* 0366D8 80035AD8 8FB30024 */ lw $s3, 0x24($sp) -/* 0366DC 80035ADC 8FB40028 */ lw $s4, 0x28($sp) -/* 0366E0 80035AE0 03E00008 */ jr $ra -/* 0366E4 80035AE4 27BD0058 */ addiu $sp, $sp, 0x58 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_bonus.s b/asm/non_matchings/unknown_032760/obj_loop_bonus.s deleted file mode 100644 index d40e9d3a..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_bonus.s +++ /dev/null @@ -1,131 +0,0 @@ -glabel obj_loop_bonus -/* 03BD74 8003B174 27BDFF70 */ addiu $sp, $sp, -0x90 -/* 03BD78 8003B178 AFBF0054 */ sw $ra, 0x54($sp) -/* 03BD7C 8003B17C AFB60050 */ sw $s6, 0x50($sp) -/* 03BD80 8003B180 AFB5004C */ sw $s5, 0x4c($sp) -/* 03BD84 8003B184 AFB40048 */ sw $s4, 0x48($sp) -/* 03BD88 8003B188 AFB30044 */ sw $s3, 0x44($sp) -/* 03BD8C 8003B18C AFB20040 */ sw $s2, 0x40($sp) -/* 03BD90 8003B190 AFB1003C */ sw $s1, 0x3c($sp) -/* 03BD94 8003B194 AFB00038 */ sw $s0, 0x38($sp) -/* 03BD98 8003B198 E7B90030 */ swc1 $f25, 0x30($sp) -/* 03BD9C 8003B19C E7B80034 */ swc1 $f24, 0x34($sp) -/* 03BDA0 8003B1A0 E7B70028 */ swc1 $f23, 0x28($sp) -/* 03BDA4 8003B1A4 E7B6002C */ swc1 $f22, 0x2c($sp) -/* 03BDA8 8003B1A8 E7B50020 */ swc1 $f21, 0x20($sp) -/* 03BDAC 8003B1AC E7B40024 */ swc1 $f20, 0x24($sp) -/* 03BDB0 8003B1B0 AFA50094 */ sw $a1, 0x94($sp) -/* 03BDB4 8003B1B4 8C940064 */ lw $s4, 0x64($a0) -/* 03BDB8 8003B1B8 8C8E004C */ lw $t6, 0x4c($a0) -/* 03BDBC 8003B1BC 8E820010 */ lw $v0, 0x10($s4) -/* 03BDC0 8003B1C0 91CF0013 */ lbu $t7, 0x13($t6) -/* 03BDC4 8003B1C4 0080A825 */ move $s5, $a0 -/* 03BDC8 8003B1C8 01E2082A */ slt $at, $t7, $v0 -/* 03BDCC 8003B1CC 10200056 */ beqz $at, .L8003B328 -/* 03BDD0 8003B1D0 27A40084 */ addiu $a0, $sp, 0x84 -/* 03BDD4 8003B1D4 44822000 */ mtc1 $v0, $f4 -/* 03BDD8 8003B1D8 0C006E9D */ jal get_object_struct_array -/* 03BDDC 8003B1DC 468025A0 */ cvt.s.w $f22, $f4 -/* 03BDE0 8003B1E0 8FB80084 */ lw $t8, 0x84($sp) -/* 03BDE4 8003B1E4 00009025 */ move $s2, $zero -/* 03BDE8 8003B1E8 1B00004F */ blez $t8, .L8003B328 -/* 03BDEC 8003B1EC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 03BDF0 8003B1F0 44814800 */ mtc1 $at, $f9 -/* 03BDF4 8003B1F4 44804000 */ mtc1 $zero, $f8 -/* 03BDF8 8003B1F8 4600B1A1 */ cvt.d.s $f6, $f22 -/* 03BDFC 8003B1FC 46283282 */ mul.d $f10, $f6, $f8 -/* 03BE00 8003B200 4480C000 */ mtc1 $zero, $f24 -/* 03BE04 8003B204 00409825 */ move $s3, $v0 -/* 03BE08 8003B208 2416000A */ li $s6, 10 -/* 03BE0C 8003B20C 46205520 */ cvt.s.d $f20, $f10 -.L8003B210: -/* 03BE10 8003B210 8E700000 */ lw $s0, ($s3) -/* 03BE14 8003B214 C6B20010 */ lwc1 $f18, 0x10($s5) -/* 03BE18 8003B218 C6100010 */ lwc1 $f16, 0x10($s0) -/* 03BE1C 8003B21C 8E110064 */ lw $s1, 0x64($s0) -/* 03BE20 8003B220 46128381 */ sub.s $f14, $f16, $f18 -/* 03BE24 8003B224 4614703C */ c.lt.s $f14, $f20 -/* 03BE28 8003B228 00000000 */ nop -/* 03BE2C 8003B22C 4500003A */ bc1f .L8003B318 -/* 03BE30 8003B230 8FAA0084 */ lw $t2, 0x84($sp) -/* 03BE34 8003B234 4600A107 */ neg.s $f4, $f20 -/* 03BE38 8003B238 460E203C */ c.lt.s $f4, $f14 -/* 03BE3C 8003B23C 00000000 */ nop -/* 03BE40 8003B240 45000035 */ bc1f .L8003B318 -/* 03BE44 8003B244 8FAA0084 */ lw $t2, 0x84($sp) -/* 03BE48 8003B248 C606000C */ lwc1 $f6, 0xc($s0) -/* 03BE4C 8003B24C C6A8000C */ lwc1 $f8, 0xc($s5) -/* 03BE50 8003B250 C60A0014 */ lwc1 $f10, 0x14($s0) -/* 03BE54 8003B254 46083001 */ sub.s $f0, $f6, $f8 -/* 03BE58 8003B258 C6B00014 */ lwc1 $f16, 0x14($s5) -/* 03BE5C 8003B25C 46000482 */ mul.s $f18, $f0, $f0 -/* 03BE60 8003B260 46105081 */ sub.s $f2, $f10, $f16 -/* 03BE64 8003B264 460E7102 */ mul.s $f4, $f14, $f14 -/* 03BE68 8003B268 00000000 */ nop -/* 03BE6C 8003B26C 46021202 */ mul.s $f8, $f2, $f2 -/* 03BE70 8003B270 46049180 */ add.s $f6, $f18, $f4 -/* 03BE74 8003B274 0C0326B4 */ jal sqrtf -/* 03BE78 8003B278 46083300 */ add.s $f12, $f6, $f8 -/* 03BE7C 8003B27C 4616003C */ c.lt.s $f0, $f22 -/* 03BE80 8003B280 00000000 */ nop -/* 03BE84 8003B284 45000024 */ bc1f .L8003B318 -/* 03BE88 8003B288 8FAA0084 */ lw $t2, 0x84($sp) -/* 03BE8C 8003B28C C68A0000 */ lwc1 $f10, ($s4) -/* 03BE90 8003B290 C610000C */ lwc1 $f16, 0xc($s0) -/* 03BE94 8003B294 C6840008 */ lwc1 $f4, 8($s4) -/* 03BE98 8003B298 46105482 */ mul.s $f18, $f10, $f16 -/* 03BE9C 8003B29C C6060014 */ lwc1 $f6, 0x14($s0) -/* 03BEA0 8003B2A0 C690000C */ lwc1 $f16, 0xc($s4) -/* 03BEA4 8003B2A4 46062202 */ mul.s $f8, $f4, $f6 -/* 03BEA8 8003B2A8 46089280 */ add.s $f10, $f18, $f8 -/* 03BEAC 8003B2AC 46105000 */ add.s $f0, $f10, $f16 -/* 03BEB0 8003B2B0 4618003C */ c.lt.s $f0, $f24 -/* 03BEB4 8003B2B4 00000000 */ nop -/* 03BEB8 8003B2B8 45000017 */ bc1f .L8003B318 -/* 03BEBC 8003B2BC 8FAA0084 */ lw $t2, 0x84($sp) -/* 03BEC0 8003B2C0 82390185 */ lb $t9, 0x185($s1) -/* 03BEC4 8003B2C4 24040022 */ li $a0, 34 -/* 03BEC8 8003B2C8 2B21000A */ slti $at, $t9, 0xa -/* 03BECC 8003B2CC 10200011 */ beqz $at, .L8003B314 -/* 03BED0 8003B2D0 24080004 */ li $t0, 4 -/* 03BED4 8003B2D4 A2360185 */ sb $s6, 0x185($s1) -/* 03BED8 8003B2D8 8E070014 */ lw $a3, 0x14($s0) -/* 03BEDC 8003B2DC 8E060010 */ lw $a2, 0x10($s0) -/* 03BEE0 8003B2E0 8E05000C */ lw $a1, 0xc($s0) -/* 03BEE4 8003B2E4 AFA00014 */ sw $zero, 0x14($sp) -/* 03BEE8 8003B2E8 0C002556 */ jal func_80009558 -/* 03BEEC 8003B2EC AFA80010 */ sw $t0, 0x10($sp) -/* 03BEF0 8003B2F0 82240003 */ lb $a0, 3($s1) -/* 03BEF4 8003B2F4 8E05000C */ lw $a1, 0xc($s0) -/* 03BEF8 8003B2F8 2484007B */ addiu $a0, $a0, 0x7b -/* 03BEFC 8003B2FC 3089FFFF */ andi $t1, $a0, 0xffff -/* 03BF00 8003B300 8E060010 */ lw $a2, 0x10($s0) -/* 03BF04 8003B304 8E070014 */ lw $a3, 0x14($s0) -/* 03BF08 8003B308 AFA00010 */ sw $zero, 0x10($sp) -/* 03BF0C 8003B30C 0C0007AA */ jal func_80001EA8 -/* 03BF10 8003B310 01202025 */ move $a0, $t1 -.L8003B314: -/* 03BF14 8003B314 8FAA0084 */ lw $t2, 0x84($sp) -.L8003B318: -/* 03BF18 8003B318 26520001 */ addiu $s2, $s2, 1 -/* 03BF1C 8003B31C 024A082A */ slt $at, $s2, $t2 -/* 03BF20 8003B320 1420FFBB */ bnez $at, .L8003B210 -/* 03BF24 8003B324 26730004 */ addiu $s3, $s3, 4 -.L8003B328: -/* 03BF28 8003B328 8FBF0054 */ lw $ra, 0x54($sp) -/* 03BF2C 8003B32C C7B50020 */ lwc1 $f21, 0x20($sp) -/* 03BF30 8003B330 C7B40024 */ lwc1 $f20, 0x24($sp) -/* 03BF34 8003B334 C7B70028 */ lwc1 $f23, 0x28($sp) -/* 03BF38 8003B338 C7B6002C */ lwc1 $f22, 0x2c($sp) -/* 03BF3C 8003B33C C7B90030 */ lwc1 $f25, 0x30($sp) -/* 03BF40 8003B340 C7B80034 */ lwc1 $f24, 0x34($sp) -/* 03BF44 8003B344 8FB00038 */ lw $s0, 0x38($sp) -/* 03BF48 8003B348 8FB1003C */ lw $s1, 0x3c($sp) -/* 03BF4C 8003B34C 8FB20040 */ lw $s2, 0x40($sp) -/* 03BF50 8003B350 8FB30044 */ lw $s3, 0x44($sp) -/* 03BF54 8003B354 8FB40048 */ lw $s4, 0x48($sp) -/* 03BF58 8003B358 8FB5004C */ lw $s5, 0x4c($sp) -/* 03BF5C 8003B35C 8FB60050 */ lw $s6, 0x50($sp) -/* 03BF60 8003B360 03E00008 */ jr $ra -/* 03BF64 8003B364 27BD0090 */ addiu $sp, $sp, 0x90 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_exit.s b/asm/non_matchings/unknown_032760/obj_loop_exit.s deleted file mode 100644 index e2d5a882..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_exit.s +++ /dev/null @@ -1,138 +0,0 @@ -glabel obj_loop_exit -/* 039B58 80038F58 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 039B5C 80038F5C AFBF0044 */ sw $ra, 0x44($sp) -/* 039B60 80038F60 AFB70040 */ sw $s7, 0x40($sp) -/* 039B64 80038F64 AFB6003C */ sw $s6, 0x3c($sp) -/* 039B68 80038F68 AFB50038 */ sw $s5, 0x38($sp) -/* 039B6C 80038F6C AFB40034 */ sw $s4, 0x34($sp) -/* 039B70 80038F70 AFB30030 */ sw $s3, 0x30($sp) -/* 039B74 80038F74 AFB2002C */ sw $s2, 0x2c($sp) -/* 039B78 80038F78 AFB10028 */ sw $s1, 0x28($sp) -/* 039B7C 80038F7C AFB00024 */ sw $s0, 0x24($sp) -/* 039B80 80038F80 E7B70018 */ swc1 $f23, 0x18($sp) -/* 039B84 80038F84 E7B6001C */ swc1 $f22, 0x1c($sp) -/* 039B88 80038F88 E7B50010 */ swc1 $f21, 0x10($sp) -/* 039B8C 80038F8C E7B40014 */ swc1 $f20, 0x14($sp) -/* 039B90 80038F90 AFA50084 */ sw $a1, 0x84($sp) -/* 039B94 80038F94 8C950064 */ lw $s5, 0x64($a0) -/* 039B98 80038F98 0080A025 */ move $s4, $a0 -/* 039B9C 80038F9C 0C01BAA4 */ jal get_settings -/* 039BA0 80038FA0 24100001 */ li $s0, 1 -/* 039BA4 80038FA4 82A30014 */ lb $v1, 0x14($s5) -/* 039BA8 80038FA8 00000000 */ nop -/* 039BAC 80038FAC 1460000B */ bnez $v1, .L80038FDC -/* 039BB0 80038FB0 24010001 */ li $at, 1 -/* 039BB4 80038FB4 904F0048 */ lbu $t7, 0x48($v0) -/* 039BB8 80038FB8 8C4E0000 */ lw $t6, ($v0) -/* 039BBC 80038FBC 000FC040 */ sll $t8, $t7, 1 -/* 039BC0 80038FC0 01D8C821 */ addu $t9, $t6, $t8 -/* 039BC4 80038FC4 87280000 */ lh $t0, ($t9) -/* 039BC8 80038FC8 24010008 */ li $at, 8 -/* 039BCC 80038FCC 15010003 */ bne $t0, $at, .L80038FDC -/* 039BD0 80038FD0 24010001 */ li $at, 1 -/* 039BD4 80038FD4 00008025 */ move $s0, $zero -/* 039BD8 80038FD8 24010001 */ li $at, 1 -.L80038FDC: -/* 039BDC 80038FDC 1461000B */ bne $v1, $at, .L8003900C -/* 039BE0 80038FE0 00000000 */ nop -/* 039BE4 80038FE4 904A0048 */ lbu $t2, 0x48($v0) -/* 039BE8 80038FE8 8C490000 */ lw $t1, ($v0) -/* 039BEC 80038FEC 000A5840 */ sll $t3, $t2, 1 -/* 039BF0 80038FF0 012B6021 */ addu $t4, $t1, $t3 -/* 039BF4 80038FF4 858D0000 */ lh $t5, ($t4) -/* 039BF8 80038FF8 00000000 */ nop -/* 039BFC 80038FFC 29A10008 */ slti $at, $t5, 8 -/* 039C00 80039000 10200002 */ beqz $at, .L8003900C -/* 039C04 80039004 00000000 */ nop -/* 039C08 80039008 00008025 */ move $s0, $zero -.L8003900C: -/* 039C0C 8003900C 12000046 */ beqz $s0, .L80039128 -/* 039C10 80039010 8FBF0044 */ lw $ra, 0x44($sp) -/* 039C14 80039014 8E8F004C */ lw $t7, 0x4c($s4) -/* 039C18 80039018 8EA20010 */ lw $v0, 0x10($s5) -/* 039C1C 8003901C 91EE0013 */ lbu $t6, 0x13($t7) -/* 039C20 80039020 27A40074 */ addiu $a0, $sp, 0x74 -/* 039C24 80039024 01C2082A */ slt $at, $t6, $v0 -/* 039C28 80039028 1020003F */ beqz $at, .L80039128 -/* 039C2C 8003902C 8FBF0044 */ lw $ra, 0x44($sp) -/* 039C30 80039030 44822000 */ mtc1 $v0, $f4 -/* 039C34 80039034 0C006E9D */ jal get_object_struct_array -/* 039C38 80039038 468025A0 */ cvt.s.w $f22, $f4 -/* 039C3C 8003903C 8FB80074 */ lw $t8, 0x74($sp) -/* 039C40 80039040 00009025 */ move $s2, $zero -/* 039C44 80039044 1B000037 */ blez $t8, .L80039124 -/* 039C48 80039048 00409825 */ move $s3, $v0 -/* 039C4C 8003904C 4480A000 */ mtc1 $zero, $f20 -/* 039C50 80039050 2417FF88 */ li $s7, -120 -/* 039C54 80039054 2416FFFF */ li $s6, -1 -.L80039058: -/* 039C58 80039058 8E700000 */ lw $s0, ($s3) -/* 039C5C 8003905C 00000000 */ nop -/* 039C60 80039060 8E110064 */ lw $s1, 0x64($s0) -/* 039C64 80039064 00000000 */ nop -/* 039C68 80039068 86390000 */ lh $t9, ($s1) -/* 039C6C 8003906C 00000000 */ nop -/* 039C70 80039070 12D90028 */ beq $s6, $t9, .L80039114 -/* 039C74 80039074 8FAA0074 */ lw $t2, 0x74($sp) -/* 039C78 80039078 8E280108 */ lw $t0, 0x108($s1) -/* 039C7C 8003907C 00000000 */ nop -/* 039C80 80039080 15000024 */ bnez $t0, .L80039114 -/* 039C84 80039084 8FAA0074 */ lw $t2, 0x74($sp) -/* 039C88 80039088 C606000C */ lwc1 $f6, 0xc($s0) -/* 039C8C 8003908C C688000C */ lwc1 $f8, 0xc($s4) -/* 039C90 80039090 C60A0010 */ lwc1 $f10, 0x10($s0) -/* 039C94 80039094 46083001 */ sub.s $f0, $f6, $f8 -/* 039C98 80039098 C6900010 */ lwc1 $f16, 0x10($s4) -/* 039C9C 8003909C 46000182 */ mul.s $f6, $f0, $f0 -/* 039CA0 800390A0 46105081 */ sub.s $f2, $f10, $f16 -/* 039CA4 800390A4 C6120014 */ lwc1 $f18, 0x14($s0) -/* 039CA8 800390A8 C6840014 */ lwc1 $f4, 0x14($s4) -/* 039CAC 800390AC 46021202 */ mul.s $f8, $f2, $f2 -/* 039CB0 800390B0 46049381 */ sub.s $f14, $f18, $f4 -/* 039CB4 800390B4 460E7402 */ mul.s $f16, $f14, $f14 -/* 039CB8 800390B8 46083280 */ add.s $f10, $f6, $f8 -/* 039CBC 800390BC 0C0326B4 */ jal sqrtf -/* 039CC0 800390C0 46105300 */ add.s $f12, $f10, $f16 -/* 039CC4 800390C4 4616003C */ c.lt.s $f0, $f22 -/* 039CC8 800390C8 00000000 */ nop -/* 039CCC 800390CC 45000011 */ bc1f .L80039114 -/* 039CD0 800390D0 8FAA0074 */ lw $t2, 0x74($sp) -/* 039CD4 800390D4 C6B20000 */ lwc1 $f18, ($s5) -/* 039CD8 800390D8 C604000C */ lwc1 $f4, 0xc($s0) -/* 039CDC 800390DC C6A80008 */ lwc1 $f8, 8($s5) -/* 039CE0 800390E0 46049182 */ mul.s $f6, $f18, $f4 -/* 039CE4 800390E4 C60A0014 */ lwc1 $f10, 0x14($s0) -/* 039CE8 800390E8 C6A4000C */ lwc1 $f4, 0xc($s5) -/* 039CEC 800390EC 460A4402 */ mul.s $f16, $f8, $f10 -/* 039CF0 800390F0 46103480 */ add.s $f18, $f6, $f16 -/* 039CF4 800390F4 46049000 */ add.s $f0, $f18, $f4 -/* 039CF8 800390F8 4614003C */ c.lt.s $f0, $f20 -/* 039CFC 800390FC 00000000 */ nop -/* 039D00 80039100 45000004 */ bc1f .L80039114 -/* 039D04 80039104 8FAA0074 */ lw $t2, 0x74($sp) -/* 039D08 80039108 AE340108 */ sw $s4, 0x108($s1) -/* 039D0C 8003910C A2370200 */ sb $s7, 0x200($s1) -/* 039D10 80039110 8FAA0074 */ lw $t2, 0x74($sp) -.L80039114: -/* 039D14 80039114 26520001 */ addiu $s2, $s2, 1 -/* 039D18 80039118 024A082A */ slt $at, $s2, $t2 -/* 039D1C 8003911C 1420FFCE */ bnez $at, .L80039058 -/* 039D20 80039120 26730004 */ addiu $s3, $s3, 4 -.L80039124: -/* 039D24 80039124 8FBF0044 */ lw $ra, 0x44($sp) -.L80039128: -/* 039D28 80039128 C7B50010 */ lwc1 $f21, 0x10($sp) -/* 039D2C 8003912C C7B40014 */ lwc1 $f20, 0x14($sp) -/* 039D30 80039130 C7B70018 */ lwc1 $f23, 0x18($sp) -/* 039D34 80039134 C7B6001C */ lwc1 $f22, 0x1c($sp) -/* 039D38 80039138 8FB00024 */ lw $s0, 0x24($sp) -/* 039D3C 8003913C 8FB10028 */ lw $s1, 0x28($sp) -/* 039D40 80039140 8FB2002C */ lw $s2, 0x2c($sp) -/* 039D44 80039144 8FB30030 */ lw $s3, 0x30($sp) -/* 039D48 80039148 8FB40034 */ lw $s4, 0x34($sp) -/* 039D4C 8003914C 8FB50038 */ lw $s5, 0x38($sp) -/* 039D50 80039150 8FB6003C */ lw $s6, 0x3c($sp) -/* 039D54 80039154 8FB70040 */ lw $s7, 0x40($sp) -/* 039D58 80039158 03E00008 */ jr $ra -/* 039D5C 8003915C 27BD0080 */ addiu $sp, $sp, 0x80 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_groundzipper.s b/asm/non_matchings/unknown_032760/obj_loop_groundzipper.s deleted file mode 100644 index 4e4dda29..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_groundzipper.s +++ /dev/null @@ -1,124 +0,0 @@ -glabel obj_loop_groundzipper -/* 036850 80035C50 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 036854 80035C54 AFBF003C */ sw $ra, 0x3c($sp) -/* 036858 80035C58 AFB60038 */ sw $s6, 0x38($sp) -/* 03685C 80035C5C AFB50034 */ sw $s5, 0x34($sp) -/* 036860 80035C60 AFB40030 */ sw $s4, 0x30($sp) -/* 036864 80035C64 AFB3002C */ sw $s3, 0x2c($sp) -/* 036868 80035C68 AFB20028 */ sw $s2, 0x28($sp) -/* 03686C 80035C6C AFB10024 */ sw $s1, 0x24($sp) -/* 036870 80035C70 AFB00020 */ sw $s0, 0x20($sp) -/* 036874 80035C74 AFA5006C */ sw $a1, 0x6c($sp) -/* 036878 80035C78 848E0006 */ lh $t6, 6($a0) -/* 03687C 80035C7C 00809025 */ move $s2, $a0 -/* 036880 80035C80 31CFBFFF */ andi $t7, $t6, 0xbfff -/* 036884 80035C84 A48F0006 */ sh $t7, 6($a0) -/* 036888 80035C88 84980006 */ lh $t8, 6($a0) -/* 03688C 80035C8C 00000000 */ nop -/* 036890 80035C90 37191000 */ ori $t9, $t8, 0x1000 -/* 036894 80035C94 A4990006 */ sh $t9, 6($a0) -/* 036898 80035C98 0C006EB2 */ jal get_object_struct -/* 03689C 80035C9C 00002025 */ move $a0, $zero -/* 0368A0 80035CA0 8E48004C */ lw $t0, 0x4c($s2) -/* 0368A4 80035CA4 8E4A0078 */ lw $t2, 0x78($s2) -/* 0368A8 80035CA8 91090013 */ lbu $t1, 0x13($t0) -/* 0368AC 80035CAC 00000000 */ nop -/* 0368B0 80035CB0 012A082A */ slt $at, $t1, $t2 -/* 0368B4 80035CB4 10200051 */ beqz $at, .L80035DFC -/* 0368B8 80035CB8 8FBF003C */ lw $ra, 0x3c($sp) -/* 0368BC 80035CBC 0C006E9D */ jal get_object_struct_array -/* 0368C0 80035CC0 27A40054 */ addiu $a0, $sp, 0x54 -/* 0368C4 80035CC4 8FAB0054 */ lw $t3, 0x54($sp) -/* 0368C8 80035CC8 00009825 */ move $s3, $zero -/* 0368CC 80035CCC 1960004A */ blez $t3, .L80035DF8 -/* 0368D0 80035CD0 0040A025 */ move $s4, $v0 -/* 0368D4 80035CD4 24160002 */ li $s6, 2 -/* 0368D8 80035CD8 2415FFFF */ li $s5, -1 -.L80035CDC: -/* 0368DC 80035CDC 8E910000 */ lw $s1, ($s4) -/* 0368E0 80035CE0 00000000 */ nop -/* 0368E4 80035CE4 8E300064 */ lw $s0, 0x64($s1) -/* 0368E8 80035CE8 00000000 */ nop -/* 0368EC 80035CEC 820C01D3 */ lb $t4, 0x1d3($s0) -/* 0368F0 80035CF0 00000000 */ nop -/* 0368F4 80035CF4 2981000F */ slti $at, $t4, 0xf -/* 0368F8 80035CF8 1020003B */ beqz $at, .L80035DE8 -/* 0368FC 80035CFC 8FAC0054 */ lw $t4, 0x54($sp) -/* 036900 80035D00 820D01E2 */ lb $t5, 0x1e2($s0) -/* 036904 80035D04 00000000 */ nop -/* 036908 80035D08 11A00037 */ beqz $t5, .L80035DE8 -/* 03690C 80035D0C 8FAC0054 */ lw $t4, 0x54($sp) -/* 036910 80035D10 C624000C */ lwc1 $f4, 0xc($s1) -/* 036914 80035D14 C646000C */ lwc1 $f6, 0xc($s2) -/* 036918 80035D18 C6280010 */ lwc1 $f8, 0x10($s1) -/* 03691C 80035D1C 46062001 */ sub.s $f0, $f4, $f6 -/* 036920 80035D20 C64A0010 */ lwc1 $f10, 0x10($s2) -/* 036924 80035D24 46000102 */ mul.s $f4, $f0, $f0 -/* 036928 80035D28 460A4081 */ sub.s $f2, $f8, $f10 -/* 03692C 80035D2C C6300014 */ lwc1 $f16, 0x14($s1) -/* 036930 80035D30 C6520014 */ lwc1 $f18, 0x14($s2) -/* 036934 80035D34 46021182 */ mul.s $f6, $f2, $f2 -/* 036938 80035D38 46128381 */ sub.s $f14, $f16, $f18 -/* 03693C 80035D3C 460E7282 */ mul.s $f10, $f14, $f14 -/* 036940 80035D40 46062200 */ add.s $f8, $f4, $f6 -/* 036944 80035D44 0C0326B4 */ jal sqrtf -/* 036948 80035D48 460A4300 */ add.s $f12, $f8, $f10 -/* 03694C 80035D4C 444EF800 */ cfc1 $t6, $31 -/* 036950 80035D50 8E580078 */ lw $t8, 0x78($s2) -/* 036954 80035D54 35C10003 */ ori $at, $t6, 3 -/* 036958 80035D58 38210002 */ xori $at, $at, 2 -/* 03695C 80035D5C 44C1F800 */ ctc1 $at, $31 -/* 036960 80035D60 00000000 */ nop -/* 036964 80035D64 46000424 */ cvt.w.s $f16, $f0 -/* 036968 80035D68 440F8000 */ mfc1 $t7, $f16 -/* 03696C 80035D6C 44CEF800 */ ctc1 $t6, $31 -/* 036970 80035D70 01F8082A */ slt $at, $t7, $t8 -/* 036974 80035D74 1020001C */ beqz $at, .L80035DE8 -/* 036978 80035D78 8FAC0054 */ lw $t4, 0x54($sp) -/* 03697C 80035D7C 86190000 */ lh $t9, ($s0) -/* 036980 80035D80 24040107 */ li $a0, 263 -/* 036984 80035D84 12B90006 */ beq $s5, $t9, .L80035DA0 -/* 036988 80035D88 00000000 */ nop -/* 03698C 80035D8C 8E25000C */ lw $a1, 0xc($s1) -/* 036990 80035D90 8E260010 */ lw $a2, 0x10($s1) -/* 036994 80035D94 8E270014 */ lw $a3, 0x14($s1) -/* 036998 80035D98 0C0007AA */ jal func_80001EA8 -/* 03699C 80035D9C AFA00010 */ sw $zero, 0x10($sp) -.L80035DA0: -/* 0369A0 80035DA0 0C00322D */ jal func_8000C8B4 -/* 0369A4 80035DA4 2404002D */ li $a0, 45 -/* 0369A8 80035DA8 9208020C */ lbu $t0, 0x20c($s0) -/* 0369AC 80035DAC A20201D3 */ sb $v0, 0x1d3($s0) -/* 0369B0 80035DB0 11000005 */ beqz $t0, .L80035DC8 -/* 0369B4 80035DB4 A2160203 */ sb $s6, 0x203($s0) -/* 0369B8 80035DB8 82090203 */ lb $t1, 0x203($s0) -/* 0369BC 80035DBC 00000000 */ nop -/* 0369C0 80035DC0 352A0004 */ ori $t2, $t1, 4 -/* 0369C4 80035DC4 A20A0203 */ sb $t2, 0x203($s0) -.L80035DC8: -/* 0369C8 80035DC8 820B01D8 */ lb $t3, 0x1d8($s0) -/* 0369CC 80035DCC 00000000 */ nop -/* 0369D0 80035DD0 15600005 */ bnez $t3, .L80035DE8 -/* 0369D4 80035DD4 8FAC0054 */ lw $t4, 0x54($sp) -/* 0369D8 80035DD8 86040000 */ lh $a0, ($s0) -/* 0369DC 80035DDC 0C01C8D2 */ jal func_80072348 -/* 0369E0 80035DE0 24050008 */ li $a1, 8 -/* 0369E4 80035DE4 8FAC0054 */ lw $t4, 0x54($sp) -.L80035DE8: -/* 0369E8 80035DE8 26730001 */ addiu $s3, $s3, 1 -/* 0369EC 80035DEC 026C082A */ slt $at, $s3, $t4 -/* 0369F0 80035DF0 1420FFBA */ bnez $at, .L80035CDC -/* 0369F4 80035DF4 26940004 */ addiu $s4, $s4, 4 -.L80035DF8: -/* 0369F8 80035DF8 8FBF003C */ lw $ra, 0x3c($sp) -.L80035DFC: -/* 0369FC 80035DFC 8FB00020 */ lw $s0, 0x20($sp) -/* 036A00 80035E00 8FB10024 */ lw $s1, 0x24($sp) -/* 036A04 80035E04 8FB20028 */ lw $s2, 0x28($sp) -/* 036A08 80035E08 8FB3002C */ lw $s3, 0x2c($sp) -/* 036A0C 80035E0C 8FB40030 */ lw $s4, 0x30($sp) -/* 036A10 80035E10 8FB50034 */ lw $s5, 0x34($sp) -/* 036A14 80035E14 8FB60038 */ lw $s6, 0x38($sp) -/* 036A18 80035E18 03E00008 */ jr $ra -/* 036A1C 80035E1C 27BD0068 */ addiu $sp, $sp, 0x68 - diff --git a/include/level_object_entries.h b/include/level_object_entries.h index 1f9d4f54..66698a01 100644 --- a/include/level_object_entries.h +++ b/include/level_object_entries.h @@ -91,6 +91,17 @@ typedef struct LevelObjectEntry_Checkpoint { typedef struct LevelObjectEntry_Door { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 closedRotation; + /* 0x09 */ u8 openRotation; + /* 0x0A */ u8 modelIndex; + /* 0x0B */ u8 distanceToOpen; + /* 0x0C */ s8 unkC; + /* 0x0D */ u8 numBalloonsToOpen; + /* 0x0E */ u8 unkE; + /* 0x0F */ u8 unkF; + /* 0x10 */ u8 unk10; + /* 0x11 */ s8 unk11; + /* 0x12 */ u8 scale; } LevelObjectEntry_Door; typedef struct LevelObjectEntry_FogChanger { @@ -246,6 +257,12 @@ typedef struct LevelObjectEntry_InfoPoint { typedef struct LevelObjectEntry_Trigger { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 scale; + /* 0x09 */ s8 unk9; + /* 0x0A */ u8 rotation; + /* 0x0B */ u8 unkB; + /* 0x0C */ u8 unkC; + /* 0x0D */ u8 unkD; } LevelObjectEntry_Trigger; typedef struct LevelObjectEntry_AirZippers_WaterZippers { @@ -336,6 +353,9 @@ typedef struct LevelObjectEntry_FlyCoin { typedef struct LevelObjectEntry_GoldenBalloon { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ s8 unk8; + /* 0x09 */ u8 scale; + /* 0x0A */ s8 unkA; } LevelObjectEntry_GoldenBalloon; typedef struct LevelObjectEntry_Laserbolt { @@ -354,6 +374,9 @@ typedef struct LevelObjectEntry_Lasergun { typedef struct LevelObjectEntry_GroundZipper { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 unk8; + /* 0x09 */ u8 scale; + /* 0x0A */ u8 rotation; } LevelObjectEntry_GroundZipper; typedef struct LevelObjectEntry_OverridePos { diff --git a/include/structs.h b/include/structs.h index 15dd5953..1f0fc3bd 100644 --- a/include/structs.h +++ b/include/structs.h @@ -530,7 +530,8 @@ typedef struct Object_4C { } Object_4C; typedef struct Object_50 { - u8 pad0[0x8]; + f32 unk0; + u8 pad4[0x4]; s16 unk8; s16 unkA; } Object_50; diff --git a/src/object_functions.c b/src/object_functions.c index fc48b85d..68f12591 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -241,7 +241,7 @@ void obj_loop_fireball_octoweapon(Object *obj, s32 speed) { Object80033F60_64 *obj64; Object *obj4C_obj; f32 phi_f2; - s32* temp; + s32 *temp; f32 sp4C[7]; obj78 = (Object*)obj->unk78; @@ -806,9 +806,113 @@ void obj_init_airzippers_waterzippers(Object *obj, LevelObjectEntry_AirZippers_W } } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_airzippers_waterzippers.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_groundzipper.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_groundzipper.s") + +void obj_loop_airzippers_waterzippers(Object *obj, s32 speed) { + Object *curRacerObj; + Object_64_Racer *racerObj64; + f32 xDiff; + f32 yDiff; + f32 zDiff; + s32 numObjects; + Object** racerObjs; + s32 i; + + if (func_8000E1CC() == 0) { + obj->unk6 |= 0x4000; + } else { + obj->unk6 &= 0xBFFF; + } + if ((obj->unk4C->unk13 < 100) && !(obj->unk6 & 0x4000)) { + racerObjs = get_object_struct_array(&numObjects); + for (i = 0; i < numObjects; i++) { + curRacerObj = racerObjs[i]; + racerObj64 = (Object_64_Racer*)curRacerObj->unk64; + if ((racerObj64->unk1F5 == 0) && (racerObj64->unk1D3 < 15)) { + xDiff = curRacerObj->x_position - obj->x_position; + yDiff = curRacerObj->y_position - obj->y_position; + zDiff = curRacerObj->z_position - obj->z_position; + if ((s32) sqrtf((xDiff * xDiff) + (yDiff * yDiff) + (zDiff * zDiff)) < 100) { + racerObj64->unk1F5 = 1; + racerObj64->unk14C = obj; + } + } + } + } +} + +void obj_init_groundzipper(Object *arg0, LevelObjectEntry_GroundZipper *entry) { + ObjectHeader *header; + f32 objScale; + + objScale = entry->scale & 0xFF; + if (objScale < 10.0f) { + objScale = 10.0f; + } + objScale /= 64; + header = arg0->header; + arg0->scale = header->scale * objScale; + arg0->unk50->unk0 = header->unk4 * objScale; + arg0->y_rotation = entry->rotation << 6 << 4; + if (arg0->unk3A >= arg0->header->numberOfModelIds) { + arg0->unk3A = 0; + } + arg0->unk78 = (s32)(28.0f * objScale) + 15; + if (arg0->unk78 < 0) { + arg0->unk78 = 0; + } + if (arg0->unk78 >= 0x100) { + arg0->unk78 = 0xFF; + } + arg0->unk4C->unk14 = 2; + arg0->unk4C->unk11 = 0; + arg0->unk4C->unk10 = 0x14; + arg0->unk4C->unk12 = 0; + arg0->unk4C->unk16 = -0x64; + arg0->unk4C->unk17 = 0x64; + if (get_filtered_cheats() & CHEAT_TURN_OFF_ZIPPERS) { + gParticlePtrList_addObject(arg0); + } +} + +void obj_loop_groundzipper(Object *obj, s32 speed) { + Object *curRacerObj; + Object_64_Racer *racerObj64; + f32 xDiff; + f32 yDiff; + s32 numObjects; + f32 zDiff; + Object** racerObjs; + s32 i; + + obj->unk6 &= 0xBFFF; + obj->unk6 |= 0x1000; + get_object_struct(0); // Unused. I guess the developers forgot to remove this? + if ((s32) obj->unk4C->unk13 < obj->unk78) { + racerObjs = get_object_struct_array(&numObjects); + for (i = 0; i < numObjects; i++) { + curRacerObj = racerObjs[i]; + racerObj64 = (Object_64_Racer*)curRacerObj->unk64; + if ((racerObj64->unk1D3 < 15) && (racerObj64->unk1E2 != 0)) { + xDiff = curRacerObj->x_position - obj->x_position; + yDiff = curRacerObj->y_position - obj->y_position; + zDiff = curRacerObj->z_position - obj->z_position; + if ((s32) sqrtf((xDiff * xDiff) + (yDiff * yDiff) + (zDiff * zDiff)) < obj->unk78) { + if (racerObj64->unk0 != -1) { + func_80001EA8(263, curRacerObj->x_position, curRacerObj->y_position, curRacerObj->z_position, NULL); + } + racerObj64->unk1D3 = func_8000C8B4(45); + racerObj64->unk203 = 2; + if (racerObj64->unk20C) { + racerObj64->unk203 |= 4; + } + if (racerObj64->unk1D8 == 0) { + func_80072348(racerObj64->unk0, 8); + } + } + } + } + } +} void obj_init_unknown58(Object *obj, LevelObjectEntry_Unknown58 *entry) { obj->unk78 = 0; @@ -1270,7 +1374,54 @@ void obj_init_exit(Object *obj, LevelObjectEntry_Exit *entry) { obj->unk4C->unk12 = 0; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_exit.s") +void obj_loop_exit(Object *obj, s32 speed) { + Object *racerObj; + Object_64_Racer *racerObj64; + s32 numberOfRacers; + Settings *settings; + f32 xDiff; + f32 zDiff; + f32 dist; + f32 yDiff; + Object_64_Exit *obj64; + s32 someBool; + Object** racerObjects; + s32 i; + f32 temp; + + obj64 = (Object_64_Exit*)obj->unk64; + someBool = TRUE; + settings = get_settings(); + if ((obj64->unk14 == 0) && (settings->balloonsPtr[settings->worldId] == 8)) { + someBool = FALSE; + } + if ((obj64->unk14 == 1) && (settings->balloonsPtr[settings->worldId] < 8)) { + someBool = FALSE; + } + if (someBool) { + if (obj->unk4C->unk13 < obj64->unk10) { + dist = obj64->unk10; + racerObjects = get_object_struct_array(&numberOfRacers); + for (i = 0; i < numberOfRacers; i++) { + racerObj = racerObjects[i]; + racerObj64 = (Object_64_Racer*)racerObj->unk64; + if ((racerObj64->unk0 != -1) && (racerObj64->unk108 == 0)) { + xDiff = racerObj->x_position - obj->x_position; + yDiff = racerObj->y_position - obj->y_position; + zDiff = racerObj->z_position - obj->z_position; + if ((sqrtf((xDiff * xDiff) + (yDiff * yDiff) + (zDiff * zDiff)) < dist)) { + temp = (obj64->unk0 * racerObj->x_position) + (obj64->unk8 * racerObj->z_position) + obj64->unkC; + if (temp < 0.0f) { + racerObj64->unk108 = obj; + racerObj64->unk200 = -120; + } + } + } + } + } + } +} + void obj_init_cameracontrol(Object *obj, LevelObjectEntry_CameraControl *entry) { obj->unk78 = entry->unk8; @@ -1373,7 +1524,7 @@ void obj_loop_checkpoint(Object *obj, s32 speed) { void obj_init_modechange(Object *obj, LevelObjectEntry_ModeChange *entry) { f32 phi_f0; - Object_64_8003AD34 *obj64; + Object_64_ModeChange *obj64; phi_f0 = entry->unk8 & 0xFF; if (phi_f0 < 5) { phi_f0 = 5; @@ -1398,7 +1549,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_modechange.s") void obj_init_bonus(Object *obj, LevelObjectEntry_Bonus *entry) { f32 phi_f0; - Object_64_8003AD34 *obj64; + Object_64_Bonus *obj64; phi_f0 = entry->unk8 & 0xFF; if (phi_f0 < 5) { phi_f0 = 5; @@ -1419,10 +1570,213 @@ void obj_init_bonus(Object *obj, LevelObjectEntry_Bonus *entry) { obj->unk4C->unk12 = 0; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_bonus.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_goldenballoon.s") +void obj_loop_bonus(Object *obj, s32 speed) { + Object *racerObj; + Object_64_Racer *racerObj64; + s32 numberOfRacers; + f32 xDiff; + f32 yDiff; + f32 halfDist; + f32 dist; + f32 zDiff; + Object_64_Bonus *obj64; + Object **racerObjects; + s32 i; + + obj64 = (Object_64_Bonus *)obj->unk64; + if (obj->unk4C->unk13 < obj64->unk10) { + dist = obj64->unk10; + halfDist = dist * 0.5; + racerObjects = get_object_struct_array(&numberOfRacers); + for (i = 0; i < numberOfRacers; i++) { + racerObj = racerObjects[i]; + racerObj64 = (Object_64_Racer *)racerObj->unk64; + yDiff = racerObj->y_position - obj->y_position; + if ((yDiff < halfDist) && (-halfDist < yDiff)) { + xDiff = racerObj->x_position - obj->x_position; + zDiff = racerObj->z_position - obj->z_position; + if ((sqrtf((xDiff * xDiff) + (yDiff * yDiff) + (zDiff * zDiff)) < dist)) { + f32 temp = (obj64->unk0 * racerObj->x_position) + (obj64->unk8 * racerObj->z_position) + obj64->unkC; + if (temp < 0.0f) { + if ((s32) racerObj64->unk185 < 10) { + racerObj64->unk185 = 10; + func_80009558(34, racerObj->x_position, racerObj->y_position, racerObj->z_position, 4, NULL); + func_80001EA8(racerObj64->unk3 + 123, racerObj->x_position, racerObj->y_position, racerObj->z_position, NULL); + } + } + } + } + } + } +} +void obj_init_goldenballoon(Object *obj, LevelObjectEntry_GoldenBalloon *entry) { + Object_64_GoldenBalloon *obj64; + f32 scalef; + + if (entry->unk8 == -1) { + entry->unk8 = func_8000CC20(obj); + } else { + func_8000CBF0(obj, entry->unk8); + } + if (entry->unk8 == -1) { + rmonPrintf("Illegal door no!!!\n"); // Did the devs just copy-paste the door init function? + } + obj->unk4C->unk14 = 2; + obj->unk4C->unk11 = 4; + obj->unk4C->unk10 = 20; + obj->unk4C->unk12 = 0; + scalef = entry->scale & 0xFF; + if (scalef < 10.0f) { + scalef = 10.0f; + } + scalef /= 64; + obj->scale = obj->header->scale * scalef; + obj64 = obj->unk64; + obj64->unkD = 255; + obj64->unk0 = 0.0f; + obj->unk78 = 0; + if (entry->unkA != 0) { + if ((get_settings()->tajFlags & (1 << (entry->unkA + 2))) != 0) { + obj->unk78 = 0; + } else { + obj->unk78 = 1; + } + } +} + + +#ifdef NON_EQUIVALENT + +// Has regalloc issues. + +void obj_loop_goldenballoon(Object *obj, s32 speed) { + s32 padding[1]; + Object_3C *obj3C; + Object_4C *obj4C; + Object_64_GoldenBalloon *obj64; + Settings *settings; + s32 flag; + s32 doubleSpeed; + Object *racerObj; + f32 sp2C; + f32 speedf; + s32 someBool; + + sp2C = speed; + if (osTvType == TV_TYPE_PAL) { + sp2C *= 1.2; + } + someBool = FALSE; + if ((*(s32*)0xA0000284) != 0x240B17D7) { + someBool = TRUE; + } + speedf = sp2C; + settings = get_settings(); + obj3C = obj->unk3C_a.unk3C; + flag = 0x10000 << obj3C->unk8; + if (settings->courseFlagsPtr[settings->courseId] & flag) { + if (obj->unk7C.word > 0) { + obj->unk74 = 2; + func_800AFC3C(obj, speed); + obj->unk7C.word -= speed; + } else { + gParticlePtrList_addObject(obj); + } + } else { + obj->unk6 |= 0x4000; + if (obj->unk78 == 0) { + obj->unk6 &= 0xBFFF; + doubleSpeed = speed * 2; + if (obj->unk39 < (255 - doubleSpeed)) { + obj->unk39 += doubleSpeed; + } else { + obj->unk39 = 255; + } + obj4C = obj->unk4C; + if ((obj4C->unk13 < 45) && (someBool == FALSE)) { + racerObj = obj4C->unk0; + if (racerObj && (racerObj->header->behaviorId == 1) && (((Object_64_Racer *)racerObj->unk64)->unk0 == 0)) { + settings->balloonsPtr[settings->worldId]++; + if (settings->worldId != 0) { + settings->balloonsPtr[0]++; + } + settings->courseFlagsPtr[settings->courseId] |= flag; + func_80001EA8(573, obj->x_position, obj->y_position, obj->z_position, NULL); + obj->unk7C.word = 16; + obj->unk74 = 2; + obj->unk6 |= 0x4000; + func_800AFC3C(obj, speed); + } + } + obj64 = (Object_64_GoldenBalloon *)obj->unk64; + obj->unk3B = 0; + obj64->unk14 = 0.0f; + if (obj->unk39 < 255) { + speedf = 0.0f; + } else { + speedf = 1.0f; + } + if (obj64->unkD == 255) { + obj64->unkD = func_8001C524(obj->x_position, obj->y_position, obj->z_position, 0); + if (obj64->unkD != 255) { + obj64->unkE = func_8001CC48(obj64->unkD, -1, 0); + obj64->unkF = func_8001CC48(obj64->unkE, obj64->unkD, 0); + obj64->unk10 = func_8001CC48(obj64->unkF, obj64->unkE, 0); + obj64->unkC = obj64->unkD; + } + } else { + func_8001C6C4(obj64, obj, sp2C, speedf, 0); + } + } + } +} + + +#else GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_goldenballoon.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_door.s") +#endif + +void obj_init_door(Object *obj, LevelObjectEntry_Door *entry) { + Object_64_Door *obj64; + f32 phi_f0; + + obj64 = (Object_64_Door *)obj->unk64; + if (entry->unkC == -1) { + entry->unkC = func_8000CC20(obj); + } else { + func_8000CBF0(obj, entry->unkC); + } + obj64->unkE = entry->unkC; + obj64->unkF = entry->unkE; + obj64->unk11 = entry->numBalloonsToOpen; + obj64->unk10 = entry->numBalloonsToOpen; + obj64->unk12 = entry->distanceToOpen; + if (obj64->unkE == -1) { + rmonPrintf("Illegal door no!!!\n"); + } + obj->unk3A = entry->modelIndex; + obj->y_rotation = entry->closedRotation << 6 << 4; + obj64->unk0 = obj->y_position; + obj64->unk8 = 0; + obj->unk78 = obj->y_rotation; + obj->unk7C.word = (s32) ((entry->openRotation & 0x3F) << 10); + phi_f0 = entry->scale & 0xFF; + if (phi_f0 < 10.0f) { + phi_f0 = 10.0f; + } + phi_f0 /= 64; + obj->scale = obj->header->scale * phi_f0; + obj64->unk13 = (u8) entry->unkF; + obj64->unk14 = (s8) entry->unk11; + obj->unk4C->unk14 = 0x21; + obj->unk4C->unk11 = 2; + obj->unk4C->unk10 = 0x14; + obj->unk4C->unk12 = 0; + if (obj->unk3A >= obj->header->numberOfModelIds) { + obj->unk3A = 0; + } +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_door.s") void obj_init_ttdoor(Object *obj, LevelObjectEntry_TTDoor *entry) { @@ -1456,7 +1810,39 @@ void obj_init_ttdoor(Object *obj, LevelObjectEntry_TTDoor *entry) { } GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_ttdoor.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_trigger.s") +void obj_init_trigger(Object *obj, LevelObjectEntry_Trigger *entry) { + f32 phi_f0; + Object_64_Trigger *obj64; + + if (entry->unk9 == -1) { + entry->unk9 = func_8000CC20(obj); + } else { + func_8000CBF0(obj, entry->unk9); + } + if (entry->unk9 == -1) { + rmonPrintf("Illegal door no!!!\n"); + } + phi_f0 = (s32)entry->scale & 0xFF; + if (phi_f0 < 5.0f) { + phi_f0 = 5.0f; + } + obj64 = (Object_64_Trigger*)obj->unk64; + phi_f0 /= 128; + obj->scale = phi_f0; + obj->y_rotation = entry->rotation << 6 << 4; + obj64->unk0 = func_800707C4(obj->y_rotation); + obj64->unk4 = 0.0f; + obj64->unk8 = func_800707F8(obj->y_rotation); + obj64->unkC = -((obj64->unk0 * obj->x_position) + (obj64->unk8 * obj->z_position)); + obj64->unk10 = entry->scale; + obj64->unk14 = entry->unkD; + obj->unk4C->unk14 = 2; + obj->unk4C->unk11 = 0; + obj->unk4C->unk10 = entry->scale; + obj->unk4C->unk12 = 0; +} + + GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_trigger.s") void obj_init_bridge_whaleramp(Object *obj, LevelObjectEntry_Bridge_WhaleRamp *entry) { diff --git a/src/object_functions.h b/src/object_functions.h index 217db4b7..1303ec3a 100644 --- a/src/object_functions.h +++ b/src/object_functions.h @@ -182,15 +182,6 @@ typedef struct unk80039190 { s32 unk7C; } unk80039190; -typedef struct Object_64_8003AD34 { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; - s32 unk10; - s8 unk14; -} Object_64_8003AD34; - typedef struct Object_64_8003C1E0 { f32 unk0; u8 pad4[4]; @@ -368,6 +359,97 @@ typedef struct unk80042CD0 { s16 unk18; } unk80042CD0; +//void func_80072348(s16 obj, u8 arg1); + +typedef struct Object_64_Exit { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + s32 unk10; + s8 unk14; +} Object_64_Exit; + +typedef struct Object_64_Racer { + s16 unk0; + u8 pad2; + s8 unk3; + u8 pad4[0x104]; + s32 unk108; + u8 pad10C[0x40]; + Object *unk14C; + u8 pad150[0x33]; + s8 unk183; + s8 pad184; + s8 unk185; + u8 pad186[0x4D]; + s8 unk1D3; + u8 pad1D4[0x4]; + s8 unk1D8; + u8 pad1D9[0x9]; + s8 unk1E2; + u8 pad1E3[0x12]; + u8 unk1F5; + u8 pad1F6[0xA]; + s8 unk200; + u8 pad201[0x2]; + s8 unk203; + u8 pad204[0x8]; + u8 unk20C; +} Object_64_Racer; + +typedef struct Object_64_Bonus { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + s32 unk10; + s8 unk14; +} Object_64_Bonus; + +typedef struct Object_64_ModeChange { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + s32 unk10; + s8 unk14; +} Object_64_ModeChange; + +typedef struct Object_64_GoldenBalloon { + f32 unk0; + u8 pad4[0x8]; + u8 unkC; + u8 unkD; + u8 unkE; + u8 unkF; + s8 unk10; + f32 unk14; +} Object_64_GoldenBalloon; + +typedef struct Object_64_Door { + f32 unk0; + u8 pad4[0x4]; + s32 unk8; + s16 padA; + s8 unkE; + u8 unkF; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14; +} Object_64_Door; + +typedef struct Object_64_Trigger { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + s32 unk10; + s8 unk14; +} Object_64_Trigger; + // Unsure about the signed/unsigned with these arrays. extern u16 D_800DC970[4]; extern u16 D_800DC978[4]; @@ -506,4 +588,9 @@ void obj_loop_vehicleanim(Object *obj, s32 speed); void obj_loop_snowball(Object *obj, s32 speed); void obj_loop_goldenballoon(Object *obj, s32 speed); +s32 func_8001C524(f32 x, f32 y, f32 z, s32 arg3); +s32 func_8001CC48(s32, s32, s32); +void func_8001C6C4(Object_64_GoldenBalloon *obj64, Object *obj, f32, f32, s32); +void func_8000CBF0(Object*, s32); + #endif