8000FD0 decomp and various (#247)

* 80005FD0 decomp and various changes
This commit is contained in:
MegaMech 2022-07-27 01:25:50 -06:00 committed by GitHub
parent fb010e4186
commit db95b4b9e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 149 additions and 618 deletions

View File

@ -446,7 +446,7 @@ glabel ipl3_entry # 0xA4000040
bal func_A4000690
nop
halt:
halt: # checksum fail
bal halt
nop

View File

@ -1,80 +0,0 @@
glabel func_800097E0
/* 00A3E0 800097E0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 00A3E4 800097E4 AFBF001C */ sw $ra, 0x1c($sp)
/* 00A3E8 800097E8 AFB10018 */ sw $s1, 0x18($sp)
/* 00A3EC 800097EC 0C003BC8 */ jal func_8000EF20
/* 00A3F0 800097F0 AFB00014 */ sw $s0, 0x14($sp)
/* 00A3F4 800097F4 3C038016 */ lui $v1, %hi(D_8016337C) # $v1, 0x8016
/* 00A3F8 800097F8 2463337C */ addiu $v1, %lo(D_8016337C) # addiu $v1, $v1, 0x337c
/* 00A3FC 800097FC 8C6E0000 */ lw $t6, ($v1)
/* 00A400 80009800 3C02800E */ lui $v0, %hi(gCurrentCourseId)
/* 00A404 80009804 24010014 */ li $at, 20
/* 00A408 80009808 25CF0001 */ addiu $t7, $t6, 1
/* 00A40C 8000980C AC6F0000 */ sw $t7, ($v1)
/* 00A410 80009810 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 00A414 80009814 00008025 */ move $s0, $zero
/* 00A418 80009818 24110007 */ li $s1, 7
/* 00A41C 8000981C 54410009 */ bnel $v0, $at, .L80009844
/* 00A420 80009820 8C780000 */ lw $t8, ($v1)
.L80009824:
/* 00A424 80009824 0C0037E3 */ jal func_8000DF8C
/* 00A428 80009828 02002025 */ move $a0, $s0
/* 00A42C 8000982C 26100001 */ addiu $s0, $s0, 1
/* 00A430 80009830 1611FFFC */ bne $s0, $s1, .L80009824
/* 00A434 80009834 00000000 */ nop
/* 00A438 80009838 1000002C */ b .L800098EC
/* 00A43C 8000983C 8FBF001C */ lw $ra, 0x1c($sp)
/* 00A440 80009840 8C780000 */ lw $t8, ($v1)
.L80009844:
/* 00A444 80009844 3C08800E */ lui $t0, %hi(gModeSelection)
/* 00A448 80009848 33190001 */ andi $t9, $t8, 1
/* 00A44C 8000984C 53200027 */ beql $t9, $zero, .L800098EC
/* 00A450 80009850 8FBF001C */ lw $ra, 0x1c($sp)
/* 00A454 80009854 8D08C53C */ lw $t0, %lo(gModeSelection)($t0)
/* 00A458 80009858 24010002 */ li $at, 2
/* 00A45C 8000985C 00008025 */ move $s0, $zero
/* 00A460 80009860 15010008 */ bne $t0, $at, .L80009884
/* 00A464 80009864 24110007 */ li $s1, 7
.L80009868:
/* 00A468 80009868 0C0037E3 */ jal func_8000DF8C
/* 00A46C 8000986C 02002025 */ move $a0, $s0
/* 00A470 80009870 26100001 */ addiu $s0, $s0, 1
/* 00A474 80009874 1611FFFC */ bne $s0, $s1, .L80009868
/* 00A478 80009878 00000000 */ nop
/* 00A47C 8000987C 3C02800E */ lui $v0, %hi(gCurrentCourseId)
/* 00A480 80009880 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
.L80009884:
/* 00A484 80009884 2401000A */ li $at, 10
/* 00A488 80009888 1041000F */ beq $v0, $at, .L800098C8
/* 00A48C 8000988C 2401000B */ li $at, 11
/* 00A490 80009890 10410005 */ beq $v0, $at, .L800098A8
/* 00A494 80009894 24010012 */ li $at, 18
/* 00A498 80009898 10410007 */ beq $v0, $at, .L800098B8
/* 00A49C 8000989C 00000000 */ nop
/* 00A4A0 800098A0 10000012 */ b .L800098EC
/* 00A4A4 800098A4 8FBF001C */ lw $ra, 0x1c($sp)
.L800098A8:
/* 00A4A8 800098A8 0C004AB0 */ jal func_80012AC0
/* 00A4AC 800098AC 00000000 */ nop
/* 00A4B0 800098B0 1000000E */ b .L800098EC
/* 00A4B4 800098B4 8FBF001C */ lw $ra, 0x1c($sp)
.L800098B8:
/* 00A4B8 800098B8 0C004CF1 */ jal func_800133C4
/* 00A4BC 800098BC 00000000 */ nop
/* 00A4C0 800098C0 1000000A */ b .L800098EC
/* 00A4C4 800098C4 8FBF001C */ lw $ra, 0x1c($sp)
.L800098C8:
/* 00A4C8 800098C8 0C00521F */ jal func_8001487C
/* 00A4CC 800098CC 00000000 */ nop
/* 00A4D0 800098D0 0C005274 */ jal func_800149D0
/* 00A4D4 800098D4 00000000 */ nop
/* 00A4D8 800098D8 0C0052C9 */ jal func_80014B24
/* 00A4DC 800098DC 00000000 */ nop
/* 00A4E0 800098E0 0C00531E */ jal func_80014C78
/* 00A4E4 800098E4 00000000 */ nop
/* 00A4E8 800098E8 8FBF001C */ lw $ra, 0x1c($sp)
.L800098EC:
/* 00A4EC 800098EC 8FB00014 */ lw $s0, 0x14($sp)
/* 00A4F0 800098F0 8FB10018 */ lw $s1, 0x18($sp)
/* 00A4F4 800098F4 03E00008 */ jr $ra
/* 00A4F8 800098F8 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,33 +0,0 @@
glabel func_8000ED14
/* 00F914 8000ED14 AFA50004 */ sw $a1, 4($sp)
/* 00F918 8000ED18 00057400 */ sll $t6, $a1, 0x10
/* 00F91C 8000ED1C 3C068016 */ lui $a2, %hi(D_801641F8) # $a2, 0x8016
/* 00F920 8000ED20 3C038016 */ lui $v1, %hi(D_801642D8) # $v1, 0x8016
/* 00F924 8000ED24 000E2C03 */ sra $a1, $t6, 0x10
/* 00F928 8000ED28 00001025 */ move $v0, $zero
/* 00F92C 8000ED2C 246342D8 */ addiu $v1, %lo(D_801642D8) # addiu $v1, $v1, 0x42d8
/* 00F930 8000ED30 24C641F8 */ addiu $a2, %lo(D_801641F8) # addiu $a2, $a2, 0x41f8
/* 00F934 8000ED34 94D8000C */ lhu $t8, 0xc($a2)
.L8000ED38:
/* 00F938 8000ED38 17000007 */ bnez $t8, .L8000ED58
/* 00F93C 8000ED3C 24190001 */ li $t9, 1
/* 00F940 8000ED40 A4D9000C */ sh $t9, 0xc($a2)
/* 00F944 8000ED44 A4C4000E */ sh $a0, 0xe($a2)
/* 00F948 8000ED48 A4C50010 */ sh $a1, 0x10($a2)
/* 00F94C 8000ED4C ACC00014 */ sw $zero, 0x14($a2)
/* 00F950 8000ED50 10000004 */ b .L8000ED64
/* 00F954 8000ED54 24020001 */ li $v0, 1
.L8000ED58:
/* 00F958 8000ED58 24C6001C */ addiu $a2, $a2, 0x1c
/* 00F95C 8000ED5C 54C3FFF6 */ bnel $a2, $v1, .L8000ED38
/* 00F960 8000ED60 94D8000C */ lhu $t8, 0xc($a2)
.L8000ED64:
/* 00F964 8000ED64 54400004 */ bnel $v0, $zero, .L8000ED78
/* 00F968 8000ED68 00001025 */ move $v0, $zero
/* 00F96C 8000ED6C 03E00008 */ jr $ra
/* 00F970 8000ED70 2402FFFE */ li $v0, -2
/* 00F974 8000ED74 00001025 */ move $v0, $zero
.L8000ED78:
/* 00F978 8000ED78 03E00008 */ jr $ra
/* 00F97C 8000ED7C 00000000 */ nop

View File

@ -1,21 +0,0 @@
glabel func_8000ED80
/* 00F980 8000ED80 000470C0 */ sll $t6, $a0, 3
/* 00F984 8000ED84 01C47023 */ subu $t6, $t6, $a0
/* 00F988 8000ED88 000E7100 */ sll $t6, $t6, 4
/* 00F98C 8000ED8C 3C0F8016 */ lui $t7, %hi(gActorList) # 0x8016
/* 00F990 8000ED90 01EE7821 */ addu $t7, $t7, $t6
/* 00F994 8000ED94 85EFF9B8 */ lh $t7, %lo(gActorList)($t7) # -0x648($t7)
/* 00F998 8000ED98 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 00F99C 8000ED9C 24010008 */ li $at, 8
/* 00F9A0 8000EDA0 11E10003 */ beq $t7, $at, .L8000EDB0
/* 00F9A4 8000EDA4 AFBF0014 */ sw $ra, 0x14($sp)
/* 00F9A8 8000EDA8 10000003 */ b .L8000EDB8
/* 00F9AC 8000EDAC 2402FFFF */ li $v0, -1
.L8000EDB0:
/* 00F9B0 8000EDB0 0C003B45 */ jal func_8000ED14
/* 00F9B4 8000EDB4 00002825 */ move $a1, $zero
.L8000EDB8:
/* 00F9B8 8000EDB8 8FBF0014 */ lw $ra, 0x14($sp)
/* 00F9BC 8000EDBC 27BD0018 */ addiu $sp, $sp, 0x18
/* 00F9C0 8000EDC0 03E00008 */ jr $ra
/* 00F9C4 8000EDC4 00000000 */ nop

View File

@ -1,21 +0,0 @@
glabel func_8000EDC8
/* 00F9C8 8000EDC8 000470C0 */ sll $t6, $a0, 3
/* 00F9CC 8000EDCC 01C47023 */ subu $t6, $t6, $a0
/* 00F9D0 8000EDD0 000E7100 */ sll $t6, $t6, 4
/* 00F9D4 8000EDD4 3C0F8016 */ lui $t7, %hi(gActorList) # 0x8016
/* 00F9D8 8000EDD8 01EE7821 */ addu $t7, $t7, $t6
/* 00F9DC 8000EDDC 85EFF9B8 */ lh $t7, %lo(gActorList)($t7) # -0x648($t7)
/* 00F9E0 8000EDE0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 00F9E4 8000EDE4 24010007 */ li $at, 7
/* 00F9E8 8000EDE8 11E10003 */ beq $t7, $at, .L8000EDF8
/* 00F9EC 8000EDEC AFBF0014 */ sw $ra, 0x14($sp)
/* 00F9F0 8000EDF0 10000003 */ b .L8000EE00
/* 00F9F4 8000EDF4 2402FFFF */ li $v0, -1
.L8000EDF8:
/* 00F9F8 8000EDF8 0C003B45 */ jal func_8000ED14
/* 00F9FC 8000EDFC 24050001 */ li $a1, 1
.L8000EE00:
/* 00FA00 8000EE00 8FBF0014 */ lw $ra, 0x14($sp)
/* 00FA04 8000EE04 27BD0018 */ addiu $sp, $sp, 0x18
/* 00FA08 8000EE08 03E00008 */ jr $ra
/* 00FA0C 8000EE0C 00000000 */ nop

View File

@ -1,21 +0,0 @@
glabel func_8000EE10
/* 00FA10 8000EE10 000470C0 */ sll $t6, $a0, 3
/* 00FA14 8000EE14 01C47023 */ subu $t6, $t6, $a0
/* 00FA18 8000EE18 000E7100 */ sll $t6, $t6, 4
/* 00FA1C 8000EE1C 3C0F8016 */ lui $t7, %hi(gActorList) # 0x8016
/* 00FA20 8000EE20 01EE7821 */ addu $t7, $t7, $t6
/* 00FA24 8000EE24 85EFF9B8 */ lh $t7, %lo(gActorList)($t7) # -0x648($t7)
/* 00FA28 8000EE28 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 00FA2C 8000EE2C 2401002A */ li $at, 42
/* 00FA30 8000EE30 11E10003 */ beq $t7, $at, .L8000EE40
/* 00FA34 8000EE34 AFBF0014 */ sw $ra, 0x14($sp)
/* 00FA38 8000EE38 10000003 */ b .L8000EE48
/* 00FA3C 8000EE3C 2402FFFF */ li $v0, -1
.L8000EE40:
/* 00FA40 8000EE40 0C003B45 */ jal func_8000ED14
/* 00FA44 8000EE44 24050002 */ li $a1, 2
.L8000EE48:
/* 00FA48 8000EE48 8FBF0014 */ lw $ra, 0x14($sp)
/* 00FA4C 8000EE4C 27BD0018 */ addiu $sp, $sp, 0x18
/* 00FA50 8000EE50 03E00008 */ jr $ra
/* 00FA54 8000EE54 00000000 */ nop

View File

@ -1,39 +0,0 @@
glabel func_8000EE58
/* 00FA58 8000EE58 3C038016 */ lui $v1, %hi(D_801641F8) # $v1, 0x8016
/* 00FA5C 8000EE5C 3C068016 */ lui $a2, %hi(D_801642D8) # $a2, 0x8016
/* 00FA60 8000EE60 24C642D8 */ addiu $a2, %lo(D_801642D8) # addiu $a2, $a2, 0x42d8
/* 00FA64 8000EE64 246341F8 */ addiu $v1, %lo(D_801641F8) # addiu $v1, $v1, 0x41f8
/* 00FA68 8000EE68 240503E8 */ li $a1, 1000
/* 00FA6C 8000EE6C 946E000E */ lhu $t6, 0xe($v1)
.L8000EE70:
/* 00FA70 8000EE70 2462001C */ addiu $v0, $v1, 0x1c
/* 00FA74 8000EE74 548E0004 */ bnel $a0, $t6, .L8000EE88
/* 00FA78 8000EE78 946F002A */ lhu $t7, 0x2a($v1)
/* 00FA7C 8000EE7C A460000C */ sh $zero, 0xc($v1)
/* 00FA80 8000EE80 A465000E */ sh $a1, 0xe($v1)
/* 00FA84 8000EE84 946F002A */ lhu $t7, 0x2a($v1)
.L8000EE88:
/* 00FA88 8000EE88 548F0004 */ bnel $a0, $t7, .L8000EE9C
/* 00FA8C 8000EE8C 94780046 */ lhu $t8, 0x46($v1)
/* 00FA90 8000EE90 A440000C */ sh $zero, 0xc($v0)
/* 00FA94 8000EE94 A445000E */ sh $a1, 0xe($v0)
/* 00FA98 8000EE98 94780046 */ lhu $t8, 0x46($v1)
.L8000EE9C:
/* 00FA9C 8000EE9C 24620038 */ addiu $v0, $v1, 0x38
/* 00FAA0 8000EEA0 54980004 */ bnel $a0, $t8, .L8000EEB4
/* 00FAA4 8000EEA4 94790062 */ lhu $t9, 0x62($v1)
/* 00FAA8 8000EEA8 A440000C */ sh $zero, 0xc($v0)
/* 00FAAC 8000EEAC A445000E */ sh $a1, 0xe($v0)
/* 00FAB0 8000EEB0 94790062 */ lhu $t9, 0x62($v1)
.L8000EEB4:
/* 00FAB4 8000EEB4 24620054 */ addiu $v0, $v1, 0x54
/* 00FAB8 8000EEB8 54990004 */ bnel $a0, $t9, .L8000EECC
/* 00FABC 8000EEBC 24630070 */ addiu $v1, $v1, 0x70
/* 00FAC0 8000EEC0 A440000C */ sh $zero, 0xc($v0)
/* 00FAC4 8000EEC4 A445000E */ sh $a1, 0xe($v0)
/* 00FAC8 8000EEC8 24630070 */ addiu $v1, $v1, 0x70
.L8000EECC:
/* 00FACC 8000EECC 5466FFE8 */ bnel $v1, $a2, .L8000EE70
/* 00FAD0 8000EED0 946E000E */ lhu $t6, 0xe($v1)
/* 00FAD4 8000EED4 03E00008 */ jr $ra
/* 00FAD8 8000EED8 00000000 */ nop

View File

@ -1,19 +0,0 @@
glabel func_8000EEDC
/* 00FADC 8000EEDC 3C038016 */ lui $v1, %hi(D_801641F8) # $v1, 0x8016
/* 00FAE0 8000EEE0 3C048016 */ lui $a0, %hi(D_801642D8) # $a0, 0x8016
/* 00FAE4 8000EEE4 248442D8 */ addiu $a0, %lo(D_801642D8) # addiu $a0, $a0, 0x42d8
/* 00FAE8 8000EEE8 246341F8 */ addiu $v1, %lo(D_801641F8) # addiu $v1, $v1, 0x41f8
/* 00FAEC 8000EEEC 240203E8 */ li $v0, 1000
.L8000EEF0:
/* 00FAF0 8000EEF0 24630070 */ addiu $v1, $v1, 0x70
/* 00FAF4 8000EEF4 A460FFB8 */ sh $zero, -0x48($v1)
/* 00FAF8 8000EEF8 A462FFBA */ sh $v0, -0x46($v1)
/* 00FAFC 8000EEFC A460FFD4 */ sh $zero, -0x2c($v1)
/* 00FB00 8000EF00 A462FFD6 */ sh $v0, -0x2a($v1)
/* 00FB04 8000EF04 A460FFF0 */ sh $zero, -0x10($v1)
/* 00FB08 8000EF08 A462FFF2 */ sh $v0, -0xe($v1)
/* 00FB0C 8000EF0C A460FF9C */ sh $zero, -0x64($v1)
/* 00FB10 8000EF10 1464FFF7 */ bne $v1, $a0, .L8000EEF0
/* 00FB14 8000EF14 A462FF9E */ sh $v0, -0x62($v1)
/* 00FB18 8000EF18 03E00008 */ jr $ra
/* 00FB1C 8000EF1C 00000000 */ nop

View File

@ -1,18 +0,0 @@
glabel func_8000F0E0
/* 00FCE0 8000F0E0 3C018016 */ lui $at, %hi(D_80164670) # $at, 0x8016
/* 00FCE4 8000F0E4 A4204670 */ sh $zero, %lo(D_80164670)($at)
/* 00FCE8 8000F0E8 3C018016 */ lui $at, %hi(D_80164678) # $at, 0x8016
/* 00FCEC 8000F0EC A4204678 */ sh $zero, %lo(D_80164678)($at)
/* 00FCF0 8000F0F0 3C018016 */ lui $at, %hi(D_80164672) # $at, 0x8016
/* 00FCF4 8000F0F4 A4204672 */ sh $zero, %lo(D_80164672)($at)
/* 00FCF8 8000F0F8 3C018016 */ lui $at, %hi(D_8016467A) # $at, 0x8016
/* 00FCFC 8000F0FC A420467A */ sh $zero, %lo(D_8016467A)($at)
/* 00FD00 8000F100 3C018016 */ lui $at, %hi(D_80164674) # $at, 0x8016
/* 00FD04 8000F104 A4204674 */ sh $zero, %lo(D_80164674)($at)
/* 00FD08 8000F108 3C018016 */ lui $at, %hi(D_8016467C) # $at, 0x8016
/* 00FD0C 8000F10C A420467C */ sh $zero, %lo(D_8016467C)($at)
/* 00FD10 8000F110 3C018016 */ lui $at, %hi(D_80164676) # $at, 0x8016
/* 00FD14 8000F114 A4204676 */ sh $zero, %lo(D_80164676)($at)
/* 00FD18 8000F118 3C018016 */ lui $at, %hi(D_8016467E) # 0x8016
/* 00FD1C 8000F11C 03E00008 */ jr $ra
/* 00FD20 8000F120 A420467E */ sh $zero, %lo(D_8016467E)($at) # 0x467e($at)

View File

@ -1,20 +0,0 @@
glabel func_8001487C
/* 01547C 8001487C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 015480 80014880 AFB10018 */ sw $s1, 0x18($sp)
/* 015484 80014884 AFB00014 */ sw $s0, 0x14($sp)
/* 015488 80014888 3C108016 */ lui $s0, %hi(D_80163818) # $s0, 0x8016
/* 01548C 8001488C 3C118016 */ lui $s1, %hi(D_80163984) # $s1, 0x8016
/* 015490 80014890 AFBF001C */ sw $ra, 0x1c($sp)
/* 015494 80014894 26313984 */ addiu $s1, %lo(D_80163984) # addiu $s1, $s1, 0x3984
/* 015498 80014898 26103818 */ addiu $s0, %lo(D_80163818) # addiu $s0, $s0, 0x3818
.L8001489C:
/* 01549C 8001489C 0C004F48 */ jal func_80013D20
/* 0154A0 800148A0 02002025 */ move $a0, $s0
/* 0154A4 800148A4 26100034 */ addiu $s0, $s0, 0x34
/* 0154A8 800148A8 1611FFFC */ bne $s0, $s1, .L8001489C
/* 0154AC 800148AC 00000000 */ nop
/* 0154B0 800148B0 8FBF001C */ lw $ra, 0x1c($sp)
/* 0154B4 800148B4 8FB00014 */ lw $s0, 0x14($sp)
/* 0154B8 800148B8 8FB10018 */ lw $s1, 0x18($sp)
/* 0154BC 800148BC 03E00008 */ jr $ra
/* 0154C0 800148C0 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,20 +0,0 @@
glabel func_800149D0
/* 0155D0 800149D0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0155D4 800149D4 AFB10018 */ sw $s1, 0x18($sp)
/* 0155D8 800149D8 AFB00014 */ sw $s0, 0x14($sp)
/* 0155DC 800149DC 3C108016 */ lui $s0, %hi(D_80163988) # $s0, 0x8016
/* 0155E0 800149E0 3C118016 */ lui $s1, %hi(D_80163AF4) # $s1, 0x8016
/* 0155E4 800149E4 AFBF001C */ sw $ra, 0x1c($sp)
/* 0155E8 800149E8 26313AF4 */ addiu $s1, %lo(D_80163AF4) # addiu $s1, $s1, 0x3af4
/* 0155EC 800149EC 26103988 */ addiu $s0, %lo(D_80163988) # addiu $s0, $s0, 0x3988
.L800149F0:
/* 0155F0 800149F0 0C004F48 */ jal func_80013D20
/* 0155F4 800149F4 02002025 */ move $a0, $s0
/* 0155F8 800149F8 26100034 */ addiu $s0, $s0, 0x34
/* 0155FC 800149FC 1611FFFC */ bne $s0, $s1, .L800149F0
/* 015600 80014A00 00000000 */ nop
/* 015604 80014A04 8FBF001C */ lw $ra, 0x1c($sp)
/* 015608 80014A08 8FB00014 */ lw $s0, 0x14($sp)
/* 01560C 80014A0C 8FB10018 */ lw $s1, 0x18($sp)
/* 015610 80014A10 03E00008 */ jr $ra
/* 015614 80014A14 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,20 +0,0 @@
glabel func_80014B24
/* 015724 80014B24 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 015728 80014B28 AFB10018 */ sw $s1, 0x18($sp)
/* 01572C 80014B2C AFB00014 */ sw $s0, 0x14($sp)
/* 015730 80014B30 3C108016 */ lui $s0, %hi(D_80163AF8) # $s0, 0x8016
/* 015734 80014B34 3C118016 */ lui $s1, %hi(D_80163C64) # $s1, 0x8016
/* 015738 80014B38 AFBF001C */ sw $ra, 0x1c($sp)
/* 01573C 80014B3C 26313C64 */ addiu $s1, %lo(D_80163C64) # addiu $s1, $s1, 0x3c64
/* 015740 80014B40 26103AF8 */ addiu $s0, %lo(D_80163AF8) # addiu $s0, $s0, 0x3af8
.L80014B44:
/* 015744 80014B44 0C004F48 */ jal func_80013D20
/* 015748 80014B48 02002025 */ move $a0, $s0
/* 01574C 80014B4C 26100034 */ addiu $s0, $s0, 0x34
/* 015750 80014B50 1611FFFC */ bne $s0, $s1, .L80014B44
/* 015754 80014B54 00000000 */ nop
/* 015758 80014B58 8FBF001C */ lw $ra, 0x1c($sp)
/* 01575C 80014B5C 8FB00014 */ lw $s0, 0x14($sp)
/* 015760 80014B60 8FB10018 */ lw $s1, 0x18($sp)
/* 015764 80014B64 03E00008 */ jr $ra
/* 015768 80014B68 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,20 +0,0 @@
glabel func_80014C78
/* 015878 80014C78 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 01587C 80014C7C AFB10018 */ sw $s1, 0x18($sp)
/* 015880 80014C80 AFB00014 */ sw $s0, 0x14($sp)
/* 015884 80014C84 3C108016 */ lui $s0, %hi(D_80163C68) # $s0, 0x8016
/* 015888 80014C88 3C118016 */ lui $s1, %hi(D_80163DD4) # $s1, 0x8016
/* 01588C 80014C8C AFBF001C */ sw $ra, 0x1c($sp)
/* 015890 80014C90 26313DD4 */ addiu $s1, %lo(D_80163DD4) # addiu $s1, $s1, 0x3dd4
/* 015894 80014C94 26103C68 */ addiu $s0, %lo(D_80163C68) # addiu $s0, $s0, 0x3c68
.L80014C98:
/* 015898 80014C98 0C004F48 */ jal func_80013D20
/* 01589C 80014C9C 02002025 */ move $a0, $s0
/* 0158A0 80014CA0 26100034 */ addiu $s0, $s0, 0x34
/* 0158A4 80014CA4 1611FFFC */ bne $s0, $s1, .L80014C98
/* 0158A8 80014CA8 00000000 */ nop
/* 0158AC 80014CAC 8FBF001C */ lw $ra, 0x1c($sp)
/* 0158B0 80014CB0 8FB00014 */ lw $s0, 0x14($sp)
/* 0158B4 80014CB4 8FB10018 */ lw $s1, 0x18($sp)
/* 0158B8 80014CB8 03E00008 */ jr $ra
/* 0158BC 80014CBC 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -8,6 +8,7 @@
#include "code_80005FD0.h"
#include "code_80027D00.h"
#include "variables.h"
#include <actor_types.h>
s16 func_80005FD0(Vec3f arg0, Vec3f arg1) {
s16 temp_ret;
@ -2105,70 +2106,54 @@ block_25:
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000929C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8000DF8C(s32); // extern
? func_8000EF20(); // extern
? func_80012AC0(); // extern
? func_800133C4(); // extern
? func_8001487C(); // extern
? func_800149D0(); // extern
? func_80014B24(); // extern
? func_80014C78(); // extern
void func_8000DF8C(s32); // extern
void func_8000EF20(); // extern
void func_80012AC0(); // extern
void func_800133C4(); // extern
void func_8001487C(); // extern
void func_800149D0(); // extern
void func_80014B24(); // extern
void func_80014C78(); // extern
extern s32 D_8016337C;
extern s32 gModeSelection;
void func_800097E0(void) {
s16 temp_v0;
s32 temp_s0;
s32 temp_s0_2;
s32 phi_s0;
s32 phi_s0_2;
s16 phi_v0;
s32 i;
s32 j;
s32 unk = 0;
func_8000EF20();
D_8016337C = D_8016337C + 1;
temp_v0 = gCurrentCourseId;
phi_s0 = 0;
phi_s0_2 = 0;
phi_v0 = temp_v0;
if (temp_v0 == 0x14) {
do {
func_8000DF8C(phi_s0);
temp_s0 = phi_s0 + 1;
phi_s0 = temp_s0;
} while (temp_s0 != 7);
D_8016337C++;
if (gCurrentCourseId == 20) {
for (i = 0; i < 7; i++) {
func_8000DF8C(i);
}
return;
}
if ((D_8016337C & 1) != 0) {
if (D_8016337C & 1) {
if (gModeSelection == VERSUS) {
do {
func_8000DF8C(phi_s0_2);
temp_s0_2 = phi_s0_2 + 1;
phi_s0_2 = temp_s0_2;
} while (temp_s0_2 != 7);
phi_v0 = gCurrentCourseId;
}
if (phi_v0 != 0xA) {
if (phi_v0 != 0xB) {
if (phi_v0 != 0x12) {
return;
}
func_800133C4();
return;
for (i = 0; i < 7; i++) {
func_8000DF8C(i);
}
func_80012AC0();
return;
}
func_8001487C();
func_800149D0();
func_80014B24();
func_80014C78();
// Duplicate return node #14. Try simplifying control flow for better match
switch(gCurrentCourseId) {
case 11:
func_80012AC0();
break;
case 18:
func_800133C4();
break;
case 10:
func_8001487C();
func_800149D0();
func_80014B24();
func_80014C78();
break;
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800097E0.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
@ -2274,30 +2259,30 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800099EC.s")
#ifdef MIPS_TO_C
//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9
? func_80008424(s32, ?32, Player *); /* extern */
? func_8000929C(s32, Player *); /* extern */
? func_800099EC(s32, Player *); /* extern */
? func_8000B140(s32); /* extern */
s32 func_8000B7E4(s32, u16); /* extern */
? func_8000BBD8(s32, ?32, s16, f32 *); /* extern */
? func_8000D3B8(s32); /* extern */
? func_8000D438(s32, u16); /* extern */
? func_80011E38(s32); /* extern */
? func_80012DC0(s32, Player *); /* extern */
? func_80013054(); /* extern */
? func_800131DC(s32); /* extern */
? func_80013854(Player *); /* extern */
? func_800148C4(s32, Player *); /* extern */
? func_8001490C(s32, u16 *, f32 *, u16 *); /* extern */
? func_80014A18(s32, Player *); /* extern */
? func_80014A60(s32); /* extern */
? func_80014B6C(s32, Player *); /* extern */
? func_80014BB4(s32); /* extern */
? func_80014CC0(s32, Player *); /* extern */
? func_80014D08(s32); /* extern */
? func_8001AC10(s32); /* extern */
? func_8003680C(Player *, s16, Player *, s16, Player *); /* extern */
? set_places(); /* extern */
// ? func_80008424(s32, ?32, Player *); /* extern */
// ? func_8000929C(s32, Player *); /* extern */
// ? func_800099EC(s32, Player *); /* extern */
// ? func_8000B140(s32); /* extern */
// s32 func_8000B7E4(s32, u16); /* extern */
// ? func_8000BBD8(s32, ?32, s16, f32 *); /* extern */
// ? func_8000D3B8(s32); /* extern */
// ? func_8000D438(s32, u16); /* extern */
// ? func_80011E38(s32); /* extern */
// ? func_80012DC0(s32, Player *); /* extern */
// ? func_80013054(); /* extern */
// ? func_800131DC(s32); /* extern */
// ? func_80013854(Player *); /* extern */
// ? func_800148C4(s32, Player *); /* extern */
// ? func_8001490C(s32, u16 *, f32 *, u16 *); /* extern */
// ? func_80014A18(s32, Player *); /* extern */
// ? func_80014A60(s32); /* extern */
// ? func_80014B6C(s32, Player *); /* extern */
// ? func_80014BB4(s32); /* extern */
// ? func_80014CC0(s32, Player *); /* extern */
// ? func_80014D08(s32); /* extern */
// ? func_8001AC10(s32); /* extern */
// ? func_8003680C(Player *, s16, Player *, s16, Player *); /* extern */
// ? set_places(); /* extern */
extern ? D_0D009418;
extern ? D_0D009568;
extern ? D_0D0096B8;
@ -4468,153 +4453,89 @@ void func_8000DF8C(s32 arg0) {
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DF8C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern ? D_801641F8;
extern ? D_801642D8;
struct unk_41F8 {
s32 unk0;
s32 unk4;
s32 unk8;
u16 unkC;
u16 unkE;
s16 unk10;
s32 unk14;
s32 unk18;
};
extern struct unk_41F8 D_801641F8[];
? func_8000ED14(s16 arg0, s16 arg1) {
? *temp_a2;
? *phi_a2;
s32 phi_v0;
s32 func_8000ED14(s32, s16);
s32 func_8000ED14(s32 arg0, s16 arg1) {
s32 i;
s32 a2 = 0;
phi_a2 = &D_801641F8;
phi_v0 = 0;
loop_1:
if (phi_a2->unkC == 0) {
phi_a2->unkC = 1;
phi_a2->unkE = arg0;
phi_a2->unk10 = arg1;
phi_a2->unk14 = 0;
phi_v0 = 1;
} else {
temp_a2 = phi_a2 + 0x1C;
phi_a2 = temp_a2;
if (temp_a2 != &D_801642D8) {
goto loop_1;
for (i = 0; i < 8; i++) {
if (D_801641F8[i].unkC == 0) {
D_801641F8[i].unkC = 1;
D_801641F8[i].unkE = arg0;
D_801641F8[i].unk10 = arg1;
D_801641F8[i].unk14 = 0;
a2 = 1;
break;
}
}
if (phi_v0 == 0) {
if (a2 == 0) {
return -2;
}
return 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000ED14.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_8000ED14(?); // extern
extern ? gActorList;
extern struct Actor gActorList[ACTOR_LIST_SIZE];
s32 func_8000ED80(s32 arg0) {
if (*(&gActorList + (arg0 * 0x70)) != 8) {
struct Actor *actor = &gActorList[arg0];
if (actor->type != 8) {
return -1;
}
return func_8000ED14(0);
return func_8000ED14(arg0, 0);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000ED80.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_8000ED14(?); // extern
extern ? gActorList;
s32 func_8000EDC8(s32 arg0) {
if (*(&gActorList + (arg0 * 0x70)) != 7) {
struct Actor *actor = &gActorList[arg0];
if (actor->type != 7) {
return -1;
}
return func_8000ED14(1);
return func_8000ED14(arg0, 1);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000EDC8.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_8000ED14(?); // extern
extern ? gActorList;
s32 func_8000EE10(s32 arg0) {
if (*(&gActorList + (arg0 * 0x70)) != 0x2A) {
struct Actor *actor = &gActorList[arg0];
if (actor->type != 42) {
return -1;
}
return func_8000ED14(2);
return func_8000ED14(arg0, 2);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000EE10.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern ? D_801641F8;
extern ? D_801642D8;
void func_8000EE58(s32 arg0) {
? *temp_v1;
void *temp_v0;
void *temp_v0_2;
void *temp_v0_3;
? *phi_v1;
struct unk_41F8 *phi;
s32 i;
phi_v1 = &D_801641F8;
do {
temp_v0 = phi_v1 + 0x1C;
if (arg0 == phi_v1->unkE) {
phi_v1->unkC = 0;
phi_v1->unkE = 0x3E8;
for (i = 0; i < 8; i++) {
phi = &D_801641F8[i];
if (arg0 == phi->unkE) {
phi->unkC = 0;
phi->unkE = 1000;
}
if (arg0 == phi_v1->unk2A) {
temp_v0->unkC = 0;
temp_v0->unkE = 0x3E8;
}
temp_v0_2 = phi_v1 + 0x38;
if (arg0 == phi_v1->unk46) {
temp_v0_2->unkC = 0;
temp_v0_2->unkE = 0x3E8;
}
temp_v0_3 = phi_v1 + 0x54;
if (arg0 == phi_v1->unk62) {
temp_v0_3->unkC = 0;
temp_v0_3->unkE = 0x3E8;
}
temp_v1 = phi_v1 + 0x70;
phi_v1 = temp_v1;
} while (temp_v1 != &D_801642D8);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000EE58.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern ? D_801641F8;
extern ? D_801642D8;
void func_8000EEDC(void) {
? *temp_v1;
? *phi_v1;
struct unk_41F8 *phi;
s32 i;
phi_v1 = &D_801641F8;
do {
temp_v1 = phi_v1 + 0x70;
temp_v1->unk-48 = 0;
temp_v1->unk-46 = 0x3E8;
temp_v1->unk-2C = 0;
temp_v1->unk-2A = 0x3E8;
temp_v1->unk-10 = 0;
temp_v1->unk-E = 0x3E8;
temp_v1->unk-64 = 0;
temp_v1->unk-62 = 0x3E8;
phi_v1 = temp_v1;
} while (temp_v1 != &D_801642D8);
for (i = 0; i < 8; i++) {
phi = &D_801641F8[i];
phi->unkC = 0;
phi->unkE = 1000;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000EEDC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -4694,9 +4615,7 @@ block_14:
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000EF20.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern s16 D_80164670;
extern s16 D_80164670;
extern s16 D_80164672;
extern s16 D_80164674;
extern s16 D_80164676;
@ -4715,9 +4634,6 @@ void func_8000F0E0(void) {
D_80164676 = 0;
D_8016467E = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000F0E0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -7852,20 +7768,26 @@ loop_4:
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800146B8.s")
#endif
typedef struct {
s32 innards[0xD];
} somestruct;
//extern s32 D_80163984;
extern somestruct D_80163818[];
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
//? func_800139E4(f32, f32, ?, ?, ? *, s16 *); // extern
extern f64 D_800ED1B8;
extern f64 D_800ED1C0;
extern f64 D_800ED1C8;
extern s32 D_80163818;
//extern s32 D_80163818;
void func_800139E4(f32 arg0, f32 arg1, s32 arg2, f32 arg3, somestruct *arg4, struct TrackWayPoint *arg5);
void func_800147E0(void) {
f64 temp_f0;
s32 phi_a2;
f64 temp_f0 = (gCCSelection * D_800ED1B8) / 216.0;
s32 phi_a2 = 7;
temp_f0 = (gCCSelection * D_800ED1B8) / 216.0;
phi_a2 = 7;
//phi_a2 = 7;
//temp_f0 = (gCCSelection * D_800ED1B8) / 216.0;
if (gModeSelection == TIME_TRIALS) {
phi_a2 = 8;
}
@ -7875,37 +7797,21 @@ void func_800147E0(void) {
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800147E0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80013D20(? *); // extern
extern ? D_80163818;
extern ? D_80163984;
void func_80013D20(void*); // extern
void func_8001487C(void) {
? *temp_s0;
? *phi_s0;
phi_s0 = &D_80163818;
do {
func_80013D20(phi_s0);
temp_s0 = phi_s0 + 0x34;
phi_s0 = temp_s0;
} while (temp_s0 != &D_80163984);
s32 loopIndex;
for(loopIndex = 0; loopIndex < 7; loopIndex++) {
func_80013D20(&D_80163818[loopIndex]);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001487C.s")
#endif
void func_80013F7C(s32 playerId, Player *player, void *arg2, f32 arg3, f32 arg4, s32 arg5, u32 arg6);
extern s32 D_80163818;
void func_800148C4(s32 arg0, s32 arg1) {
func_80013F7C(arg0, arg1, &D_80163818, 55.0f, 12.5f, 7, 0x51018003);
}
extern s32 D_80163818;
void func_8001490C(s32 arg0) {
func_800146B8(arg0, 7, &D_80163818);
}
@ -7933,34 +7839,21 @@ void func_80014934(void) {
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014934.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80013D20(? *); // extern
extern ? D_80163988;
extern ? D_80163AF4;
extern somestruct D_80163988[];
void func_800149D0(void) {
? *temp_s0;
? *phi_s0;
s32 i;
phi_s0 = &D_80163988;
do {
func_80013D20(phi_s0);
temp_s0 = phi_s0 + 0x34;
phi_s0 = temp_s0;
} while (temp_s0 != &D_80163AF4);
for (i = 0; i < 7; i++) {
func_80013D20(&D_80163988[i]);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800149D0.s")
#endif
extern s32 D_80163988;
void func_80014A18(s32 arg0, s32 arg1) {
func_80013F7C(arg0, arg1, &D_80163988, 70.0f, 12.5f, 7, 0x51018002);
}
extern s32 D_80163988;
void func_80014A60(s32 arg0) {
func_800146B8(arg0, 7, &D_80163988);
@ -7989,35 +7882,20 @@ void func_80014A88(void) {
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014A88.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80013D20(? *); // extern
extern ? D_80163AF8;
extern ? D_80163C64;
extern somestruct D_80163AF8[];
void func_80014B24(void) {
? *temp_s0;
? *phi_s0;
s32 i;
phi_s0 = &D_80163AF8;
do {
func_80013D20(phi_s0);
temp_s0 = phi_s0 + 0x34;
phi_s0 = temp_s0;
} while (temp_s0 != &D_80163C64);
for (i = 0; i < 7; i++) {
func_80013D20(&D_80163AF8[i]);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014B24.s")
#endif
extern s32 D_80163AF8;
void func_80014B6C(s32 arg0, s32 arg1) {
func_80013F7C(arg0, arg1, &D_80163AF8, 55.0f, 12.5f, 7, 0x51018004);
}
extern s32 D_80163AF8;
void func_80014BB4(s32 arg0) {
func_800146B8(arg0, 7, &D_80163AF8);
}
@ -8045,35 +7923,20 @@ void func_80014BDC(void) {
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014BDC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80013D20(? *); // extern
extern ? D_80163C68;
extern ? D_80163DD4;
extern somestruct D_80163C68[];
void func_80014C78(void) {
? *temp_s0;
? *phi_s0;
s32 i;
phi_s0 = &D_80163C68;
do {
func_80013D20(phi_s0);
temp_s0 = phi_s0 + 0x34;
phi_s0 = temp_s0;
} while (temp_s0 != &D_80163DD4);
for (i = 0; i < 7; i++) {
func_80013D20(&D_80163C68[i]);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014C78.s")
#endif
extern s32 D_80163C68;
void func_80014CC0(s32 arg0, s32 arg1) {
func_80013F7C(arg0, arg1, &D_80163C68, 11.5f, 8.5f, 7, 0x51018005);
}
extern s32 D_80163C68;
void func_80014D08(s32 arg0) {
func_800146B8(arg0, 7, &D_80163C68);
}
@ -8303,7 +8166,7 @@ UNUSED void func_8001530C(void) {
}
#ifdef MIPS_TO_C
#ifdef NON_MATCHING
//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de
//? func_80015390(Camera *, Player *, ?, s32); /* extern */
void func_80015390(Camera*, Player*, s32,s32);

View File

@ -745,7 +745,7 @@ void update_race_position_data(void) {
void func_8028F474(void) {
s32 i;
switch (D_800DC510) {
switch (D_800DC510) {
case 3:
case 4:
case 5:
@ -757,7 +757,7 @@ void func_8028F474(void) {
case 2:
func_800097E0();
break;
}
}
}
void func_8028F4E8(void) {