diff --git a/asm/non_matchings/code_80004740/func_80004A1C.s b/asm/non_matchings/code_80004740/func_80004A1C.s index 88894dbf2..3012401c4 100644 --- a/asm/non_matchings/code_80004740/func_80004A1C.s +++ b/asm/non_matchings/code_80004740/func_80004A1C.s @@ -125,7 +125,7 @@ glabel func_80004A1C /* 0057E8 80004BE8 27190001 */ addiu $t9, $t8, 1 /* 0057EC 80004BEC 10C0000B */ beqz $a2, .L80004C1C /* 0057F0 80004BF0 AE190000 */ sw $t9, ($s0) -/* 0057F4 80004BF4 0C0A9EF5 */ jal lookup_item +/* 0057F4 80004BF4 0C0A9EF5 */ jal segmented_to_virtual /* 0057F8 80004BF8 00C02025 */ move $a0, $a2 /* 0057FC 80004BFC 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015 /* 005800 80004C00 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298 diff --git a/asm/non_matchings/code_80004740/func_80004C30.s b/asm/non_matchings/code_80004740/func_80004C30.s index b8148f607..f41cdf25c 100644 --- a/asm/non_matchings/code_80004740/func_80004C30.s +++ b/asm/non_matchings/code_80004740/func_80004C30.s @@ -14,10 +14,10 @@ glabel func_80004C30 /* 005860 80004C60 AFA60050 */ sw $a2, 0x50($sp) /* 005864 80004C64 8CA4000C */ lw $a0, 0xc($a1) /* 005868 80004C68 00A08025 */ move $s0, $a1 -/* 00586C 80004C6C 0C0A9EF5 */ jal lookup_item +/* 00586C 80004C6C 0C0A9EF5 */ jal segmented_to_virtual /* 005870 80004C70 A7A60052 */ sh $a2, 0x52($sp) /* 005874 80004C74 AFA20040 */ sw $v0, 0x40($sp) -/* 005878 80004C78 0C0A9EF5 */ jal lookup_item +/* 005878 80004C78 0C0A9EF5 */ jal segmented_to_virtual /* 00587C 80004C7C 8E040010 */ lw $a0, 0x10($s0) /* 005880 80004C80 3C138016 */ lui $s3, %hi(D_80162D7A) # $s3, 0x8016 /* 005884 80004C84 26732D7A */ addiu $s3, %lo(D_80162D7A) # addiu $s3, $s3, 0x2d7a diff --git a/asm/non_matchings/code_80004740/func_80004DFC.s b/asm/non_matchings/code_80004740/func_80004DFC.s index 0f7841827..71f34c840 100644 --- a/asm/non_matchings/code_80004740/func_80004DFC.s +++ b/asm/non_matchings/code_80004740/func_80004DFC.s @@ -7,15 +7,15 @@ glabel func_80004DFC /* 005A10 80004E10 01C08025 */ move $s0, $t6 /* 005A14 80004E14 AFA5002C */ sw $a1, 0x2c($sp) /* 005A18 80004E18 AFA60030 */ sw $a2, 0x30($sp) -/* 005A1C 80004E1C 0C0A9EF5 */ jal lookup_item +/* 005A1C 80004E1C 0C0A9EF5 */ jal segmented_to_virtual /* 005A20 80004E20 AFA70034 */ sw $a3, 0x34($sp) /* 005A24 80004E24 AFA20024 */ sw $v0, 0x24($sp) -/* 005A28 80004E28 0C0A9EF5 */ jal lookup_item +/* 005A28 80004E28 0C0A9EF5 */ jal segmented_to_virtual /* 005A2C 80004E2C 8FA4002C */ lw $a0, 0x2c($sp) /* 005A30 80004E30 87AF0032 */ lh $t7, 0x32($sp) /* 005A34 80004E34 000FC080 */ sll $t8, $t7, 2 /* 005A38 80004E38 0058C821 */ addu $t9, $v0, $t8 -/* 005A3C 80004E3C 0C0A9EF5 */ jal lookup_item +/* 005A3C 80004E3C 0C0A9EF5 */ jal segmented_to_virtual /* 005A40 80004E40 8F240000 */ lw $a0, ($t9) /* 005A44 80004E44 84480008 */ lh $t0, 8($v0) /* 005A48 80004E48 00402825 */ move $a1, $v0 diff --git a/asm/non_matchings/code_80004740/func_80004EAC.s b/asm/non_matchings/code_80004740/func_80004EAC.s deleted file mode 100644 index 84f9045e6..000000000 --- a/asm/non_matchings/code_80004740/func_80004EAC.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_80004EAC -/* 005AAC 80004EAC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 005AB0 80004EB0 AFBF0014 */ sw $ra, 0x14($sp) -/* 005AB4 80004EB4 0C0A9EF5 */ jal lookup_item -/* 005AB8 80004EB8 AFA5001C */ sw $a1, 0x1c($sp) -/* 005ABC 80004EBC 87AE001E */ lh $t6, 0x1e($sp) -/* 005AC0 80004EC0 000E7880 */ sll $t7, $t6, 2 -/* 005AC4 80004EC4 004FC021 */ addu $t8, $v0, $t7 -/* 005AC8 80004EC8 0C0A9EF5 */ jal lookup_item -/* 005ACC 80004ECC 8F040000 */ lw $a0, ($t8) -/* 005AD0 80004ED0 84420008 */ lh $v0, 8($v0) -/* 005AD4 80004ED4 8FBF0014 */ lw $ra, 0x14($sp) -/* 005AD8 80004ED8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 005ADC 80004EDC 2442FFFF */ addiu $v0, $v0, -1 -/* 005AE0 80004EE0 0002CC00 */ sll $t9, $v0, 0x10 -/* 005AE4 80004EE4 03E00008 */ jr $ra -/* 005AE8 80004EE8 00191403 */ sra $v0, $t9, 0x10 diff --git a/asm/non_matchings/code_80005FD0/func_80009B60.s b/asm/non_matchings/code_80005FD0/func_80009B60.s index 5fc7f6bbd..813cf9325 100644 --- a/asm/non_matchings/code_80005FD0/func_80009B60.s +++ b/asm/non_matchings/code_80005FD0/func_80009B60.s @@ -475,7 +475,7 @@ glabel func_80009B60 /* 00AE40 8000A240 01AB7821 */ addu $t7, $t5, $t3 /* 00AE44 8000A244 25CE96B8 */ addiu $t6, %lo(D_0D0096B8) # addiu $t6, $t6, -0x6948 /* 00AE48 8000A248 01EE2021 */ addu $a0, $t7, $t6 -/* 00AE4C 8000A24C 0C026455 */ jal segmented_to_virtual_dupe +/* 00AE4C 8000A24C 0C026455 */ jal segmented_to_virtual_dupe_2 /* 00AE50 8000A250 AFA30030 */ sw $v1, 0x30($sp) /* 00AE54 8000A254 8FB90038 */ lw $t9, 0x38($sp) /* 00AE58 8000A258 3C0D8016 */ lui $t5, %hi(D_80163210) # $t5, 0x8016 @@ -506,7 +506,7 @@ glabel func_80009B60 /* 00AEB8 8000A2B8 000AC900 */ sll $t9, $t2, 4 /* 00AEBC 8000A2BC 032F5821 */ addu $t3, $t9, $t7 /* 00AEC0 8000A2C0 25CE9418 */ addiu $t6, %lo(D_0D009418) # addiu $t6, $t6, -0x6be8 -/* 00AEC4 8000A2C4 0C026455 */ jal segmented_to_virtual_dupe +/* 00AEC4 8000A2C4 0C026455 */ jal segmented_to_virtual_dupe_2 /* 00AEC8 8000A2C8 016E2021 */ addu $a0, $t3, $t6 /* 00AECC 8000A2CC 8FAC0038 */ lw $t4, 0x38($sp) /* 00AED0 8000A2D0 3C188016 */ lui $t8, %hi(D_80163210) # $t8, 0x8016 @@ -525,7 +525,7 @@ glabel func_80009B60 /* 00AF00 8000A300 000A6900 */ sll $t5, $t2, 4 /* 00AF04 8000A304 01AF5821 */ addu $t3, $t5, $t7 /* 00AF08 8000A308 25CE9568 */ addiu $t6, %lo(D_0D009568) # addiu $t6, $t6, -0x6a98 -/* 00AF0C 8000A30C 0C026455 */ jal segmented_to_virtual_dupe +/* 00AF0C 8000A30C 0C026455 */ jal segmented_to_virtual_dupe_2 /* 00AF10 8000A310 016E2021 */ addu $a0, $t3, $t6 /* 00AF14 8000A314 8FAC0038 */ lw $t4, 0x38($sp) /* 00AF18 8000A318 C4440000 */ lwc1 $f4, ($v0) @@ -1387,7 +1387,7 @@ glabel func_80009B60 /* 00BB74 8000AF74 0178C821 */ addu $t9, $t3, $t8 /* 00BB78 8000AF78 25CE9418 */ addiu $t6, %lo(D_0D009418) # addiu $t6, $t6, -0x6be8 /* 00BB7C 8000AF7C 032E2021 */ addu $a0, $t9, $t6 -/* 00BB80 8000AF80 0C026455 */ jal segmented_to_virtual_dupe +/* 00BB80 8000AF80 0C026455 */ jal segmented_to_virtual_dupe_2 /* 00BB84 8000AF84 AFA80020 */ sw $t0, 0x20($sp) /* 00BB88 8000AF88 8FAA0038 */ lw $t2, 0x38($sp) /* 00BB8C 8000AF8C 3C0D8016 */ lui $t5, %hi(D_80163028) # $t5, 0x8016 @@ -1408,7 +1408,7 @@ glabel func_80009B60 /* 00BBC4 8000AFC4 0198C821 */ addu $t9, $t4, $t8 /* 00BBC8 8000AFC8 25CE9568 */ addiu $t6, %lo(D_0D009568) # addiu $t6, $t6, -0x6a98 /* 00BBCC 8000AFCC 032E2021 */ addu $a0, $t9, $t6 -/* 00BBD0 8000AFD0 0C026455 */ jal segmented_to_virtual_dupe +/* 00BBD0 8000AFD0 0C026455 */ jal segmented_to_virtual_dupe_2 /* 00BBD4 8000AFD4 AFA80020 */ sw $t0, 0x20($sp) /* 00BBD8 8000AFD8 8FAA0038 */ lw $t2, 0x38($sp) /* 00BBDC 8000AFDC C44A0000 */ lwc1 $f10, ($v0) @@ -1441,7 +1441,7 @@ glabel func_80009B60 /* 00BC40 8000B040 000F5900 */ sll $t3, $t7, 4 /* 00BC44 8000B044 000CC080 */ sll $t8, $t4, 2 /* 00BC48 8000B048 0178C821 */ addu $t9, $t3, $t8 -/* 00BC4C 8000B04C 0C026455 */ jal segmented_to_virtual_dupe +/* 00BC4C 8000B04C 0C026455 */ jal segmented_to_virtual_dupe_2 /* 00BC50 8000B050 032E2021 */ addu $a0, $t9, $t6 /* 00BC54 8000B054 8FA30034 */ lw $v1, 0x34($sp) /* 00BC58 8000B058 C4460000 */ lwc1 $f6, ($v0) @@ -1461,7 +1461,7 @@ glabel func_80009B60 /* 00BC8C 8000B08C 01EBC021 */ addu $t8, $t7, $t3 /* 00BC90 8000B090 273996B8 */ addiu $t9, %lo(D_0D0096B8) # addiu $t9, $t9, -0x6948 /* 00BC94 8000B094 03192021 */ addu $a0, $t8, $t9 -/* 00BC98 8000B098 0C026455 */ jal segmented_to_virtual_dupe +/* 00BC98 8000B098 0C026455 */ jal segmented_to_virtual_dupe_2 /* 00BC9C 8000B09C AFA30034 */ sw $v1, 0x34($sp) /* 00BCA0 8000B0A0 8FA30034 */ lw $v1, 0x34($sp) /* 00BCA4 8000B0A4 C4520000 */ lwc1 $f18, ($v0) diff --git a/asm/non_matchings/code_80005FD0/func_8000F628.s b/asm/non_matchings/code_80005FD0/func_8000F628.s index cf749a2c4..dc0bfd40b 100644 --- a/asm/non_matchings/code_80005FD0/func_8000F628.s +++ b/asm/non_matchings/code_80005FD0/func_8000F628.s @@ -182,7 +182,7 @@ glabel func_8000F628 /* 0104F0 8000F8F0 AFAA00E8 */ sw $t2, 0xe8($sp) /* 0104F4 8000F8F4 AFAB00E4 */ sw $t3, 0xe4($sp) /* 0104F8 8000F8F8 AFAC00E0 */ sw $t4, 0xe0($sp) -/* 0104FC 8000F8FC 0C026455 */ jal segmented_to_virtual_dupe +/* 0104FC 8000F8FC 0C026455 */ jal segmented_to_virtual_dupe_2 /* 010500 8000F900 AFAD00DC */ sw $t5, 0xdc($sp) /* 010504 8000F904 C4440000 */ lwc1 $f4, ($v0) /* 010508 8000F908 8FAA00E8 */ lw $t2, 0xe8($sp) diff --git a/asm/non_matchings/code_80005FD0/func_800100F0.s b/asm/non_matchings/code_80005FD0/func_800100F0.s index 780054ddd..35c3b3870 100644 --- a/asm/non_matchings/code_80005FD0/func_800100F0.s +++ b/asm/non_matchings/code_80005FD0/func_800100F0.s @@ -25,7 +25,7 @@ glabel func_800100F0 /* 010D4C 8001014C 01395021 */ addu $t2, $t1, $t9 /* 010D50 80010150 3C04800E */ lui $a0, %hi(D_800DC8D0) /* 010D54 80010154 008A2021 */ addu $a0, $a0, $t2 -/* 010D58 80010158 0C026455 */ jal segmented_to_virtual_dupe +/* 010D58 80010158 0C026455 */ jal segmented_to_virtual_dupe_2 /* 010D5C 8001015C 8C84C8D0 */ lw $a0, %lo(D_800DC8D0)($a0) /* 010D60 80010160 8FA40030 */ lw $a0, 0x30($sp) /* 010D64 80010164 0C00457D */ jal process_path_data @@ -42,7 +42,7 @@ glabel func_800100F0 /* 010D8C 8001018C 3C04800E */ lui $a0, %hi(gCoursePathTable) /* 010D90 80010190 008E2021 */ addu $a0, $a0, $t6 /* 010D94 80010194 8C84C780 */ lw $a0, %lo(gCoursePathTable)($a0) -/* 010D98 80010198 0C026455 */ jal segmented_to_virtual_dupe +/* 010D98 80010198 0C026455 */ jal segmented_to_virtual_dupe_2 /* 010D9C 8001019C A7A6001A */ sh $a2, 0x1a($sp) /* 010DA0 800101A0 AFA2002C */ sw $v0, 0x2c($sp) /* 010DA4 800101A4 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/code_80005FD0/func_80011A5C.s b/asm/non_matchings/code_80005FD0/func_80011A5C.s index 9db1f9608..dca94b310 100644 --- a/asm/non_matchings/code_80005FD0/func_80011A5C.s +++ b/asm/non_matchings/code_80005FD0/func_80011A5C.s @@ -11,7 +11,7 @@ glabel func_80011A5C /* 012680 80011A80 2631C720 */ addiu $s1, %lo(D_800DC720) # addiu $s1, $s1, -0x38e0 /* 012684 80011A84 26102EB8 */ addiu $s0, %lo(D_80162EB8) # addiu $s0, $s0, 0x2eb8 .L80011A88: -/* 012688 80011A88 0C026455 */ jal segmented_to_virtual_dupe +/* 012688 80011A88 0C026455 */ jal segmented_to_virtual_dupe_2 /* 01268C 80011A8C 8E240000 */ lw $a0, ($s1) /* 012690 80011A90 26100004 */ addiu $s0, $s0, 4 /* 012694 80011A94 26310004 */ addiu $s1, $s1, 4 diff --git a/asm/non_matchings/code_8001F980/func_80022634.s b/asm/non_matchings/code_8001F980/func_80022634.s deleted file mode 100644 index ee1ffa6f6..000000000 --- a/asm/non_matchings/code_8001F980/func_80022634.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel move_s16_towards -/* 023234 80022634 AFA50004 */ sw $a1, 4($sp) -/* 023238 80022638 84820000 */ lh $v0, ($a0) -/* 02323C 8002263C 00057400 */ sll $t6, $a1, 0x10 -/* 023240 80022640 000E7C03 */ sra $t7, $t6, 0x10 -/* 023244 80022644 004FC023 */ subu $t8, $v0, $t7 -/* 023248 80022648 44984000 */ mtc1 $t8, $f8 -/* 02324C 8002264C 44866000 */ mtc1 $a2, $f12 -/* 023250 80022650 44822000 */ mtc1 $v0, $f4 -/* 023254 80022654 468042A0 */ cvt.s.w $f10, $f8 -/* 023258 80022658 468021A0 */ cvt.s.w $f6, $f4 -/* 02325C 8002265C 460C5402 */ mul.s $f16, $f10, $f12 -/* 023260 80022660 46103481 */ sub.s $f18, $f6, $f16 -/* 023264 80022664 4600910D */ trunc.w.s $f4, $f18 -/* 023268 80022668 44082000 */ mfc1 $t0, $f4 -/* 02326C 8002266C 03E00008 */ jr $ra -/* 023270 80022670 A4880000 */ sh $t0, ($a0) diff --git a/asm/non_matchings/code_8001F980/func_80022674.s b/asm/non_matchings/code_8001F980/func_80022674.s deleted file mode 100644 index 4db1dc499..000000000 --- a/asm/non_matchings/code_8001F980/func_80022674.s +++ /dev/null @@ -1,57 +0,0 @@ -glabel move_u16_towards -/* 023274 80022674 AFA50004 */ sw $a1, 4($sp) -/* 023278 80022678 94820000 */ lhu $v0, ($a0) -/* 02327C 8002267C 00057400 */ sll $t6, $a1, 0x10 -/* 023280 80022680 44866000 */ mtc1 $a2, $f12 -/* 023284 80022684 44822000 */ mtc1 $v0, $f4 -/* 023288 80022688 000E2C03 */ sra $a1, $t6, 0x10 -/* 02328C 8002268C 04410005 */ bgez $v0, .L800226A4 -/* 023290 80022690 468021A0 */ cvt.s.w $f6, $f4 -/* 023294 80022694 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 023298 80022698 44814000 */ mtc1 $at, $f8 -/* 02329C 8002269C 00000000 */ nop -/* 0232A0 800226A0 46083180 */ add.s $f6, $f6, $f8 -.L800226A4: -/* 0232A4 800226A4 0045C023 */ subu $t8, $v0, $a1 -/* 0232A8 800226A8 44985000 */ mtc1 $t8, $f10 -/* 0232AC 800226AC 24080001 */ li $t0, 1 -/* 0232B0 800226B0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0232B4 800226B4 46805420 */ cvt.s.w $f16, $f10 -/* 0232B8 800226B8 460C8482 */ mul.s $f18, $f16, $f12 -/* 0232BC 800226BC 46123101 */ sub.s $f4, $f6, $f18 -/* 0232C0 800226C0 4459F800 */ cfc1 $t9, $31 -/* 0232C4 800226C4 44C8F800 */ ctc1 $t0, $31 -/* 0232C8 800226C8 00000000 */ nop -/* 0232CC 800226CC 46002224 */ cvt.w.s $f8, $f4 -/* 0232D0 800226D0 4448F800 */ cfc1 $t0, $31 -/* 0232D4 800226D4 00000000 */ nop -/* 0232D8 800226D8 31080078 */ andi $t0, $t0, 0x78 -/* 0232DC 800226DC 51000013 */ beql $t0, $zero, .L8002272C -/* 0232E0 800226E0 44084000 */ mfc1 $t0, $f8 -/* 0232E4 800226E4 44814000 */ mtc1 $at, $f8 -/* 0232E8 800226E8 24080001 */ li $t0, 1 -/* 0232EC 800226EC 46082201 */ sub.s $f8, $f4, $f8 -/* 0232F0 800226F0 44C8F800 */ ctc1 $t0, $31 -/* 0232F4 800226F4 00000000 */ nop -/* 0232F8 800226F8 46004224 */ cvt.w.s $f8, $f8 -/* 0232FC 800226FC 4448F800 */ cfc1 $t0, $31 -/* 023300 80022700 00000000 */ nop -/* 023304 80022704 31080078 */ andi $t0, $t0, 0x78 -/* 023308 80022708 15000005 */ bnez $t0, .L80022720 -/* 02330C 8002270C 00000000 */ nop -/* 023310 80022710 44084000 */ mfc1 $t0, $f8 -/* 023314 80022714 3C018000 */ lui $at, 0x8000 -/* 023318 80022718 10000007 */ b .L80022738 -/* 02331C 8002271C 01014025 */ or $t0, $t0, $at -.L80022720: -/* 023320 80022720 10000005 */ b .L80022738 -/* 023324 80022724 2408FFFF */ li $t0, -1 -/* 023328 80022728 44084000 */ mfc1 $t0, $f8 -.L8002272C: -/* 02332C 8002272C 00000000 */ nop -/* 023330 80022730 0500FFFB */ bltz $t0, .L80022720 -/* 023334 80022734 00000000 */ nop -.L80022738: -/* 023338 80022738 44D9F800 */ ctc1 $t9, $31 -/* 02333C 8002273C 03E00008 */ jr $ra -/* 023340 80022740 A4880000 */ sh $t0, ($a0) diff --git a/asm/non_matchings/code_800431B0/func_80051EBC.s b/asm/non_matchings/code_800431B0/func_80051EBC.s deleted file mode 100644 index dc0a7e6a3..000000000 --- a/asm/non_matchings/code_800431B0/func_80051EBC.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_80051EBC -/* 052ABC 80051EBC 3C0E800E */ lui $t6, %hi(D_800DC5EC) # $t6, 0x800e -/* 052AC0 80051EC0 8DCEC5EC */ lw $t6, %lo(D_800DC5EC)($t6) -/* 052AC4 80051EC4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 052AC8 80051EC8 AFBF0014 */ sw $ra, 0x14($sp) -/* 052ACC 80051ECC 85CF0028 */ lh $t7, 0x28($t6) -/* 052AD0 80051ED0 241800F0 */ li $t8, 240 -/* 052AD4 80051ED4 00002825 */ move $a1, $zero -/* 052AD8 80051ED8 030F2023 */ subu $a0, $t8, $t7 -/* 052ADC 80051EDC 0004CC00 */ sll $t9, $a0, 0x10 -/* 052AE0 80051EE0 0C0146AF */ jal func_80051ABC -/* 052AE4 80051EE4 00192403 */ sra $a0, $t9, 0x10 -/* 052AE8 80051EE8 8FBF0014 */ lw $ra, 0x14($sp) -/* 052AEC 80051EEC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 052AF0 80051EF0 03E00008 */ jr $ra -/* 052AF4 80051EF4 00000000 */ nop diff --git a/asm/non_matchings/code_800431B0/func_80052044.s b/asm/non_matchings/code_800431B0/func_80052044.s deleted file mode 100644 index 3f2533c0d..000000000 --- a/asm/non_matchings/code_800431B0/func_80052044.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_80052044 -/* 052C44 80052044 3C0E800E */ lui $t6, %hi(D_800DC5EC) # $t6, 0x800e -/* 052C48 80052048 8DCEC5EC */ lw $t6, %lo(D_800DC5EC)($t6) -/* 052C4C 8005204C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 052C50 80052050 AFBF0014 */ sw $ra, 0x14($sp) -/* 052C54 80052054 85CF0028 */ lh $t7, 0x28($t6) -/* 052C58 80052058 241800F0 */ li $t8, 240 -/* 052C5C 8005205C 00002825 */ move $a1, $zero -/* 052C60 80052060 030F2023 */ subu $a0, $t8, $t7 -/* 052C64 80052064 0004CC00 */ sll $t9, $a0, 0x10 -/* 052C68 80052068 0C014718 */ jal func_80051C60 -/* 052C6C 8005206C 00192403 */ sra $a0, $t9, 0x10 -/* 052C70 80052070 8FBF0014 */ lw $ra, 0x14($sp) -/* 052C74 80052074 27BD0018 */ addiu $sp, $sp, 0x18 -/* 052C78 80052078 03E00008 */ jr $ra -/* 052C7C 8005207C 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/gen_random_item.s b/asm/non_matchings/code_80071F00/gen_random_item.s index 60841dd11..00a11dc7d 100644 --- a/asm/non_matchings/code_80071F00/gen_random_item.s +++ b/asm/non_matchings/code_80071F00/gen_random_item.s @@ -38,21 +38,21 @@ glabel gen_random_item /* 07BA38 8007AE38 87AB0022 */ lh $t3, 0x22($sp) .L8007AE3C: /* 07BA3C 8007AE3C 3C040D01 */ lui $a0, %hi(D_0D008790) # $a0, 0xd01 -/* 07BA40 8007AE40 0C0A9EF5 */ jal lookup_item +/* 07BA40 8007AE40 0C0A9EF5 */ jal segmented_to_virtual /* 07BA44 8007AE44 24848790 */ addiu $a0, %lo(D_0D008790) # addiu $a0, $a0, -0x7870 /* 07BA48 8007AE48 3C058016 */ lui $a1, %hi(D_801658FD) # $a1, 0x8016 /* 07BA4C 8007AE4C AFA20018 */ sw $v0, 0x18($sp) /* 07BA50 8007AE50 1000000C */ b .L8007AE84 /* 07BA54 8007AE54 24A558FD */ addiu $a1, %lo(D_801658FD) # addiu $a1, $a1, 0x58fd .L8007AE58: -/* 07BA58 8007AE58 0C0A9EF5 */ jal lookup_item +/* 07BA58 8007AE58 0C0A9EF5 */ jal segmented_to_virtual /* 07BA5C 8007AE5C 24848858 */ addiu $a0, $a0, -0x77a8 /* 07BA60 8007AE60 3C058016 */ lui $a1, %hi(D_801658FD) # $a1, 0x8016 /* 07BA64 8007AE64 AFA20018 */ sw $v0, 0x18($sp) /* 07BA68 8007AE68 10000006 */ b .L8007AE84 /* 07BA6C 8007AE6C 24A558FD */ addiu $a1, %lo(D_801658FD) # addiu $a1, $a1, 0x58fd .L8007AE70: -/* 07BA70 8007AE70 0C0A9EF5 */ jal lookup_item +/* 07BA70 8007AE70 0C0A9EF5 */ jal segmented_to_virtual /* 07BA74 8007AE74 24848984 */ addiu $a0, $a0, -0x767c /* 07BA78 8007AE78 3C058016 */ lui $a1, %hi(D_801658FD) # $a1, 0x8016 /* 07BA7C 8007AE7C AFA20018 */ sw $v0, 0x18($sp) @@ -75,7 +75,7 @@ glabel gen_random_item /* 07BAB4 8007AEB4 14610009 */ bne $v1, $at, .L8007AEDC /* 07BAB8 8007AEB8 87A90026 */ lh $t1, 0x26($sp) /* 07BABC 8007AEBC 3C040D01 */ lui $a0, %hi(D_0D008B14) # $a0, 0xd01 -/* 07BAC0 8007AEC0 0C0A9EF5 */ jal lookup_item +/* 07BAC0 8007AEC0 0C0A9EF5 */ jal segmented_to_virtual /* 07BAC4 8007AEC4 24848B14 */ addiu $a0, %lo(D_0D008B14) # addiu $a0, $a0, -0x74ec /* 07BAC8 8007AEC8 3C198016 */ lui $t9, %hi(D_801658FD) # $t9, 0x8016 /* 07BACC 8007AECC 933958FD */ lbu $t9, %lo(D_801658FD)($t9) @@ -86,12 +86,12 @@ glabel gen_random_item /* 07BADC 8007AEDC 15200006 */ bnez $t1, .L8007AEF8 /* 07BAE0 8007AEE0 3C040D01 */ lui $a0, 0xd01 /* 07BAE4 8007AEE4 3C040D01 */ lui $a0, %hi(D_0D008150) # $a0, 0xd01 -/* 07BAE8 8007AEE8 0C0A9EF5 */ jal lookup_item +/* 07BAE8 8007AEE8 0C0A9EF5 */ jal segmented_to_virtual /* 07BAEC 8007AEEC 24848150 */ addiu $a0, %lo(D_0D008150) # addiu $a0, $a0, -0x7eb0 /* 07BAF0 8007AEF0 10000004 */ b .L8007AF04 /* 07BAF4 8007AEF4 87AA0022 */ lh $t2, 0x22($sp) .L8007AEF8: -/* 07BAF8 8007AEF8 0C0A9EF5 */ jal lookup_item +/* 07BAF8 8007AEF8 0C0A9EF5 */ jal segmented_to_virtual /* 07BAFC 8007AEFC 24848470 */ addiu $a0, $a0, -0x7b90 /* 07BB00 8007AF00 87AA0022 */ lh $t2, 0x22($sp) .L8007AF04: diff --git a/asm/non_matchings/code_80091750/add_8018D9E0_entry.s b/asm/non_matchings/code_80091750/add_8018D9E0_entry.s index a7ee16d55..f464c51d3 100644 --- a/asm/non_matchings/code_80091750/add_8018D9E0_entry.s +++ b/asm/non_matchings/code_80091750/add_8018D9E0_entry.s @@ -215,7 +215,7 @@ glabel L8009E940 /* 09F574 8009E974 AFF90010 */ sw $t9, 0x10($ra) /* 09F578 8009E978 8C640000 */ lw $a0, ($v1) .L8009E97C: -/* 09F57C 8009E97C 0C026449 */ jal segmented_to_virtual +/* 09F57C 8009E97C 0C026449 */ jal segmented_to_virtual_dupe /* 09F580 8009E980 AFA30024 */ sw $v1, 0x24($sp) /* 09F584 8009E984 0C026461 */ jal func_80099184 /* 09F588 8009E988 00402025 */ move $a0, $v0 @@ -394,7 +394,7 @@ glabel L8009E9AC glabel L8009EC38 /* 09F838 8009EC38 3C04800E */ lui $a0, %hi(D_800E7D34) # $a0, 0x800e /* 09F83C 8009EC3C AFBF007C */ sw $ra, 0x7c($sp) -/* 09F840 8009EC40 0C026455 */ jal segmented_to_virtual_dupe +/* 09F840 8009EC40 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09F844 8009EC44 8C847D34 */ lw $a0, %lo(D_800E7D34)($a0) /* 09F848 8009EC48 0C0268DD */ jal func_8009A374 /* 09F84C 8009EC4C 00402025 */ move $a0, $v0 @@ -406,7 +406,7 @@ glabel L8009EC5C /* 09F860 8009EC60 24637D0C */ addiu $v1, %lo(D_800E7D0C) # addiu $v1, $v1, 0x7d0c /* 09F864 8009EC64 8C640000 */ lw $a0, ($v1) .L8009EC68: -/* 09F868 8009EC68 0C026449 */ jal segmented_to_virtual +/* 09F868 8009EC68 0C026449 */ jal segmented_to_virtual_dupe /* 09F86C 8009EC6C AFA30024 */ sw $v1, 0x24($sp) /* 09F870 8009EC70 0C026461 */ jal func_80099184 /* 09F874 8009EC74 00402025 */ move $a0, $v0 @@ -494,7 +494,7 @@ glabel L8009ED9C /* 09F9A0 8009EDA0 3C04800F */ lui $a0, %hi(D_800E822C) # 0x800f /* 09F9A4 8009EDA4 00197080 */ sll $t6, $t9, 2 /* 09F9A8 8009EDA8 008E2021 */ addu $a0, $a0, $t6 -/* 09F9AC 8009EDAC 0C026449 */ jal segmented_to_virtual +/* 09F9AC 8009EDAC 0C026449 */ jal segmented_to_virtual_dupe /* 09F9B0 8009EDB0 8C84822C */ lw $a0, %lo(D_800E822C)($a0) # -0x7dd4($a0) /* 09F9B4 8009EDB4 00402025 */ move $a0, $v0 /* 09F9B8 8009EDB8 0C0265AF */ jal func_800996BC @@ -508,13 +508,13 @@ glabel L8009EDC8 /* 09F9D4 8009EDD4 0018C8C0 */ sll $t9, $t8, 3 /* 09F9D8 8009EDD8 032E1021 */ addu $v0, $t9, $t6 /* 09F9DC 8009EDDC 8C44FFA8 */ lw $a0, -0x58($v0) -/* 09F9E0 8009EDE0 0C026449 */ jal segmented_to_virtual +/* 09F9E0 8009EDE0 0C026449 */ jal segmented_to_virtual_dupe /* 09F9E4 8009EDE4 AFA20024 */ sw $v0, 0x24($sp) /* 09F9E8 8009EDE8 00402025 */ move $a0, $v0 /* 09F9EC 8009EDEC 0C0265AF */ jal func_800996BC /* 09F9F0 8009EDF0 00002825 */ move $a1, $zero /* 09F9F4 8009EDF4 8FAF0024 */ lw $t7, 0x24($sp) -/* 09F9F8 8009EDF8 0C026449 */ jal segmented_to_virtual +/* 09F9F8 8009EDF8 0C026449 */ jal segmented_to_virtual_dupe /* 09F9FC 8009EDFC 8DE4FFAC */ lw $a0, -0x54($t7) /* 09FA00 8009EE00 0C026461 */ jal func_80099184 /* 09FA04 8009EE04 00402025 */ move $a0, $v0 @@ -542,7 +542,7 @@ glabel L8009EE4C /* 09FA50 8009EE50 3C04800F */ lui $a0, %hi(D_800E81E4) # 0x800f /* 09FA54 8009EE54 00197080 */ sll $t6, $t9, 2 /* 09FA58 8009EE58 008E2021 */ addu $a0, $a0, $t6 -/* 09FA5C 8009EE5C 0C026449 */ jal segmented_to_virtual +/* 09FA5C 8009EE5C 0C026449 */ jal segmented_to_virtual_dupe /* 09FA60 8009EE60 8C8481E4 */ lw $a0, %lo(D_800E81E4)($a0) # -0x7e1c($a0) /* 09FA64 8009EE64 0C026461 */ jal func_80099184 /* 09FA68 8009EE68 00402025 */ move $a0, $v0 @@ -556,7 +556,7 @@ glabel L8009EE74 /* 09FA84 8009EE84 008F2021 */ addu $a0, $a0, $t7 /* 09FA88 8009EE88 8C848274 */ lw $a0, %lo(D_800E8274)($a0) # -0x7d8c($a0) /* 09FA8C 8009EE8C 01E03025 */ move $a2, $t7 -/* 09FA90 8009EE90 0C026455 */ jal segmented_to_virtual_dupe +/* 09FA90 8009EE90 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09FA94 8009EE94 AFAF0024 */ sw $t7, 0x24($sp) /* 09FA98 8009EE98 0C0268DD */ jal func_8009A374 /* 09FA9C 8009EE9C 00402025 */ move $a0, $v0 @@ -565,7 +565,7 @@ glabel L8009EE74 /* 09FAA8 8009EEA8 3C04800E */ lui $a0, %hi(D_800E7CA8) /* 09FAAC 8009EEAC 00862021 */ addu $a0, $a0, $a2 /* 09FAB0 8009EEB0 AFE20018 */ sw $v0, 0x18($ra) -/* 09FAB4 8009EEB4 0C026449 */ jal segmented_to_virtual +/* 09FAB4 8009EEB4 0C026449 */ jal segmented_to_virtual_dupe /* 09FAB8 8009EEB8 8C847CA8 */ lw $a0, %lo(D_800E7CA8)($a0) /* 09FABC 8009EEBC 00402025 */ move $a0, $v0 /* 09FAC0 8009EEC0 0C0265AF */ jal func_800996BC @@ -578,7 +578,7 @@ glabel L8009EED0 /* 09FAD8 8009EED8 AFBF007C */ sw $ra, 0x7c($sp) /* 09FADC 8009EEDC 0018C880 */ sll $t9, $t8, 2 /* 09FAE0 8009EEE0 00992021 */ addu $a0, $a0, $t9 -/* 09FAE4 8009EEE4 0C026455 */ jal segmented_to_virtual_dupe +/* 09FAE4 8009EEE4 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09FAE8 8009EEE8 8C8480A0 */ lw $a0, %lo(D_800E80A0)($a0) # -0x7f60($a0) /* 09FAEC 8009EEEC 0C0268DD */ jal func_8009A374 /* 09FAF0 8009EEF0 00402025 */ move $a0, $v0 @@ -593,7 +593,7 @@ glabel L8009EF08 /* 09FB0C 8009EF0C 3C04800F */ lui $a0, %hi(D_800E817C) # 0x800f /* 09FB10 8009EF10 000FC080 */ sll $t8, $t7, 2 /* 09FB14 8009EF14 00982021 */ addu $a0, $a0, $t8 -/* 09FB18 8009EF18 0C026449 */ jal segmented_to_virtual +/* 09FB18 8009EF18 0C026449 */ jal segmented_to_virtual_dupe /* 09FB1C 8009EF1C 8C84817C */ lw $a0, %lo(D_800E817C)($a0) # -0x7e84($a0) /* 09FB20 8009EF20 00402025 */ move $a0, $v0 /* 09FB24 8009EF24 0C0265AF */ jal func_800996BC @@ -610,7 +610,7 @@ glabel L8009EF34 /* 09FB4C 8009EF4C AFBF007C */ sw $ra, 0x7c($sp) /* 09FB50 8009EF50 000FC080 */ sll $t8, $t7, 2 /* 09FB54 8009EF54 00982021 */ addu $a0, $a0, $t8 -/* 09FB58 8009EF58 0C026455 */ jal segmented_to_virtual_dupe +/* 09FB58 8009EF58 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09FB5C 8009EF5C 8C847E34 */ lw $a0, %lo(D_800E7E34)($a0) /* 09FB60 8009EF60 0C0268DD */ jal func_8009A374 /* 09FB64 8009EF64 00402025 */ move $a0, $v0 @@ -663,7 +663,7 @@ glabel L8009EFB8 /* 09FC10 8009F010 000E7900 */ sll $t7, $t6, 4 /* 09FC14 8009F014 01F97021 */ addu $t6, $t7, $t9 /* 09FC18 8009F018 008E2021 */ addu $a0, $a0, $t6 -/* 09FC1C 8009F01C 0C026455 */ jal segmented_to_virtual_dupe +/* 09FC1C 8009F01C 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09FC20 8009F020 8C847E20 */ lw $a0, %lo(D_800E7E20)($a0) /* 09FC24 8009F024 0C0268DD */ jal func_8009A374 /* 09FC28 8009F028 00402025 */ move $a0, $v0 @@ -683,7 +683,7 @@ glabel L8009F050 /* 09FC5C 8009F05C AFBF007C */ sw $ra, 0x7c($sp) /* 09FC60 8009F060 00197080 */ sll $t6, $t9, 2 /* 09FC64 8009F064 008E2021 */ addu $a0, $a0, $t6 -/* 09FC68 8009F068 0C026449 */ jal segmented_to_virtual +/* 09FC68 8009F068 0C026449 */ jal segmented_to_virtual_dupe /* 09FC6C 8009F06C 8C848294 */ lw $a0, %lo(D_800E8294)($a0) # -0x7d6c($a0) /* 09FC70 8009F070 00402025 */ move $a0, $v0 /* 09FC74 8009F074 0C0265AF */ jal func_800996BC @@ -696,7 +696,7 @@ glabel L8009F050 /* 09FC90 8009F090 AFEF0010 */ sw $t7, 0x10($ra) glabel L8009F094 /* 09FC94 8009F094 3C040200 */ lui $a0, %hi(D_02004A0C) # $a0, 0x200 -/* 09FC98 8009F098 0C026449 */ jal segmented_to_virtual +/* 09FC98 8009F098 0C026449 */ jal segmented_to_virtual_dupe /* 09FC9C 8009F09C 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c /* 09FCA0 8009F0A0 00402025 */ move $a0, $v0 /* 09FCA4 8009F0A4 0C0265AF */ jal func_800996BC @@ -720,7 +720,7 @@ glabel L8009F0E0 /* 09FCE4 8009F0E4 3C04800F */ lui $a0, %hi(D_800E8114) # 0x800f /* 09FCE8 8009F0E8 00197080 */ sll $t6, $t9, 2 /* 09FCEC 8009F0EC 008E2021 */ addu $a0, $a0, $t6 -/* 09FCF0 8009F0F0 0C026449 */ jal segmented_to_virtual +/* 09FCF0 8009F0F0 0C026449 */ jal segmented_to_virtual_dupe /* 09FCF4 8009F0F4 8C848114 */ lw $a0, %lo(D_800E8114)($a0) # -0x7eec($a0) /* 09FCF8 8009F0F8 00402025 */ move $a0, $v0 /* 09FCFC 8009F0FC 0C0265AF */ jal func_800996BC @@ -729,7 +729,7 @@ glabel L8009F0E0 /* 09FD08 8009F108 8FBF001C */ lw $ra, 0x1c($sp) glabel L8009F10C /* 09FD0C 8009F10C 3C040200 */ lui $a0, %hi(D_02004A34) # $a0, 0x200 -/* 09FD10 8009F110 0C026449 */ jal segmented_to_virtual +/* 09FD10 8009F110 0C026449 */ jal segmented_to_virtual_dupe /* 09FD14 8009F114 24844A34 */ addiu $a0, %lo(D_02004A34) # addiu $a0, $a0, 0x4a34 /* 09FD18 8009F118 00402025 */ move $a0, $v0 /* 09FD1C 8009F11C 0C0265AF */ jal func_800996BC @@ -750,7 +750,7 @@ glabel L8009F10C /* 09FD54 8009F154 A0400084 */ sb $zero, 0x84($v0) glabel L8009F158 /* 09FD58 8009F158 3C040200 */ lui $a0, %hi(D_02001FA4) # $a0, 0x200 -/* 09FD5C 8009F15C 0C026449 */ jal segmented_to_virtual +/* 09FD5C 8009F15C 0C026449 */ jal segmented_to_virtual_dupe /* 09FD60 8009F160 24841FA4 */ addiu $a0, %lo(D_02001FA4) # addiu $a0, $a0, 0x1fa4 /* 09FD64 8009F164 0C026461 */ jal func_80099184 /* 09FD68 8009F168 00402025 */ move $a0, $v0 @@ -780,7 +780,7 @@ glabel L8009F174 /* 09FDBC 8009F1BC 87392BB4 */ lh $t9, %lo(gCupCourseOrder)($t9) /* 09FDC0 8009F1C0 00197880 */ sll $t7, $t9, 2 /* 09FDC4 8009F1C4 008F2021 */ addu $a0, $a0, $t7 -/* 09FDC8 8009F1C8 0C026449 */ jal segmented_to_virtual +/* 09FDC8 8009F1C8 0C026449 */ jal segmented_to_virtual_dupe /* 09FDCC 8009F1CC 8C847D74 */ lw $a0, %lo(D_800E7D74)($a0) /* 09FDD0 8009F1D0 00402025 */ move $a0, $v0 /* 09FDD4 8009F1D4 0C0265AF */ jal func_800996BC @@ -808,13 +808,13 @@ glabel L8009F174 /* 09FE24 8009F224 87392BB4 */ lh $t9, %lo(gCupCourseOrder)($t9) /* 09FE28 8009F228 0019C080 */ sll $t8, $t9, 2 /* 09FE2C 8009F22C 00982021 */ addu $a0, $a0, $t8 -/* 09FE30 8009F230 0C026449 */ jal segmented_to_virtual +/* 09FE30 8009F230 0C026449 */ jal segmented_to_virtual_dupe /* 09FE34 8009F234 8C847DC4 */ lw $a0, %lo(D_800E7DC4)($a0) /* 09FE38 8009F238 00402025 */ move $a0, $v0 /* 09FE3C 8009F23C 0C0265AF */ jal func_800996BC /* 09FE40 8009F240 00002825 */ move $a1, $zero /* 09FE44 8009F244 3C040200 */ lui $a0, %hi(D_02004A0C) # $a0, 0x200 -/* 09FE48 8009F248 0C026449 */ jal segmented_to_virtual +/* 09FE48 8009F248 0C026449 */ jal segmented_to_virtual_dupe /* 09FE4C 8009F24C 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c /* 09FE50 8009F250 00402025 */ move $a0, $v0 /* 09FE54 8009F254 0C0265AF */ jal func_800996BC @@ -876,7 +876,7 @@ glabel L8009F264 /* 09FF1C 8009F31C AFBF007C */ sw $ra, 0x7c($sp) /* 09FF20 8009F320 AFA30020 */ sw $v1, 0x20($sp) /* 09FF24 8009F324 AFA60024 */ sw $a2, 0x24($sp) -/* 09FF28 8009F328 0C026455 */ jal segmented_to_virtual_dupe +/* 09FF28 8009F328 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09FF2C 8009F32C AFA7003C */ sw $a3, 0x3c($sp) /* 09FF30 8009F330 8FA5003C */ lw $a1, 0x3c($sp) /* 09FF34 8009F334 0C02691E */ jal func_8009A478 @@ -886,7 +886,7 @@ glabel L8009F264 /* 09FF44 8009F344 3C04800E */ lui $a0, %hi(D_800E7D54) /* 09FF48 8009F348 00832021 */ addu $a0, $a0, $v1 /* 09FF4C 8009F34C AFE20018 */ sw $v0, 0x18($ra) -/* 09FF50 8009F350 0C026449 */ jal segmented_to_virtual +/* 09FF50 8009F350 0C026449 */ jal segmented_to_virtual_dupe /* 09FF54 8009F354 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0) /* 09FF58 8009F358 00402025 */ move $a0, $v0 /* 09FF5C 8009F35C 0C0265AF */ jal func_800996BC @@ -894,7 +894,7 @@ glabel L8009F264 /* 09FF64 8009F364 8FA60024 */ lw $a2, 0x24($sp) /* 09FF68 8009F368 3C04800E */ lui $a0, %hi(D_800E7FF0) /* 09FF6C 8009F36C 00862021 */ addu $a0, $a0, $a2 -/* 09FF70 8009F370 0C026449 */ jal segmented_to_virtual +/* 09FF70 8009F370 0C026449 */ jal segmented_to_virtual_dupe /* 09FF74 8009F374 8C847FF0 */ lw $a0, %lo(D_800E7FF0)($a0) /* 09FF78 8009F378 0C026461 */ jal func_80099184 /* 09FF7C 8009F37C 00402025 */ move $a0, $v0 @@ -970,7 +970,7 @@ glabel L8009F430 /* 0A0078 8009F478 85CE2BB4 */ lh $t6, %lo(gCupCourseOrder)($t6) /* 0A007C 8009F47C 000E7880 */ sll $t7, $t6, 2 /* 0A0080 8009F480 008F2021 */ addu $a0, $a0, $t7 -/* 0A0084 8009F484 0C026455 */ jal segmented_to_virtual_dupe +/* 0A0084 8009F484 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0A0088 8009F488 8C847E34 */ lw $a0, %lo(D_800E7E34)($a0) /* 0A008C 8009F48C 0C0268DD */ jal func_8009A374 /* 0A0090 8009F490 00402025 */ move $a0, $v0 @@ -981,7 +981,7 @@ glabel L8009F430 /* 0A00A4 8009F4A4 8339EDF7 */ lb $t9, %lo(gTimeTrialDataCourseIndex)($t9) /* 0A00A8 8009F4A8 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c /* 0A00AC 8009F4AC AFF9001C */ sw $t9, 0x1c($ra) -/* 0A00B0 8009F4B0 0C026449 */ jal segmented_to_virtual +/* 0A00B0 8009F4B0 0C026449 */ jal segmented_to_virtual_dupe /* 0A00B4 8009F4B4 00000000 */ nop /* 0A00B8 8009F4B8 00402025 */ move $a0, $v0 /* 0A00BC 8009F4BC 0C0265AF */ jal func_800996BC @@ -1009,7 +1009,7 @@ glabel L8009F500 /* 0A010C 8009F50C AFF80004 */ sw $t8, 4($ra) glabel L8009F510 /* 0A0110 8009F510 3C040200 */ lui $a0, %hi(D_02004638) # $a0, 0x200 -/* 0A0114 8009F514 0C026449 */ jal segmented_to_virtual +/* 0A0114 8009F514 0C026449 */ jal segmented_to_virtual_dupe /* 0A0118 8009F518 24844638 */ addiu $a0, %lo(D_02004638) # addiu $a0, $a0, 0x4638 /* 0A011C 8009F51C 00402025 */ move $a0, $v0 /* 0A0120 8009F520 0C0265AF */ jal func_800996BC @@ -1047,7 +1047,7 @@ glabel L8009F530 /* 0A018C 8009F58C 8C848320 */ lw $a0, %lo(D_800E8320)($a0) # -0x7ce0($a0) .L8009F590: /* 0A0190 8009F590 AFBF007C */ sw $ra, 0x7c($sp) -/* 0A0194 8009F594 0C026455 */ jal segmented_to_virtual_dupe +/* 0A0194 8009F594 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0A0198 8009F598 AFA30020 */ sw $v1, 0x20($sp) /* 0A019C 8009F59C 00402025 */ move $a0, $v0 /* 0A01A0 8009F5A0 0C02691E */ jal func_8009A478 @@ -1057,7 +1057,7 @@ glabel L8009F530 /* 0A01B0 8009F5B0 3C04800E */ lui $a0, %hi(D_800E7D54) /* 0A01B4 8009F5B4 00832021 */ addu $a0, $a0, $v1 /* 0A01B8 8009F5B8 AFE20018 */ sw $v0, 0x18($ra) -/* 0A01BC 8009F5BC 0C026449 */ jal segmented_to_virtual +/* 0A01BC 8009F5BC 0C026449 */ jal segmented_to_virtual_dupe /* 0A01C0 8009F5C0 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0) /* 0A01C4 8009F5C4 00402025 */ move $a0, $v0 /* 0A01C8 8009F5C8 0C0265AF */ jal func_800996BC diff --git a/asm/non_matchings/code_80091750/func_80092290.s b/asm/non_matchings/code_80091750/func_80092290.s index ddc4ad9e4..465469132 100644 --- a/asm/non_matchings/code_80091750/func_80092290.s +++ b/asm/non_matchings/code_80091750/func_80092290.s @@ -50,7 +50,7 @@ glabel func_80092290 /* 092F48 80092348 24160006 */ li $s6, 6 /* 092F4C 8009234C 24150100 */ li $s5, 256 .L80092350: -/* 092F50 80092350 0C026455 */ jal segmented_to_virtual_dupe +/* 092F50 80092350 0C026455 */ jal segmented_to_virtual_dupe_2 /* 092F54 80092354 8E040000 */ lw $a0, ($s0) /* 092F58 80092358 8FAE0044 */ lw $t6, 0x44($sp) /* 092F5C 8009235C 8FC40000 */ lw $a0, ($fp) diff --git a/asm/non_matchings/code_80091750/func_80099184.s b/asm/non_matchings/code_80091750/func_80099184.s index eeda20ab5..2f8e68d79 100644 --- a/asm/non_matchings/code_80091750/func_80099184.s +++ b/asm/non_matchings/code_80091750/func_80099184.s @@ -7,7 +7,7 @@ glabel func_80099184 /* 099D98 80099198 AFB30024 */ sw $s3, 0x24($sp) /* 099D9C 8009919C AFB20020 */ sw $s2, 0x20($sp) /* 099DA0 800991A0 AFB1001C */ sw $s1, 0x1c($sp) -/* 099DA4 800991A4 0C026449 */ jal segmented_to_virtual +/* 099DA4 800991A4 0C026449 */ jal segmented_to_virtual_dupe /* 099DA8 800991A8 AFB00018 */ sw $s0, 0x18($sp) /* 099DAC 800991AC 8C4E0004 */ lw $t6, 4($v0) /* 099DB0 800991B0 00408825 */ move $s1, $v0 @@ -153,7 +153,7 @@ glabel func_80099184 /* 099FA8 800993A8 AFB30024 */ sw $s3, 0x24($sp) /* 099FAC 800993AC AFB20020 */ sw $s2, 0x20($sp) /* 099FB0 800993B0 AFB1001C */ sw $s1, 0x1c($sp) -/* 099FB4 800993B4 0C026449 */ jal segmented_to_virtual +/* 099FB4 800993B4 0C026449 */ jal segmented_to_virtual_dupe /* 099FB8 800993B8 AFB00018 */ sw $s0, 0x18($sp) /* 099FBC 800993BC 8C4E0004 */ lw $t6, 4($v0) /* 099FC0 800993C0 3C168019 */ lui $s6, %hi(D_8018D9B0) # $s6, 0x8019 @@ -264,7 +264,7 @@ glabel func_80099184 /* 09A13C 8009953C AFB30020 */ sw $s3, 0x20($sp) /* 09A140 80099540 AFB2001C */ sw $s2, 0x1c($sp) /* 09A144 80099544 AFB10018 */ sw $s1, 0x18($sp) -/* 09A148 80099548 0C026449 */ jal segmented_to_virtual +/* 09A148 80099548 0C026449 */ jal segmented_to_virtual_dupe /* 09A14C 8009954C AFB00014 */ sw $s0, 0x14($sp) /* 09A150 80099550 8C4E0004 */ lw $t6, 4($v0) /* 09A154 80099554 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019 diff --git a/asm/non_matchings/code_80091750/func_800996BC.s b/asm/non_matchings/code_80091750/func_800996BC.s index fcdab3aa9..c38ba4f97 100644 --- a/asm/non_matchings/code_80091750/func_800996BC.s +++ b/asm/non_matchings/code_80091750/func_800996BC.s @@ -10,7 +10,7 @@ glabel func_800996BC /* 09A2DC 800996DC AFB40028 */ sw $s4, 0x28($sp) /* 09A2E0 800996E0 AFB30024 */ sw $s3, 0x24($sp) /* 09A2E4 800996E4 AFB1001C */ sw $s1, 0x1c($sp) -/* 09A2E8 800996E8 0C026449 */ jal segmented_to_virtual +/* 09A2E8 800996E8 0C026449 */ jal segmented_to_virtual_dupe /* 09A2EC 800996EC AFB00018 */ sw $s0, 0x18($sp) /* 09A2F0 800996F0 8C4E0004 */ lw $t6, 4($v0) /* 09A2F4 800996F4 00408025 */ move $s0, $v0 diff --git a/asm/non_matchings/code_80091750/func_80099958.s b/asm/non_matchings/code_80091750/func_80099958.s index f09e4fd99..93cefabb3 100644 --- a/asm/non_matchings/code_80091750/func_80099958.s +++ b/asm/non_matchings/code_80091750/func_80099958.s @@ -5,7 +5,7 @@ glabel func_80099958 /* 09A564 80099964 00A08825 */ move $s1, $a1 /* 09A568 80099968 AFB20020 */ sw $s2, 0x20($sp) /* 09A56C 8009996C AFB00018 */ sw $s0, 0x18($sp) -/* 09A570 80099970 0C026449 */ jal segmented_to_virtual +/* 09A570 80099970 0C026449 */ jal segmented_to_virtual_dupe /* 09A574 80099974 AFA60030 */ sw $a2, 0x30($sp) /* 09A578 80099978 8C4E0004 */ lw $t6, 4($v0) /* 09A57C 8009997C 00408025 */ move $s0, $v0 diff --git a/asm/non_matchings/code_80091750/func_80099A94.s b/asm/non_matchings/code_80091750/func_80099A94.s index e260c6ef0..f78da8fbc 100644 --- a/asm/non_matchings/code_80091750/func_80099A94.s +++ b/asm/non_matchings/code_80091750/func_80099A94.s @@ -13,7 +13,7 @@ glabel func_80099A94 /* 09A6BC 80099ABC 55E0FFFE */ bnel $t7, $zero, .L80099AB8 /* 09A6C0 80099AC0 8C6F0008 */ lw $t7, 8($v1) .L80099AC4: -/* 09A6C4 80099AC4 0C026449 */ jal segmented_to_virtual +/* 09A6C4 80099AC4 0C026449 */ jal segmented_to_virtual_dupe /* 09A6C8 80099AC8 AFA3001C */ sw $v1, 0x1c($sp) /* 09A6CC 80099ACC 8FA3001C */ lw $v1, 0x1c($sp) /* 09A6D0 80099AD0 AC620000 */ sw $v0, ($v1) diff --git a/asm/non_matchings/code_80091750/func_80099E60.s b/asm/non_matchings/code_80091750/func_80099E60.s index 4ccb4b6c1..d5890e30b 100644 --- a/asm/non_matchings/code_80091750/func_80099E60.s +++ b/asm/non_matchings/code_80091750/func_80099E60.s @@ -14,7 +14,7 @@ glabel func_80099E60 /* 09AA8C 80099E8C 55E0FFFE */ bnel $t7, $zero, .L80099E88 /* 09AA90 80099E90 8C6F0008 */ lw $t7, 8($v1) .L80099E94: -/* 09AA94 80099E94 0C026449 */ jal segmented_to_virtual +/* 09AA94 80099E94 0C026449 */ jal segmented_to_virtual_dupe /* 09AA98 80099E98 AFA3001C */ sw $v1, 0x1c($sp) /* 09AA9C 80099E9C 8FA3001C */ lw $v1, 0x1c($sp) /* 09AAA0 80099EA0 AC620000 */ sw $v0, ($v1) diff --git a/asm/non_matchings/code_80091750/func_80099EC4.s b/asm/non_matchings/code_80091750/func_80099EC4.s index b97708788..bcf1a90c9 100644 --- a/asm/non_matchings/code_80091750/func_80099EC4.s +++ b/asm/non_matchings/code_80091750/func_80099EC4.s @@ -295,7 +295,7 @@ glabel func_80099EC4 /* 09AEF0 8009A2F0 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 09AEF4 8009A2F4 AFBF001C */ sw $ra, 0x1c($sp) -/* 09AEF8 8009A2F8 0C026455 */ jal segmented_to_virtual_dupe +/* 09AEF8 8009A2F8 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09AEFC 8009A2FC AFB00018 */ sw $s0, 0x18($sp) /* 09AF00 8009A300 8C440000 */ lw $a0, ($v0) /* 09AF04 8009A304 00408025 */ move $s0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009A374.s b/asm/non_matchings/code_80091750/func_8009A374.s index dbc1ddc55..eed400d06 100644 --- a/asm/non_matchings/code_80091750/func_8009A374.s +++ b/asm/non_matchings/code_80091750/func_8009A374.s @@ -1,7 +1,7 @@ glabel func_8009A374 /* 09AF74 8009A374 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 09AF78 8009A378 AFBF0014 */ sw $ra, 0x14($sp) -/* 09AF7C 8009A37C 0C026455 */ jal segmented_to_virtual_dupe +/* 09AF7C 8009A37C 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09AF80 8009A380 00000000 */ nop /* 09AF84 8009A384 3C048019 */ lui $a0, %hi(D_8018DEE0) # $a0, 0x8019 /* 09AF88 8009A388 2484DEE0 */ addiu $a0, %lo(D_8018DEE0) # addiu $a0, $a0, -0x2120 diff --git a/asm/non_matchings/code_80091750/func_8009A478.s b/asm/non_matchings/code_80091750/func_8009A478.s index 83160b958..bcd391e01 100644 --- a/asm/non_matchings/code_80091750/func_8009A478.s +++ b/asm/non_matchings/code_80091750/func_8009A478.s @@ -2,7 +2,7 @@ glabel func_8009A478 /* 09B078 8009A478 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 09B07C 8009A47C AFBF001C */ sw $ra, 0x1c($sp) /* 09B080 8009A480 AFB00018 */ sw $s0, 0x18($sp) -/* 09B084 8009A484 0C026455 */ jal segmented_to_virtual_dupe +/* 09B084 8009A484 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09B088 8009A488 AFA50034 */ sw $a1, 0x34($sp) /* 09B08C 8009A48C 3C048019 */ lui $a0, %hi(D_8018DEE0) # $a0, 0x8019 /* 09B090 8009A490 2484DEE0 */ addiu $a0, %lo(D_8018DEE0) # addiu $a0, $a0, -0x2120 diff --git a/asm/non_matchings/code_80091750/func_8009A594.s b/asm/non_matchings/code_80091750/func_8009A594.s index 5a3311108..4c5957df0 100644 --- a/asm/non_matchings/code_80091750/func_8009A594.s +++ b/asm/non_matchings/code_80091750/func_8009A594.s @@ -4,7 +4,7 @@ glabel func_8009A594 /* 09B19C 8009A59C AFA40020 */ sw $a0, 0x20($sp) /* 09B1A0 8009A5A0 AFB00018 */ sw $s0, 0x18($sp) /* 09B1A4 8009A5A4 00C02025 */ move $a0, $a2 -/* 09B1A8 8009A5A8 0C026455 */ jal segmented_to_virtual_dupe +/* 09B1A8 8009A5A8 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09B1AC 8009A5AC AFA50024 */ sw $a1, 0x24($sp) /* 09B1B0 8009A5B0 8FAE0020 */ lw $t6, 0x20($sp) /* 09B1B4 8009A5B4 8FA50024 */ lw $a1, 0x24($sp) @@ -22,7 +22,7 @@ glabel func_8009A594 /* 09B1E4 8009A5E4 000550C0 */ sll $t2, $a1, 3 /* 09B1E8 8009A5E8 004A5821 */ addu $t3, $v0, $t2 /* 09B1EC 8009A5EC AE090008 */ sw $t1, 8($s0) -/* 09B1F0 8009A5F0 0C026449 */ jal segmented_to_virtual +/* 09B1F0 8009A5F0 0C026449 */ jal segmented_to_virtual_dupe /* 09B1F4 8009A5F4 8D640000 */ lw $a0, ($t3) /* 09B1F8 8009A5F8 8E0C0014 */ lw $t4, 0x14($s0) /* 09B1FC 8009A5FC 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009A640.s b/asm/non_matchings/code_80091750/func_8009A640.s index 0696385d3..bfaf93935 100644 --- a/asm/non_matchings/code_80091750/func_8009A640.s +++ b/asm/non_matchings/code_80091750/func_8009A640.s @@ -4,7 +4,7 @@ glabel func_8009A640 /* 09B248 8009A648 AFA40028 */ sw $a0, 0x28($sp) /* 09B24C 8009A64C AFA60030 */ sw $a2, 0x30($sp) /* 09B250 8009A650 00E02025 */ move $a0, $a3 -/* 09B254 8009A654 0C026455 */ jal segmented_to_virtual_dupe +/* 09B254 8009A654 0C026455 */ jal segmented_to_virtual_dupe_2 /* 09B258 8009A658 AFA5002C */ sw $a1, 0x2c($sp) /* 09B25C 8009A65C 8FAE0028 */ lw $t6, 0x28($sp) /* 09B260 8009A660 8FA5002C */ lw $a1, 0x2c($sp) @@ -23,7 +23,7 @@ glabel func_8009A640 /* 09B294 8009A694 004A5821 */ addu $t3, $v0, $t2 /* 09B298 8009A698 AC690008 */ sw $t1, 8($v1) /* 09B29C 8009A69C 8D640000 */ lw $a0, ($t3) -/* 09B2A0 8009A6A0 0C026449 */ jal segmented_to_virtual +/* 09B2A0 8009A6A0 0C026449 */ jal segmented_to_virtual_dupe /* 09B2A4 8009A6A4 AFA3001C */ sw $v1, 0x1c($sp) /* 09B2A8 8009A6A8 8FA3001C */ lw $v1, 0x1c($sp) /* 09B2AC 8009A6AC 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009A878.s b/asm/non_matchings/code_80091750/func_8009A878.s index 08cf0aea2..d4a2808e6 100644 --- a/asm/non_matchings/code_80091750/func_8009A878.s +++ b/asm/non_matchings/code_80091750/func_8009A878.s @@ -28,7 +28,7 @@ glabel func_8009A878 /* 09B4DC 8009A8DC 8C4F0004 */ lw $t7, 4($v0) .L8009A8E0: /* 09B4E0 8009A8E0 AE0F0008 */ sw $t7, 8($s0) -/* 09B4E4 8009A8E4 0C026449 */ jal segmented_to_virtual +/* 09B4E4 8009A8E4 0C026449 */ jal segmented_to_virtual_dupe /* 09B4E8 8009A8E8 8C440000 */ lw $a0, ($v0) /* 09B4EC 8009A8EC 8E180014 */ lw $t8, 0x14($s0) /* 09B4F0 8009A8F0 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009A944.s b/asm/non_matchings/code_80091750/func_8009A944.s index cd9b4f58f..ec8f9a602 100644 --- a/asm/non_matchings/code_80091750/func_8009A944.s +++ b/asm/non_matchings/code_80091750/func_8009A944.s @@ -29,7 +29,7 @@ glabel func_8009A944 .L8009A9AC: /* 09B5AC 8009A9AC ACEF0008 */ sw $t7, 8($a3) /* 09B5B0 8009A9B0 8C440000 */ lw $a0, ($v0) -/* 09B5B4 8009A9B4 0C026449 */ jal segmented_to_virtual +/* 09B5B4 8009A9B4 0C026449 */ jal segmented_to_virtual_dupe /* 09B5B8 8009A9B8 AFA70018 */ sw $a3, 0x18($sp) /* 09B5BC 8009A9BC 8FA70018 */ lw $a3, 0x18($sp) /* 09B5C0 8009A9C0 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009BA74.s b/asm/non_matchings/code_80091750/func_8009BA74.s index fc4d1e5f4..e2a02e72f 100644 --- a/asm/non_matchings/code_80091750/func_8009BA74.s +++ b/asm/non_matchings/code_80091750/func_8009BA74.s @@ -13,7 +13,7 @@ glabel func_8009BA74 /* 09C6A0 8009BAA0 AFB3004C */ sw $s3, 0x4c($sp) /* 09C6A4 8009BAA4 AFB20048 */ sw $s2, 0x48($sp) /* 09C6A8 8009BAA8 AFB10044 */ sw $s1, 0x44($sp) -/* 09C6AC 8009BAAC 0C026449 */ jal segmented_to_virtual +/* 09C6AC 8009BAAC 0C026449 */ jal segmented_to_virtual_dupe /* 09C6B0 8009BAB0 00A02025 */ move $a0, $a1 /* 09C6B4 8009BAB4 8C4E0004 */ lw $t6, 4($v0) /* 09C6B8 8009BAB8 3C1E0200 */ lui $fp, %hi(D_02007708) # $fp, 0x200 diff --git a/asm/non_matchings/code_80091750/func_8009BC9C.s b/asm/non_matchings/code_80091750/func_8009BC9C.s index 2950892d2..3c567a281 100644 --- a/asm/non_matchings/code_80091750/func_8009BC9C.s +++ b/asm/non_matchings/code_80091750/func_8009BC9C.s @@ -13,7 +13,7 @@ glabel func_8009BC9C /* 09C8C8 8009BCC8 AFB50054 */ sw $s5, 0x54($sp) /* 09C8CC 8009BCCC AFB20048 */ sw $s2, 0x48($sp) /* 09C8D0 8009BCD0 AFB00040 */ sw $s0, 0x40($sp) -/* 09C8D4 8009BCD4 0C026449 */ jal segmented_to_virtual +/* 09C8D4 8009BCD4 0C026449 */ jal segmented_to_virtual_dupe /* 09C8D8 8009BCD8 00A02025 */ move $a0, $a1 /* 09C8DC 8009BCDC 8C4E0004 */ lw $t6, 4($v0) /* 09C8E0 8009BCE0 00408025 */ move $s0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009BEF0.s b/asm/non_matchings/code_80091750/func_8009BEF0.s index 8aa79ac9e..db3b50f79 100644 --- a/asm/non_matchings/code_80091750/func_8009BEF0.s +++ b/asm/non_matchings/code_80091750/func_8009BEF0.s @@ -18,7 +18,7 @@ glabel func_8009BEF0 /* 09CB30 8009BF30 F7BC0040 */ sdc1 $f28, 0x40($sp) /* 09CB34 8009BF34 F7B60028 */ sdc1 $f22, 0x28($sp) /* 09CB38 8009BF38 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 09CB3C 8009BF3C 0C026449 */ jal segmented_to_virtual +/* 09CB3C 8009BF3C 0C026449 */ jal segmented_to_virtual_dupe /* 09CB40 8009BF40 00A02025 */ move $a0, $a1 /* 09CB44 8009BF44 8C4E0004 */ lw $t6, 4($v0) /* 09CB48 8009BF48 00408025 */ move $s0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009C204.s b/asm/non_matchings/code_80091750/func_8009C204.s index 0ab64444d..fd6aa9444 100644 --- a/asm/non_matchings/code_80091750/func_8009C204.s +++ b/asm/non_matchings/code_80091750/func_8009C204.s @@ -15,7 +15,7 @@ glabel func_8009C204 /* 09CE38 8009C238 AFB1005C */ sw $s1, 0x5c($sp) /* 09CE3C 8009C23C F7B60050 */ sdc1 $f22, 0x50($sp) /* 09CE40 8009C240 F7B40048 */ sdc1 $f20, 0x48($sp) -/* 09CE44 8009C244 0C026449 */ jal segmented_to_virtual +/* 09CE44 8009C244 0C026449 */ jal segmented_to_virtual_dupe /* 09CE48 8009C248 00A02025 */ move $a0, $a1 /* 09CE4C 8009C24C 8C4E0004 */ lw $t6, 4($v0) /* 09CE50 8009C250 00408825 */ move $s1, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009C434.s b/asm/non_matchings/code_80091750/func_8009C434.s index 1c128b792..fbeda6d26 100644 --- a/asm/non_matchings/code_80091750/func_8009C434.s +++ b/asm/non_matchings/code_80091750/func_8009C434.s @@ -19,7 +19,7 @@ glabel func_8009C434 /* 09D078 8009C478 00A0A825 */ move $s5, $a1 /* 09D07C 8009C47C 00C0B025 */ move $s6, $a2 /* 09D080 8009C480 00E0B825 */ move $s7, $a3 -/* 09D084 8009C484 0C026449 */ jal segmented_to_virtual +/* 09D084 8009C484 0C026449 */ jal segmented_to_virtual_dupe /* 09D088 8009C488 8F240000 */ lw $a0, ($t9) /* 09D08C 8009C48C 8C4A0004 */ lw $t2, 4($v0) /* 09D090 8009C490 00408025 */ move $s0, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009C708.s b/asm/non_matchings/code_80091750/func_8009C708.s index 9328fb5ee..cb7536fe2 100644 --- a/asm/non_matchings/code_80091750/func_8009C708.s +++ b/asm/non_matchings/code_80091750/func_8009C708.s @@ -18,7 +18,7 @@ glabel func_8009C708 /* 09D348 8009C748 000FC0C0 */ sll $t8, $t7, 3 /* 09D34C 8009C74C 01D8C821 */ addu $t9, $t6, $t8 /* 09D350 8009C750 8F240000 */ lw $a0, ($t9) -/* 09D354 8009C754 0C026449 */ jal segmented_to_virtual +/* 09D354 8009C754 0C026449 */ jal segmented_to_virtual_dupe /* 09D358 8009C758 AFA50064 */ sw $a1, 0x64($sp) /* 09D35C 8009C75C 8C490004 */ lw $t1, 4($v0) /* 09D360 8009C760 00408825 */ move $s1, $v0 diff --git a/asm/non_matchings/code_80091750/func_8009F5E0.s b/asm/non_matchings/code_80091750/func_8009F5E0.s index 5ad235b88..3daf2538b 100644 --- a/asm/non_matchings/code_80091750/func_8009F5E0.s +++ b/asm/non_matchings/code_80091750/func_8009F5E0.s @@ -637,7 +637,7 @@ glabel L8009FF0C /* 0A0B2C 8009FF2C 00892021 */ addu $a0, $a0, $t1 /* 0A0B30 8009FF30 AFB900A8 */ sw $t9, 0xa8($sp) /* 0A0B34 8009FF34 8C84824C */ lw $a0, %lo(D_800E824C)($a0) # -0x7db4($a0) -/* 0A0B38 8009FF38 0C026449 */ jal segmented_to_virtual +/* 0A0B38 8009FF38 0C026449 */ jal segmented_to_virtual_dupe /* 0A0B3C 8009FF3C AFA600AC */ sw $a2, 0xac($sp) /* 0A0B40 8009FF40 8FA600AC */ lw $a2, 0xac($sp) /* 0A0B44 8009FF44 AFA2009C */ sw $v0, 0x9c($sp) @@ -655,7 +655,7 @@ glabel L8009FF50 /* 0A0B6C 8009FF6C 008A2021 */ addu $a0, $a0, $t2 /* 0A0B70 8009FF70 8C84824C */ lw $a0, %lo(D_800E824C)($a0) # -0x7db4($a0) /* 0A0B74 8009FF74 AFA500A8 */ sw $a1, 0xa8($sp) -/* 0A0B78 8009FF78 0C026449 */ jal segmented_to_virtual +/* 0A0B78 8009FF78 0C026449 */ jal segmented_to_virtual_dupe /* 0A0B7C 8009FF7C AFA600AC */ sw $a2, 0xac($sp) /* 0A0B80 8009FF80 8FA600AC */ lw $a2, 0xac($sp) /* 0A0B84 8009FF84 AFA2009C */ sw $v0, 0x9c($sp) @@ -673,7 +673,7 @@ glabel L8009FF90 /* 0A0BAC 8009FFAC 008B2021 */ addu $a0, $a0, $t3 /* 0A0BB0 8009FFB0 8C84824C */ lw $a0, %lo(D_800E824C)($a0) # -0x7db4($a0) /* 0A0BB4 8009FFB4 AFA500A8 */ sw $a1, 0xa8($sp) -/* 0A0BB8 8009FFB8 0C026449 */ jal segmented_to_virtual +/* 0A0BB8 8009FFB8 0C026449 */ jal segmented_to_virtual_dupe /* 0A0BBC 8009FFBC AFA600AC */ sw $a2, 0xac($sp) /* 0A0BC0 8009FFC0 8FA600AC */ lw $a2, 0xac($sp) /* 0A0BC4 8009FFC4 AFA2009C */ sw $v0, 0x9c($sp) @@ -819,7 +819,7 @@ glabel L800A01BC /* 0A0DBC 800A01BC 00087080 */ sll $t6, $t0, 2 /* 0A0DC0 800A01C0 3C04800E */ lui $a0, %hi(D_800E7CA8) /* 0A0DC4 800A01C4 008E2021 */ addu $a0, $a0, $t6 -/* 0A0DC8 800A01C8 0C026449 */ jal segmented_to_virtual +/* 0A0DC8 800A01C8 0C026449 */ jal segmented_to_virtual_dupe /* 0A0DCC 800A01CC 8C847CA8 */ lw $a0, %lo(D_800E7CA8)($a0) /* 0A0DD0 800A01D0 02202025 */ move $a0, $s1 /* 0A0DD4 800A01D4 0C0284AF */ jal func_800A12BC @@ -839,7 +839,7 @@ glabel L800A01F8 /* 0A0E04 800A0204 3C04800F */ lui $a0, %hi(D_800E817C) # 0x800f /* 0A0E08 800A0208 000FC080 */ sll $t8, $t7, 2 /* 0A0E0C 800A020C 00982021 */ addu $a0, $a0, $t8 -/* 0A0E10 800A0210 0C026449 */ jal segmented_to_virtual +/* 0A0E10 800A0210 0C026449 */ jal segmented_to_virtual_dupe /* 0A0E14 800A0214 8C84817C */ lw $a0, %lo(D_800E817C)($a0) # -0x7e84($a0) /* 0A0E18 800A0218 8E040000 */ lw $a0, ($s0) /* 0A0E1C 800A021C 00402825 */ move $a1, $v0 @@ -855,7 +855,7 @@ glabel L800A0240 /* 0A0E40 800A0240 0008C880 */ sll $t9, $t0, 2 /* 0A0E44 800A0244 3C04800F */ lui $a0, %hi(D_800E817C) # 0x800f /* 0A0E48 800A0248 00992021 */ addu $a0, $a0, $t9 -/* 0A0E4C 800A024C 0C026449 */ jal segmented_to_virtual +/* 0A0E4C 800A024C 0C026449 */ jal segmented_to_virtual_dupe /* 0A0E50 800A0250 8C84817C */ lw $a0, %lo(D_800E817C)($a0) # -0x7e84($a0) /* 0A0E54 800A0254 8E040000 */ lw $a0, ($s0) /* 0A0E58 800A0258 00402825 */ move $a1, $v0 @@ -961,7 +961,7 @@ glabel L800A037C /* 0A0FC4 800A03C4 3C04800F */ lui $a0, %hi(D_800E8294) # 0x800f /* 0A0FC8 800A03C8 00095080 */ sll $t2, $t1, 2 /* 0A0FCC 800A03CC 008A2021 */ addu $a0, $a0, $t2 -/* 0A0FD0 800A03D0 0C026449 */ jal segmented_to_virtual +/* 0A0FD0 800A03D0 0C026449 */ jal segmented_to_virtual_dupe /* 0A0FD4 800A03D4 8C848294 */ lw $a0, %lo(D_800E8294)($a0) # -0x7d6c($a0) /* 0A0FD8 800A03D8 8E040000 */ lw $a0, ($s0) /* 0A0FDC 800A03DC 00402825 */ move $a1, $v0 @@ -1170,7 +1170,7 @@ glabel L800A0694 /* 0A12BC 800A06BC AFA200A8 */ sw $v0, 0xa8($sp) /* 0A12C0 800A06C0 00066880 */ sll $t5, $a2, 2 /* 0A12C4 800A06C4 008D2021 */ addu $a0, $a0, $t5 -/* 0A12C8 800A06C8 0C026449 */ jal segmented_to_virtual +/* 0A12C8 800A06C8 0C026449 */ jal segmented_to_virtual_dupe /* 0A12CC 800A06CC 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0) /* 0A12D0 800A06D0 8E040000 */ lw $a0, ($s0) /* 0A12D4 800A06D4 00402825 */ move $a1, $v0 @@ -1297,7 +1297,7 @@ glabel L800A084C /* 0A146C 800A086C 80C6FD64 */ lb $a2, %lo(D_800EFD64)($a2) # -0x29c($a2) /* 0A1470 800A0870 0006C880 */ sll $t9, $a2, 2 /* 0A1474 800A0874 00992021 */ addu $a0, $a0, $t9 -/* 0A1478 800A0878 0C026449 */ jal segmented_to_virtual +/* 0A1478 800A0878 0C026449 */ jal segmented_to_virtual_dupe /* 0A147C 800A087C 8C847D54 */ lw $a0, %lo(D_800E7D54)($a0) /* 0A1480 800A0880 8E040000 */ lw $a0, ($s0) /* 0A1484 800A0884 00402825 */ move $a1, $v0 diff --git a/asm/non_matchings/code_80091750/func_800A08D8.s b/asm/non_matchings/code_80091750/func_800A08D8.s index da2e98167..76fd4b82f 100644 --- a/asm/non_matchings/code_80091750/func_800A08D8.s +++ b/asm/non_matchings/code_80091750/func_800A08D8.s @@ -19,7 +19,7 @@ glabel func_800A08D8 .L800A091C: /* 0A151C 800A091C 00077880 */ sll $t7, $a3, 2 /* 0A1520 800A0920 008F2021 */ addu $a0, $a0, $t7 -/* 0A1524 800A0924 0C026449 */ jal segmented_to_virtual +/* 0A1524 800A0924 0C026449 */ jal segmented_to_virtual_dupe /* 0A1528 800A0928 8C847AF8 */ lw $a0, %lo(D_800E7AF8)($a0) /* 0A152C 800A092C 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015 /* 0A1530 800A0930 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0) diff --git a/asm/non_matchings/code_80091750/func_800A0DFC.s b/asm/non_matchings/code_80091750/func_800A0DFC.s index 3e3a0987d..fe9ef415e 100644 --- a/asm/non_matchings/code_80091750/func_800A0DFC.s +++ b/asm/non_matchings/code_80091750/func_800A0DFC.s @@ -31,7 +31,7 @@ glabel func_800A0DFC .L800A0E68: /* 0A1A68 800A0E68 00008012 */ mflo $s0 /* 0A1A6C 800A0E6C 028E7821 */ addu $t7, $s4, $t6 -/* 0A1A70 800A0E70 0C026449 */ jal segmented_to_virtual +/* 0A1A70 800A0E70 0C026449 */ jal segmented_to_virtual_dupe /* 0A1A74 800A0E74 8DE40000 */ lw $a0, ($t7) /* 0A1A78 800A0E78 8E640000 */ lw $a0, ($s3) /* 0A1A7C 800A0E7C 00402825 */ move $a1, $v0 diff --git a/asm/non_matchings/code_80091750/func_800A0FA4.s b/asm/non_matchings/code_80091750/func_800A0FA4.s index 0d654e02e..4859d4042 100644 --- a/asm/non_matchings/code_80091750/func_800A0FA4.s +++ b/asm/non_matchings/code_80091750/func_800A0FA4.s @@ -19,7 +19,7 @@ glabel L800A0FE0 /* 0A1BE4 800A0FE4 27398234 */ addiu $t9, %lo(D_800E8234) # addiu $t9, $t9, -0x7dcc /* 0A1BE8 800A0FE8 0005C0C0 */ sll $t8, $a1, 3 /* 0A1BEC 800A0FEC 03198821 */ addu $s1, $t8, $t9 -/* 0A1BF0 800A0FF0 0C026449 */ jal segmented_to_virtual +/* 0A1BF0 800A0FF0 0C026449 */ jal segmented_to_virtual_dupe /* 0A1BF4 800A0FF4 8E240000 */ lw $a0, ($s1) /* 0A1BF8 800A0FF8 3C128015 */ lui $s2, %hi(gDisplayListHead) # $s2, 0x8015 /* 0A1BFC 800A0FFC 26520298 */ addiu $s2, %lo(gDisplayListHead) # addiu $s2, $s2, 0x298 @@ -29,7 +29,7 @@ glabel L800A0FE0 /* 0A1C0C 800A100C 0C026E9D */ jal func_8009BA74 /* 0A1C10 800A1010 8E070010 */ lw $a3, 0x10($s0) /* 0A1C14 800A1014 AE420000 */ sw $v0, ($s2) -/* 0A1C18 800A1018 0C026449 */ jal segmented_to_virtual +/* 0A1C18 800A1018 0C026449 */ jal segmented_to_virtual_dupe /* 0A1C1C 800A101C 8E240004 */ lw $a0, 4($s1) /* 0A1C20 800A1020 8E440000 */ lw $a0, ($s2) /* 0A1C24 800A1024 00402825 */ move $a1, $v0 @@ -43,7 +43,7 @@ glabel L800A103C /* 0A1C40 800A1040 254A8234 */ addiu $t2, %lo(D_800E8234) # addiu $t2, $t2, -0x7dcc /* 0A1C44 800A1044 000548C0 */ sll $t1, $a1, 3 /* 0A1C48 800A1048 012A8821 */ addu $s1, $t1, $t2 -/* 0A1C4C 800A104C 0C026449 */ jal segmented_to_virtual +/* 0A1C4C 800A104C 0C026449 */ jal segmented_to_virtual_dupe /* 0A1C50 800A1050 8E240000 */ lw $a0, ($s1) /* 0A1C54 800A1054 8E06000C */ lw $a2, 0xc($s0) /* 0A1C58 800A1058 8E070010 */ lw $a3, 0x10($s0) @@ -57,7 +57,7 @@ glabel L800A103C /* 0A1C78 800A1078 0C026F27 */ jal func_8009BC9C /* 0A1C7C 800A107C AFAC0014 */ sw $t4, 0x14($sp) /* 0A1C80 800A1080 AE420000 */ sw $v0, ($s2) -/* 0A1C84 800A1084 0C026449 */ jal segmented_to_virtual +/* 0A1C84 800A1084 0C026449 */ jal segmented_to_virtual_dupe /* 0A1C88 800A1088 8E240004 */ lw $a0, 4($s1) /* 0A1C8C 800A108C 8E06000C */ lw $a2, 0xc($s0) /* 0A1C90 800A1090 8E070010 */ lw $a3, 0x10($s0) diff --git a/asm/non_matchings/code_80091750/func_800A143C.s b/asm/non_matchings/code_80091750/func_800A143C.s index 0be1eddec..05a68197a 100644 --- a/asm/non_matchings/code_80091750/func_800A143C.s +++ b/asm/non_matchings/code_80091750/func_800A143C.s @@ -16,7 +16,7 @@ glabel L800A1470 /* 0A2070 800A1470 00057880 */ sll $t7, $a1, 2 /* 0A2074 800A1474 3C04800F */ lui $a0, %hi(D_800E82C8) # 0x800f /* 0A2078 800A1478 008F2021 */ addu $a0, $a0, $t7 -/* 0A207C 800A147C 0C026449 */ jal segmented_to_virtual +/* 0A207C 800A147C 0C026449 */ jal segmented_to_virtual_dupe /* 0A2080 800A1480 8C8482C8 */ lw $a0, %lo(D_800E82C8)($a0) # -0x7d38($a0) /* 0A2084 800A1484 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015 /* 0A2088 800A1488 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0) @@ -31,7 +31,7 @@ glabel L800A14A8 /* 0A20A8 800A14A8 0005C080 */ sll $t8, $a1, 2 /* 0A20AC 800A14AC 3C04800F */ lui $a0, %hi(D_800E82C8) # 0x800f /* 0A20B0 800A14B0 00982021 */ addu $a0, $a0, $t8 -/* 0A20B4 800A14B4 0C026449 */ jal segmented_to_virtual +/* 0A20B4 800A14B4 0C026449 */ jal segmented_to_virtual_dupe /* 0A20B8 800A14B8 8C8482C8 */ lw $a0, %lo(D_800E82C8)($a0) # -0x7d38($a0) /* 0A20BC 800A14BC 8E06000C */ lw $a2, 0xc($s0) /* 0A20C0 800A14C0 8E070010 */ lw $a3, 0x10($s0) diff --git a/asm/non_matchings/code_80091750/func_800A1780.s b/asm/non_matchings/code_80091750/func_800A1780.s index 311542a56..cc6c01087 100644 --- a/asm/non_matchings/code_80091750/func_800A1780.s +++ b/asm/non_matchings/code_80091750/func_800A1780.s @@ -94,7 +94,7 @@ glabel func_800A1780 /* 0A24E0 800A18E0 03197825 */ or $t7, $t8, $t9 /* 0A24E4 800A18E4 31AE00FF */ andi $t6, $t5, 0xff /* 0A24E8 800A18E8 01EEC025 */ or $t8, $t7, $t6 -/* 0A24EC 800A18EC 0C026449 */ jal segmented_to_virtual +/* 0A24EC 800A18EC 0C026449 */ jal segmented_to_virtual_dupe /* 0A24F0 800A18F0 AD180004 */ sw $t8, 4($t0) /* 0A24F4 800A18F4 8FA30018 */ lw $v1, 0x18($sp) /* 0A24F8 800A18F8 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015 diff --git a/asm/non_matchings/code_80091750/func_800A8564.s b/asm/non_matchings/code_80091750/func_800A8564.s index 2002db608..5884ef52f 100644 --- a/asm/non_matchings/code_80091750/func_800A8564.s +++ b/asm/non_matchings/code_80091750/func_800A8564.s @@ -59,7 +59,7 @@ glabel func_800A8564 .L800A862C: /* 0A922C 800A862C AFAF0034 */ sw $t7, 0x34($sp) /* 0A9230 800A8630 AFA50030 */ sw $a1, 0x30($sp) -/* 0A9234 800A8634 0C026449 */ jal segmented_to_virtual +/* 0A9234 800A8634 0C026449 */ jal segmented_to_virtual_dupe /* 0A9238 800A8638 AFA70038 */ sw $a3, 0x38($sp) /* 0A923C 800A863C 8FA70038 */ lw $a3, 0x38($sp) /* 0A9240 800A8640 8FA50030 */ lw $a1, 0x30($sp) diff --git a/asm/non_matchings/code_80091750/func_800A8F48.s b/asm/non_matchings/code_80091750/func_800A8F48.s index 09675f5bb..bb70515f4 100644 --- a/asm/non_matchings/code_80091750/func_800A8F48.s +++ b/asm/non_matchings/code_80091750/func_800A8F48.s @@ -49,7 +49,7 @@ glabel func_800A8F48 /* 0A9BFC 800A8FFC 0C0263F2 */ jal func_80098FC8 /* 0A9C00 800A9000 02003025 */ move $a2, $s0 /* 0A9C04 800A9004 AE620000 */ sw $v0, ($s3) -/* 0A9C08 800A9008 0C026449 */ jal segmented_to_virtual +/* 0A9C08 800A9008 0C026449 */ jal segmented_to_virtual_dupe /* 0A9C0C 800A900C 02A02025 */ move $a0, $s5 /* 0A9C10 800A9010 24080002 */ li $t0, 2 /* 0A9C14 800A9014 AFA80010 */ sw $t0, 0x10($sp) diff --git a/asm/non_matchings/code_80091750/func_800A9710.s b/asm/non_matchings/code_80091750/func_800A9710.s index 8dbc1ae29..ea8122be7 100644 --- a/asm/non_matchings/code_80091750/func_800A9710.s +++ b/asm/non_matchings/code_80091750/func_800A9710.s @@ -39,7 +39,7 @@ glabel L800A9770 /* 0AA384 800A9784 00992021 */ addu $a0, $a0, $t9 /* 0AA388 800A9788 ACE20004 */ sw $v0, 4($a3) /* 0AA38C 800A978C AFA70018 */ sw $a3, 0x18($sp) -/* 0AA390 800A9790 0C026455 */ jal segmented_to_virtual_dupe +/* 0AA390 800A9790 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AA394 800A9794 8C847D34 */ lw $a0, %lo(D_800E7D34)($a0) /* 0AA398 800A9798 8FA70018 */ lw $a3, 0x18($sp) /* 0AA39C 800A979C 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/code_80091750/func_800AA2EC.s b/asm/non_matchings/code_80091750/func_800AA2EC.s index 8e7d42f28..25d23edfd 100644 --- a/asm/non_matchings/code_80091750/func_800AA2EC.s +++ b/asm/non_matchings/code_80091750/func_800AA2EC.s @@ -228,7 +228,7 @@ glabel L800AA334 /* 0AB224 800AA624 3C04800F */ lui $a0, %hi(D_800E8340) # 0x800f /* 0AB228 800AA628 AE180008 */ sw $t8, 8($s0) /* 0AB22C 800AA62C 00992021 */ addu $a0, $a0, $t9 -/* 0AB230 800AA630 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB230 800AA630 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB234 800AA634 8C848340 */ lw $a0, %lo(D_800E8340)($a0) # -0x7cc0($a0) /* 0AB238 800AA638 8E040018 */ lw $a0, 0x18($s0) /* 0AB23C 800AA63C 00002825 */ move $a1, $zero @@ -245,7 +245,7 @@ glabel L800AA334 /* 0AB264 800AA664 3C04800F */ lui $a0, %hi(D_800E8320) # 0x800f /* 0AB268 800AA668 AE000008 */ sw $zero, 8($s0) /* 0AB26C 800AA66C 00882021 */ addu $a0, $a0, $t0 -/* 0AB270 800AA670 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB270 800AA670 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB274 800AA674 8C848320 */ lw $a0, %lo(D_800E8320)($a0) # -0x7ce0($a0) /* 0AB278 800AA678 8E040018 */ lw $a0, 0x18($s0) /* 0AB27C 800AA67C 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/code_80091750/func_800AA69C.s b/asm/non_matchings/code_80091750/func_800AA69C.s index 1cef28e68..f88bed26e 100644 --- a/asm/non_matchings/code_80091750/func_800AA69C.s +++ b/asm/non_matchings/code_80091750/func_800AA69C.s @@ -35,7 +35,7 @@ glabel L800AA6F4 /* 0AB314 800AA714 3C04800F */ lui $a0, %hi(gCharacterCelebrateAnimation) # 0x800f /* 0AB318 800AA718 AE180008 */ sw $t8, 8($s0) /* 0AB31C 800AA71C 00992021 */ addu $a0, $a0, $t9 -/* 0AB320 800AA720 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB320 800AA720 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB324 800AA724 8C848380 */ lw $a0, %lo(gCharacterCelebrateAnimation)($a0) # -0x7c80($a0) /* 0AB328 800AA728 8E040018 */ lw $a0, 0x18($s0) /* 0AB32C 800AA72C 00002825 */ move $a1, $zero @@ -57,7 +57,7 @@ glabel L800AA6F4 /* 0AB364 800AA764 3C04800F */ lui $a0, %hi(gCharacterSingleBlinkAnimation) # 0x800f /* 0AB368 800AA768 AE080008 */ sw $t0, 8($s0) /* 0AB36C 800AA76C 00892021 */ addu $a0, $a0, $t1 -/* 0AB370 800AA770 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB370 800AA770 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB374 800AA774 8C8483E0 */ lw $a0, %lo(gCharacterSingleBlinkAnimation)($a0) # -0x7c20($a0) /* 0AB378 800AA778 8E040018 */ lw $a0, 0x18($s0) /* 0AB37C 800AA77C 00002825 */ move $a1, $zero @@ -73,7 +73,7 @@ glabel L800AA6F4 /* 0AB3A0 800AA7A0 3C04800F */ lui $a0, %hi(gCharacterDoubleBlinkAnimation) # 0x800f /* 0AB3A4 800AA7A4 AE0A0008 */ sw $t2, 8($s0) /* 0AB3A8 800AA7A8 008B2021 */ addu $a0, $a0, $t3 -/* 0AB3AC 800AA7AC 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB3AC 800AA7AC 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB3B0 800AA7B0 8C848400 */ lw $a0, %lo(gCharacterDoubleBlinkAnimation)($a0) # -0x7c00($a0) /* 0AB3B4 800AA7B4 8E040018 */ lw $a0, 0x18($s0) /* 0AB3B8 800AA7B8 00002825 */ move $a1, $zero @@ -101,7 +101,7 @@ glabel L800AA7CC /* 0AB40C 800AA80C 3C04800F */ lui $a0, %hi(D_800E83A0) # 0x800f /* 0AB410 800AA810 AE180008 */ sw $t8, 8($s0) /* 0AB414 800AA814 00832021 */ addu $a0, $a0, $v1 -/* 0AB418 800AA818 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB418 800AA818 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB41C 800AA81C 8C8483A0 */ lw $a0, %lo(D_800E83A0)($a0) # -0x7c60($a0) /* 0AB420 800AA820 8E040018 */ lw $a0, 0x18($s0) /* 0AB424 800AA824 00002825 */ move $a1, $zero @@ -119,7 +119,7 @@ glabel L800AA7CC /* 0AB450 800AA850 AE080008 */ sw $t0, 8($s0) /* 0AB454 800AA854 00832021 */ addu $a0, $a0, $v1 /* 0AB458 800AA858 8C8483C0 */ lw $a0, %lo(gCharacterDeselectAnimation)($a0) # -0x7c40($a0) -/* 0AB45C 800AA85C 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB45C 800AA85C 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB460 800AA860 AFA30024 */ sw $v1, 0x24($sp) /* 0AB464 800AA864 8E040018 */ lw $a0, 0x18($s0) /* 0AB468 800AA868 8FA30024 */ lw $v1, 0x24($sp) @@ -149,7 +149,7 @@ glabel L800AA8A4 /* 0AB4C4 800AA8C4 3C04800F */ lui $a0, %hi(gCharacterDeselectAnimation) # 0x800f /* 0AB4C8 800AA8C8 AE0D0008 */ sw $t5, 8($s0) /* 0AB4CC 800AA8CC 008E2021 */ addu $a0, $a0, $t6 -/* 0AB4D0 800AA8D0 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB4D0 800AA8D0 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB4D4 800AA8D4 8C8483C0 */ lw $a0, %lo(gCharacterDeselectAnimation)($a0) # -0x7c40($a0) /* 0AB4D8 800AA8D8 8E040018 */ lw $a0, 0x18($s0) /* 0AB4DC 800AA8DC 00002825 */ move $a1, $zero @@ -178,7 +178,7 @@ glabel L800AA8F0 /* 0AB534 800AA934 3C04800F */ lui $a0, %hi(D_800E8360) # 0x800f /* 0AB538 800AA938 AE000008 */ sw $zero, 8($s0) /* 0AB53C 800AA93C 00832021 */ addu $a0, $a0, $v1 -/* 0AB540 800AA940 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB540 800AA940 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB544 800AA944 8C848360 */ lw $a0, %lo(D_800E8360)($a0) # -0x7ca0($a0) /* 0AB548 800AA948 8E040018 */ lw $a0, 0x18($s0) /* 0AB54C 800AA94C 00002825 */ move $a1, $zero @@ -196,7 +196,7 @@ glabel L800AA8F0 /* 0AB578 800AA978 AE0B0008 */ sw $t3, 8($s0) /* 0AB57C 800AA97C 00832021 */ addu $a0, $a0, $v1 /* 0AB580 800AA980 8C848380 */ lw $a0, %lo(gCharacterCelebrateAnimation)($a0) # -0x7c80($a0) -/* 0AB584 800AA984 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB584 800AA984 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB588 800AA988 AFA70020 */ sw $a3, 0x20($sp) /* 0AB58C 800AA98C 8E040018 */ lw $a0, 0x18($s0) /* 0AB590 800AA990 8FA70020 */ lw $a3, 0x20($sp) @@ -225,7 +225,7 @@ glabel L800AA9C4 /* 0AB5E8 800AA9E8 3C04800F */ lui $a0, %hi(gCharacterCelebrateAnimation) # 0x800f /* 0AB5EC 800AA9EC AE180008 */ sw $t8, 8($s0) /* 0AB5F0 800AA9F0 00992021 */ addu $a0, $a0, $t9 -/* 0AB5F4 800AA9F4 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB5F4 800AA9F4 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB5F8 800AA9F8 8C848380 */ lw $a0, %lo(gCharacterCelebrateAnimation)($a0) # -0x7c80($a0) /* 0AB5FC 800AA9FC 8E040018 */ lw $a0, 0x18($s0) /* 0AB600 800AAA00 00002825 */ move $a1, $zero @@ -259,7 +259,7 @@ glabel L800AA9C4 /* 0AB664 800AAA64 54200009 */ bnel $at, $zero, .L800AAA8C /* 0AB668 800AAA68 8FBF001C */ lw $ra, 0x1c($sp) /* 0AB66C 800AAA6C AE000008 */ sw $zero, 8($s0) -/* 0AB670 800AAA70 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB670 800AAA70 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB674 800AAA74 8C848360 */ lw $a0, %lo(D_800E8360)($a0) # -0x7ca0($a0) /* 0AB678 800AAA78 8E040018 */ lw $a0, 0x18($s0) /* 0AB67C 800AAA7C 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/code_80091750/func_800AAC18.s b/asm/non_matchings/code_80091750/func_800AAC18.s index 8ca55805b..9aa673228 100644 --- a/asm/non_matchings/code_80091750/func_800AAC18.s +++ b/asm/non_matchings/code_80091750/func_800AAC18.s @@ -45,7 +45,7 @@ glabel L800AAC50 /* 0AB8C0 800AACC0 008F2021 */ addu $a0, $a0, $t7 /* 0AB8C4 800AACC4 ACEE0010 */ sw $t6, 0x10($a3) /* 0AB8C8 800AACC8 AFA70030 */ sw $a3, 0x30($sp) -/* 0AB8CC 800AACCC 0C026455 */ jal segmented_to_virtual_dupe +/* 0AB8CC 800AACCC 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AB8D0 800AACD0 8C848340 */ lw $a0, %lo(D_800E8340)($a0) # -0x7cc0($a0) /* 0AB8D4 800AACD4 8FA70030 */ lw $a3, 0x30($sp) /* 0AB8D8 800AACD8 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/code_80091750/func_800AB9B0.s b/asm/non_matchings/code_80091750/func_800AB9B0.s index 15b07311a..bd6701d81 100644 --- a/asm/non_matchings/code_80091750/func_800AB9B0.s +++ b/asm/non_matchings/code_80091750/func_800AB9B0.s @@ -29,7 +29,7 @@ glabel func_800AB9B0 /* 0AC618 800ABA18 010A5821 */ addu $t3, $t0, $t2 /* 0AC61C 800ABA1C 3C04800E */ lui $a0, %hi(D_800E7E20) /* 0AC620 800ABA20 008B2021 */ addu $a0, $a0, $t3 -/* 0AC624 800ABA24 0C026455 */ jal segmented_to_virtual_dupe +/* 0AC624 800ABA24 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AC628 800ABA28 8C847E20 */ lw $a0, %lo(D_800E7E20)($a0) /* 0AC62C 800ABA2C 8E040018 */ lw $a0, 0x18($s0) /* 0AC630 800ABA30 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/code_80091750/func_800ACF40.s b/asm/non_matchings/code_80091750/func_800ACF40.s index 9f702199e..7265d39ee 100644 --- a/asm/non_matchings/code_80091750/func_800ACF40.s +++ b/asm/non_matchings/code_80091750/func_800ACF40.s @@ -102,7 +102,7 @@ glabel L800AD01C /* 0ADCB8 800AD0B8 3C04800F */ lui $a0, %hi(gCharacterCelebrateAnimation) # 0x800f /* 0ADCBC 800AD0BC 00882021 */ addu $a0, $a0, $t0 /* 0ADCC0 800AD0C0 8C848380 */ lw $a0, %lo(gCharacterCelebrateAnimation)($a0) # -0x7c80($a0) -/* 0ADCC4 800AD0C4 0C026455 */ jal segmented_to_virtual_dupe +/* 0ADCC4 800AD0C4 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0ADCC8 800AD0C8 AFA60038 */ sw $a2, 0x38($sp) /* 0ADCCC 800AD0CC 8FA60038 */ lw $a2, 0x38($sp) /* 0ADCD0 800AD0D0 8E040018 */ lw $a0, 0x18($s0) @@ -145,7 +145,7 @@ glabel L800AD128 /* 0ADD60 800AD160 5420000C */ bnel $at, $zero, .L800AD194 /* 0ADD64 800AD164 8FBF001C */ lw $ra, 0x1c($sp) /* 0ADD68 800AD168 8C8483A0 */ lw $a0, %lo(D_800E83A0)($a0) # -0x7c60($a0) -/* 0ADD6C 800AD16C 0C026455 */ jal segmented_to_virtual_dupe +/* 0ADD6C 800AD16C 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0ADD70 800AD170 AFA60038 */ sw $a2, 0x38($sp) /* 0ADD74 800AD174 8FA60038 */ lw $a2, 0x38($sp) /* 0ADD78 800AD178 8E040018 */ lw $a0, 0x18($s0) diff --git a/asm/non_matchings/code_80091750/func_800AEDBC.s b/asm/non_matchings/code_80091750/func_800AEDBC.s index 43092b29e..ae85f4a59 100644 --- a/asm/non_matchings/code_80091750/func_800AEDBC.s +++ b/asm/non_matchings/code_80091750/func_800AEDBC.s @@ -31,7 +31,7 @@ glabel func_800AEDBC /* 0AFA28 800AEE28 AFA70018 */ sw $a3, 0x18($sp) /* 0AFA2C 800AEE2C 000A5880 */ sll $t3, $t2, 2 /* 0AFA30 800AEE30 008B2021 */ addu $a0, $a0, $t3 -/* 0AFA34 800AEE34 0C026455 */ jal segmented_to_virtual_dupe +/* 0AFA34 800AEE34 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AFA38 800AEE38 8C847E34 */ lw $a0, %lo(D_800E7E34)($a0) /* 0AFA3C 800AEE3C 8FA70018 */ lw $a3, 0x18($sp) /* 0AFA40 800AEE40 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/code_80091750/func_800AF270.s b/asm/non_matchings/code_80091750/func_800AF270.s index 657fa0ced..deff211c0 100644 --- a/asm/non_matchings/code_80091750/func_800AF270.s +++ b/asm/non_matchings/code_80091750/func_800AF270.s @@ -85,7 +85,7 @@ glabel L800AF34C .L800AF3B0: /* 0AFFB0 800AF3B0 AE0F0004 */ sw $t7, 4($s0) /* 0AFFB4 800AF3B4 00982021 */ addu $a0, $a0, $t8 -/* 0AFFB8 800AF3B8 0C026455 */ jal segmented_to_virtual_dupe +/* 0AFFB8 800AF3B8 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0AFFBC 800AF3BC 8C848380 */ lw $a0, %lo(gCharacterCelebrateAnimation)($a0) # -0x7c80($a0) /* 0AFFC0 800AF3C0 8E040018 */ lw $a0, 0x18($s0) /* 0AFFC4 800AF3C4 00002825 */ move $a1, $zero @@ -122,7 +122,7 @@ glabel L800AF408 /* 0B003C 800AF43C 014B082A */ slt $at, $t2, $t3 /* 0B0040 800AF440 5420000B */ bnel $at, $zero, .L800AF470 /* 0B0044 800AF444 8FBF001C */ lw $ra, 0x1c($sp) -/* 0B0048 800AF448 0C026455 */ jal segmented_to_virtual_dupe +/* 0B0048 800AF448 0C026455 */ jal segmented_to_virtual_dupe_2 /* 0B004C 800AF44C 8C8483A0 */ lw $a0, %lo(D_800E83A0)($a0) # -0x7c60($a0) /* 0B0050 800AF450 8E040018 */ lw $a0, 0x18($s0) /* 0B0054 800AF454 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/code_80091750/print_text1.s b/asm/non_matchings/code_80091750/print_text1.s index 4ec911497..ec4a07461 100644 --- a/asm/non_matchings/code_80091750/print_text1.s +++ b/asm/non_matchings/code_80091750/print_text1.s @@ -132,11 +132,11 @@ glabel print_text1 /* 094160 80093560 00115080 */ sll $t2, $s1, 2 /* 094164 80093564 014B8021 */ addu $s0, $t2, $t3 /* 094168 80093568 8E040000 */ lw $a0, ($s0) -/* 09416C 8009356C 0C026449 */ jal segmented_to_virtual +/* 09416C 8009356C 0C026449 */ jal segmented_to_virtual_dupe /* 094170 80093570 46803520 */ cvt.s.w $f20, $f6 /* 094174 80093574 0C026461 */ jal func_80099184 /* 094178 80093578 00402025 */ move $a0, $v0 -/* 09417C 8009357C 0C026449 */ jal segmented_to_virtual +/* 09417C 8009357C 0C026449 */ jal segmented_to_virtual_dupe /* 094180 80093580 8E040000 */ lw $a0, ($s0) /* 094184 80093584 44938000 */ mtc1 $s3, $f16 /* 094188 80093588 8FAD0060 */ lw $t5, 0x60($sp) diff --git a/include/types.h b/include/types.h index 9ef2207cb..130ef9fb8 100644 --- a/include/types.h +++ b/include/types.h @@ -46,17 +46,18 @@ struct Controller { }; struct UnkStruct_800DC5EC { - struct Controller *controllers; // gControllers ptr 800F6910 - Camera *camera; // Player camera ptr - Player *player; // Player ptr 800F6990 - s32 unkC; // unk struct? - Vp viewport; - s32 pad[2]; - u32 cameraHeight; - s16 screenWidth; - s16 screenHeight; - s16 screenStartX; - s16 screenStartY; + /* 0x00 */ struct Controller *controllers; // gControllers ptr 800F6910 + /* 0x04 */ Camera *camera; // Player camera ptr + /* 0x08 */ Player *player; // Player ptr 800F6990 + /* 0x0C */ s32 unkC; // unk struct? + /* 0x10 */ Vp viewport; + /* 0x20 */ s32 pad[2]; + /* 0x28 */ s16 cameraHeight; + /* 0x2A */ s16 unk; + /* 0x2C */ s16 screenWidth; + /* 0x2F */ s16 screenHeight; + /* 0x30 */ s16 screenStartX; + /* 0x32 */ s16 screenStartY; s16 unk3C; s16 playerDirection; s16 pathCounter; diff --git a/src/code_80004740.c b/src/code_80004740.c index 48f0d613e..489537e62 100644 --- a/src/code_80004740.c +++ b/src/code_80004740.c @@ -4,6 +4,7 @@ #include #include "math_util.h" #include "code_80004740.h" +#include "memory.h" void func_80004740(Mtx *dest, Mat4 src) { #ifdef AVOID_UB @@ -141,7 +142,7 @@ void func_80004A1C(void *arg0, s32 arg1, void *arg2, s32 arg3) { temp_v1->words.w1 = (u32) (&gGfxPool->mtxPool[D_8018D120] + 0x800002C0); D_8018D120 += 1; if (sp3C != 0) { - temp_v0 = lookup_item(sp3C); + temp_v0 = segmented_to_virtual(sp3C); temp_v1_2 = gDisplayListHead; gDisplayListHead = temp_v1_2 + 8; temp_v1_2->words.w1 = (u32) temp_v0; @@ -176,8 +177,8 @@ void func_80004C30(void *arg0, void *arg1, s16 arg2) { s32 phi_s4; arg2 = arg2; - sp40 = lookup_item(arg1->unkC); - temp_v0 = lookup_item(arg1->unk10); + sp40 = segmented_to_virtual(arg1->unkC); + temp_v0 = segmented_to_virtual(arg1->unk10); D_80162D7A = 0; D_80162D76 = 0; phi_a0 = temp_v0; @@ -247,8 +248,8 @@ s16 func_80004DFC(u32 arg0, u32 arg1, s16 arg2, s16 arg3) { s16 phi_s0; s16 phi_s0_2; - sp24 = lookup_item(arg0); - temp_v0 = lookup_item(*(lookup_item(arg1) + (arg2 * 4))); + sp24 = segmented_to_virtual(arg0); + temp_v0 = segmented_to_virtual(*(segmented_to_virtual(arg1) + (arg2 * 4))); phi_s0 = arg3; if (arg3 >= temp_v0->unk8) { phi_s0 = 0; @@ -266,11 +267,15 @@ s16 func_80004DFC(u32 arg0, u32 arg1, s16 arg2, s16 arg3) { GLOBAL_ASM("asm/non_matchings/code_80004740/func_80004DFC.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s16 func_80004EAC(u32 arg0, s16 arg1) { - return lookup_item(*(lookup_item(arg0) + (arg1 * 4)))->unk8 - 1; -} -#else -GLOBAL_ASM("asm/non_matchings/code_80004740/func_80004EAC.s") -#endif +struct stru_80004EAC { + s32 unk0; + s32 unk4; + s16 unk8; +}; + +s16 func_80004EAC(void *addr, s16 offset) { + uintptr_t *item = segmented_to_virtual(addr); + struct stru_80004EAC *temp = segmented_to_virtual(item[offset]); + + return temp->unk8 - 1; +} \ No newline at end of file diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index eda638324..eb4c12dcf 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -2568,14 +2568,14 @@ block_63: temp_v1_3 = (arg0 * 0x10) + &D_801634F8; sp30 = temp_v1_3; var_t0 = sp38 + &D_80163210; - *var_t0 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D0096B8); + *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D0096B8); temp_v1_3->unk4 = -0.5f; } else if (D_801645E0[D_80162FCE] > 0) { var_t0 = sp38 + &D_80163210; - *var_t0 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009418); + *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009418); } else { var_t0 = sp38 + &D_80163210; - *var_t0 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009568); + *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009568); } sp3C = var_t0; func_800131DC(arg0); @@ -2782,20 +2782,20 @@ block_63: if (((bitwise s32) *sp28 == 1) || (temp_v0_20 = (s16) *sp2C, (temp_v0_20 == 1)) || (temp_v0_20 == -1) || ((sp40->unk_0BC & 0x1000000C) != 0)) { sp20 = temp_t0_2; var_v1_3 = sp38 + &D_80163028; - *var_v1_3 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009418); + *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009418); } else { sp20 = temp_t0_2; var_v1_3 = sp38 + &D_80163028; - *var_v1_3 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009568); + *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009568); } temp_f0_5 = *temp_t0_2; if ((temp_f0_5 > 0.9f) || (temp_f0_5 < -0.9f)) { sp34 = var_v1_3; - *var_v1_3 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009808); + *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009808); } if (D_80162FD0 == 1) { sp34 = var_v1_3; - *var_v1_3 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D0096B8); + *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D0096B8); } temp_v0_21 = (s16) *sp2C; if ((temp_v0_21 == 2) || (temp_v0_21 == -2) || (temp_v0_21 == 3)) { @@ -5149,7 +5149,7 @@ void func_8000F628(void) { spE4 = var_t3; spE0 = var_t4; spDC = var_t5; - *var_t2 = *segmented_to_virtual_dupe((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009418); + *var_t2 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009418); *var_t3 = 0; *var_t4 = 0; *var_t5 = 0.0f; @@ -5412,12 +5412,12 @@ void func_800100F0(s32 pathIndex) { if ((s32) D_800DCA4C[temp_v0] >= 0) { sp30 = D_80164550[pathIndex]; if (temp_v0 != 0x0014) { - var_v0 = process_path_data(sp30, segmented_to_virtual_dupe(*(&D_800DC8D0 + ((temp_v0 * 0x10) + temp_t9)))); + var_v0 = process_path_data(sp30, segmented_to_virtual_dupe_2(*(&D_800DC8D0 + ((temp_v0 * 0x10) + temp_t9)))); var_at = &gWaypointCountByPathIndex[pathIndex]; goto block_9; } sp1A = 1; - temp_v0_2 = segmented_to_virtual_dupe(*(&gCoursePathTable + ((temp_v0 * 0x10) + temp_t9))); + temp_v0_2 = segmented_to_virtual_dupe_2(*(&gCoursePathTable + ((temp_v0 * 0x10) + temp_t9))); sp2C = temp_v0_2; var_a0 = temp_v0_2; var_a2 = 1; @@ -6043,7 +6043,7 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001168C.s") #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void *segmented_to_virtual_dupe(void*); // extern +void *segmented_to_virtual_dupe_2(void*); // extern extern s32 D_800DC720; extern ? D_80162EB8; extern ? D_80162F08; @@ -6057,7 +6057,7 @@ void func_80011A5C(void) { phi_s0 = &D_80162EB8; do { temp_s0 = phi_s0 + 4; - temp_s0->unk-4 = segmented_to_virtual_dupe(*phi_s1); + temp_s0->unk-4 = segmented_to_virtual_dupe_2(*phi_s1); phi_s1 += 4; phi_s0 = temp_s0; } while (temp_s0 != &D_80162F08); diff --git a/src/code_800431B0.c b/src/code_800431B0.c index e4d45d29b..c89c05a5a 100644 --- a/src/code_800431B0.c +++ b/src/code_800431B0.c @@ -8,6 +8,7 @@ #include "code_8001F980.h" #include "code_800431B0.h" #include "code_80071F00.h" +#include "main.h" void func_800431B0(Vec3f arg0, Vec3s arg1, f32 arg2, s32 arg3) { func_80042E00(arg0, arg1, arg2); @@ -6349,16 +6350,11 @@ void func_80051C60(s16 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80051C60.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80051ABC(s16, ?); // extern +void func_80051ABC(s16, s32); // extern void func_80051EBC(void) { - func_80051ABC(0xF0 - D_800DC5EC->unk28, 0); + func_80051ABC(240 - D_800DC5EC->cameraHeight, 0); // 28 } -#else -GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80051EBC.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -6414,16 +6410,11 @@ void func_80051F9C(void) { GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80051F9C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_80051C60(s16, ?); // extern +void func_80051C60(s16, s32); void func_80052044(void) { - func_80051C60(0xF0 - D_800DC5EC->unk28, 0); + func_80051C60(240 - D_800DC5EC->cameraHeight, 0); } -#else -GLOBAL_ASM("asm/non_matchings/code_800431B0/func_80052044.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 diff --git a/src/code_80071F00.c b/src/code_80071F00.c index ffe0d55e9..5d1ef6d1d 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -4791,25 +4791,25 @@ u8 gen_random_item(s16 arg0, s16 arg1) { temp_v0 = gPlayerCountSelection1; switch (temp_v0) { /* irregular */ case 2: - sp18 = lookup_item((u32) &D_0D008790); + sp18 = segmented_to_virtual((u32) &D_0D008790); block_8: var_a1 = &D_801658FD; break; case 3: - sp18 = lookup_item(0x0D008858U); + sp18 = segmented_to_virtual(0x0D008858U); goto block_8; case 4: - sp18 = lookup_item(0x0D008984U); + sp18 = segmented_to_virtual(0x0D008984U); goto block_8; } var_v1 = *((arg0 * 0x64) + sp18 + *var_a1); } else if (temp_v1 == 3) { - var_v1 = *(D_801658FD + lookup_item((u32) &D_0D008B14)); + var_v1 = *(D_801658FD + segmented_to_virtual((u32) &D_0D008B14)); } else { if (arg1 == 0) { - var_v0 = lookup_item((u32) &D_0D008150); + var_v0 = segmented_to_virtual((u32) &D_0D008150); } else { - var_v0 = lookup_item(0x0D008470U); + var_v0 = segmented_to_virtual(0x0D008470U); } var_v1 = *((arg0 * 0x64) + var_v0 + D_801658FD); } diff --git a/src/code_80091750.c b/src/code_80091750.c index 0910b4b40..e78af9b04 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "code_80091750.h" @@ -527,7 +528,7 @@ void func_80092290(s32 arg0, s32 *arg1, s32 *arg2, s32 arg3) { temp_s4 = (((arg0 * 4) + (((s32) gGlobalTimer % 2) * 2)) - 6) * 0x10; phi_s0 = D_800E84C0; do { - temp_v0 = segmented_to_virtual_dupe(*phi_s0); + temp_v0 = segmented_to_virtual_dupe_2(*phi_s0); temp_a0 = *arg2; temp_a2 = temp_v0 + temp_s4; temp_a1 = 0x100 - temp_a0; @@ -975,8 +976,8 @@ void print_text0(s32 column, s32 row, char *text, s32 tracking, f32 x_scale, f32 do{ glyphIndex = char_to_glyph_index(text); if (glyphIndex >= 0) { - func_80099184(segmented_to_virtual(gGlyphTextureLUT[glyphIndex])); - gDisplayListHead = func_8009BEF0(gDisplayListHead, segmented_to_virtual(gGlyphTextureLUT[glyphIndex]), column + (stringWidth * x_scale), row, arg6, x_scale, y_scale); + func_80099184(segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex])); + gDisplayListHead = func_8009BEF0(gDisplayListHead, segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]), column + (stringWidth * x_scale), row, arg6, x_scale, y_scale); stringWidth += gGlyphDisplayWidth[glyphIndex] + tracking; } else if ((glyphIndex != -2) && (glyphIndex == -1)) { @@ -1057,8 +1058,8 @@ void print_text1(s32 column, s32 row, char *text, s32 tracking, f32 x_scale, f32 do{ glyphIndex = char_to_glyph_index(text); if (glyphIndex >= 0) { - func_80099184(segmented_to_virtual(gGlyphTextureLUT[glyphIndex])); - gDisplayListHead = func_8009BEF0(gDisplayListHead, segmented_to_virtual(gGlyphTextureLUT[glyphIndex]), column, row, arg6, x_scale, y_scale); + func_80099184(segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex])); + gDisplayListHead = func_8009BEF0(gDisplayListHead, segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]), column, row, arg6, x_scale, y_scale); column += (gGlyphDisplayWidth[glyphIndex] + tracking); column *= x_scale; } @@ -1109,7 +1110,7 @@ void print_text2(s32 column, s32 row, char *text, s32 tracking, f32 x_scale, f32 do { glyphIndex = char_to_glyph_index(text); if (glyphIndex >= 0) { - glyphTexture = segmented_to_virtual(gGlyphTextureLUT[glyphIndex]); + glyphTexture = segmented_to_virtual_dupe(gGlyphTextureLUT[glyphIndex]); func_80099184(glyphTexture); gDisplayListHead = func_8009BEF0(gDisplayListHead, glyphTexture, column - (gGlyphDisplayWidth[glyphIndex] / 2), row, arg6, x_scale, y_scale); if ((glyphIndex >= 0xD5) && (glyphIndex < 0xE0)) { @@ -3747,12 +3748,24 @@ void func_80099110(void) { gNumD_8018E118Entries = 0; } -void *segmented_to_virtual(void *arg0) { - return gSegmentTable[(uintptr_t)arg0 >> 0x18] + ((uintptr_t)arg0 & 0xFFFFFF) + 0x80000000; +/** + * Differs from memory.c with `+ 0x8` instead of `| 0x8` + * + * @param addr + * @return void* + */ +void *segmented_to_virtual_dupe(const void *addr) { + size_t segment = (uintptr_t) addr >> 24; + size_t offset = (uintptr_t) addr & 0x00FFFFFF; + + return (void *) ((gSegmentTable[segment] + offset) + 0x80000000); } -void *segmented_to_virtual_dupe(void *arg0) { - return gSegmentTable[(uintptr_t)arg0 >> 0x18] + ((uintptr_t)arg0 & 0xFFFFFF) + 0x80000000; +void *segmented_to_virtual_dupe_2(const void *addr) { + size_t segment = (uintptr_t) addr >> 24; + size_t offset = (uintptr_t) addr & 0x00FFFFFF; + + return (void *) ((gSegmentTable[segment] + offset) + 0x80000000); } #ifdef MIPS_TO_C @@ -3772,7 +3785,7 @@ void func_80099184(MkTexture *arg0) { void *temp_v0; void *var_s1; - temp_v0 = segmented_to_virtual(arg0); + temp_v0 = segmented_to_virtual_dupe(arg0); var_s1 = temp_v0; if (temp_v0->unk4 != 0) { do { @@ -3844,7 +3857,7 @@ void func_800996BC(MkTexture *arg0, s32 arg1) { void *temp_v0; void *var_s0; - temp_v0 = segmented_to_virtual(arg0); + temp_v0 = segmented_to_virtual_dupe(arg0); var_s0 = temp_v0; if (temp_v0->unk4 != 0) { do { @@ -3923,7 +3936,7 @@ void func_80099958(MkTexture *arg0, s32 arg1, s32 arg2) { void *temp_v0; void *var_s0; - temp_v0 = segmented_to_virtual(arg0); + temp_v0 = segmented_to_virtual_dupe(arg0); temp_t6 = temp_v0->unk4; var_s0 = temp_v0; var_a0 = temp_t6; @@ -3978,7 +3991,7 @@ void func_80099A94(MkTexture *arg0, s32 arg1) { } while (phi_v1->unk8 != 0); } sp1C = phi_v1_2; - phi_v1_2->unk0 = segmented_to_virtual(arg0); + phi_v1_2->unk0 = segmented_to_virtual_dupe(arg0); phi_v1_2->unk4 = arg1; } #else @@ -4110,7 +4123,7 @@ void func_80099E60(MkTexture *arg0, s32 arg1, s32 arg2) { } while (phi_v1->unk8 != 0); } sp1C = phi_v1_2; - phi_v1_2->unk0 = segmented_to_virtual(arg0); + phi_v1_2->unk0 = segmented_to_virtual_dupe(arg0); phi_v1_2->unk4 = (s16) arg1; phi_v1_2->unk6 = (s16) arg2; } @@ -4246,7 +4259,7 @@ s32 func_8009A374(MkAnimation *arg0) { s32 phi_a1_2; MkAnimation *phi_a2; - temp_v0 = segmented_to_virtual_dupe(arg0); + temp_v0 = segmented_to_virtual_dupe_2(arg0); temp_a2 = temp_v0; phi_a1 = 0; phi_a1_2 = 0; @@ -4316,7 +4329,7 @@ s32 func_8009A478(MkAnimation *arg0, s32 arg1) { struct_8018DEE0_entry *phi_v1; s32 phi_a3_2; - temp_v0 = segmented_to_virtual_dupe(arg0); + temp_v0 = segmented_to_virtual_dupe_2(arg0); temp_s0 = temp_v0; phi_a3 = 0; phi_a3_2 = 0; @@ -4376,12 +4389,12 @@ void func_8009A594(s32 arg0, s32 arg1, MkAnimation *arg2) { MkTexture *temp_v0_2; s32 thing = arg1; - temp_v0 = segmented_to_virtual_dupe(arg2); + temp_v0 = segmented_to_virtual_dupe_2(arg2); temp_s0 = &D_8018DEE0[arg0]; temp_s0->textureSequence = temp_v0; temp_s0->sequenceIndex = arg1; temp_s0->frameCountDown = temp_v0[arg1].frame_length; - temp_v0_2 = segmented_to_virtual(temp_v0[thing].mk64Texture); + temp_v0_2 = segmented_to_virtual_dupe(temp_v0[thing].mk64Texture); if (temp_s0->unk14 != 0) { func_80099A94(temp_v0_2, temp_s0->D_8018E118_index); temp_s0->unk14 = 0; @@ -4396,18 +4409,18 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009A594.s") #ifdef NON_MATCHING // Non-matching due to the argument registers to an addu command being swapped. -// Also some stack mangement around the segmented_to_virtual call is wrong +// Also some stack mangement around the segmented_to_virtual_dupe call is wrong extern void func_80099E60(MkTexture *, s32, s32); void func_8009A640(s32 arg0, s32 arg1, s32 arg2, MkAnimation *arg3) { MkAnimation *temp_v0; MkTexture *temp_a0; s32 thing = arg1; - temp_v0 = segmented_to_virtual_dupe(arg3); + temp_v0 = segmented_to_virtual_dupe_2(arg3); D_8018DEE0[arg0].textureSequence = temp_v0; D_8018DEE0[arg0].sequenceIndex = arg1; D_8018DEE0[arg0].frameCountDown = temp_v0[arg1].frame_length; - temp_a0 = segmented_to_virtual(temp_v0[thing].mk64Texture); + temp_a0 = segmented_to_virtual_dupe(temp_v0[thing].mk64Texture); D_8018DEE0[arg0].unk14 ^= 1; func_80099E60(temp_a0, arg2, D_8018DEE0[arg0].unk14); } @@ -4471,7 +4484,7 @@ MkTexture *func_8009A878(struct_8018DEE0_entry *arg0) { phi_v0 = &temp_v1[0]; } arg0->frameCountDown = phi_v0->frame_length; - temp_v0_2 = segmented_to_virtual(phi_v0->mk64Texture); + temp_v0_2 = segmented_to_virtual_dupe(phi_v0->mk64Texture); if (arg0->unk14 != 0) { func_80099A94(temp_v0_2, arg0->D_8018E118_index); arg0->unk14 = 0; @@ -4517,7 +4530,7 @@ MkTexture *func_8009A944(struct_8018DEE0_entry *arg0, s32 arg1) { } arg0->frameCountDown = phi_v0->frame_length; arg0 = arg0; - temp_a0 = segmented_to_virtual(phi_v0->mk64Texture); + temp_a0 = segmented_to_virtual_dupe(phi_v0->mk64Texture); temp_a2 = arg0->unk14 ^ 1; arg0->unk14 = temp_a2; func_80099E60(temp_a0, arg1, temp_a2); @@ -4911,7 +4924,7 @@ void func_8009B938(void) { } void func_8009B954(MkTexture *arg0) { - D_8018E768[gNumD_8018E768Entries].textures = segmented_to_virtual(arg0); + D_8018E768[gNumD_8018E768Entries].textures = segmented_to_virtual_dupe(arg0); D_8018E768[gNumD_8018E768Entries].displayList = D_8018E75C; } @@ -4923,7 +4936,7 @@ void func_8009B998(void) { // I don't get how this compiles, given that there's a code path // that has no explicit return value. // Based on the target assembly, in the event that it never finds -// the desired entry, it'll treat the return value of segmented_to_virtual +// the desired entry, it'll treat the return value of segmented_to_virtual_dupe // as the return of this function. Which seems like a bug to me Gfx *func_8009B9D0(Gfx *displayListHead, MkTexture *textures) { Gfx *displayList; @@ -4933,7 +4946,7 @@ Gfx *func_8009B9D0(Gfx *displayListHead, MkTexture *textures) { found = FALSE; for (index = 0; index < D_8018E768_SIZE; index++) { - if (D_8018E768[index].textures == segmented_to_virtual(textures)) { + if (D_8018E768[index].textures == segmented_to_virtual_dupe(textures)) { displayList = D_8018E768[index].displayList; found = TRUE; break; @@ -4968,7 +4981,7 @@ Gfx *func_8009BA74(Gfx *arg0, MkTexture *arg1, s32 column, s32 row) { Gfx *phi_s0_4; Gfx *phi_v0; - temp_v0 = segmented_to_virtual(arg1); + temp_v0 = segmented_to_virtual_dupe(arg1); phi_s2 = temp_v0; phi_s0 = arg0; phi_s0_3 = arg0; @@ -5059,7 +5072,7 @@ Gfx *func_8009BC9C(Gfx *arg0, MkTexture *arg1, s32 arg2, s32 arg3, s32 arg4, s32 Gfx *phi_s1_4; Gfx *phi_v0; - temp_v0 = segmented_to_virtual(arg1); + temp_v0 = segmented_to_virtual_dupe(arg1); phi_s0 = temp_v0; phi_s1 = arg0; phi_s1_3 = arg0; @@ -5162,7 +5175,7 @@ Gfx *func_8009BEF0(Gfx *arg0, MkTexture *arg1, f32 arg2, f32 arg3, s32 arg4, f32 Gfx *phi_v0_4; s32 phi_v0_5; - temp_v0 = segmented_to_virtual(arg1); + temp_v0 = segmented_to_virtual_dupe(arg1); phi_s0 = temp_v0; phi_s1 = arg0; phi_s1_2 = arg0; @@ -5290,7 +5303,7 @@ Gfx *func_8009C204(Gfx *arg0, MkTexture *arg1, s32 arg2, s32 arg3, s32 arg4) { Gfx *phi_s0_4; Gfx *phi_v0; - temp_v0 = segmented_to_virtual(arg1); + temp_v0 = segmented_to_virtual_dupe(arg1); phi_s1 = temp_v0; phi_s0 = arg0; phi_s0_3 = arg0; @@ -5375,7 +5388,7 @@ Gfx *func_8009C434(Gfx *arg0, struct_8018DEE0_entry *arg1, s32 arg2, s32 arg3, s Gfx *phi_s1_4; Gfx *phi_v0; - temp_v0 = segmented_to_virtual(arg1->textureSequence[arg1->sequenceIndex].MkTexture); + temp_v0 = segmented_to_virtual_dupe(arg1->textureSequence[arg1->sequenceIndex].MkTexture); phi_s0 = temp_v0; phi_s1 = arg0; phi_s1_3 = arg0; @@ -5459,7 +5472,7 @@ Gfx *func_8009C708(Gfx *arg0, struct_8018DEE0_entry *arg1, s32 arg2, s32 arg3, s Gfx *phi_s0_3; Gfx *phi_s0_4; - temp_v0 = segmented_to_virtual(arg1->textureSequence[arg1->sequenceIndex].MkTexture); + temp_v0 = segmented_to_virtual_dupe(arg1->textureSequence[arg1->sequenceIndex].MkTexture); phi_s1 = temp_v0; phi_s0 = arg0; phi_s0_3 = arg0; @@ -7148,7 +7161,7 @@ loop_3: var_ra->row = 0x00000069; do { sp24 = var_v1; - func_80099184(segmented_to_virtual(var_v1->unk0)); + func_80099184(segmented_to_virtual_dupe(var_v1->unk0)); var_v1 = (struct _struct_D_800E8234_0x8 *) &var_v1->unk4; } while (var_v1 != D_800E7D0C); return; @@ -7215,13 +7228,13 @@ loop_3: return; case 0xD6: sp7C = var_ra; - var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(*D_800E7D34)); + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe_2(*D_800E7D34)); return; case 0xD7: var_v1_2 = D_800E7D0C; do { sp24 = var_v1_2; - func_80099184(segmented_to_virtual(var_v1_2->unk0)); + func_80099184(segmented_to_virtual_dupe(var_v1_2->unk0)); var_v1_2 = (struct _struct_D_800E8234_0x8 *) &var_v1_2->unk4; } while (var_v1_2 != D_800E7D34); return; @@ -7263,7 +7276,7 @@ loop_3: case 0x17: case 0x18: case 0x19: - func_800996BC(segmented_to_virtual(D_800E822C[type]), 0); + func_800996BC(segmented_to_virtual_dupe(D_800E822C[type]), 0); return; case 0xB: case 0xC: @@ -7271,8 +7284,8 @@ loop_3: case 0xE: temp_v0_3 = &D_800E8234[type]; sp24 = temp_v0_3; - func_800996BC(segmented_to_virtual(temp_v0_3->unk-58), 0); - func_80099184(segmented_to_virtual(sp24->unk-54)); + func_800996BC(segmented_to_virtual_dupe(temp_v0_3->unk-58), 0); + func_80099184(segmented_to_virtual_dupe(sp24->unk-54)); return; case 0x2A: func_800996BC(D_02004B4C, 0, priority); @@ -7286,7 +7299,7 @@ loop_3: case 0x35: case 0x36: case 0x37: - func_80099184(segmented_to_virtual(D_800E81E4[type])); + func_80099184(segmented_to_virtual_dupe(D_800E81E4[type])); return; case 0x2B: case 0x2C: @@ -7298,13 +7311,13 @@ loop_3: case 0x32: sp7C = var_ra; sp24 = type * 4; - var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E8274[type])); - func_800996BC(segmented_to_virtual(*(&D_800E7CA8 + sp24)), 0); + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe_2(D_800E8274[type])); + func_800996BC(segmented_to_virtual_dupe(*(&D_800E7CA8 + sp24)), 0); return; case 0xA0: case 0xA1: sp7C = var_ra; - var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E80A0[type])); + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe_2(D_800E80A0[type])); return; case 0x5D: var_ra->unk1C = 0x00000020; @@ -7319,14 +7332,14 @@ loop_3: case 0x5A: case 0x5B: case 0x5C: - func_800996BC(segmented_to_virtual(D_800E817C[type]), 0); + func_800996BC(segmented_to_virtual_dupe(D_800E817C[type]), 0); return; case 0x5F: case 0x60: case 0x61: case 0x62: sp7C = var_ra; - var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E7E34[*(&gCupCourseOrder - 0xBE + (var_ra->type * 2))])); + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe_2(D_800E7E34[*(&gCupCourseOrder - 0xBE + (var_ra->type * 2))])); return; case 0x5E: sp7C = var_ra; @@ -7343,18 +7356,18 @@ loop_3: sp7C = var_ra; temp_v0_5 = func_800B54C0((s32) gCupSelection, gCCSelection); var_ra->unk20 = temp_v0_5; - var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(*(&D_800E7E20 + ((((s32) gCCSelection / 2) * 0x10) + -(temp_v0_5 * 4))))); + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe_2(*(&D_800E7E20 + ((((s32) gCCSelection / 2) * 0x10) + -(temp_v0_5 * 4))))); var_ra->column = (s32) D_800E7268.unk0; var_ra->row = (s32) D_800E7268.unk2; return; case 0x68: sp7C = var_ra; - func_800996BC(segmented_to_virtual(D_800E8294[gCCSelection]), 0); + func_800996BC(segmented_to_virtual_dupe(D_800E8294[gCCSelection]), 0); var_ra->column = 0x00000037; var_ra->row = 0x000000C3; return; case 0x69: - func_800996BC(segmented_to_virtual(D_02004A0C), 0); + func_800996BC(segmented_to_virtual_dupe(D_02004A0C), 0); if (func_800B5B94() == 0) { func_800B6708(); return; @@ -7366,10 +7379,10 @@ loop_3: case 0x79: case 0x7A: case 0x7B: - func_800996BC(segmented_to_virtual(D_800E8114[type]), 0); + func_800996BC(segmented_to_virtual_dupe(D_800E8114[type]), 0); return; case 0x8C: - func_800996BC(segmented_to_virtual(D_02004A34), 0); + func_800996BC(segmented_to_virtual_dupe(D_02004A34), 0); if (func_800B5B94() == 0) { func_800B6708(); return; @@ -7378,7 +7391,7 @@ loop_3: D_8018EE10->unk84 = 0; return; case 0x8D: - func_80099184(segmented_to_virtual(D_02001FA4)); + func_80099184(segmented_to_virtual_dupe(D_02001FA4)); return; case 0x7C: case 0x7D: @@ -7398,10 +7411,10 @@ loop_3: case 0x8B: sp7C = var_ra; temp_v0_6 = var_ra->type - 0x7C; - func_800996BC(segmented_to_virtual(D_800E7D74[*(&gCupCourseOrder + (((temp_v0_6 / 4) * 8) + ((temp_v0_6 % 4) * 2)))]), -1); + func_800996BC(segmented_to_virtual_dupe(D_800E7D74[*(&gCupCourseOrder + (((temp_v0_6 / 4) * 8) + ((temp_v0_6 % 4) * 2)))]), -1); temp_v0_7 = var_ra->type - 0x7C; - func_800996BC(segmented_to_virtual(D_800E7DC4[*(&gCupCourseOrder + (((temp_v0_7 / 4) * 8) + ((temp_v0_7 % 4) * 2)))]), 0); - func_800996BC(segmented_to_virtual(D_02004A0C), 0); + func_800996BC(segmented_to_virtual_dupe(D_800E7DC4[*(&gCupCourseOrder + (((temp_v0_7 / 4) * 8) + ((temp_v0_7 % 4) * 2)))]), 0); + func_800996BC(segmented_to_virtual_dupe(D_02004A0C), 0); return; case 0xB1: case 0xB2: @@ -7438,9 +7451,9 @@ block_63: sp20 = var_v1_4; sp24 = var_a2; sp3C = type - 0xB1; - var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe(var_a0), sp3C); - func_800996BC(segmented_to_virtual(*(&D_800E7D54 + var_v1_4)), 0); - func_80099184(segmented_to_virtual(*(&D_800E7FF0 + var_a2))); + var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe_2(var_a0), sp3C); + func_800996BC(segmented_to_virtual_dupe(*(&D_800E7D54 + var_v1_4)), 0); + func_80099184(segmented_to_virtual_dupe(*(&D_800E7FF0 + var_a2))); return; case 0xBB: sp7C = var_ra; @@ -7460,9 +7473,9 @@ block_63: case 0xE6: temp_v0_9 = gTimeTrialDataCourseIndex; sp7C = var_ra; - var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe(D_800E7E34[*(&gCupCourseOrder + (((temp_v0_9 / 4) * 8) + ((temp_v0_9 % 4) * 2)))])); + var_ra->D_8018DEE0_index = func_8009A374(segmented_to_virtual_dupe_2(D_800E7E34[*(&gCupCourseOrder + (((temp_v0_9 / 4) * 8) + ((temp_v0_9 % 4) * 2)))])); var_ra->unk1C = (s32) gTimeTrialDataCourseIndex; - func_800996BC(segmented_to_virtual(D_02004A0C), 0); + func_800996BC(segmented_to_virtual_dupe(D_02004A0C), 0); func_8006EF60(); if (func_800B5B94() == 0) { func_800B6708(); @@ -7475,7 +7488,7 @@ block_63: var_ra->unk4 = (s32) gSoundMode; return; case 0xF1: - func_800996BC(segmented_to_virtual(D_02004638), 0); + func_800996BC(segmented_to_virtual_dupe(D_02004638), 0); return; case 0xBE: D_8018ED90 = 0; @@ -7496,8 +7509,8 @@ block_63: } sp7C = var_ra; sp20 = var_v1_5; - var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe(var_a0_2), 0); - func_800996BC(segmented_to_virtual(*(&D_800E7D54 + var_v1_5)), 0); + var_ra->D_8018DEE0_index = func_8009A478(segmented_to_virtual_dupe_2(var_a0_2), 0); + func_800996BC(segmented_to_virtual_dupe(*(&D_800E7D54 + var_v1_5)), 0); break; } } @@ -7931,7 +7944,7 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { } spA8 = 0x00000012; spAC = (s32) var_a2; - sp9C = segmented_to_virtual(D_800E824C[var_t0]); + sp9C = segmented_to_virtual_dupe(D_800E824C[var_t0]); block_58: var_a1 = spA8; break; @@ -7942,7 +7955,7 @@ block_58: } else { spA8 = 0x00000016; spAC = (s32) var_a2; - sp9C = segmented_to_virtual(D_800E824C[var_t0]); + sp9C = segmented_to_virtual_dupe(D_800E824C[var_t0]); goto block_58; } break; @@ -7953,7 +7966,7 @@ block_58: } else { spA8 = 0x00000018; spAC = (s32) var_a2; - sp9C = segmented_to_virtual(D_800E824C[var_t0]); + sp9C = segmented_to_virtual_dupe(D_800E824C[var_t0]); goto block_58; } break; @@ -8019,7 +8032,7 @@ block_58: case 0x30: /* switch 6 */ case 0x31: /* switch 6 */ case 0x32: /* switch 6 */ - func_800A12BC(arg0, segmented_to_virtual(D_800E7CA8[var_t0])); + func_800A12BC(arg0, segmented_to_virtual_dupe(D_800E7CA8[var_t0])); /* fallthrough */ case 0xA0: /* switch 6 */ case 0xA1: /* switch 6 */ @@ -8031,11 +8044,11 @@ block_58: case 0x5B: /* switch 6 */ case 0x5C: /* switch 6 */ func_800A8A98(arg0); - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E817C[arg0->type]), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E817C[arg0->type]), arg0->column, arg0->row); func_800A8CA4(arg0); return; case 0x52: /* switch 6 */ - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E817C[var_t0]), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E817C[var_t0]), arg0->column, arg0->row); return; case 0x5F: /* switch 6 */ case 0x60: /* switch 6 */ @@ -8079,7 +8092,7 @@ block_58: temp_a1_4 = arg0->column; temp_a2_4 = arg0->row; gDisplayListHead = func_80098C18(gDisplayListHead, temp_a1_4, temp_a2_4, temp_a1_4 + 0x3F, temp_a2_4 + 0x11, 1, 1, 1, 0x000000FF); - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E8294[gCCSelection]), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E8294[gCCSelection]), arg0->column, arg0->row); return; case 0x69: /* switch 6 */ func_800A8F48(arg0); @@ -8172,7 +8185,7 @@ block_58: temp_v0_12 = var_t0 - 0xB1; if (arg0->unk4 != 0) { spA8 = temp_v0_12; - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E7D54[*(&D_800EFD64 + gCharacterSelections[temp_v0_12])]), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E7D54[*(&D_800EFD64 + gCharacterSelections[temp_v0_12])]), arg0->column, arg0->row); func_8009A7EC(arg0->D_8018DEE0_index, arg0->column, arg0->row, spA8, arg0->unk1C); func_800A11D0(arg0, spA8, 0x000000FF); return; @@ -8234,7 +8247,7 @@ block_58: return; case 0x130: /* switch 6 */ if (arg0->unk4 != 0) { - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E7D54[*(&D_800EFD64 + D_802874F6)]), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E7D54[*(&D_800EFD64 + D_802874F6)]), arg0->column, arg0->row); func_8009A7EC(arg0->D_8018DEE0_index, arg0->column, arg0->row, 0, arg0->unk1C); return; } @@ -8314,7 +8327,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009F5E0.s") #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 s32 func_8009BA74(s32, s32, s32, s32); // extern -void *segmented_to_virtual(void*); // extern +void *segmented_to_virtual_dupe(void*); // extern extern ? D_800E7AF8; extern s32 gDisplayListHead; @@ -8331,7 +8344,7 @@ void func_800A08D8(s32 arg0, s32 arg1, s32 arg2) { if (temp_t6 >= 0x32) { phi_a3 = 0x2B; } - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(*(&D_800E7AF8 + (phi_a3 * 4))), arg1, arg2); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(*(&D_800E7AF8 + (phi_a3 * 4))), arg1, arg2); } } } @@ -8509,7 +8522,7 @@ void func_800A0DFC(void) { do { temp_t6 = (var_s0 % 10) * 4; var_s0 = var_s0 / 10; - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(*(D_800E7D0C + temp_t6)), var_s1, 0x000000B8); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(*(D_800E7D0C + temp_t6)), var_s1, 0x000000B8); var_s1 -= 9; } while (var_s0 != 0); } @@ -8585,16 +8598,16 @@ void func_800A0FA4(struct_8018D9E0_entry *arg0, s32 arg1) { case 2: case 3: temp_s1 = &D_800E8234[arg1]; - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(temp_s1->unk0), arg0->column, arg0->row); - phi_v0 = func_8009BA74(gDisplayListHead, segmented_to_virtual(temp_s1->unk4), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(temp_s1->unk0), arg0->column, arg0->row); + phi_v0 = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(temp_s1->unk4), arg0->column, arg0->row); block_4: gDisplayListHead = phi_v0; break; case 1: case 4: temp_s1_2 = &D_800E8234[arg1]; - gDisplayListHead = func_8009BC9C(gDisplayListHead, segmented_to_virtual(temp_s1_2->unk0), arg0->column, arg0->row, 2, arg0->unk1C); - phi_v0 = func_8009BC9C(gDisplayListHead, segmented_to_virtual(temp_s1_2->unk4), arg0->column, arg0->row, 2, arg0->unk1C); + gDisplayListHead = func_8009BC9C(gDisplayListHead, segmented_to_virtual_dupe(temp_s1_2->unk0), arg0->column, arg0->row, 2, arg0->unk1C); + phi_v0 = func_8009BC9C(gDisplayListHead, segmented_to_virtual_dupe(temp_s1_2->unk4), arg0->column, arg0->row, 2, arg0->unk1C); goto block_4; } } @@ -8641,7 +8654,7 @@ void func_800A11D0(struct_8018D9E0_entry *arg0, s32 arg1, s32 arg2) { temp_v1 = &D_800E74A8[arg1]; gDPSetPrimColor(gDisplayListHead++, 0, 0, temp_v1->red, temp_v1->green, temp_v1->blue, temp_v1->alpha); gDPSetEnvColor(gDisplayListHead++, arg2, arg2, arg2, 0x00); - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E82B4[arg1]), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E82B4[arg1]), arg0->column, arg0->row); } #ifdef MIPS_TO_C @@ -8708,13 +8721,13 @@ void func_800A143C(struct_8018D9E0_entry *arg0, s32 arg1) { case 0: case 2: case 3: - phi_v0 = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_800E82C8[arg1]), arg0->column, arg0->row); + phi_v0 = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E82C8[arg1]), arg0->column, arg0->row); block_4: gDisplayListHead = phi_v0; break; case 1: case 4: - phi_v0 = func_8009BC9C(gDisplayListHead, segmented_to_virtual(D_800E82C8[arg1]), arg0->column, arg0->row, 2, arg0->unk1C); + phi_v0 = func_8009BC9C(gDisplayListHead, segmented_to_virtual_dupe(D_800E82C8[arg1]), arg0->column, arg0->row, 2, arg0->unk1C); goto block_4; } } @@ -8763,13 +8776,13 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1500.s") void func_800A15EC(struct_8018D9E0_entry *arg0) { s16 courseId = gCupCourseOrder[(arg0->type - 0x7C) / 4][(arg0->type - 0x7C) % 4]; - gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(D_800E7D74[courseId]), arg0->column, arg0->row, 2); + gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual_dupe(D_800E7D74[courseId]), arg0->column, arg0->row, 2); gDisplayListHead = draw_box(gDisplayListHead, arg0->column, arg0->row + 0x27, arg0->column + 0x40, arg0->row + 0x30, 0, 0, 0, 0xFF); - gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(D_800E7DC4[courseId]), arg0->column, arg0->row + 0x27, 3); + gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual_dupe(D_800E7DC4[courseId]), arg0->column, arg0->row + 0x27, 3); if (func_800B639C(arg0->type - 0x7C) >= 0) { // The "^ 0" is required to force the use of v1 instead of a 4th s* register gDisplayListHead = func_800959A0(gDisplayListHead, arg0->column + 0x20, arg0->row ^ 0, arg0->column + 0x3F, arg0->row + 9); - gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(&D_02004A0C), arg0->column + 0x20, arg0->row, 2); + gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual_dupe(&D_02004A0C), arg0->column + 0x20, arg0->row, 2); } } @@ -8794,7 +8807,7 @@ void func_800A1780(struct_8018D9E0_entry *arg0) { gDisplayListHead = temp_t0 + 8; temp_t0->words.w0 = 0xFA000000; temp_t0->words.w1 = (((s32) ((temp_v1->red * temp_a2) + (temp_a1->red * temp_v0)) / 256) << 0x18) | ((((s32) ((temp_v1->green * temp_a2) + (temp_a1->green * temp_v0)) / 256) & 0xFF) << 0x10) | ((((s32) ((temp_v1->blue * temp_a2) + (temp_a1->blue * temp_v0)) / 256) & 0xFF) << 8) | (((s32) ((temp_v1->alpha * temp_a2) + (temp_a1->alpha * temp_v0)) / 256) & 0xFF); - gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(D_02001FA4), arg0->column, arg0->row); + gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_02001FA4), arg0->column, arg0->row); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1780.s") @@ -12460,7 +12473,7 @@ block_12: sp34 = (s32) (temp_v0_3 << 5) / 64; sp30 = phi_a1; arg0 = arg0; - temp_v0_4 = segmented_to_virtual(phi_a0); + temp_v0_4 = segmented_to_virtual_dupe(phi_a0); temp_t0 = arg0->column + temp_v0_4->dX; temp_a2 = arg0->row + temp_v0_4->dY; if (phi_a1 != 0) { @@ -12743,7 +12756,7 @@ void func_800A8F48(struct_8018D9E0_entry *arg0) { temp_s0 = temp_v0_2->unk2; temp_s2 = temp_v1 + 0x20; gDisplayListHead = func_80098FC8(gDisplayListHead, temp_s2, (s32) temp_s0, temp_v1 + 0x3F, temp_s0 + 9); - gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(D_02004A0C), temp_s2, (s32) temp_s0, 2); + gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual_dupe(D_02004A0C), temp_s2, (s32) temp_s0, 2); } temp_s1 = phi_s1 + 1; phi_s1 = temp_s1; @@ -12985,7 +12998,7 @@ void func_800A9710(struct_8018D9E0_entry *arg0) { if (phi_v0 != arg0->unk4) { arg0->unk4 = phi_v0; arg0 = arg0; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(D_800E7D34[phi_v0])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7D34[phi_v0])); } } #else @@ -13761,19 +13774,19 @@ void func_800AA69C(struct_8018D9E0_entry *arg0) { case 0: if ((*(&D_8018EDE8 + temp_v0) != 0) && (phi_a0 != 0)) { arg0->unk8 = 1; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(gCharacterCelebrateAnimation[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a1])); return; } sp30 = temp_a1; temp_v0_2 = random_int(0xC8, temp_a1); if (temp_v0_2 >= 0xC6) { arg0->unk8 = 4; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(gCharacterSingleBlinkAnimation[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterSingleBlinkAnimation[temp_a1])); return; } if (temp_v0_2 >= 0xC5) { arg0->unk8 = 5; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(gCharacterDoubleBlinkAnimation[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterDoubleBlinkAnimation[temp_a1])); return; } default: @@ -13781,21 +13794,21 @@ void func_800AA69C(struct_8018D9E0_entry *arg0) { case 1: if (*(&D_8018DEE4 + (arg0->D_8018DEE0_index * 0x18)) >= D_800E8440[temp_a1]) { arg0->unk8 = 2; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(D_800E83A0[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E83A0[temp_a1])); return; } if ((*(&D_8018EDE8 + temp_v0) == 0) && (phi_a0 != 0)) { arg0->unk8 = 3; sp24 = temp_a1 * 4; temp_a0_2 = arg0->D_8018DEE0_index; - func_8009A594(temp_a0_2, D_800E8460[temp_a1] - *(&D_8018DEE4 + (temp_a0_2 * 0x18)), segmented_to_virtual_dupe(gCharacterDeselectAnimation[temp_a1])); + func_8009A594(temp_a0_2, D_800E8460[temp_a1] - *(&D_8018DEE4 + (temp_a0_2 * 0x18)), segmented_to_virtual_dupe_2(gCharacterDeselectAnimation[temp_a1])); return; } break; case 2: if ((*(&D_8018EDE8 + temp_v0) == 0) && (phi_a0 != 0)) { arg0->unk8 = 3; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(gCharacterDeselectAnimation[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterDeselectAnimation[temp_a1])); return; } break; @@ -13803,14 +13816,14 @@ void func_800AA69C(struct_8018D9E0_entry *arg0) { temp_a3 = &D_800E8460[temp_a1]; if (*(&D_8018DEE4 + (arg0->D_8018DEE0_index * 0x18)) >= *temp_a3) { arg0->unk8 = 0; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(D_800E8360[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E8360[temp_a1])); return; } if ((*(&D_8018EDE8 + temp_v0) != 0) && (phi_a0 != 0)) { arg0->unk8 = 1; sp20 = temp_a3; temp_a0_3 = arg0->D_8018DEE0_index; - func_8009A594(temp_a0_3, *temp_a3 - *(&D_8018DEE4 + (temp_a0_3 * 0x18)), segmented_to_virtual_dupe(gCharacterCelebrateAnimation[temp_a1])); + func_8009A594(temp_a0_3, *temp_a3 - *(&D_8018DEE4 + (temp_a0_3 * 0x18)), segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a1])); return; } break; @@ -13818,7 +13831,7 @@ void func_800AA69C(struct_8018D9E0_entry *arg0) { case 5: if ((*(&D_8018EDE8 + temp_v0) != 0) && (phi_a0 != 0)) { arg0->unk8 = 1; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(gCharacterCelebrateAnimation[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a1])); return; } if (temp_v1 == 4) { @@ -13830,7 +13843,7 @@ void func_800AA69C(struct_8018D9E0_entry *arg0) { } if (*(&D_8018DEE4 + (arg0->D_8018DEE0_index * 0x18)) >= phi_v0) { arg0->unk8 = 0; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(*(D_800E8360 + phi_v1))); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(*(D_800E8360 + phi_v1))); } break; } @@ -13996,7 +14009,7 @@ void func_800AAC18(struct_8018D9E0_entry *arg0) { arg0->unk8 = 2; arg0->row = (s32) temp_t0->unk2; arg0 = arg0; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(D_800E8340[temp_a1])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E8340[temp_a1])); return; } default: @@ -14324,7 +14337,7 @@ void func_800AB260(struct_8018D9E0_entry *arg0) { void func_800AB290(struct_8018D9E0_entry *arg0) { if (arg0->unk1C != gCupSelection) { arg0->unk1C = gCupSelection; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(D_800E7E34[gCupCourseOrder[gCupSelection][arg0->type - 0x5F]])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7E34[gCupCourseOrder[gCupSelection][arg0->type - 0x5F]])); } } @@ -14594,7 +14607,7 @@ void func_800AB9B0(struct_8018D9E0_entry *arg0) { arg0->unk1C = (s32) temp_v0; temp_v0_2 = func_800B54C0((s32) gCupSelection, gCCSelection); arg0->unk20 = temp_v0_2; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(*(&D_800E7E20 + ((((s32) gCCSelection / 2) * 0x10) + -(s32) (temp_v0_2 * 4))))); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(*(&D_800E7E20 + ((((s32) gCCSelection / 2) * 0x10) + -(s32) (temp_v0_2 * 4))))); arg0->column = (s32) D_800E7268->unk0; arg0->row = (s32) D_800E7268->unk2; } @@ -15589,7 +15602,7 @@ block_11: sp38 = temp_a2; if (find_8018D9E0_entry_dupe(0x000000B0)->unk4 >= 2) { sp38 = temp_a2; - func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2, segmented_to_virtual_dupe(gCharacterCelebrateAnimation[temp_a1])); + func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a1])); arg0->unk4 = 3; temp_a0 = temp_a2 & 0xFF; sp24 = temp_a0; @@ -15603,7 +15616,7 @@ block_11: case 3: if (*(&D_8018DEE4 + (arg0->D_8018DEE0_index * 0x18)) >= D_800E8440[temp_a1]) { sp38 = temp_a2; - func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2, segmented_to_virtual_dupe(D_800E83A0[temp_a1])); + func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2, segmented_to_virtual_dupe_2(D_800E83A0[temp_a1])); arg0->unk4 = 4; } break; @@ -16594,7 +16607,7 @@ void func_800AEDBC(struct_8018D9E0_entry *arg0) { arg0->unk1C = (s32) temp_v0; temp_v0_2 = gTimeTrialDataCourseIndex; arg0 = arg0; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(D_800E7E34[*(gCupCourseOrder + ((((s32) temp_v0_2 / 4) * 8) + (((s32) temp_v0_2 % 4) * 2)))])); + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7E34[*(gCupCourseOrder + ((((s32) temp_v0_2 / 4) * 8) + (((s32) temp_v0_2 % 4) * 2)))])); if (func_800B5B94() == 0) { func_800B6708(); return; @@ -16897,7 +16910,7 @@ void func_800AF270(struct_8018D9E0_entry *arg0) { return; } arg0->unk4 = 3; - func_8009A640(arg0->D_8018DEE0_index, 0, sp30, segmented_to_virtual_dupe(gCharacterCelebrateAnimation[temp_v0])); + func_8009A640(arg0->D_8018DEE0_index, 0, sp30, segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_v0])); func_800CA0B8(); func_800C90F4(0, (sp30 * 0x10) + 0x29008007); func_800CA0A0(); @@ -16906,7 +16919,7 @@ void func_800AF270(struct_8018D9E0_entry *arg0) { break; case 3: if (*(&D_8018DEE4 + (arg0->D_8018DEE0_index * 0x18)) >= D_800E8440[temp_v0]) { - func_8009A640(arg0->D_8018DEE0_index, 0, sp30, segmented_to_virtual_dupe(D_800E83A0[temp_v0])); + func_8009A640(arg0->D_8018DEE0_index, 0, sp30, segmented_to_virtual_dupe_2(D_800E83A0[temp_v0])); arg0->unk4 = 4; } break; diff --git a/src/code_80091750.h b/src/code_80091750.h index 4b3e5f3ed..a3a14e18f 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -109,8 +109,8 @@ void dma_copy_base_729a30(u64*, size_t, void*); void dma_copy_base_7fa3c0(u64*, size_t, void*); void func_80099110(); void func_80099184(s32); -void *segmented_to_virtual(void*); -void *segmented_to_virtual_dupe(void*); +void *segmented_to_virtual_dupe(const void*); +void *segmented_to_virtual_dupe_2(const void*); Gfx *func_8009C204(Gfx*, MkTexture*, s32, s32, s32); void func_8009CA2C(); void func_8009CA6C(s32); diff --git a/src/memory.c b/src/memory.c index d95b558e0..da2d3eda0 100644 --- a/src/memory.c +++ b/src/memory.c @@ -46,8 +46,14 @@ void *get_segment_base_addr(s32 segment) { return (void *) (gSegmentTable[segment] | 0x80000000); } -s32 lookup_item(u32 segment) { - return (gSegmentTable[segment >> 0x18] + (segment & 0xFFFFFF)) | 0x80000000; +/** + * @brief converts an RSP segment + offset address to a normal memory address + */ +void *segmented_to_virtual(const void *addr) { + size_t segment = (uintptr_t) addr >> 24; + size_t offset = (uintptr_t) addr & 0x00FFFFFF; + + return (void *) ((gSegmentTable[segment] + offset) | 0x80000000); } void move_segment_table_to_dmem(void) { diff --git a/src/memory.h b/src/memory.h index abda6844a..219c62d88 100644 --- a/src/memory.h +++ b/src/memory.h @@ -43,7 +43,7 @@ struct AllocOnlyPool { s32 func_802A7B70(s32); uintptr_t set_segment_base_addr(s32, void*); void *get_segment_base_addr(s32); -s32 lookup_item(u32); +void *segmented_to_virtual(const void *); void move_segment_table_to_dmem(); void func_802A7CF0(s32, s32); s32 func_802A7D1C(s32);