Match several functions, add item values (#130)

* Match func_80021C78

* Match func_8006E8C4

* Match func_80295BF8

* Match func_8001F980 (already matching)

* Match func_800219BC

* Match func_80022A98

* Add item defines
This commit is contained in:
Maciek Baron 2022-01-13 04:19:22 +00:00 committed by GitHub
parent 162b4c256d
commit 29f9f8890a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 97 additions and 384 deletions

View File

@ -1,32 +0,0 @@
glabel func_8001F980
/* 020580 8001F980 3C0E800E */ lui $t6, %hi(D_800DC51C) # $t6, 0x800e
/* 020584 8001F984 95CEC51C */ lhu $t6, %lo(D_800DC51C)($t6)
/* 020588 8001F988 24010001 */ li $at, 1
/* 02058C 8001F98C 3C0F8016 */ lui $t7, %hi(D_80164A28) # $t7, 0x8016
/* 020590 8001F990 11C10007 */ beq $t6, $at, .L8001F9B0
/* 020594 8001F994 3C088016 */ lui $t0, %hi(D_80164A28) # $t0, 0x8016
/* 020598 8001F998 8DEF4A28 */ lw $t7, %lo(D_80164A28)($t7)
/* 02059C 8001F99C 3C188016 */ lui $t8, %hi(D_8015F894) # $t8, 0x8016
/* 0205A0 8001F9A0 55E00004 */ bnel $t7, $zero, .L8001F9B4
/* 0205A4 8001F9A4 241900AA */ li $t9, 170
/* 0205A8 8001F9A8 9718F894 */ lhu $t8, %lo(D_8015F894)($t8)
/* 0205AC 8001F9AC 13000003 */ beqz $t8, .L8001F9BC
.L8001F9B0:
/* 0205B0 8001F9B0 241900AA */ li $t9, 170
.L8001F9B4:
/* 0205B4 8001F9B4 10000002 */ b .L8001F9C0
/* 0205B8 8001F9B8 AC990000 */ sw $t9, ($a0)
.L8001F9BC:
/* 0205BC 8001F9BC AC800000 */ sw $zero, ($a0)
.L8001F9C0:
/* 0205C0 8001F9C0 8D084A28 */ lw $t0, %lo(D_80164A28)($t0)
/* 0205C4 8001F9C4 240900AA */ li $t1, 170
/* 0205C8 8001F9C8 51000004 */ beql $t0, $zero, .L8001F9DC
/* 0205CC 8001F9CC ACA00000 */ sw $zero, ($a1)
/* 0205D0 8001F9D0 03E00008 */ jr $ra
/* 0205D4 8001F9D4 ACA90000 */ sw $t1, ($a1)
/* 0205D8 8001F9D8 ACA00000 */ sw $zero, ($a1)
.L8001F9DC:
/* 0205DC 8001F9DC 03E00008 */ jr $ra
/* 0205E0 8001F9E0 00000000 */ nop

View File

@ -1,87 +0,0 @@
glabel func_800219BC
/* 0225BC 800219BC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0225C0 800219C0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0225C4 800219C4 3C01800E */ lui $at, %hi(D_800DDB58) # $at, 0x800e
/* 0225C8 800219C8 3C04800E */ lui $a0, %hi(gPlayerOneCopy) # $a0, 0x800e
/* 0225CC 800219CC 3C05800E */ lui $a1, %hi(camera4) # $a1, 0x800e
/* 0225D0 800219D0 AC20DB58 */ sw $zero, %lo(D_800DDB58)($at)
/* 0225D4 800219D4 8CA5DB4C */ lw $a1, %lo(camera4)($a1)
/* 0225D8 800219D8 8C84C4FC */ lw $a0, %lo(gPlayerOneCopy)($a0)
/* 0225DC 800219DC 00003025 */ move $a2, $zero
/* 0225E0 800219E0 0C008000 */ jal func_80020000
/* 0225E4 800219E4 24070003 */ li $a3, 3
/* 0225E8 800219E8 3C04800E */ lui $a0, %hi(gPlayerTwo) # $a0, 0x800e
/* 0225EC 800219EC 3C05800E */ lui $a1, %hi(camera4) # $a1, 0x800e
/* 0225F0 800219F0 8CA5DB4C */ lw $a1, %lo(camera4)($a1)
/* 0225F4 800219F4 8C84C4E0 */ lw $a0, %lo(gPlayerTwo)($a0)
/* 0225F8 800219F8 24060001 */ li $a2, 1
/* 0225FC 800219FC 0C008000 */ jal func_80020000
/* 022600 80021A00 24070003 */ li $a3, 3
/* 022604 80021A04 3C04800E */ lui $a0, %hi(gPlayerThree) # $a0, 0x800e
/* 022608 80021A08 3C05800E */ lui $a1, %hi(camera4) # $a1, 0x800e
/* 02260C 80021A0C 8CA5DB4C */ lw $a1, %lo(camera4)($a1)
/* 022610 80021A10 8C84C4E4 */ lw $a0, %lo(gPlayerThree)($a0)
/* 022614 80021A14 24060002 */ li $a2, 2
/* 022618 80021A18 0C008000 */ jal func_80020000
/* 02261C 80021A1C 24070003 */ li $a3, 3
/* 022620 80021A20 3C04800E */ lui $a0, %hi(gPlayerFour) # $a0, 0x800e
/* 022624 80021A24 3C05800E */ lui $a1, %hi(camera4) # $a1, 0x800e
/* 022628 80021A28 8CA5DB4C */ lw $a1, %lo(camera4)($a1)
/* 02262C 80021A2C 8C84C4E8 */ lw $a0, %lo(gPlayerFour)($a0)
/* 022630 80021A30 24060003 */ li $a2, 3
/* 022634 80021A34 0C008000 */ jal func_80020000
/* 022638 80021A38 24070003 */ li $a3, 3
/* 02263C 80021A3C 3C04800E */ lui $a0, %hi(gPlayerOne) # $a0, 0x800e
/* 022640 80021A40 8C84C4DC */ lw $a0, %lo(gPlayerOne)($a0)
/* 022644 80021A44 00002825 */ move $a1, $zero
/* 022648 80021A48 0C008491 */ jal func_80021244
/* 02264C 80021A4C 24060003 */ li $a2, 3
/* 022650 80021A50 3C04800E */ lui $a0, %hi(gPlayerTwo) # $a0, 0x800e
/* 022654 80021A54 8C84C4E0 */ lw $a0, %lo(gPlayerTwo)($a0)
/* 022658 80021A58 24050001 */ li $a1, 1
/* 02265C 80021A5C 0C008491 */ jal func_80021244
/* 022660 80021A60 24060003 */ li $a2, 3
/* 022664 80021A64 3C04800E */ lui $a0, %hi(gPlayerThree) # $a0, 0x800e
/* 022668 80021A68 8C84C4E4 */ lw $a0, %lo(gPlayerThree)($a0)
/* 02266C 80021A6C 24050002 */ li $a1, 2
/* 022670 80021A70 0C008491 */ jal func_80021244
/* 022674 80021A74 24060003 */ li $a2, 3
/* 022678 80021A78 3C04800E */ lui $a0, %hi(gPlayerFour) # $a0, 0x800e
/* 02267C 80021A7C 8C84C4E8 */ lw $a0, %lo(gPlayerFour)($a0)
/* 022680 80021A80 24050003 */ li $a1, 3
/* 022684 80021A84 0C008491 */ jal func_80021244
/* 022688 80021A88 24060003 */ li $a2, 3
/* 02268C 80021A8C 3C0E800E */ lui $t6, %hi(D_800DDB58) # $t6, 0x800e
/* 022690 80021A90 8DCEDB58 */ lw $t6, %lo(D_800DDB58)($t6)
/* 022694 80021A94 3C04800E */ lui $a0, %hi(gPlayerOneCopy) # $a0, 0x800e
/* 022698 80021A98 00002825 */ move $a1, $zero
/* 02269C 80021A9C 11C00005 */ beqz $t6, .L80021AB4
/* 0226A0 80021AA0 24060003 */ li $a2, 3
/* 0226A4 80021AA4 0C0083C7 */ jal func_80020F1C
/* 0226A8 80021AA8 00000000 */ nop
/* 0226AC 80021AAC 10000013 */ b .L80021AFC
/* 0226B0 80021AB0 8FBF0014 */ lw $ra, 0x14($sp)
.L80021AB4:
/* 0226B4 80021AB4 0C01B9D1 */ jal func_8006E744
/* 0226B8 80021AB8 8C84C4FC */ lw $a0, %lo(gPlayerOneCopy)($a0)
/* 0226BC 80021ABC 3C04800E */ lui $a0, %hi(gPlayerTwo) # $a0, 0x800e
/* 0226C0 80021AC0 8C84C4E0 */ lw $a0, %lo(gPlayerTwo)($a0)
/* 0226C4 80021AC4 24050001 */ li $a1, 1
/* 0226C8 80021AC8 0C01B9D1 */ jal func_8006E744
/* 0226CC 80021ACC 24060003 */ li $a2, 3
/* 0226D0 80021AD0 3C04800E */ lui $a0, %hi(gPlayerThree) # $a0, 0x800e
/* 0226D4 80021AD4 8C84C4E4 */ lw $a0, %lo(gPlayerThree)($a0)
/* 0226D8 80021AD8 24050002 */ li $a1, 2
/* 0226DC 80021ADC 0C01B9D1 */ jal func_8006E744
/* 0226E0 80021AE0 24060003 */ li $a2, 3
/* 0226E4 80021AE4 3C04800E */ lui $a0, %hi(gPlayerFour) # $a0, 0x800e
/* 0226E8 80021AE8 8C84C4E8 */ lw $a0, %lo(gPlayerFour)($a0)
/* 0226EC 80021AEC 24050003 */ li $a1, 3
/* 0226F0 80021AF0 0C01B9D1 */ jal func_8006E744
/* 0226F4 80021AF4 24060003 */ li $a2, 3
/* 0226F8 80021AF8 8FBF0014 */ lw $ra, 0x14($sp)
.L80021AFC:
/* 0226FC 80021AFC 3C01800E */ lui $at, %hi(D_800DDB58) # $at, 0x800e
/* 022700 80021B00 AC20DB58 */ sw $zero, %lo(D_800DDB58)($at)
/* 022704 80021B04 03E00008 */ jr $ra
/* 022708 80021B08 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,52 +0,0 @@
glabel func_80021C78
/* 022878 80021C78 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 02287C 80021C7C AFBF0014 */ sw $ra, 0x14($sp)
/* 022880 80021C80 3C04800E */ lui $a0, %hi(gPlayerOneCopy) # $a0, 0x800e
/* 022884 80021C84 8C84C4FC */ lw $a0, %lo(gPlayerOneCopy)($a0)
/* 022888 80021C88 00002825 */ move $a1, $zero
/* 02288C 80021C8C 0C01BA12 */ jal func_8006E848
/* 022890 80021C90 24060001 */ li $a2, 1
/* 022894 80021C94 3C04800E */ lui $a0, %hi(gPlayerTwo) # $a0, 0x800e
/* 022898 80021C98 8C84C4E0 */ lw $a0, %lo(gPlayerTwo)($a0)
/* 02289C 80021C9C 24050001 */ li $a1, 1
/* 0228A0 80021CA0 0C01BA12 */ jal func_8006E848
/* 0228A4 80021CA4 24060001 */ li $a2, 1
/* 0228A8 80021CA8 3C04800E */ lui $a0, %hi(gPlayerThree) # $a0, 0x800e
/* 0228AC 80021CAC 8C84C4E4 */ lw $a0, %lo(gPlayerThree)($a0)
/* 0228B0 80021CB0 24050002 */ li $a1, 2
/* 0228B4 80021CB4 0C01BA12 */ jal func_8006E848
/* 0228B8 80021CB8 24060001 */ li $a2, 1
/* 0228BC 80021CBC 3C04800E */ lui $a0, %hi(gPlayerFour) # $a0, 0x800e
/* 0228C0 80021CC0 8C84C4E8 */ lw $a0, %lo(gPlayerFour)($a0)
/* 0228C4 80021CC4 24050003 */ li $a1, 3
/* 0228C8 80021CC8 0C01BA12 */ jal func_8006E848
/* 0228CC 80021CCC 24060001 */ li $a2, 1
/* 0228D0 80021CD0 3C0E800E */ lui $t6, %hi(D_800DC52C) # $t6, 0x800e
/* 0228D4 80021CD4 8DCEC52C */ lw $t6, %lo(D_800DC52C)($t6)
/* 0228D8 80021CD8 24010003 */ li $at, 3
/* 0228DC 80021CDC 3C04800E */ lui $a0, %hi(gPlayerFive) # $a0, 0x800e
/* 0228E0 80021CE0 11C10013 */ beq $t6, $at, .L80021D30
/* 0228E4 80021CE4 24050004 */ li $a1, 4
/* 0228E8 80021CE8 8C84C4EC */ lw $a0, %lo(gPlayerFive)($a0)
/* 0228EC 80021CEC 0C01BA12 */ jal func_8006E848
/* 0228F0 80021CF0 24060001 */ li $a2, 1
/* 0228F4 80021CF4 3C04800E */ lui $a0, %hi(gPlayerSix) # $a0, 0x800e
/* 0228F8 80021CF8 8C84C4F0 */ lw $a0, %lo(gPlayerSix)($a0)
/* 0228FC 80021CFC 24050005 */ li $a1, 5
/* 022900 80021D00 0C01BA12 */ jal func_8006E848
/* 022904 80021D04 24060001 */ li $a2, 1
/* 022908 80021D08 3C04800E */ lui $a0, %hi(gPlayerSeven) # $a0, 0x800e
/* 02290C 80021D0C 8C84C4F4 */ lw $a0, %lo(gPlayerSeven)($a0)
/* 022910 80021D10 24050006 */ li $a1, 6
/* 022914 80021D14 0C01BA12 */ jal func_8006E848
/* 022918 80021D18 24060001 */ li $a2, 1
/* 02291C 80021D1C 3C04800E */ lui $a0, %hi(gPlayerEight) # $a0, 0x800e
/* 022920 80021D20 8C84C4F8 */ lw $a0, %lo(gPlayerEight)($a0)
/* 022924 80021D24 24050007 */ li $a1, 7
/* 022928 80021D28 0C01BA12 */ jal func_8006E848
/* 02292C 80021D2C 24060001 */ li $a2, 1
.L80021D30:
/* 022930 80021D30 8FBF0014 */ lw $ra, 0x14($sp)
/* 022934 80021D34 27BD0018 */ addiu $sp, $sp, 0x18
/* 022938 80021D38 03E00008 */ jr $ra
/* 02293C 80021D3C 00000000 */ nop

View File

@ -1,27 +0,0 @@
glabel func_80021D40
/* 022940 80021D40 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 022944 80021D44 AFBF0014 */ sw $ra, 0x14($sp)
/* 022948 80021D48 3C04800E */ lui $a0, %hi(gPlayerOneCopy) # $a0, 0x800e
/* 02294C 80021D4C 8C84C4FC */ lw $a0, %lo(gPlayerOneCopy)($a0)
/* 022950 80021D50 00002825 */ move $a1, $zero
/* 022954 80021D54 0C01BA31 */ jal func_8006E8C4
/* 022958 80021D58 24060002 */ li $a2, 2
/* 02295C 80021D5C 3C04800E */ lui $a0, %hi(gPlayerTwo) # $a0, 0x800e
/* 022960 80021D60 8C84C4E0 */ lw $a0, %lo(gPlayerTwo)($a0)
/* 022964 80021D64 24050001 */ li $a1, 1
/* 022968 80021D68 0C01BA31 */ jal func_8006E8C4
/* 02296C 80021D6C 24060002 */ li $a2, 2
/* 022970 80021D70 3C04800E */ lui $a0, %hi(gPlayerThree) # $a0, 0x800e
/* 022974 80021D74 8C84C4E4 */ lw $a0, %lo(gPlayerThree)($a0)
/* 022978 80021D78 24050002 */ li $a1, 2
/* 02297C 80021D7C 0C01BA31 */ jal func_8006E8C4
/* 022980 80021D80 24060002 */ li $a2, 2
/* 022984 80021D84 3C04800E */ lui $a0, %hi(gPlayerFour) # $a0, 0x800e
/* 022988 80021D88 8C84C4E8 */ lw $a0, %lo(gPlayerFour)($a0)
/* 02298C 80021D8C 24050003 */ li $a1, 3
/* 022990 80021D90 0C01BA31 */ jal func_8006E8C4
/* 022994 80021D94 24060002 */ li $a2, 2
/* 022998 80021D98 8FBF0014 */ lw $ra, 0x14($sp)
/* 02299C 80021D9C 27BD0018 */ addiu $sp, $sp, 0x18
/* 0229A0 80021DA0 03E00008 */ jr $ra
/* 0229A4 80021DA4 00000000 */ nop

View File

@ -1,52 +0,0 @@
glabel func_80022A98
/* 023698 80022A98 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 02369C 80022A9C AFBF001C */ sw $ra, 0x1c($sp)
/* 0236A0 80022AA0 AFB00018 */ sw $s0, 0x18($sp)
/* 0236A4 80022AA4 AFA50024 */ sw $a1, 0x24($sp)
/* 0236A8 80022AA8 948E0000 */ lhu $t6, ($a0)
/* 0236AC 80022AAC 34018000 */ li $at, 32768
/* 0236B0 80022AB0 00808025 */ move $s0, $a0
/* 0236B4 80022AB4 31CF8000 */ andi $t7, $t6, 0x8000
/* 0236B8 80022AB8 55E10021 */ bnel $t7, $at, .L80022B40
/* 0236BC 80022ABC 8FBF001C */ lw $ra, 0x1c($sp)
/* 0236C0 80022AC0 0C009A92 */ jal func_80026A48
/* 0236C4 80022AC4 83A50027 */ lb $a1, 0x27($sp)
/* 0236C8 80022AC8 02002025 */ move $a0, $s0
/* 0236CC 80022ACC 0C008D6B */ jal func_800235AC
/* 0236D0 80022AD0 83A50027 */ lb $a1, 0x27($sp)
/* 0236D4 80022AD4 8E0200BC */ lw $v0, 0xbc($s0)
/* 0236D8 80022AD8 3C040400 */ lui $a0, 0x400
/* 0236DC 80022ADC 3C060800 */ lui $a2, 0x800
/* 0236E0 80022AE0 00441824 */ and $v1, $v0, $a0
/* 0236E4 80022AE4 10830003 */ beq $a0, $v1, .L80022AF4
/* 0236E8 80022AE8 0046C024 */ and $t8, $v0, $a2
/* 0236EC 80022AEC 14D8000F */ bne $a2, $t8, .L80022B2C
/* 0236F0 80022AF0 83A50027 */ lb $a1, 0x27($sp)
.L80022AF4:
/* 0236F4 80022AF4 14830006 */ bne $a0, $v1, .L80022B10
/* 0236F8 80022AF8 3C060800 */ lui $a2, 0x800
/* 0236FC 80022AFC 02002025 */ move $a0, $s0
/* 023700 80022B00 0C008AD4 */ jal func_80022B50
/* 023704 80022B04 83A50027 */ lb $a1, 0x27($sp)
/* 023708 80022B08 3C060800 */ lui $a2, 0x800
/* 02370C 80022B0C 8E0200BC */ lw $v0, 0xbc($s0)
.L80022B10:
/* 023710 80022B10 0046C824 */ and $t9, $v0, $a2
/* 023714 80022B14 14D90007 */ bne $a2, $t9, .L80022B34
/* 023718 80022B18 02002025 */ move $a0, $s0
/* 02371C 80022B1C 0C008AF1 */ jal func_80022BC4
/* 023720 80022B20 83A50027 */ lb $a1, 0x27($sp)
/* 023724 80022B24 10000003 */ b .L80022B34
/* 023728 80022B28 00000000 */ nop
.L80022B2C:
/* 02372C 80022B2C 0C008B6D */ jal func_80022DB4
/* 023730 80022B30 02002025 */ move $a0, $s0
.L80022B34:
/* 023734 80022B34 0C00C28D */ jal func_80030A34
/* 023738 80022B38 02002025 */ move $a0, $s0
/* 02373C 80022B3C 8FBF001C */ lw $ra, 0x1c($sp)
.L80022B40:
/* 023740 80022B40 8FB00018 */ lw $s0, 0x18($sp)
/* 023744 80022B44 27BD0020 */ addiu $sp, $sp, 0x20
/* 023748 80022B48 03E00008 */ jr $ra
/* 02374C 80022B4C 00000000 */ nop

View File

@ -1,30 +0,0 @@
glabel func_80295BF8
/* 0FF208 80295BF8 000470C0 */ sll $t6, $a0, 3
/* 0FF20C 80295BFC 01C47023 */ subu $t6, $t6, $a0
/* 0FF210 80295C00 000E7100 */ sll $t6, $t6, 4
/* 0FF214 80295C04 01C47023 */ subu $t6, $t6, $a0
/* 0FF218 80295C08 000E7080 */ sll $t6, $t6, 2
/* 0FF21C 80295C0C 01C47023 */ subu $t6, $t6, $a0
/* 0FF220 80295C10 3C0F800F */ lui $t7, %hi(gPlayers) # $t7, 0x800f
/* 0FF224 80295C14 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0FF228 80295C18 25EF6990 */ addiu $t7, %lo(gPlayers) # addiu $t7, $t7, 0x6990
/* 0FF22C 80295C1C 000E70C0 */ sll $t6, $t6, 3
/* 0FF230 80295C20 AFBF0014 */ sw $ra, 0x14($sp)
/* 0FF234 80295C24 01CF1021 */ addu $v0, $t6, $t7
/* 0FF238 80295C28 24440110 */ addiu $a0, $v0, 0x110
/* 0FF23C 80295C2C 0C0AAAAB */ jal func_802AAAAC
/* 0FF240 80295C30 AFA20018 */ sw $v0, 0x18($sp)
/* 0FF244 80295C34 8FA20018 */ lw $v0, 0x18($sp)
/* 0FF248 80295C38 24031388 */ li $v1, 5000
/* 0FF24C 80295C3C A04001BD */ sb $zero, 0x1bd($v0)
/* 0FF250 80295C40 A04001A5 */ sb $zero, 0x1a5($v0)
/* 0FF254 80295C44 A04001ED */ sb $zero, 0x1ed($v0)
/* 0FF258 80295C48 A04001D5 */ sb $zero, 0x1d5($v0)
/* 0FF25C 80295C4C A44301BE */ sh $v1, 0x1be($v0)
/* 0FF260 80295C50 A44301A6 */ sh $v1, 0x1a6($v0)
/* 0FF264 80295C54 A44301EE */ sh $v1, 0x1ee($v0)
/* 0FF268 80295C58 A44301D6 */ sh $v1, 0x1d6($v0)
/* 0FF26C 80295C5C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0FF270 80295C60 27BD0020 */ addiu $sp, $sp, 0x20
/* 0FF274 80295C64 03E00008 */ jr $ra
/* 0FF278 80295C68 00000000 */ nop

View File

@ -216,6 +216,26 @@
#define CUP_COURSE_FOUR 3
#define NUM_COURSES_PER_CUP 4
/**
* Item IDs
**/
#define ITEM_NONE 0
#define ITEM_BANANA 1
#define ITEM_BANANA_BUNCH 2
#define ITEM_GREEN_SHELL 3
#define ITEM_TRIPLE_GREEN_SHELL 4
#define ITEM_RED_SHELL 5
#define ITEM_TRIPLE_RED_SHELL 6
#define ITEM_BLUE_SPINY_SHELL 7
#define ITEM_THUNDERBOLT 8
#define ITEM_FAKE_ITEM_BOX 9
#define ITEM_STAR 10
#define ITEM_BOO 11
#define ITEM_MUSHROOM 12
#define ITEM_DOUBLE_MUSHROOM 13
#define ITEM_TRIPLE_MUSHROOM 14
#define ITEM_SUPER_MUSHROOM 15
/**
* Max representable time, 100 minutes measured in centiseconds
*/

View File

@ -1,10 +1,39 @@
#include <ultra64.h>
#include <macros.h>
#include <common_structs.h>
#include <defines.h>
#include "framebuffers.h"
extern s32 D_800ED600, D_800ED608, D_800ED610, D_800ED618, D_800ED620, D_800ED628, D_800ED630;
extern s32 D_800DC52C;
extern s32 D_800DDB58[];
extern s32 D_800ED638;
extern s32 D_80164A28;
extern u16 D_800DC51C;
extern u16 D_8015F894;
extern Player *gPlayerOne;
extern Player *gPlayerTwo;
extern Player *gPlayerThree;
extern Player *gPlayerFour;
extern Player *gPlayerFive;
extern Player *gPlayerSix;
extern Player *gPlayerSeven;
extern Player *gPlayerEight;
extern Player *gPlayerOneCopy;
extern Camera *camera4;
extern void func_80020000(Player *, Camera *, u8, u8);
extern void func_80020F1C();
extern void func_80021244(Player *, u8, u8);
extern void func_80022BC4(Player*, s8, s32);
extern void func_80022DB4(Player*, s8, s32);
extern void func_800235AC(Player*, s8);
extern void func_80026A48(Player*, s8);
extern void func_80030A34(Player*);
extern void func_8006E744(Player *, u8, u8);
extern void func_8006E848(Player *, u8, u8);
extern void func_8006E8C4(Player *, u8, u8);
// Not yet implemented. Needs more work to match.
// Remove ifdef when matching.
@ -18,9 +47,6 @@ s32 D_800DDB58[] = {
};
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern u16 D_8015F894;
void func_8001F980(s32 *arg0, s32 *arg1) {
if ((D_800DC51C == 1) || (D_80164A28 != 0) || (D_8015F894 != 0)) {
@ -34,9 +60,6 @@ void func_8001F980(s32 *arg0, s32 *arg1) {
}
*arg1 = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_8001F980.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -801,16 +824,8 @@ void func_8002186C(void) {
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_8002186C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80020000(Player *, s32, ?, ?); // extern
? func_80020F1C(Player **, ?, ?); // extern
? func_80021244(Player *, ?, ?); // extern
? func_8006E744(Player *, ?, ?); // extern
extern s32 D_800DDB58;
void func_800219BC(void) {
D_800DDB58 = 0;
*D_800DDB58 = 0;
func_80020000(gPlayerOneCopy, camera4, 0, 3);
func_80020000(gPlayerTwo, camera4, 1, 3);
func_80020000(gPlayerThree, camera4, 2, 3);
@ -819,19 +834,16 @@ void func_800219BC(void) {
func_80021244(gPlayerTwo, 1, 3);
func_80021244(gPlayerThree, 2, 3);
func_80021244(gPlayerFour, 3, 3);
if (D_800DDB58 != 0) {
func_80020F1C(&gPlayerOneCopy, 0, 3);
if (*D_800DDB58 != 0) {
func_80020F1C();
} else {
func_8006E744(gPlayerOneCopy, 0, 3);
func_8006E744(gPlayerTwo, 1, 3);
func_8006E744(gPlayerThree, 2, 3);
func_8006E744(gPlayerFour, 3, 3);
}
D_800DDB58 = 0;
*D_800DDB58 = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_800219BC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -877,10 +889,6 @@ void func_80021B0C(void) {
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_80021B0C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8006E848(Player *, ?, ?); // extern
void func_80021C78(void) {
func_8006E848(gPlayerOneCopy, 0, 1);
func_8006E848(gPlayerTwo, 1, 1);
@ -893,13 +901,6 @@ void func_80021C78(void) {
func_8006E848(gPlayerEight, 7, 1);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_80021C78.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8006E8C4(Player *, ?, ?); // extern
void func_80021D40(void) {
func_8006E8C4(gPlayerOneCopy, 0, 2);
@ -907,9 +908,6 @@ void func_80021D40(void) {
func_8006E8C4(gPlayerThree, 2, 2);
func_8006E8C4(gPlayerFour, 3, 2);
}
#else
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_80021D40.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -1209,40 +1207,23 @@ void func_8002276C(void) {
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_8002276C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80022B50(void *, s8, s32); // extern
? func_80022BC4(void *, s8, s32); // extern
? func_80022DB4(void *, s8, s32); // extern
? func_800235AC(void *, s8); // extern
? func_80026A48(s8); // extern
? func_80030A34(void *); // extern
void func_80022A98(void *arg0, s8 arg1) {
s32 temp_v0;
s32 temp_v1;
if ((arg0->unk0 & 0x8000) == 0x8000) {
func_80026A48(arg1);
func_800235AC(arg0, arg1);
temp_v0 = arg0->unkBC;
temp_v1 = temp_v0 & 0x4000000;
if ((temp_v1 == 0x4000000) || ((temp_v0 & 0x8000000) == 0x8000000)) {
if (temp_v1 == 0x4000000) {
func_80022B50(arg0, arg1, 0x8000000);
void func_80022A98(Player* player, s8 arg1) {
if ((player->unk_000 & PLAYER_EXISTS) == PLAYER_EXISTS) {
func_80026A48(player, arg1);
func_800235AC(player, arg1);
if (((player->unk_0BC & 0x04000000) == 0x04000000) || ((player->unk_0BC & 0x08000000) == 0x08000000)) {
if ((player->unk_0BC & 0x04000000) == 0x04000000) {
func_80022B50(player, arg1, 0x08000000);
}
if ((arg0->unkBC & 0x8000000) == 0x8000000) {
func_80022BC4(arg0, arg1, 0x8000000);
if ((player->unk_0BC & 0x08000000) == 0x08000000) {
func_80022BC4(player, arg1, 0x08000000);
}
} else {
func_80022DB4(arg0, arg1, 0x8000000);
func_80022DB4(player, arg1, 0x08000000);
}
func_80030A34(arg0);
func_80030A34(player);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_8001F980/func_80022A98.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307

View File

@ -1,5 +1,6 @@
#include <ultra64.h>
#include <macros.h>
#include <common_structs.h>
#include <defines.h>
#include <types.h>
@ -14,6 +15,9 @@ extern u16 sRenderedFramebuffer;
extern uintptr_t *gPhysicalFramebuffers[];
extern uintptr_t gSegmentTable[];
extern void func_802AAAAC(Player *);
extern Player gPlayers[];
s32 func_80290C20(Camera *camera) {
if (camera->unk14 == 0) {
return 1;
@ -1070,8 +1074,8 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
gDPPipeSync(gDisplayListHead++);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
switch (sp22) {
case 1:
@ -1249,7 +1253,7 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
sp20 = temp_t0;
func_802911C4();
}
case 10:
if (temp_t0 != 2) {
func_80291198();
@ -1345,7 +1349,7 @@ extern Gfx choco_mountain_dls[];
void render_choco_mountain(struct UnkStruct_800DC5EC *arg0) {
s32 pad[13];
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
@ -1357,7 +1361,7 @@ void render_choco_mountain(struct UnkStruct_800DC5EC *arg0) {
gDPSetCycleType(gDisplayListHead++, G_CYC_2CYCLE);
gDPSetFogColor(gDisplayListHead++, D_801625EC, D_801625F4, D_801625F0, 0xFF);
gSPFogPosition(gDisplayListHead++, D_802B87B0, D_802B87B4);
gDPPipeSync(gDisplayListHead++);
gSPSetGeometryMode(gDisplayListHead++, G_FOG);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATERGB, G_CC_PASS2);
@ -1371,7 +1375,7 @@ void render_choco_mountain(struct UnkStruct_800DC5EC *arg0) {
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
load_surface_map(&choco_mountain_dls, arg0);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2);
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_PASS2);
@ -1402,7 +1406,7 @@ void render_bowsers_castle(struct UnkStruct_800DC5EC *arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
D_802B87BC++;
if (D_802B87BC > 255) {
D_802B87BC = 0;
@ -1429,9 +1433,9 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA);
gSPDisplayList(gDisplayListHead++, 0x07007228);
gSPFogPosition(gDisplayListHead++, D_802B87B0, D_802B87B4);
gDPPipeSync(gDisplayListHead++);
gSPClearGeometryMode(gDisplayListHead++, G_SHADE | G_CULL_BOTH | G_FOG |
@ -1538,7 +1542,7 @@ void render_royal_raceway(struct UnkStruct_800DC5EC *arg0) {
if (func_80290C20(arg0->camera) == 1) {
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
gSPDisplayList(gDisplayListHead++, 0x0700B030);
gSPDisplayList(gDisplayListHead++, 0x0700B030);
}
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
@ -1584,7 +1588,7 @@ void render_luigi_raceway(struct UnkStruct_800DC5EC *arg0) {
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
load_surface_map(&luigi_raceway_dls, arg0);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
gSPDisplayList(gDisplayListHead++, 0x070000E0);
gSPDisplayList(gDisplayListHead++, 0x07000068);
@ -1655,9 +1659,9 @@ void render_moo_moo_farm(struct UnkStruct_800DC5EC *arg0) {
gSPDisplayList(gDisplayListHead++, 0x07004DF8);
gSPDisplayList(gDisplayListHead++, 0x07005640);
gSPFogPosition(gDisplayListHead++, D_802B87B0, D_802B87B4);
load_surface_map(&moo_moo_farm_dls, arg0);
if ((temp_s0 < 14) && (temp_s0 > 10)) {
if ((temp_s1 == 2) || (temp_s1 == 3) || (temp_s1 == 1)) {
gSPDisplayList(gDisplayListHead++, D_06013FF8);
@ -1732,7 +1736,7 @@ void render_toads_turnpike(struct UnkStruct_800DC5EC *arg0) {
gSPSetGeometryMode(gDisplayListHead++, G_FOG);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEI, G_CC_PASS2);
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2);
load_surface_map(&toads_turnpike_dls, arg0);
gDPSetRenderMode(gDisplayListHead++, G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2);
@ -1922,7 +1926,7 @@ GLOBAL_ASM("asm/non_matchings/code_80290C20/render_wario_stadium.s")
#endif
void render_block_fort(struct UnkStruct_800DC5EC *arg0) {
func_802B5D64(&D_800DC610, D_802B87D4, 0, 1);
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
@ -1964,7 +1968,7 @@ extern s16 D_802B87D0;
extern Gfx dks_jungle_parkway_dls[];
void render_dks_jungle_parkway(struct UnkStruct_800DC5EC *arg0) {
func_802B5D64(&D_800DC610, D_802B87D4, 0, 1);
func_802B5D64(&D_800DC610[1], D_802B87D4, D_802B87D0, 1);
@ -1982,7 +1986,7 @@ void render_dks_jungle_parkway(struct UnkStruct_800DC5EC *arg0) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
load_surface_map(&dks_jungle_parkway_dls, arg0);
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
}
@ -2177,30 +2181,18 @@ void func_80295A38(struct UnkStruct_800DC5EC *arg0) {
GLOBAL_ASM("asm/non_matchings/code_80290C20/func_80295A38.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_802AAAAC(void *); // extern
extern ? gPlayers;
void func_80295BF8(s32 arg0) {
void *sp18;
void *temp_v0;
temp_v0 = (arg0 * 0xDD8) + &gPlayers;
sp18 = temp_v0;
func_802AAAAC(temp_v0 + 0x110);
temp_v0->unk1BD = 0;
temp_v0->unk1A5 = 0;
temp_v0->unk1ED = 0;
temp_v0->unk1D5 = 0;
temp_v0->unk1BE = 0x1388;
temp_v0->unk1A6 = 0x1388;
temp_v0->unk1EE = 0x1388;
temp_v0->unk1D6 = 0x1388;
void func_80295BF8(s32 playerIndex) {
Player* player = &gPlayers[playerIndex];
func_802AAAAC(&player->unk_110);
player->unk_1BD = 0;
player->unk_1A5 = 0;
player->unk_1ED = 0;
player->unk_1D5 = 0;
player->unk_1BE = 0x1388;
player->unk_1A6 = 0x1388;
player->unk_1EE = 0x1388;
player->unk_1D6 = 0x1388;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80290C20/func_80295BF8.s")
#endif
extern void func_802AF314(u16 *, s16 *, s16 *, s16 *);
@ -2620,4 +2612,4 @@ void func_802969F8(void) {
D_8015F8E4 = 0.0f;
break;
}
}
}