diff --git a/asm/non_matchings/objects/func_80011960.s b/asm/non_matchings/objects/func_80011960.s index d8265f54..5f3e1ab5 100644 --- a/asm/non_matchings/objects/func_80011960.s +++ b/asm/non_matchings/objects/func_80011960.s @@ -6,17 +6,17 @@ glabel func_80011960 /* 012570 80011970 AFA60030 */ sw $a2, 0x30($sp) /* 012574 80011974 AFA70034 */ sw $a3, 0x34($sp) /* 012578 80011978 8FA60028 */ lw $a2, 0x28($sp) -/* 01257C 8001197C 3C048012 */ lui $a0, %hi(D_8011AE8C) # $a0, 0x8012 +/* 01257C 8001197C 3C048012 */ lui $a0, %hi(gObjectCurrDisplayList) # $a0, 0x8012 /* 012580 80011980 AFBF001C */ sw $ra, 0x1c($sp) /* 012584 80011984 8FA70048 */ lw $a3, 0x48($sp) -/* 012588 80011988 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 -/* 01258C 8001198C 2484AE8C */ addiu $a0, %lo(D_8011AE8C) # addiu $a0, $a0, -0x5174 +/* 012588 80011988 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 +/* 01258C 8001198C 2484AE8C */ addiu $a0, %lo(gObjectCurrDisplayList) # addiu $a0, $a0, -0x5174 /* 012590 80011990 AFA00024 */ sw $zero, 0x24($sp) -/* 012594 80011994 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 012594 80011994 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 012598 80011998 0C01A521 */ jal func_80069484 /* 01259C 8001199C E7A40010 */ swc1 $f4, 0x10($sp) -/* 0125A0 800119A0 3C048012 */ lui $a0, %hi(D_8011AE8C) # $a0, 0x8012 -/* 0125A4 800119A4 2484AE8C */ addiu $a0, %lo(D_8011AE8C) # addiu $a0, $a0, -0x5174 +/* 0125A0 800119A0 3C048012 */ lui $a0, %hi(gObjectCurrDisplayList) # $a0, 0x8012 +/* 0125A4 800119A4 2484AE8C */ addiu $a0, %lo(gObjectCurrDisplayList) # addiu $a0, $a0, -0x5174 /* 0125A8 800119A8 8C820000 */ lw $v0, ($a0) /* 0125AC 800119AC 3C0FFA00 */ lui $t7, 0xfa00 /* 0125B0 800119B0 244E0008 */ addiu $t6, $v0, 8 @@ -45,10 +45,10 @@ glabel func_80011960 /* 012608 80011A08 8FA90030 */ lw $t1, 0x30($sp) /* 01260C 80011A0C 8FAF002C */ lw $t7, 0x2c($sp) /* 012610 80011A10 3C088000 */ lui $t0, 0x8000 -/* 012614 80011A14 3C048012 */ lui $a0, %hi(D_8011AE8C) # $a0, 0x8012 +/* 012614 80011A14 3C048012 */ lui $a0, %hi(gObjectCurrDisplayList) # $a0, 0x8012 /* 012618 80011A18 2538FFFF */ addiu $t8, $t1, -1 /* 01261C 80011A1C 01E82821 */ addu $a1, $t7, $t0 -/* 012620 80011A20 2484AE8C */ addiu $a0, %lo(D_8011AE8C) # addiu $a0, $a0, -0x5174 +/* 012620 80011A20 2484AE8C */ addiu $a0, %lo(gObjectCurrDisplayList) # addiu $a0, $a0, -0x5174 /* 012624 80011A24 30AA0006 */ andi $t2, $a1, 6 /* 012628 80011A28 0018C8C0 */ sll $t9, $t8, 3 /* 01262C 80011A2C 8C820000 */ lw $v0, ($a0) diff --git a/asm/non_matchings/objects/func_800135B8.s b/asm/non_matchings/objects/func_800135B8.s index 631cd34b..c1f1f196 100644 --- a/asm/non_matchings/objects/func_800135B8.s +++ b/asm/non_matchings/objects/func_800135B8.s @@ -43,11 +43,11 @@ glabel func_800135B8 /* 014240 80013640 AFA50028 */ sw $a1, 0x28($sp) /* 014244 80013644 8FAF0078 */ lw $t7, 0x78($sp) /* 014248 80013648 44802000 */ mtc1 $zero, $f4 -/* 01424C 8001364C 3C108012 */ lui $s0, %hi(D_8011AE8C) # $s0, 0x8012 -/* 014250 80013650 2610AE8C */ addiu $s0, %lo(D_8011AE8C) # addiu $s0, $s0, -0x5174 -/* 014254 80013654 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 +/* 01424C 8001364C 3C108012 */ lui $s0, %hi(gObjectCurrDisplayList) # $s0, 0x8012 +/* 014250 80013650 2610AE8C */ addiu $s0, %lo(gObjectCurrDisplayList) # addiu $s0, $s0, -0x5174 +/* 014254 80013654 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 /* 014258 80013658 8DE60078 */ lw $a2, 0x78($t7) -/* 01425C 8001365C 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 01425C 8001365C 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 014260 80013660 02002025 */ move $a0, $s0 /* 014264 80013664 3C073F80 */ lui $a3, 0x3f80 /* 014268 80013668 0C01A521 */ jal func_80069484 @@ -74,18 +74,18 @@ glabel func_800135B8 /* 0142BC 800136BC 0C01C1FE */ jal sine_s /* 0142C0 800136C0 000C2403 */ sra $a0, $t4, 0x10 /* 0142C4 800136C4 8FA30050 */ lw $v1, 0x50($sp) -/* 0142C8 800136C8 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 +/* 0142C8 800136C8 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 /* 0142CC 800136CC C4700010 */ lwc1 $f16, 0x10($v1) /* 0142D0 800136D0 C464000C */ lwc1 $f4, 0xc($v1) /* 0142D4 800136D4 46100482 */ mul.s $f18, $f0, $f16 -/* 0142D8 800136D8 3C068012 */ lui $a2, %hi(D_8011AE94) # $a2, 0x8012 +/* 0142D8 800136D8 3C068012 */ lui $a2, %hi(gObjectCurrVertexList) # $a2, 0x8012 /* 0142DC 800136DC 3C0CFA00 */ lui $t4, 0xfa00 /* 0142E0 800136E0 240DFFFF */ li $t5, -1 /* 0142E4 800136E4 46049180 */ add.s $f6, $f18, $f4 -/* 0142E8 800136E8 24C6AE94 */ addiu $a2, %lo(D_8011AE94) # addiu $a2, $a2, -0x516c +/* 0142E8 800136E8 24C6AE94 */ addiu $a2, %lo(gObjectCurrVertexList) # addiu $a2, $a2, -0x516c /* 0142EC 800136EC E7A6005C */ swc1 $f6, 0x5c($sp) /* 0142F0 800136F0 922E0070 */ lbu $t6, 0x70($s1) -/* 0142F4 800136F4 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 0142F4 800136F4 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 0142F8 800136F8 29C10002 */ slti $at, $t6, 2 /* 0142FC 800136FC 10200005 */ beqz $at, .L80013714 /* 014300 80013700 02002025 */ move $a0, $s0 diff --git a/asm/non_matchings/objects/func_800138A8.s b/asm/non_matchings/objects/func_800138A8.s index ac148d28..32b2f65c 100644 --- a/asm/non_matchings/objects/func_800138A8.s +++ b/asm/non_matchings/objects/func_800138A8.s @@ -50,7 +50,7 @@ glabel func_800138A8 /* 014568 80013968 C7AE0030 */ lwc1 $f14, 0x30($sp) /* 01456C 8001396C C7B0002C */ lwc1 $f16, 0x2c($sp) /* 014570 80013970 4500000E */ bc1f .L800139AC -/* 014574 80013974 3C048012 */ lui $a0, %hi(D_8011AE8C) # $a0, 0x8012 +/* 014574 80013974 3C048012 */ lui $a0, %hi(gObjectCurrDisplayList) # $a0, 0x8012 /* 014578 80013978 860E001A */ lh $t6, 0x1a($s0) /* 01457C 8001397C 00000000 */ nop /* 014580 80013980 448E3000 */ mtc1 $t6, $f6 @@ -69,7 +69,7 @@ glabel func_800138A8 /* 0145B0 800139B0 C6040010 */ lwc1 $f4, 0x10($s0) /* 0145B4 800139B4 C6080014 */ lwc1 $f8, 0x14($s0) /* 0145B8 800139B8 46025480 */ add.s $f18, $f10, $f2 -/* 0145BC 800139BC 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 +/* 0145BC 800139BC 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 /* 0145C0 800139C0 460E2180 */ add.s $f6, $f4, $f14 /* 0145C4 800139C4 E612000C */ swc1 $f18, 0xc($s0) /* 0145C8 800139C8 46104280 */ add.s $f10, $f8, $f16 @@ -77,10 +77,10 @@ glabel func_800138A8 /* 0145D0 800139D0 E60A0014 */ swc1 $f10, 0x14($s0) /* 0145D4 800139D4 8FB80044 */ lw $t8, 0x44($sp) /* 0145D8 800139D8 8FAF003C */ lw $t7, 0x3c($sp) -/* 0145DC 800139DC 3C068012 */ lui $a2, %hi(D_8011AE94) # $a2, 0x8012 -/* 0145E0 800139E0 24C6AE94 */ addiu $a2, %lo(D_8011AE94) # addiu $a2, $a2, -0x516c -/* 0145E4 800139E4 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 -/* 0145E8 800139E8 2484AE8C */ addiu $a0, %lo(D_8011AE8C) # addiu $a0, $a0, -0x5174 +/* 0145DC 800139DC 3C068012 */ lui $a2, %hi(gObjectCurrVertexList) # $a2, 0x8012 +/* 0145E0 800139E0 24C6AE94 */ addiu $a2, %lo(gObjectCurrVertexList) # addiu $a2, $a2, -0x516c +/* 0145E4 800139E4 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 +/* 0145E8 800139E8 2484AE8C */ addiu $a0, %lo(gObjectCurrDisplayList) # addiu $a0, $a0, -0x5174 /* 0145EC 800139EC 02003825 */ move $a3, $s0 /* 0145F0 800139F0 AFB80014 */ sw $t8, 0x14($sp) /* 0145F4 800139F4 0C01A145 */ jal func_80068514 diff --git a/asm/non_matchings/objects/func_80013A0C.s b/asm/non_matchings/objects/func_80013A0C.s deleted file mode 100644 index 133c0a26..00000000 --- a/asm/non_matchings/objects/func_80013A0C.s +++ /dev/null @@ -1,260 +0,0 @@ -.late_rodata -glabel D_800E556C -.float 0.05 -glabel D_800E5570 -.float 0.95 -.word 0 # Padding -glabel D_800E5578 -.double 0.1 - -.text -glabel func_80013A0C -/* 01460C 80013A0C 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 014610 80013A10 AFBF0024 */ sw $ra, 0x24($sp) -/* 014614 80013A14 AFB10020 */ sw $s1, 0x20($sp) -/* 014618 80013A18 AFB0001C */ sw $s0, 0x1c($sp) -/* 01461C 80013A1C AFA40068 */ sw $a0, 0x68($sp) -/* 014620 80013A20 AFA5006C */ sw $a1, 0x6c($sp) -/* 014624 80013A24 AFA60070 */ sw $a2, 0x70($sp) -/* 014628 80013A28 AFA70074 */ sw $a3, 0x74($sp) -/* 01462C 80013A2C 8CE80064 */ lw $t0, 0x64($a3) -/* 014630 80013A30 3C10800E */ lui $s0, %hi(D_800DC75C) # $s0, 0x800e -/* 014634 80013A34 850F018E */ lh $t7, 0x18e($t0) -/* 014638 80013A38 2610C75C */ addiu $s0, %lo(D_800DC75C) # addiu $s0, $s0, -0x38a4 -/* 01463C 80013A3C 19E000DF */ blez $t7, .L80013DBC -/* 014640 80013A40 8FBF0024 */ lw $ra, 0x24($sp) -/* 014644 80013A44 8E180000 */ lw $t8, ($s0) -/* 014648 80013A48 3C118012 */ lui $s1, %hi(D_8011AE8C) # $s1, 0x8012 -/* 01464C 80013A4C 130000DB */ beqz $t8, .L80013DBC -/* 014650 80013A50 8FBF0024 */ lw $ra, 0x24($sp) -/* 014654 80013A54 8C890000 */ lw $t1, ($a0) -/* 014658 80013A58 2631AE8C */ addiu $s1, %lo(D_8011AE8C) # addiu $s1, $s1, -0x5174 -/* 01465C 80013A5C AE290000 */ sw $t1, ($s1) -/* 014660 80013A60 8CAB0000 */ lw $t3, ($a1) -/* 014664 80013A64 3C018012 */ lui $at, %hi(D_8011AE90) # $at, 0x8012 -/* 014668 80013A68 AC2BAE90 */ sw $t3, %lo(D_8011AE90)($at) -/* 01466C 80013A6C 8CCD0000 */ lw $t5, ($a2) -/* 014670 80013A70 3C018012 */ lui $at, %hi(D_8011AE94) # $at, 0x8012 -/* 014674 80013A74 AC2DAE94 */ sw $t5, %lo(D_8011AE94)($at) -/* 014678 80013A78 81060002 */ lb $a2, 2($t0) -/* 01467C 80013A7C 24040015 */ li $a0, 21 -/* 014680 80013A80 28C1000B */ slti $at, $a2, 0xb -/* 014684 80013A84 14200002 */ bnez $at, .L80013A90 -/* 014688 80013A88 00000000 */ nop -/* 01468C 80013A8C 00003025 */ move $a2, $zero -.L80013A90: -/* 014690 80013A90 810501D6 */ lb $a1, 0x1d6($t0) -/* 014694 80013A94 00000000 */ nop -/* 014698 80013A98 28A10003 */ slti $at, $a1, 3 -/* 01469C 80013A9C 14200002 */ bnez $at, .L80013AA8 -/* 0146A0 80013AA0 00000000 */ nop -/* 0146A4 80013AA4 00002825 */ move $a1, $zero -.L80013AA8: -/* 0146A8 80013AA8 AFA50050 */ sw $a1, 0x50($sp) -/* 0146AC 80013AAC AFA6004C */ sw $a2, 0x4c($sp) -/* 0146B0 80013AB0 0C0078A7 */ jal get_misc_asset -/* 0146B4 80013AB4 AFA80064 */ sw $t0, 0x64($sp) -/* 0146B8 80013AB8 8FA50050 */ lw $a1, 0x50($sp) -/* 0146BC 80013ABC 8FA6004C */ lw $a2, 0x4c($sp) -/* 0146C0 80013AC0 00057080 */ sll $t6, $a1, 2 -/* 0146C4 80013AC4 01C57021 */ addu $t6, $t6, $a1 -/* 0146C8 80013AC8 000E7040 */ sll $t6, $t6, 1 -/* 0146CC 80013ACC 01C62821 */ addu $a1, $t6, $a2 -/* 0146D0 80013AD0 00057900 */ sll $t7, $a1, 4 -/* 0146D4 80013AD4 01E21821 */ addu $v1, $t7, $v0 -/* 0146D8 80013AD8 AFA30058 */ sw $v1, 0x58($sp) -/* 0146DC 80013ADC 84780000 */ lh $t8, ($v1) -/* 0146E0 80013AE0 8E190000 */ lw $t9, ($s0) -/* 0146E4 80013AE4 44982000 */ mtc1 $t8, $f4 -/* 0146E8 80013AE8 3C0D8012 */ lui $t5, %hi(D_8011B010) # $t5, 0x8012 -/* 0146EC 80013AEC 468021A0 */ cvt.s.w $f6, $f4 -/* 0146F0 80013AF0 25ADB010 */ addiu $t5, %lo(D_8011B010) # addiu $t5, $t5, -0x4ff0 -/* 0146F4 80013AF4 00CD3821 */ addu $a3, $a2, $t5 -/* 0146F8 80013AF8 E726000C */ swc1 $f6, 0xc($t9) -/* 0146FC 80013AFC 84690002 */ lh $t1, 2($v1) -/* 014700 80013B00 8E0A0000 */ lw $t2, ($s0) -/* 014704 80013B04 44894000 */ mtc1 $t1, $f8 -/* 014708 80013B08 00000000 */ nop -/* 01470C 80013B0C 468042A0 */ cvt.s.w $f10, $f8 -/* 014710 80013B10 E54A0010 */ swc1 $f10, 0x10($t2) -/* 014714 80013B14 846B0004 */ lh $t3, 4($v1) -/* 014718 80013B18 8E0C0000 */ lw $t4, ($s0) -/* 01471C 80013B1C 448B8000 */ mtc1 $t3, $f16 -/* 014720 80013B20 00000000 */ nop -/* 014724 80013B24 468084A0 */ cvt.s.w $f18, $f16 -/* 014728 80013B28 E5920014 */ swc1 $f18, 0x14($t4) -/* 01472C 80013B2C 90EE0000 */ lbu $t6, ($a3) -/* 014730 80013B30 AFA70028 */ sw $a3, 0x28($sp) -/* 014734 80013B34 000E7E40 */ sll $t7, $t6, 0x19 -/* 014738 80013B38 0C01C1F1 */ jal cosine_s -/* 01473C 80013B3C 000F2403 */ sra $a0, $t7, 0x10 -/* 014740 80013B40 8FB90058 */ lw $t9, 0x58($sp) -/* 014744 80013B44 8E020000 */ lw $v0, ($s0) -/* 014748 80013B48 87290006 */ lh $t1, 6($t9) -/* 01474C 80013B4C C4440010 */ lwc1 $f4, 0x10($v0) -/* 014750 80013B50 44893000 */ mtc1 $t1, $f6 -/* 014754 80013B54 00000000 */ nop -/* 014758 80013B58 46803220 */ cvt.s.w $f8, $f6 -/* 01475C 80013B5C 46004282 */ mul.s $f10, $f8, $f0 -/* 014760 80013B60 460A2400 */ add.s $f16, $f4, $f10 -/* 014764 80013B64 E4500010 */ swc1 $f16, 0x10($v0) -/* 014768 80013B68 8FAA0028 */ lw $t2, 0x28($sp) -/* 01476C 80013B6C 00000000 */ nop -/* 014770 80013B70 914B0000 */ lbu $t3, ($t2) -/* 014774 80013B74 00000000 */ nop -/* 014778 80013B78 000B6680 */ sll $t4, $t3, 0x1a -/* 01477C 80013B7C 0C01C1FE */ jal sine_s -/* 014780 80013B80 000C2403 */ sra $a0, $t4, 0x10 -/* 014784 80013B84 3C01800E */ lui $at, %hi(D_800E556C) # $at, 0x800e -/* 014788 80013B88 C432556C */ lwc1 $f18, %lo(D_800E556C)($at) -/* 01478C 80013B8C 3C01800E */ lui $at, %hi(D_800E5570) # $at, 0x800e -/* 014790 80013B90 46120182 */ mul.s $f6, $f0, $f18 -/* 014794 80013B94 8FA20058 */ lw $v0, 0x58($sp) -/* 014798 80013B98 C4285570 */ lwc1 $f8, %lo(D_800E5570)($at) -/* 01479C 80013B9C C4440008 */ lwc1 $f4, 8($v0) -/* 0147A0 80013BA0 46083080 */ add.s $f2, $f6, $f8 -/* 0147A4 80013BA4 8E0E0000 */ lw $t6, ($s0) -/* 0147A8 80013BA8 46022282 */ mul.s $f10, $f4, $f2 -/* 0147AC 80013BAC 8FA80064 */ lw $t0, 0x64($sp) -/* 0147B0 80013BB0 240A0800 */ li $t2, 2048 -/* 0147B4 80013BB4 E5CA0008 */ swc1 $f10, 8($t6) -/* 0147B8 80013BB8 8FAF0028 */ lw $t7, 0x28($sp) -/* 0147BC 80013BBC 8E090000 */ lw $t1, ($s0) -/* 0147C0 80013BC0 91F80000 */ lbu $t8, ($t7) -/* 0147C4 80013BC4 C450000C */ lwc1 $f16, 0xc($v0) -/* 0147C8 80013BC8 0018CAC0 */ sll $t9, $t8, 0xb -/* 0147CC 80013BCC A5390000 */ sh $t9, ($t1) -/* 0147D0 80013BD0 8E0B0000 */ lw $t3, ($s0) -/* 0147D4 80013BD4 46028302 */ mul.s $f12, $f16, $f2 -/* 0147D8 80013BD8 A56A0002 */ sh $t2, 2($t3) -/* 0147DC 80013BDC 8E0C0000 */ lw $t4, ($s0) -/* 0147E0 80013BE0 00000000 */ nop -/* 0147E4 80013BE4 A5800004 */ sh $zero, 4($t4) -/* 0147E8 80013BE8 81040189 */ lb $a0, 0x189($t0) -/* 0147EC 80013BEC 00000000 */ nop -/* 0147F0 80013BF0 10800003 */ beqz $a0, .L80013C00 -/* 0147F4 80013BF4 28810003 */ slti $at, $a0, 3 -/* 0147F8 80013BF8 2484FFFF */ addiu $a0, $a0, -1 -/* 0147FC 80013BFC 28810003 */ slti $at, $a0, 3 -.L80013C00: -/* 014800 80013C00 14200002 */ bnez $at, .L80013C0C -/* 014804 80013C04 00000000 */ nop -/* 014808 80013C08 24040002 */ li $a0, 2 -.L80013C0C: -/* 01480C 80013C0C 44849000 */ mtc1 $a0, $f18 -/* 014810 80013C10 3C01800E */ lui $at, %hi(D_800E5578 + 4) # $at, 0x800e -/* 014814 80013C14 468091A0 */ cvt.s.w $f6, $f18 -/* 014818 80013C18 C4255578 */ lwc1 $f5, %lo(D_800E5578)($at) -/* 01481C 80013C1C C424557C */ lwc1 $f4, %lo(D_800E5578 + 4)($at) -/* 014820 80013C20 46003221 */ cvt.d.s $f8, $f6 -/* 014824 80013C24 46244282 */ mul.d $f10, $f8, $f4 -/* 014828 80013C28 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 01482C 80013C2C 44818800 */ mtc1 $at, $f17 -/* 014830 80013C30 44808000 */ mtc1 $zero, $f16 -/* 014834 80013C34 8E020000 */ lw $v0, ($s0) -/* 014838 80013C38 46305480 */ add.d $f18, $f10, $f16 -/* 01483C 80013C3C C4460008 */ lwc1 $f6, 8($v0) -/* 014840 80013C40 46209020 */ cvt.s.d $f0, $f18 -/* 014844 80013C44 00047080 */ sll $t6, $a0, 2 -/* 014848 80013C48 46003202 */ mul.s $f8, $f6, $f0 -/* 01484C 80013C4C 2407FF00 */ li $a3, -256 -/* 014850 80013C50 02202025 */ move $a0, $s1 -/* 014854 80013C54 E4480008 */ swc1 $f8, 8($v0) -/* 014858 80013C58 8E020000 */ lw $v0, ($s0) -/* 01485C 80013C5C 46006302 */ mul.s $f12, $f12, $f0 -/* 014860 80013C60 8C4D0068 */ lw $t5, 0x68($v0) -/* 014864 80013C64 00000000 */ nop -/* 014868 80013C68 01AE7821 */ addu $t7, $t5, $t6 -/* 01486C 80013C6C 8DE50000 */ lw $a1, ($t7) -/* 014870 80013C70 3C0DFB00 */ lui $t5, 0xfb00 -/* 014874 80013C74 8CB80000 */ lw $t8, ($a1) -/* 014878 80013C78 00000000 */ nop -/* 01487C 80013C7C AFB8005C */ sw $t8, 0x5c($sp) -/* 014880 80013C80 80B9001F */ lb $t9, 0x1f($a1) -/* 014884 80013C84 00000000 */ nop -/* 014888 80013C88 00194880 */ sll $t1, $t9, 2 -/* 01488C 80013C8C 00A95021 */ addu $t2, $a1, $t1 -/* 014890 80013C90 8D4B0004 */ lw $t3, 4($t2) -/* 014894 80013C94 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 -/* 014898 80013C98 AC4B0044 */ sw $t3, 0x44($v0) -/* 01489C 80013C9C 8E230000 */ lw $v1, ($s1) -/* 0148A0 80013CA0 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 -/* 0148A4 80013CA4 246C0008 */ addiu $t4, $v1, 8 -/* 0148A8 80013CA8 AE2C0000 */ sw $t4, ($s1) -/* 0148AC 80013CAC AC670004 */ sw $a3, 4($v1) -/* 0148B0 80013CB0 AC6D0000 */ sw $t5, ($v1) -/* 0148B4 80013CB4 850E018E */ lh $t6, 0x18e($t0) -/* 0148B8 80013CB8 3C0DFA00 */ lui $t5, 0xfa00 -/* 0148BC 80013CBC 29C10040 */ slti $at, $t6, 0x40 -/* 0148C0 80013CC0 1020000D */ beqz $at, .L80013CF8 -/* 0148C4 80013CC4 00000000 */ nop -/* 0148C8 80013CC8 8E230000 */ lw $v1, ($s1) -/* 0148CC 80013CCC 3C18FA00 */ lui $t8, 0xfa00 -/* 0148D0 80013CD0 246F0008 */ addiu $t7, $v1, 8 -/* 0148D4 80013CD4 AE2F0000 */ sw $t7, ($s1) -/* 0148D8 80013CD8 AC780000 */ sw $t8, ($v1) -/* 0148DC 80013CDC 8519018E */ lh $t9, 0x18e($t0) -/* 0148E0 80013CE0 00000000 */ nop -/* 0148E4 80013CE4 00194880 */ sll $t1, $t9, 2 -/* 0148E8 80013CE8 312A00FF */ andi $t2, $t1, 0xff -/* 0148EC 80013CEC 01475825 */ or $t3, $t2, $a3 -/* 0148F0 80013CF0 10000007 */ b .L80013D10 -/* 0148F4 80013CF4 AC6B0004 */ sw $t3, 4($v1) -.L80013CF8: -/* 0148F8 80013CF8 8E230000 */ lw $v1, ($s1) -/* 0148FC 80013CFC 240EFFFF */ li $t6, -1 -/* 014900 80013D00 246C0008 */ addiu $t4, $v1, 8 -/* 014904 80013D04 AE2C0000 */ sw $t4, ($s1) -/* 014908 80013D08 AC6E0004 */ sw $t6, 4($v1) -/* 01490C 80013D0C AC6D0000 */ sw $t5, ($v1) -.L80013D10: -/* 014910 80013D10 8E060000 */ lw $a2, ($s0) -/* 014914 80013D14 8FA70074 */ lw $a3, 0x74($sp) -/* 014918 80013D18 E7AC0010 */ swc1 $f12, 0x10($sp) -/* 01491C 80013D1C 0C01A3EA */ jal func_80068FA8 -/* 014920 80013D20 AFA80064 */ sw $t0, 0x64($sp) -/* 014924 80013D24 8FA4005C */ lw $a0, 0x5c($sp) -/* 014928 80013D28 8E050000 */ lw $a1, ($s0) -/* 01492C 80013D2C 00003025 */ move $a2, $zero -/* 014930 80013D30 24070004 */ li $a3, 4 -/* 014934 80013D34 0C0050EA */ jal func_800143A8 -/* 014938 80013D38 AFA00010 */ sw $zero, 0x10($sp) -/* 01493C 80013D3C 8E230000 */ lw $v1, ($s1) -/* 014940 80013D40 8FA80064 */ lw $t0, 0x64($sp) -/* 014944 80013D44 246F0008 */ addiu $t7, $v1, 8 -/* 014948 80013D48 AE2F0000 */ sw $t7, ($s1) -/* 01494C 80013D4C 3C18BC00 */ lui $t8, (0xBC00000A >> 16) # lui $t8, 0xbc00 -/* 014950 80013D50 3718000A */ ori $t8, (0xBC00000A & 0xFFFF) # ori $t8, $t8, 0xa -/* 014954 80013D54 AC780000 */ sw $t8, ($v1) -/* 014958 80013D58 AC600004 */ sw $zero, 4($v1) -/* 01495C 80013D5C 8519018E */ lh $t9, 0x18e($t0) -/* 014960 80013D60 3C0AFA00 */ lui $t2, 0xfa00 -/* 014964 80013D64 2B210040 */ slti $at, $t9, 0x40 -/* 014968 80013D68 10200007 */ beqz $at, .L80013D88 -/* 01496C 80013D6C 00000000 */ nop -/* 014970 80013D70 8E230000 */ lw $v1, ($s1) -/* 014974 80013D74 240BFFFF */ li $t3, -1 -/* 014978 80013D78 24690008 */ addiu $t1, $v1, 8 -/* 01497C 80013D7C AE290000 */ sw $t1, ($s1) -/* 014980 80013D80 AC6B0004 */ sw $t3, 4($v1) -/* 014984 80013D84 AC6A0000 */ sw $t2, ($v1) -.L80013D88: -/* 014988 80013D88 8E2C0000 */ lw $t4, ($s1) -/* 01498C 80013D8C 8FAD0068 */ lw $t5, 0x68($sp) -/* 014990 80013D90 3C0E8012 */ lui $t6, %hi(D_8011AE90) # $t6, 0x8012 -/* 014994 80013D94 ADAC0000 */ sw $t4, ($t5) -/* 014998 80013D98 8FAF006C */ lw $t7, 0x6c($sp) -/* 01499C 80013D9C 8DCEAE90 */ lw $t6, %lo(D_8011AE90)($t6) -/* 0149A0 80013DA0 3C188012 */ lui $t8, %hi(D_8011AE94) # $t8, 0x8012 -/* 0149A4 80013DA4 ADEE0000 */ sw $t6, ($t7) -/* 0149A8 80013DA8 8FB90070 */ lw $t9, 0x70($sp) -/* 0149AC 80013DAC 8F18AE94 */ lw $t8, %lo(D_8011AE94)($t8) -/* 0149B0 80013DB0 00000000 */ nop -/* 0149B4 80013DB4 AF380000 */ sw $t8, ($t9) -/* 0149B8 80013DB8 8FBF0024 */ lw $ra, 0x24($sp) -.L80013DBC: -/* 0149BC 80013DBC 8FB0001C */ lw $s0, 0x1c($sp) -/* 0149C0 80013DC0 8FB10020 */ lw $s1, 0x20($sp) -/* 0149C4 80013DC4 03E00008 */ jr $ra -/* 0149C8 80013DC8 27BD0068 */ addiu $sp, $sp, 0x68 - diff --git a/asm/non_matchings/objects/func_80013DCC.s b/asm/non_matchings/objects/func_80013DCC.s index 4b110254..da7f4ed6 100644 --- a/asm/non_matchings/objects/func_80013DCC.s +++ b/asm/non_matchings/objects/func_80013DCC.s @@ -25,20 +25,20 @@ glabel func_80013DCC /* 014A0C 80013E0C 1300009C */ beqz $t8, .L80014080 /* 014A10 80013E10 8FBF0024 */ lw $ra, 0x24($sp) /* 014A14 80013E14 8E190000 */ lw $t9, ($s0) -/* 014A18 80013E18 3C118012 */ lui $s1, %hi(D_8011AE8C) # $s1, 0x8012 +/* 014A18 80013E18 3C118012 */ lui $s1, %hi(gObjectCurrDisplayList) # $s1, 0x8012 /* 014A1C 80013E1C 13200097 */ beqz $t9, .L8001407C -/* 014A20 80013E20 2631AE8C */ addiu $s1, %lo(D_8011AE8C) # addiu $s1, $s1, -0x5174 +/* 014A20 80013E20 2631AE8C */ addiu $s1, %lo(gObjectCurrDisplayList) # addiu $s1, $s1, -0x5174 /* 014A24 80013E24 8C8D0000 */ lw $t5, ($a0) -/* 014A28 80013E28 3C018012 */ lui $at, %hi(D_8011AE90) # $at, 0x8012 +/* 014A28 80013E28 3C018012 */ lui $at, %hi(gObjectCurrMatrix) # $at, 0x8012 /* 014A2C 80013E2C AE2D0000 */ sw $t5, ($s1) /* 014A30 80013E30 8CAF0000 */ lw $t7, ($a1) /* 014A34 80013E34 24040016 */ li $a0, 22 -/* 014A38 80013E38 AC2FAE90 */ sw $t7, %lo(D_8011AE90)($at) +/* 014A38 80013E38 AC2FAE90 */ sw $t7, %lo(gObjectCurrMatrix)($at) /* 014A3C 80013E3C 8CD90000 */ lw $t9, ($a2) -/* 014A40 80013E40 3C018012 */ lui $at, %hi(D_8011AE94) # $at, 0x8012 +/* 014A40 80013E40 3C018012 */ lui $at, %hi(gObjectCurrVertexList) # $at, 0x8012 /* 014A44 80013E44 AFAB0054 */ sw $t3, 0x54($sp) /* 014A48 80013E48 0C0078A7 */ jal get_misc_asset -/* 014A4C 80013E4C AC39AE94 */ sw $t9, %lo(D_8011AE94)($at) +/* 014A4C 80013E4C AC39AE94 */ sw $t9, %lo(gObjectCurrVertexList)($at) /* 014A50 80013E50 8FAB0054 */ lw $t3, 0x54($sp) /* 014A54 80013E54 00000000 */ nop /* 014A58 80013E58 816401D6 */ lb $a0, 0x1d6($t3) @@ -135,10 +135,10 @@ glabel func_80013DCC /* 014BB8 80013FB8 0C01FD65 */ jal func_8007F594 /* 014BBC 80013FBC 01413025 */ or $a2, $t2, $at /* 014BC0 80013FC0 C7B00038 */ lwc1 $f16, 0x38($sp) -/* 014BC4 80013FC4 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 +/* 014BC4 80013FC4 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 /* 014BC8 80013FC8 8E060000 */ lw $a2, ($s0) /* 014BCC 80013FCC 8FA70064 */ lw $a3, 0x64($sp) -/* 014BD0 80013FD0 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 014BD0 80013FD0 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 014BD4 80013FD4 02202025 */ move $a0, $s1 /* 014BD8 80013FD8 0C01A3EA */ jal func_80068FA8 /* 014BDC 80013FDC E7B00010 */ swc1 $f16, 0x10($sp) @@ -171,14 +171,14 @@ glabel func_80013DCC /* 014C48 80014048 AC6C0000 */ sw $t4, ($v1) /* 014C4C 8001404C 8E2E0000 */ lw $t6, ($s1) /* 014C50 80014050 8FAF0058 */ lw $t7, 0x58($sp) -/* 014C54 80014054 3C188012 */ lui $t8, %hi(D_8011AE90) # $t8, 0x8012 +/* 014C54 80014054 3C188012 */ lui $t8, %hi(gObjectCurrMatrix) # $t8, 0x8012 /* 014C58 80014058 ADEE0000 */ sw $t6, ($t7) /* 014C5C 8001405C 8FB9005C */ lw $t9, 0x5c($sp) -/* 014C60 80014060 8F18AE90 */ lw $t8, %lo(D_8011AE90)($t8) -/* 014C64 80014064 3C0C8012 */ lui $t4, %hi(D_8011AE94) # $t4, 0x8012 +/* 014C60 80014060 8F18AE90 */ lw $t8, %lo(gObjectCurrMatrix)($t8) +/* 014C64 80014064 3C0C8012 */ lui $t4, %hi(gObjectCurrVertexList) # $t4, 0x8012 /* 014C68 80014068 AF380000 */ sw $t8, ($t9) /* 014C6C 8001406C 8FAD0060 */ lw $t5, 0x60($sp) -/* 014C70 80014070 8D8CAE94 */ lw $t4, %lo(D_8011AE94)($t4) +/* 014C70 80014070 8D8CAE94 */ lw $t4, %lo(gObjectCurrVertexList)($t4) /* 014C74 80014074 00000000 */ nop /* 014C78 80014078 ADAC0000 */ sw $t4, ($t5) .L8001407C: diff --git a/asm/non_matchings/objects/func_800143A8.s b/asm/non_matchings/objects/func_800143A8.s index 78a5e316..78dcc9d1 100644 --- a/asm/non_matchings/objects/func_800143A8.s +++ b/asm/non_matchings/objects/func_800143A8.s @@ -1,7 +1,7 @@ glabel func_800143A8 /* 014FA8 800143A8 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 014FAC 800143AC 3C0E8012 */ lui $t6, %hi(D_8011AE8C) # $t6, 0x8012 -/* 014FB0 800143B0 8DCEAE8C */ lw $t6, %lo(D_8011AE8C)($t6) +/* 014FAC 800143AC 3C0E8012 */ lui $t6, %hi(gObjectCurrDisplayList) # $t6, 0x8012 +/* 014FB0 800143B0 8DCEAE8C */ lw $t6, %lo(gObjectCurrDisplayList)($t6) /* 014FB4 800143B4 AFBF003C */ sw $ra, 0x3c($sp) /* 014FB8 800143B8 AFBE0038 */ sw $fp, 0x38($sp) /* 014FBC 800143BC AFB70034 */ sw $s7, 0x34($sp) @@ -114,8 +114,8 @@ glabel func_800143A8 /* 015148 80014548 AFAA00AC */ sw $t2, 0xac($sp) /* 01514C 8001454C 0C01ED1B */ jal func_8007B46C /* 015150 80014550 AFAB0048 */ sw $t3, 0x48($sp) -/* 015154 80014554 3C068012 */ lui $a2, %hi(D_8011AE8C) # $a2, 0x8012 -/* 015158 80014558 24C6AE8C */ addiu $a2, %lo(D_8011AE8C) # addiu $a2, $a2, -0x5174 +/* 015154 80014554 3C068012 */ lui $a2, %hi(gObjectCurrDisplayList) # $a2, 0x8012 +/* 015158 80014558 24C6AE8C */ addiu $a2, %lo(gObjectCurrDisplayList) # addiu $a2, $a2, -0x5174 /* 01515C 8001455C 8CC30000 */ lw $v1, ($a2) /* 015160 80014560 3C010700 */ lui $at, 0x700 /* 015164 80014564 246F0008 */ addiu $t7, $v1, 8 @@ -287,7 +287,7 @@ glabel func_800143A8 /* 0153D4 800147D4 8FAE0074 */ lw $t6, 0x74($sp) .L800147D8: /* 0153D8 800147D8 8FBF003C */ lw $ra, 0x3c($sp) -/* 0153DC 800147DC 3C018012 */ lui $at, %hi(D_8011AE8C) # $at, 0x8012 +/* 0153DC 800147DC 3C018012 */ lui $at, %hi(gObjectCurrDisplayList) # $at, 0x8012 /* 0153E0 800147E0 8FB00018 */ lw $s0, 0x18($sp) /* 0153E4 800147E4 8FB1001C */ lw $s1, 0x1c($sp) /* 0153E8 800147E8 8FB20020 */ lw $s2, 0x20($sp) @@ -300,5 +300,5 @@ glabel func_800143A8 /* 015404 80014804 27BD00B0 */ addiu $sp, $sp, 0xb0 /* 015408 80014808 01401025 */ move $v0, $t2 /* 01540C 8001480C 03E00008 */ jr $ra -/* 015410 80014810 AC2EAE8C */ sw $t6, %lo(D_8011AE8C)($at) +/* 015410 80014810 AC2EAE8C */ sw $t6, %lo(gObjectCurrDisplayList)($at) diff --git a/asm/non_matchings/objects/render_3d_billboard.s b/asm/non_matchings/objects/render_3d_billboard.s index b874f5ee..75ef1c26 100644 --- a/asm/non_matchings/objects/render_3d_billboard.s +++ b/asm/non_matchings/objects/render_3d_billboard.s @@ -70,9 +70,9 @@ glabel render_3d_billboard /* 01298C 80011D8C 3C0140C0 */ li $at, 0x40C00000 # 6.000000 /* 012990 80011D90 44818000 */ mtc1 $at, $f16 /* 012994 80011D94 C4F20008 */ lwc1 $f18, 8($a3) -/* 012998 80011D98 3C108012 */ lui $s0, %hi(D_8011AE8C) # $s0, 0x8012 +/* 012998 80011D98 3C108012 */ lui $s0, %hi(gObjectCurrDisplayList) # $s0, 0x8012 /* 01299C 80011D9C 46128032 */ c.eq.s $f16, $f18 -/* 0129A0 80011DA0 2610AE8C */ addiu $s0, %lo(D_8011AE8C) # addiu $s0, $s0, -0x5174 +/* 0129A0 80011DA0 2610AE8C */ addiu $s0, %lo(gObjectCurrDisplayList) # addiu $s0, $s0, -0x5174 /* 0129A4 80011DA4 45000015 */ bc1f .L80011DFC /* 0129A8 80011DA8 3C0EFA00 */ lui $t6, 0xfa00 /* 0129AC 80011DAC 8E020000 */ lw $v0, ($s0) @@ -97,8 +97,8 @@ glabel render_3d_billboard /* 0129F8 80011DF8 AC580004 */ sw $t8, 4($v0) .L80011DFC: /* 0129FC 80011DFC 1462000E */ bne $v1, $v0, .L80011E38 -/* 012A00 80011E00 3C108012 */ lui $s0, %hi(D_8011AE8C) # $s0, 0x8012 -/* 012A04 80011E04 2610AE8C */ addiu $s0, %lo(D_8011AE8C) # addiu $s0, $s0, -0x5174 +/* 012A00 80011E00 3C108012 */ lui $s0, %hi(gObjectCurrDisplayList) # $s0, 0x8012 +/* 012A04 80011E04 2610AE8C */ addiu $s0, %lo(gObjectCurrDisplayList) # addiu $s0, $s0, -0x5174 /* 012A08 80011E08 8E020000 */ lw $v0, ($s0) /* 012A0C 80011E0C 3C0196E6 */ lui $at, (0x96E6FF00 >> 16) # lui $at, 0x96e6 /* 012A10 80011E10 3421FF00 */ ori $at, (0x96E6FF00 & 0xFFFF) # ori $at, $at, 0xff00 @@ -115,10 +115,10 @@ glabel render_3d_billboard /* 012A38 80011E38 15000003 */ bnez $t0, .L80011E48 /* 012A3C 80011E3C 28A100FF */ slti $at, $a1, 0xff /* 012A40 80011E40 10200012 */ beqz $at, .L80011E8C -/* 012A44 80011E44 3C108012 */ lui $s0, %hi(D_8011AE8C) # $s0, 0x8012 +/* 012A44 80011E44 3C108012 */ lui $s0, %hi(gObjectCurrDisplayList) # $s0, 0x8012 .L80011E48: -/* 012A48 80011E48 3C108012 */ lui $s0, %hi(D_8011AE8C) # $s0, 0x8012 -/* 012A4C 80011E4C 2610AE8C */ addiu $s0, %lo(D_8011AE8C) # addiu $s0, $s0, -0x5174 +/* 012A48 80011E48 3C108012 */ lui $s0, %hi(gObjectCurrDisplayList) # $s0, 0x8012 +/* 012A4C 80011E4C 2610AE8C */ addiu $s0, %lo(gObjectCurrDisplayList) # addiu $s0, $s0, -0x5174 /* 012A50 80011E50 8E020000 */ lw $v0, ($s0) /* 012A54 80011E54 30C300FF */ andi $v1, $a2, 0xff /* 012A58 80011E58 244E0008 */ addiu $t6, $v0, 8 @@ -135,7 +135,7 @@ glabel render_3d_billboard /* 012A84 80011E84 10000009 */ b .L80011EAC /* 012A88 80011E88 AC590004 */ sw $t9, 4($v0) .L80011E8C: -/* 012A8C 80011E8C 2610AE8C */ addiu $s0, %lo(D_8011AE8C) # addiu $s0, $s0, -0x5174 +/* 012A8C 80011E8C 2610AE8C */ addiu $s0, %lo(gObjectCurrDisplayList) # addiu $s0, $s0, -0x5174 /* 012A90 80011E90 8E020000 */ lw $v0, ($s0) /* 012A94 80011E94 3C0DFA00 */ lui $t5, 0xfa00 /* 012A98 80011E98 244F0008 */ addiu $t7, $v0, 8 @@ -208,7 +208,7 @@ glabel render_3d_billboard /* 012B90 80011F90 14800009 */ bnez $a0, .L80011FB8 /* 012B94 80011F94 00000000 */ nop /* 012B98 80011F98 15620028 */ bne $t3, $v0, .L8001203C -/* 012B9C 80011F9C 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 +/* 012B9C 80011F9C 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 /* 012BA0 80011FA0 8CF80064 */ lw $t8, 0x64($a3) /* 012BA4 80011FA4 2401000A */ li $at, 10 /* 012BA8 80011FA8 930E0018 */ lbu $t6, 0x18($t8) @@ -254,10 +254,10 @@ glabel render_3d_billboard .L8001203C: /* 012C3C 8001203C 8FB90058 */ lw $t9, 0x58($sp) .L80012040: -/* 012C40 80012040 3C068012 */ lui $a2, %hi(D_8011AE94) # $a2, 0x8012 -/* 012C44 80012044 24C6AE94 */ addiu $a2, %lo(D_8011AE94) # addiu $a2, $a2, -0x516c +/* 012C40 80012040 3C068012 */ lui $a2, %hi(gObjectCurrVertexList) # $a2, 0x8012 +/* 012C44 80012044 24C6AE94 */ addiu $a2, %lo(gObjectCurrVertexList) # addiu $a2, $a2, -0x516c /* 012C48 80012048 02002025 */ move $a0, $s0 -/* 012C4C 8001204C 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 012C4C 8001204C 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 012C50 80012050 AFAA0014 */ sw $t2, 0x14($sp) /* 012C54 80012054 AFA80080 */ sw $t0, 0x80($sp) /* 012C58 80012058 AFA9007C */ sw $t1, 0x7c($sp) diff --git a/asm/non_matchings/objects/render_3d_model.s b/asm/non_matchings/objects/render_3d_model.s index 07a364d7..df29a922 100644 --- a/asm/non_matchings/objects/render_3d_model.s +++ b/asm/non_matchings/objects/render_3d_model.s @@ -180,12 +180,12 @@ glabel render_3d_model /* 012F60 80012360 A5C00052 */ sh $zero, 0x52($t6) .L80012364: /* 012F64 80012364 44804000 */ mtc1 $zero, $f8 -/* 012F68 80012368 3C118012 */ lui $s1, %hi(D_8011AE8C) # $s1, 0x8012 +/* 012F68 80012368 3C118012 */ lui $s1, %hi(gObjectCurrDisplayList) # $s1, 0x8012 /* 012F6C 8001236C 3C078012 */ lui $a3, %hi(D_8011AD28) # $a3, 0x8012 -/* 012F70 80012370 2631AE8C */ addiu $s1, %lo(D_8011AE8C) # addiu $s1, $s1, -0x5174 +/* 012F70 80012370 2631AE8C */ addiu $s1, %lo(gObjectCurrDisplayList) # addiu $s1, $s1, -0x5174 /* 012F74 80012374 8CE7AD28 */ lw $a3, %lo(D_8011AD28)($a3) -/* 012F78 80012378 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 -/* 012F7C 8001237C 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 012F78 80012378 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 +/* 012F7C 8001237C 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 012F80 80012380 02202025 */ move $a0, $s1 /* 012F84 80012384 02403025 */ move $a2, $s2 /* 012F88 80012388 0C01A521 */ jal func_80069484 @@ -197,7 +197,7 @@ glabel render_3d_model /* 012FA0 800123A0 8258003B */ lb $t8, 0x3b($s2) /* 012FA4 800123A4 02202025 */ move $a0, $s1 /* 012FA8 800123A8 13000006 */ beqz $t8, .L800123C4 -/* 012FAC 800123AC 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 +/* 012FAC 800123AC 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 /* 012FB0 800123B0 827901D6 */ lb $t9, 0x1d6($s3) /* 012FB4 800123B4 00000000 */ nop /* 012FB8 800123B8 2B210005 */ slti $at, $t9, 5 @@ -205,7 +205,7 @@ glabel render_3d_model /* 012FC0 800123C0 00000000 */ nop .L800123C4: /* 012FC4 800123C4 8667016A */ lh $a3, 0x16a($s3) -/* 012FC8 800123C8 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 012FC8 800123C8 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 012FCC 800123CC 0C01A5E4 */ jal func_80069790 /* 012FD0 800123D0 02003025 */ move $a2, $s0 /* 012FD4 800123D4 240D0001 */ li $t5, 1 @@ -546,10 +546,10 @@ glabel render_3d_model /* 0134AC 800128AC 00000000 */ nop /* 0134B0 800128B0 AC4D0004 */ sw $t5, 4($v0) .L800128B4: -/* 0134B4 800128B4 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 -/* 0134B8 800128B8 3C068012 */ lui $a2, %hi(D_8011AE94) # $a2, 0x8012 -/* 0134BC 800128BC 24C6AE94 */ addiu $a2, %lo(D_8011AE94) # addiu $a2, $a2, -0x516c -/* 0134C0 800128C0 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 0134B4 800128B4 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 +/* 0134B8 800128B8 3C068012 */ lui $a2, %hi(gObjectCurrVertexList) # $a2, 0x8012 +/* 0134BC 800128BC 24C6AE94 */ addiu $a2, %lo(gObjectCurrVertexList) # addiu $a2, $a2, -0x516c +/* 0134C0 800128C0 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 0134C4 800128C4 02202025 */ move $a0, $s1 /* 0134C8 800128C8 02003825 */ move $a3, $s0 /* 0134CC 800128CC AFAC0010 */ sw $t4, 0x10($sp) @@ -659,11 +659,11 @@ glabel render_3d_model /* 01365C 80012A5C 460042A1 */ cvt.d.s $f10, $f8 /* 013660 80012A60 462E5102 */ mul.d $f4, $f10, $f14 /* 013664 80012A64 460081A1 */ cvt.d.s $f6, $f16 -/* 013668 80012A68 3C058012 */ lui $a1, %hi(D_8011AE90) # $a1, 0x8012 -/* 01366C 80012A6C 3C068012 */ lui $a2, %hi(D_8011AE94) # $a2, 0x8012 -/* 013670 80012A70 24C6AE94 */ addiu $a2, %lo(D_8011AE94) # addiu $a2, $a2, -0x516c +/* 013668 80012A68 3C058012 */ lui $a1, %hi(gObjectCurrMatrix) # $a1, 0x8012 +/* 01366C 80012A6C 3C068012 */ lui $a2, %hi(gObjectCurrVertexList) # $a2, 0x8012 +/* 013670 80012A70 24C6AE94 */ addiu $a2, %lo(gObjectCurrVertexList) # addiu $a2, $a2, -0x516c /* 013674 80012A74 46243200 */ add.d $f8, $f6, $f4 -/* 013678 80012A78 24A5AE90 */ addiu $a1, %lo(D_8011AE90) # addiu $a1, $a1, -0x5170 +/* 013678 80012A78 24A5AE90 */ addiu $a1, %lo(gObjectCurrMatrix) # addiu $a1, $a1, -0x5170 /* 01367C 80012A7C 462042A0 */ cvt.s.d $f10, $f8 /* 013680 80012A80 240E010A */ li $t6, 266 /* 013684 80012A84 46121101 */ sub.s $f4, $f2, $f18 diff --git a/include/structs.h b/include/structs.h index 17b986e1..67aa9eae 100644 --- a/include/structs.h +++ b/include/structs.h @@ -426,7 +426,9 @@ typedef struct ObjectModel { /* 0x08 */ Triangle *triangles; /* 0x0C */ s32 *unkC; /* 0x10 */ s32 *unk10; - u8 pad0[0x0E]; + u8 pad0[0x0B]; +/* 0x1F */ s8 unk1F; + u8 pad20[2]; /* 0x22 */ s16 numberOfTextures; /* 0x24 */ s16 numberOfVertices; /* 0x26 */ s16 numberOfTriangles; @@ -855,7 +857,7 @@ typedef struct Object_Exit { /* Size: 0x224 - 548 bytes */ typedef struct Object_Racer { /* 0x000 */ s16 playerIndex; // -1 = AI Controlled, 0 to 3 = Object controlled - /* 0x002 */ u8 unk2; + /* 0x002 */ s8 unk2; /* 0x003 */ s8 characterId; // Affects minimap color, horn, voice, etc. /* 0x004 */ s32 unk4; /* 0x008 */ f32 forwardVel; @@ -1278,12 +1280,14 @@ typedef struct Object_68 { ObjectModel *objModel; TextureHeader *texHeader; }; - /* 0x04 */ u8 pad04[12]; + /* 0x04 */ s32 *unk4[3]; /* 0x10 */ s16 unk10; - /* 0x14 */ u8 pad14[14]; + /* 0x14 */ u8 pad14[13]; + /* 0x1F */ s8 unk1F; /* 0x20 */ s8 unk20; + /* 0x21 */ s8 unk21; } Object_68; - + /* Size: 0x20 bytes */ typedef struct Object_6C { u8 pad0[0x4]; diff --git a/src/objects.c b/src/objects.c index 4e9e771a..a5c82ba3 100644 --- a/src/objects.c +++ b/src/objects.c @@ -18,6 +18,7 @@ #include "particles.h" #include "printf.h" #include "unknown_0255E0.h" +#include "math_util.h" /************ .data ************/ @@ -203,9 +204,9 @@ s16 D_8011AE80; // TT Ghost outTime at least s16 D_8011AE82; s32 D_8011AE84; s32 D_8011AE88; -Gfx *D_8011AE8C; -Mtx *D_8011AE90; -VertexList *D_8011AE94; +Gfx *gObjectCurrDisplayList; +Mtx *gObjectCurrMatrix; +VertexList *gObjectCurrVertexList; s32 D_8011AE98[2]; s32 D_8011AEA0; s32 D_8011AEA4; @@ -253,7 +254,7 @@ s32 D_8011AFFC; s32 D_8011B000; s32 D_8011B004; s32 D_8011B008; -s32 D_8011B010[4]; //Possibly Misc Asset 20 pointers +u8 D_8011B010[16]; Object *D_8011B020[10]; s32 D_8011B048[4]; s32 D_8011B058[4]; @@ -1088,15 +1089,15 @@ void func_80012D5C(Gfx **dlist, Mtx **mats, VertexList **verts, Object *object) if (object->segment.trans.unk6 & 0x5000) return; func_800B76B8(2, object->unk4A); - D_8011AE8C = *dlist; - D_8011AE90 = *mats; - D_8011AE94 = *verts; + gObjectCurrDisplayList = *dlist; + gObjectCurrMatrix = *mats; + gObjectCurrVertexList = *verts; scale = object->segment.trans.scale; render_object(object); object->segment.trans.scale = scale; - *dlist = D_8011AE8C; - *mats = D_8011AE90; - *verts = D_8011AE94; + *dlist = gObjectCurrDisplayList; + *mats = gObjectCurrMatrix; + *verts = gObjectCurrVertexList; func_800B76B8(2, -1); } @@ -1147,7 +1148,7 @@ GLOBAL_ASM("asm/non_matchings/objects/func_80012F94.s") void render_object(Object *this) { func_80012F94(this); if (this->segment.trans.unk6 & 0x8000) { - func_800B3740(this, &D_8011AE8C, &D_8011AE90, &D_8011AE94, 0x8000); + func_800B3740(this, &gObjectCurrDisplayList, &gObjectCurrMatrix, &gObjectCurrVertexList, 0x8000); } else { if (this->segment.header->modelType == OBJECT_MODEL_TYPE_3D_MODEL) render_3d_model(this); @@ -1169,7 +1170,79 @@ void func_80013548(Object *obj) { GLOBAL_ASM("asm/non_matchings/objects/func_800135B8.s") GLOBAL_ASM("asm/non_matchings/objects/func_800138A8.s") -GLOBAL_ASM("asm/non_matchings/objects/func_80013A0C.s") + +/** + * Get the racer object data, and fetch set visual shield properties based on that racer. + * Afterwards, render the graphics with opacity scaling with the fadetimer. + */ +void render_racer_shield(Gfx **dList, Mtx **mtx, VertexList **vtxList, Object *obj) { + struct Object_Racer* racer; + Object_68 *gfxData; + ObjectModel *mdl; + struct RacerShieldGfx* shield; + s32 shieldType; + s32 var_a1; + s32 var_a2; + f32 scale; + f32 shear; + + racer = (Object_Racer *) obj->unk64; + if (racer->shieldTimer > 0 && D_800DC75C != NULL) { + gObjectCurrDisplayList = *dList; + gObjectCurrMatrix = *mtx; + gObjectCurrVertexList = *vtxList; + var_a2 = racer->unk2; + if (var_a2 > 10) { + var_a2 = 0; + } + var_a1 = racer->unk1D6; + if (var_a1 > 2) { + var_a1 = 0; + } + shield = ((struct RacerShieldGfx *) get_misc_asset(MISC_ASSET_UNK15)); + var_a1 = (var_a1 * 10) + var_a2; + shield = shield + var_a1; + D_800DC75C->segment.trans.x_position = shield->x_position; + D_800DC75C->segment.trans.y_position = shield->y_position; + D_800DC75C->segment.trans.z_position = shield->z_position; + D_800DC75C->segment.trans.y_position += shield->y_offset * cosine_s(D_8011B010[var_a2] * 0x200); + shear = (sine_s(D_8011B010[var_a2] * 1024) * 0.05f) + 0.95f; + D_800DC75C->segment.trans.scale = shield->scale * shear; + shear = shear * shield->turnSpeed; + D_800DC75C->segment.trans.y_rotation = D_8011B010[var_a2] * 0x800; + D_800DC75C->segment.trans.x_rotation = 0x800; + D_800DC75C->segment.trans.z_rotation = 0; + shieldType = racer->shieldType; + if (shieldType) { + shieldType--; + } + if (shieldType > 2) { + shieldType = 2; + } + scale = ((f32) shieldType * 0.1) + 1.0f; + D_800DC75C->segment.trans.scale *= scale; + shear *= scale; + gfxData = D_800DC75C->unk68[shieldType]; + mdl = gfxData->objModel; + D_800DC75C->unk44 = gfxData->unk4[gfxData->unk1F]; + gDPSetEnvColor(gObjectCurrDisplayList++, 255, 255, 255, 0); + if (racer->shieldTimer < 64) { + gDPSetPrimColor(gObjectCurrDisplayList++, 0, 0, 255, 255, 255, racer->shieldTimer * 4); + } else { + gDPSetPrimColor(gObjectCurrDisplayList++, 0, 0, 255, 255, 255, 255); + } + func_80068FA8(&gObjectCurrDisplayList, &gObjectCurrMatrix, D_800DC75C, obj, shear); + func_800143A8(mdl, D_800DC75C, 0, 4, 0); + gDkrInsertMatrix(gObjectCurrDisplayList++, 0, G_MTX_DKR_INDEX_0); + if (racer->shieldTimer < 64) { + gDPSetPrimColor(gObjectCurrDisplayList++, 0, 0, 255, 255, 255, 255); + } + *dList = gObjectCurrDisplayList; + *mtx = gObjectCurrMatrix; + *vtxList = gObjectCurrVertexList; + } +} + GLOBAL_ASM("asm/non_matchings/objects/func_80013DCC.s") GLOBAL_ASM("asm/non_matchings/objects/func_80014090.s") diff --git a/src/objects.h b/src/objects.h index 4dd90038..304f9de6 100644 --- a/src/objects.h +++ b/src/objects.h @@ -138,6 +138,15 @@ enum ObjectBehaviours { BHV_UNK_7F }; +struct RacerShieldGfx { + s16 x_position; + s16 y_position; + s16 z_position; + s16 y_offset; + f32 scale; + f32 turnSpeed; +}; + /* Size: 0x8 bytes */ typedef struct unknown800DC6F0 { union { @@ -371,6 +380,8 @@ void func_80021400(s32 arg0); s32 func_8001B668(s32 arg0); s32 func_80011570(Object *obj, f32 xPos, f32 yPos, f32 zPos); s32 func_8001BB18(s32 arg0); +void render_racer_shield(Gfx **dList, Mtx **mtx, VertexList **vtxList, Object *obj); +void set_and_normalize_D_8011AFE8(f32 arg0, f32 arg1, f32 arg2); //Non Matching void calc_dynamic_lighting_for_object_1(Object *, ObjectModel *, s16, Object *, f32, f32); @@ -379,7 +390,6 @@ void gParticlePtrList_flush(void); void decrypt_magic_codes(u8 *arg0, s32 length); void func_80011960(Object*, s32, u32, Object_64*, u32, u32, u32, u32, f32); void func_80011AD0(Object *this); -void set_and_normalize_D_8011AFE8(f32 arg0, f32 arg1, f32 arg2); s32 func_80014814(s32 *); void func_80015348(s32, s32); Object *spawn_object(void *entry, s32); @@ -393,5 +403,7 @@ s32 func_800185E4(s8, Object* obj, f32 xPos, f32 yPos, f32 zPos, f32* checkpoint Object *func_8001B7A8(Object *arg0, s32 arg1, f32 *arg2); void func_80011134(Object *, s32); void func_800113CC(Object *, s32, s32, s32, s32); +s32 func_800143A8(ObjectModel*, Object*, s32, s32, s32); /* extern */ +void func_80068FA8(Gfx**, Mtx**, Object*, Object*, f32); /* extern */ #endif diff --git a/src/racer.c b/src/racer.c index 0cdaf478..b579e023 100644 --- a/src/racer.c +++ b/src/racer.c @@ -3884,7 +3884,7 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR racer->unk16A += var_t2; } if (racer->shieldTimer > 0) { - if (racer->shieldTimer >= 61) { + if (racer->shieldTimer > 60) { if (racer->shieldSoundMask != 0) { update_spatial_audio_position(racer->shieldSoundMask, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position); } else if (racer->unk118 != 0) { diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index 61afa41a..91aaccdd 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -659,7 +659,7 @@ void render_level_geometry_and_objects(void) { if (objFlags & sp158) { s0 = 0; } - if ((obj->behaviorId == 1) && (s0 >= 0xFF)) { + if ((obj->behaviorId == BHV_RACER) && (s0 >= 0xFF)) { s0 = 0; } if (obj != NULL && s0 < 0xFF && sp58[obj->segment.unk2C.half.lower + 1] && func_8002A900(obj)) { @@ -676,8 +676,8 @@ void render_level_geometry_and_objects(void) { } } skip: - if (obj->behaviorId == 1) { - func_80013A0C(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, obj); + if (obj->behaviorId == BHV_RACER) { + render_racer_shield(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, obj); func_80013DCC(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, obj); } }