code_800AF9B0 - ghost data (#133)

* Match functions related to struct at D_8018EE10

* Remove asm for matched functions

* Match func_800B64EC, func_800B6708, and func_800B6798

* Match func_80091EE4. Fix unused variable warnings in code_80091750.c

* Name some of the fields in struct_8018EE10_entry
This commit is contained in:
ChiefFruitcake 2022-01-09 21:24:30 -05:00 committed by GitHub
parent 7acd1cbc20
commit bc99dedb8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 111 additions and 505 deletions

View File

@ -1,53 +0,0 @@
glabel func_80091EE4
/* 092AE4 80091EE4 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 092AE8 80091EE8 AFBF0024 */ sw $ra, 0x24($sp)
/* 092AEC 80091EEC 3C01800F */ lui $at, %hi(D_800E86F8) # $at, 0x800f
/* 092AF0 80091EF0 AFB30020 */ sw $s3, 0x20($sp)
/* 092AF4 80091EF4 AFB2001C */ sw $s2, 0x1c($sp)
/* 092AF8 80091EF8 AFB10018 */ sw $s1, 0x18($sp)
/* 092AFC 80091EFC AFB00014 */ sw $s0, 0x14($sp)
/* 092B00 80091F00 0C02D7CC */ jal func_800B5F30
/* 092B04 80091F04 A02086F8 */ sb $zero, %lo(D_800E86F8)($at)
/* 092B08 80091F08 3C138019 */ lui $s3, %hi(D_8018EDFB) # $s3, 0x8019
/* 092B0C 80091F0C 2673EDFB */ addiu $s3, %lo(D_8018EDFB) # addiu $s3, $s3, -0x1205
/* 092B10 80091F10 826E0000 */ lb $t6, ($s3)
/* 092B14 80091F14 51C0001D */ beql $t6, $zero, .L80091F8C
/* 092B18 80091F18 8FBF0024 */ lw $ra, 0x24($sp)
/* 092B1C 80091F1C 1440001A */ bnez $v0, .L80091F88
/* 092B20 80091F20 3C0F8019 */ lui $t7, %hi(gCupSelection) # $t7, 0x8019
/* 092B24 80091F24 81EFEE09 */ lb $t7, %lo(gCupSelection)($t7)
/* 092B28 80091F28 3C198019 */ lui $t9, %hi(gCupCourseSelection) # $t9, 0x8019
/* 092B2C 80091F2C 8339EE0B */ lb $t9, %lo(gCupCourseSelection)($t9)
/* 092B30 80091F30 000FC080 */ sll $t8, $t7, 2
/* 092B34 80091F34 0C02D9C2 */ jal func_800B6708
/* 092B38 80091F38 03199021 */ addu $s2, $t8, $t9
/* 092B3C 80091F3C 3C118019 */ lui $s1, %hi(D_8018EE10) # $s1, 0x8019
/* 092B40 80091F40 2631EE10 */ addiu $s1, %lo(D_8018EE10) # addiu $s1, $s1, -0x11f0
/* 092B44 80091F44 00008025 */ move $s0, $zero
/* 092B48 80091F48 001041C0 */ sll $t0, $s0, 7
.L80091F4C:
/* 092B4C 80091F4C 02281021 */ addu $v0, $s1, $t0
/* 092B50 80091F50 90490004 */ lbu $t1, 4($v0)
/* 092B54 80091F54 51200009 */ beql $t1, $zero, .L80091F7C
/* 092B58 80091F58 26100001 */ addiu $s0, $s0, 1
/* 092B5C 80091F5C 804A0005 */ lb $t2, 5($v0)
/* 092B60 80091F60 564A0006 */ bnel $s2, $t2, .L80091F7C
/* 092B64 80091F64 26100001 */ addiu $s0, $s0, 1
/* 092B68 80091F68 0C02D93B */ jal func_800B64EC
/* 092B6C 80091F6C 02002025 */ move $a0, $s0
/* 092B70 80091F70 24100002 */ li $s0, 2
/* 092B74 80091F74 A2600000 */ sb $zero, ($s3)
/* 092B78 80091F78 26100001 */ addiu $s0, $s0, 1
.L80091F7C:
/* 092B7C 80091F7C 2A010002 */ slti $at, $s0, 2
/* 092B80 80091F80 5420FFF2 */ bnel $at, $zero, .L80091F4C
/* 092B84 80091F84 001041C0 */ sll $t0, $s0, 7
.L80091F88:
/* 092B88 80091F88 8FBF0024 */ lw $ra, 0x24($sp)
.L80091F8C:
/* 092B8C 80091F8C 8FB00014 */ lw $s0, 0x14($sp)
/* 092B90 80091F90 8FB10018 */ lw $s1, 0x18($sp)
/* 092B94 80091F94 8FB2001C */ lw $s2, 0x1c($sp)
/* 092B98 80091F98 8FB30020 */ lw $s3, 0x20($sp)
/* 092B9C 80091F9C 03E00008 */ jr $ra
/* 092BA0 80091FA0 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,26 +0,0 @@
glabel func_800B6348
/* 0B6F48 800B6348 3C028019 */ lui $v0, %hi(D_8018EE10) # $v0, 0x8019
/* 0B6F4C 800B634C 2442EE10 */ addiu $v0, %lo(D_8018EE10) # addiu $v0, $v0, -0x11f0
/* 0B6F50 800B6350 904E0004 */ lbu $t6, 4($v0)
/* 0B6F54 800B6354 51C00007 */ beql $t6, $zero, .L800B6374
/* 0B6F58 800B6358 90580084 */ lbu $t8, 0x84($v0)
/* 0B6F5C 800B635C 804F0005 */ lb $t7, 5($v0)
/* 0B6F60 800B6360 548F0004 */ bnel $a0, $t7, .L800B6374
/* 0B6F64 800B6364 90580084 */ lbu $t8, 0x84($v0)
/* 0B6F68 800B6368 03E00008 */ jr $ra
/* 0B6F6C 800B636C 00001025 */ move $v0, $zero
/* 0B6F70 800B6370 90580084 */ lbu $t8, 0x84($v0)
.L800B6374:
/* 0B6F74 800B6374 53000007 */ beql $t8, $zero, .L800B6394
/* 0B6F78 800B6378 00001025 */ move $v0, $zero
/* 0B6F7C 800B637C 80590085 */ lb $t9, 0x85($v0)
/* 0B6F80 800B6380 54990004 */ bnel $a0, $t9, .L800B6394
/* 0B6F84 800B6384 00001025 */ move $v0, $zero
/* 0B6F88 800B6388 03E00008 */ jr $ra
/* 0B6F8C 800B638C 24020001 */ li $v0, 1
/* 0B6F90 800B6390 00001025 */ move $v0, $zero
.L800B6394:
/* 0B6F94 800B6394 03E00008 */ jr $ra
/* 0B6F98 800B6398 00000000 */ nop

View File

@ -1,26 +0,0 @@
glabel func_800B639C
/* 0B6F9C 800B639C 3C028019 */ lui $v0, %hi(D_8018EE10) # $v0, 0x8019
/* 0B6FA0 800B63A0 2442EE10 */ addiu $v0, %lo(D_8018EE10) # addiu $v0, $v0, -0x11f0
/* 0B6FA4 800B63A4 904E0004 */ lbu $t6, 4($v0)
/* 0B6FA8 800B63A8 51C00007 */ beql $t6, $zero, .L800B63C8
/* 0B6FAC 800B63AC 90580084 */ lbu $t8, 0x84($v0)
/* 0B6FB0 800B63B0 804F0005 */ lb $t7, 5($v0)
/* 0B6FB4 800B63B4 548F0004 */ bnel $a0, $t7, .L800B63C8
/* 0B6FB8 800B63B8 90580084 */ lbu $t8, 0x84($v0)
/* 0B6FBC 800B63BC 03E00008 */ jr $ra
/* 0B6FC0 800B63C0 00001025 */ move $v0, $zero
/* 0B6FC4 800B63C4 90580084 */ lbu $t8, 0x84($v0)
.L800B63C8:
/* 0B6FC8 800B63C8 53000007 */ beql $t8, $zero, .L800B63E8
/* 0B6FCC 800B63CC 2402FFFF */ li $v0, -1
/* 0B6FD0 800B63D0 80590085 */ lb $t9, 0x85($v0)
/* 0B6FD4 800B63D4 54990004 */ bnel $a0, $t9, .L800B63E8
/* 0B6FD8 800B63D8 2402FFFF */ li $v0, -1
/* 0B6FDC 800B63DC 03E00008 */ jr $ra
/* 0B6FE0 800B63E0 24020001 */ li $v0, 1
/* 0B6FE4 800B63E4 2402FFFF */ li $v0, -1
.L800B63E8:
/* 0B6FE8 800B63E8 03E00008 */ jr $ra
/* 0B6FEC 800B63EC 00000000 */ nop

View File

@ -1,69 +0,0 @@
glabel func_800B63F0
/* 0B6FF0 800B63F0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0B6FF4 800B63F4 AFBF0024 */ sw $ra, 0x24($sp)
/* 0B6FF8 800B63F8 AFB00014 */ sw $s0, 0x14($sp)
/* 0B6FFC 800B63FC 00808025 */ move $s0, $a0
/* 0B7000 800B6400 AFB30020 */ sw $s3, 0x20($sp)
/* 0B7004 800B6404 AFB2001C */ sw $s2, 0x1c($sp)
/* 0B7008 800B6408 0C001471 */ jal func_800051C4
/* 0B700C 800B640C AFB10018 */ sw $s1, 0x18($sp)
/* 0B7010 800B6410 240E0001 */ li $t6, 1
/* 0B7014 800B6414 3C018016 */ lui $at, %hi(D_80162DD6) # $at, 0x8016
/* 0B7018 800B6418 3C04800E */ lui $a0, %hi(gPlayerThree) # $a0, 0x800e
/* 0B701C 800B641C A42E2DD6 */ sh $t6, %lo(D_80162DD6)($at)
/* 0B7020 800B6420 0C0016BA */ jal func_80005AE8
/* 0B7024 800B6424 8C84C4E4 */ lw $a0, %lo(gPlayerThree)($a0)
/* 0B7028 800B6428 3C188019 */ lui $t8, %hi(D_8018EE10) # $t8, 0x8019
/* 0B702C 800B642C 3C198019 */ lui $t9, %hi(gCupSelection) # $t9, 0x8019
/* 0B7030 800B6430 8339EE09 */ lb $t9, %lo(gCupSelection)($t9)
/* 0B7034 800B6434 2718EE10 */ addiu $t8, %lo(D_8018EE10) # addiu $t8, $t8, -0x11f0
/* 0B7038 800B6438 001079C0 */ sll $t7, $s0, 7
/* 0B703C 800B643C 3C098019 */ lui $t1, %hi(gCupCourseSelection) # $t1, 0x8019
/* 0B7040 800B6440 8129EE0B */ lb $t1, %lo(gCupCourseSelection)($t1)
/* 0B7044 800B6444 01F81021 */ addu $v0, $t7, $t8
/* 0B7048 800B6448 804B0005 */ lb $t3, 5($v0)
/* 0B704C 800B644C 00194080 */ sll $t0, $t9, 2
/* 0B7050 800B6450 01095021 */ addu $t2, $t0, $t1
/* 0B7054 800B6454 114B0003 */ beq $t2, $t3, .L800B6464
/* 0B7058 800B6458 00009825 */ move $s3, $zero
/* 0B705C 800B645C 1000001B */ b .L800B64CC
/* 0B7060 800B6460 24130002 */ li $s3, 2
.L800B6464:
/* 0B7064 800B6464 3C0C8016 */ lui $t4, %hi(D_80162DFC) # $t4, 0x8016
/* 0B7068 800B6468 8D8C2DFC */ lw $t4, %lo(D_80162DFC)($t4)
/* 0B706C 800B646C 8C4D0000 */ lw $t5, ($v0)
/* 0B7070 800B6470 3C0E8016 */ lui $t6, %hi(D_80162DE0) # $t6, 0x8016
/* 0B7074 800B6474 118D0003 */ beq $t4, $t5, .L800B6484
/* 0B7078 800B6478 00000000 */ nop
/* 0B707C 800B647C 10000013 */ b .L800B64CC
/* 0B7080 800B6480 24130003 */ li $s3, 3
.L800B6484:
/* 0B7084 800B6484 8DCE2DE0 */ lw $t6, %lo(D_80162DE0)($t6)
/* 0B7088 800B6488 904F0006 */ lbu $t7, 6($v0)
/* 0B708C 800B648C 00008025 */ move $s0, $zero
/* 0B7090 800B6490 00408825 */ move $s1, $v0
/* 0B7094 800B6494 11CF0003 */ beq $t6, $t7, .L800B64A4
/* 0B7098 800B6498 2412003C */ li $s2, 60
/* 0B709C 800B649C 1000000B */ b .L800B64CC
/* 0B70A0 800B64A0 24130004 */ li $s3, 4
.L800B64A4:
/* 0B70A4 800B64A4 0C02D83A */ jal func_800B60E8
/* 0B70A8 800B64A8 02002025 */ move $a0, $s0
/* 0B70AC 800B64AC 92380007 */ lbu $t8, 7($s1)
/* 0B70B0 800B64B0 26100001 */ addiu $s0, $s0, 1
/* 0B70B4 800B64B4 13020003 */ beq $t8, $v0, .L800B64C4
/* 0B70B8 800B64B8 00000000 */ nop
/* 0B70BC 800B64BC 10000003 */ b .L800B64CC
/* 0B70C0 800B64C0 24130001 */ li $s3, 1
.L800B64C4:
/* 0B70C4 800B64C4 1612FFF7 */ bne $s0, $s2, .L800B64A4
/* 0B70C8 800B64C8 26310001 */ addiu $s1, $s1, 1
.L800B64CC:
/* 0B70CC 800B64CC 8FBF0024 */ lw $ra, 0x24($sp)
/* 0B70D0 800B64D0 02601025 */ move $v0, $s3
/* 0B70D4 800B64D4 8FB30020 */ lw $s3, 0x20($sp)
/* 0B70D8 800B64D8 8FB00014 */ lw $s0, 0x14($sp)
/* 0B70DC 800B64DC 8FB10018 */ lw $s1, 0x18($sp)
/* 0B70E0 800B64E0 8FB2001C */ lw $s2, 0x1c($sp)
/* 0B70E4 800B64E4 03E00008 */ jr $ra
/* 0B70E8 800B64E8 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,73 +0,0 @@
glabel func_800B64EC
/* 0B70EC 800B64EC 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 0B70F0 800B64F0 AFB20024 */ sw $s2, 0x24($sp)
/* 0B70F4 800B64F4 00809025 */ move $s2, $a0
/* 0B70F8 800B64F8 AFBF002C */ sw $ra, 0x2c($sp)
/* 0B70FC 800B64FC AFB30028 */ sw $s3, 0x28($sp)
/* 0B7100 800B6500 AFB10020 */ sw $s1, 0x20($sp)
/* 0B7104 800B6504 10800006 */ beqz $a0, .L800B6520
/* 0B7108 800B6508 AFB0001C */ sw $s0, 0x1c($sp)
/* 0B710C 800B650C 24010001 */ li $at, 1
/* 0B7110 800B6510 50810004 */ beql $a0, $at, .L800B6524
/* 0B7114 800B6514 00123900 */ sll $a3, $s2, 4
/* 0B7118 800B6518 1000002F */ b .L800B65D8
/* 0B711C 800B651C 2402FFFF */ li $v0, -1
.L800B6520:
/* 0B7120 800B6520 00123900 */ sll $a3, $s2, 4
.L800B6524:
/* 0B7124 800B6524 3C0F800E */ lui $t7, %hi(D_800DC714) # $t7, 0x800e
/* 0B7128 800B6528 8DEFC714 */ lw $t7, %lo(D_800DC714)($t7)
/* 0B712C 800B652C 00F23823 */ subu $a3, $a3, $s2
/* 0B7130 800B6530 00073A80 */ sll $a3, $a3, 0xa
/* 0B7134 800B6534 3C048019 */ lui $a0, %hi(D_8018E868) # $a0, 0x8019
/* 0B7138 800B6538 3C058019 */ lui $a1, %hi(D_8018EB84) # $a1, 0x8019
/* 0B713C 800B653C 240E3C00 */ li $t6, 15360
/* 0B7140 800B6540 AFAE0010 */ sw $t6, 0x10($sp)
/* 0B7144 800B6544 8CA5EB84 */ lw $a1, %lo(D_8018EB84)($a1)
/* 0B7148 800B6548 2484E868 */ addiu $a0, %lo(D_8018E868) # addiu $a0, $a0, -0x1798
/* 0B714C 800B654C 24E70100 */ addiu $a3, $a3, 0x100
/* 0B7150 800B6550 00003025 */ move $a2, $zero
/* 0B7154 800B6554 0C0340F3 */ jal osPfsReadWriteFile
/* 0B7158 800B6558 AFAF0014 */ sw $t7, 0x14($sp)
/* 0B715C 800B655C 1440001D */ bnez $v0, .L800B65D4
/* 0B7160 800B6560 AFA20030 */ sw $v0, 0x30($sp)
/* 0B7164 800B6564 3C198019 */ lui $t9, %hi(D_8018EE10) # $t9, 0x8019
/* 0B7168 800B6568 2739EE10 */ addiu $t9, %lo(D_8018EE10) # addiu $t9, $t9, -0x11f0
/* 0B716C 800B656C 0012C1C0 */ sll $t8, $s2, 7
/* 0B7170 800B6570 03199821 */ addu $s3, $t8, $t9
/* 0B7174 800B6574 02608825 */ move $s1, $s3
/* 0B7178 800B6578 2412003C */ li $s2, 60
/* 0B717C 800B657C 00008025 */ move $s0, $zero
.L800B6580:
/* 0B7180 800B6580 0C02D83A */ jal func_800B60E8
/* 0B7184 800B6584 02002025 */ move $a0, $s0
/* 0B7188 800B6588 92280007 */ lbu $t0, 7($s1)
/* 0B718C 800B658C 26100001 */ addiu $s0, $s0, 1
/* 0B7190 800B6590 11020004 */ beq $t0, $v0, .L800B65A4
/* 0B7194 800B6594 00000000 */ nop
/* 0B7198 800B6598 A2600004 */ sb $zero, 4($s3)
/* 0B719C 800B659C 1000000E */ b .L800B65D8
/* 0B71A0 800B65A0 2402FFFE */ li $v0, -2
.L800B65A4:
/* 0B71A4 800B65A4 1612FFF6 */ bne $s0, $s2, .L800B6580
/* 0B71A8 800B65A8 26310001 */ addiu $s1, $s1, 1
/* 0B71AC 800B65AC 0C00148B */ jal func_8000522C
/* 0B71B0 800B65B0 00000000 */ nop
/* 0B71B4 800B65B4 3C018016 */ lui $at, %hi(D_80162DD4) # $at, 0x8016
/* 0B71B8 800B65B8 A4202DD4 */ sh $zero, %lo(D_80162DD4)($at)
/* 0B71BC 800B65BC 92690006 */ lbu $t1, 6($s3)
/* 0B71C0 800B65C0 3C018016 */ lui $at, %hi(D_80162DE0) # $at, 0x8016
/* 0B71C4 800B65C4 AC292DE0 */ sw $t1, %lo(D_80162DE0)($at)
/* 0B71C8 800B65C8 8E6A0000 */ lw $t2, ($s3)
/* 0B71CC 800B65CC 3C018016 */ lui $at, %hi(D_80162DFC) # $at, 0x8016
/* 0B71D0 800B65D0 AC2A2DFC */ sw $t2, %lo(D_80162DFC)($at)
.L800B65D4:
/* 0B71D4 800B65D4 8FA20030 */ lw $v0, 0x30($sp)
.L800B65D8:
/* 0B71D8 800B65D8 8FBF002C */ lw $ra, 0x2c($sp)
/* 0B71DC 800B65DC 8FB0001C */ lw $s0, 0x1c($sp)
/* 0B71E0 800B65E0 8FB10020 */ lw $s1, 0x20($sp)
/* 0B71E4 800B65E4 8FB20024 */ lw $s2, 0x24($sp)
/* 0B71E8 800B65E8 8FB30028 */ lw $s3, 0x28($sp)
/* 0B71EC 800B65EC 03E00008 */ jr $ra
/* 0B71F0 800B65F0 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,39 +0,0 @@
glabel func_800B6708
/* 0B7308 800B6708 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0B730C 800B670C 3C0F8019 */ lui $t7, %hi(D_8018EE10) # $t7, 0x8019
/* 0B7310 800B6710 AFBF002C */ sw $ra, 0x2c($sp)
/* 0B7314 800B6714 25EFEE10 */ addiu $t7, %lo(D_8018EE10) # addiu $t7, $t7, -0x11f0
/* 0B7318 800B6718 3C048019 */ lui $a0, %hi(D_8018E868) # $a0, 0x8019
/* 0B731C 800B671C 3C058019 */ lui $a1, %hi(D_8018EB84) # $a1, 0x8019
/* 0B7320 800B6720 240E0100 */ li $t6, 256
/* 0B7324 800B6724 AFB20028 */ sw $s2, 0x28($sp)
/* 0B7328 800B6728 AFB10024 */ sw $s1, 0x24($sp)
/* 0B732C 800B672C AFB00020 */ sw $s0, 0x20($sp)
/* 0B7330 800B6730 AFAE0010 */ sw $t6, 0x10($sp)
/* 0B7334 800B6734 8CA5EB84 */ lw $a1, %lo(D_8018EB84)($a1)
/* 0B7338 800B6738 2484E868 */ addiu $a0, %lo(D_8018E868) # addiu $a0, $a0, -0x1798
/* 0B733C 800B673C AFAF0014 */ sw $t7, 0x14($sp)
/* 0B7340 800B6740 00003025 */ move $a2, $zero
/* 0B7344 800B6744 0C0340F3 */ jal osPfsReadWriteFile
/* 0B7348 800B6748 00003825 */ move $a3, $zero
/* 0B734C 800B674C 3C118019 */ lui $s1, %hi(D_8018EE10) # $s1, 0x8019
/* 0B7350 800B6750 2631EE10 */ addiu $s1, %lo(D_8018EE10) # addiu $s1, $s1, -0x11f0
/* 0B7354 800B6754 00008025 */ move $s0, $zero
/* 0B7358 800B6758 24120002 */ li $s2, 2
.L800B675C:
/* 0B735C 800B675C 0C02DA0A */ jal func_800B6828
/* 0B7360 800B6760 02002025 */ move $a0, $s0
/* 0B7364 800B6764 9238007F */ lbu $t8, 0x7f($s1)
/* 0B7368 800B6768 26100001 */ addiu $s0, $s0, 1
/* 0B736C 800B676C 13020002 */ beq $t8, $v0, .L800B6778
/* 0B7370 800B6770 00000000 */ nop
/* 0B7374 800B6774 A2200004 */ sb $zero, 4($s1)
.L800B6778:
/* 0B7378 800B6778 1612FFF8 */ bne $s0, $s2, .L800B675C
/* 0B737C 800B677C 26310080 */ addiu $s1, $s1, 0x80
/* 0B7380 800B6780 8FBF002C */ lw $ra, 0x2c($sp)
/* 0B7384 800B6784 8FB00020 */ lw $s0, 0x20($sp)
/* 0B7388 800B6788 8FB10024 */ lw $s1, 0x24($sp)
/* 0B738C 800B678C 8FB20028 */ lw $s2, 0x28($sp)
/* 0B7390 800B6790 03E00008 */ jr $ra
/* 0B7394 800B6794 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,39 +0,0 @@
glabel func_800B6798
/* 0B7398 800B6798 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0B739C 800B679C AFB20028 */ sw $s2, 0x28($sp)
/* 0B73A0 800B67A0 3C128019 */ lui $s2, %hi(D_8018D9C0) # $s2, 0x8019
/* 0B73A4 800B67A4 8E52D9C0 */ lw $s2, %lo(D_8018D9C0)($s2)
/* 0B73A8 800B67A8 AFBF002C */ sw $ra, 0x2c($sp)
/* 0B73AC 800B67AC 3C048019 */ lui $a0, %hi(D_8018E8D0) # $a0, 0x8019
/* 0B73B0 800B67B0 3C058019 */ lui $a1, %hi(D_8018EB88) # $a1, 0x8019
/* 0B73B4 800B67B4 240E0100 */ li $t6, 256
/* 0B73B8 800B67B8 AFB10024 */ sw $s1, 0x24($sp)
/* 0B73BC 800B67BC AFB00020 */ sw $s0, 0x20($sp)
/* 0B73C0 800B67C0 AFAE0010 */ sw $t6, 0x10($sp)
/* 0B73C4 800B67C4 8CA5EB88 */ lw $a1, %lo(D_8018EB88)($a1)
/* 0B73C8 800B67C8 2484E8D0 */ addiu $a0, %lo(D_8018E8D0) # addiu $a0, $a0, -0x1730
/* 0B73CC 800B67CC 00003025 */ move $a2, $zero
/* 0B73D0 800B67D0 00003825 */ move $a3, $zero
/* 0B73D4 800B67D4 0C0340F3 */ jal osPfsReadWriteFile
/* 0B73D8 800B67D8 AFB20014 */ sw $s2, 0x14($sp)
/* 0B73DC 800B67DC 00008025 */ move $s0, $zero
/* 0B73E0 800B67E0 24110002 */ li $s1, 2
.L800B67E4:
/* 0B73E4 800B67E4 0C02DA3D */ jal func_800B68F4
/* 0B73E8 800B67E8 02002025 */ move $a0, $s0
/* 0B73EC 800B67EC 001079C0 */ sll $t7, $s0, 7
/* 0B73F0 800B67F0 024F1821 */ addu $v1, $s2, $t7
/* 0B73F4 800B67F4 9078007F */ lbu $t8, 0x7f($v1)
/* 0B73F8 800B67F8 26100001 */ addiu $s0, $s0, 1
/* 0B73FC 800B67FC 13020002 */ beq $t8, $v0, .L800B6808
/* 0B7400 800B6800 00000000 */ nop
/* 0B7404 800B6804 A0600004 */ sb $zero, 4($v1)
.L800B6808:
/* 0B7408 800B6808 1611FFF6 */ bne $s0, $s1, .L800B67E4
/* 0B740C 800B680C 00000000 */ nop
/* 0B7410 800B6810 8FBF002C */ lw $ra, 0x2c($sp)
/* 0B7414 800B6814 8FB00020 */ lw $s0, 0x20($sp)
/* 0B7418 800B6818 8FB10024 */ lw $s1, 0x24($sp)
/* 0B741C 800B681C 8FB20028 */ lw $s2, 0x28($sp)
/* 0B7420 800B6820 03E00008 */ jr $ra
/* 0B7424 800B6824 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -401,8 +401,14 @@ typedef struct {
typedef struct
{
// Something related to time trial ghost data?
char unk_00[0x80];
} struct_8018EE10_entry;
/* 0x00 */ s32 unk_00;
/* 0x04 */ u8 ghostDataSaved;
/* 0x05 */ s8 courseIndex;
/* 0x06 */ u8 characterId;
/* 0x07 */ u8 unk_07;
/* 0x08 */ s8 unk_08[0x77];
/* 0x7F */ u8 checksum;
} struct_8018EE10_entry; // size = 0x80
typedef struct {
char unk_00[0x920];

View File

@ -371,44 +371,27 @@ extern OSMesgQueue gSIEventMesgQueue;
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80091D74.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_800B5F30(); // extern
? func_800B64EC(s32); // extern
? func_800B6708(); // extern
extern s8 D_800E86F8;
extern s8 D_8018EDFB;
extern ? D_8018EE10;
extern s8 gCupSelection;
void func_80091EE4(void) {
s32 temp_s0;
s32 temp_s2;
void *temp_v0;
s32 phi_s0;
s32 phi_s0_2;
s32 tmp;
D_800E86F8 = 0;
if ((D_8018EDFB != 0) && (func_800B5F30() == 0)) {
tmp = func_800B5F30();
if ((D_8018EDFB != 0) && (tmp == 0)) {
temp_s2 = (gCupSelection * 4) + gCupCourseSelection;
func_800B6708();
phi_s0 = 0;
do {
temp_v0 = &D_8018EE10 + (phi_s0 << 7);
phi_s0_2 = phi_s0;
if ((temp_v0->unk4 != 0) && (temp_s2 == temp_v0->unk5)) {
func_800B64EC(phi_s0);
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
if ((D_8018EE10[temp_s0].ghostDataSaved != 0) && (temp_s2 == D_8018EE10[temp_s0].courseIndex)) {
func_800B64EC(temp_s0);
temp_s0 = 2;
D_8018EDFB = 0;
phi_s0_2 = 2;
}
temp_s0 = phi_s0_2 + 1;
phi_s0 = temp_s0;
} while (temp_s0 < 2);
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80091EE4.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -9232,7 +9215,7 @@ void func_800A09E0(struct_8018D9E0_entry *arg0) {
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A09E0.s")
#endif
void func_800A0AD0(struct_8018D9E0_entry *unused) {
void func_800A0AD0(UNUSED struct_8018D9E0_entry *unused) {
struct_8018D9E0_entry *temp_t1;
// Find struct_8018D9E0_entry with a type/id of 0xDA
temp_t1 = func_800AAEF4(0xDA);
@ -12619,7 +12602,7 @@ void func_800A7258(struct_8018D9E0_entry *arg0) {
// Podium scene, top line
void func_800A72FC(struct_8018D9E0_entry *arg0) {
s32 pad;
UNUSED s32 pad;
s32 cupNameLength = (((f32) get_string_width(D_800E7500[gCupSelection]) * 1) + 10) / 2;
s32 ccNameLength = (((f32) get_string_width(D_800E76CC[gCCSelection]) * 1) + 10) / 2;
@ -12630,7 +12613,7 @@ void func_800A72FC(struct_8018D9E0_entry *arg0) {
}
void func_800A7448(struct_8018D9E0_entry *arg0) {
s32 pad;
UNUSED s32 pad;
s32 sp40;
s32 sp3C;
s32 thing = D_802874F5;
@ -12648,7 +12631,7 @@ void func_800A7448(struct_8018D9E0_entry *arg0) {
}
void func_800A75A0(struct_8018D9E0_entry *arg0) {
s32 pad;
UNUSED s32 pad;
s32 topThree;
if (D_802874F5 < 3) {
@ -13676,7 +13659,7 @@ void func_800A8CA4(void *arg0) {
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A8CA4.s")
#endif
void func_800A8E14(struct_8018D9E0_entry *unused) {
void func_800A8E14(UNUSED struct_8018D9E0_entry *unused) {
set_text_color(TEXT_YELLOW);
draw_text(0x98, 0x44, D_800E77A8, 0, 1.0f, 1.0f);
func_80093324(0x17, 0x58, D_800E77AC, 0, D_800F24A8, D_800F24AC);

View File

@ -3687,14 +3687,12 @@ s32 func_800B6014(void) {
return -1;
}
void func_800B6088(s32 arg0) {
s32 temp_t6;
u8* temp_v1;
s32 func_800B6088(s32 arg0) {
struct_8018EE10_entry* temp_v1;
temp_t6 = arg0 << 7;
temp_v1 = (u8*) &D_8018EE10 + temp_t6;
temp_v1[0x7F] = func_800B6828(); // compute checksum?
osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_WRITE, temp_t6, sizeof(struct_8018EE10_entry), temp_v1);
temp_v1 = &D_8018EE10[arg0];
temp_v1->checksum = func_800B6828(arg0);
return osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_WRITE, arg0 * 0x80 /* 0x80 == sizeof(struct_8018EE10_entry) */, sizeof(struct_8018EE10_entry), (u8*) temp_v1);
}
#ifdef MIPS_TO_C
@ -3826,141 +3824,97 @@ s32 func_800B6178(s32 arg0) {
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B6178.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern ? D_8018EE10;
? func_800B6348(s32 arg0) {
if ((D_8018EE10.unk4 != 0) && (arg0 == D_8018EE10.unk5)) {
s32 func_800B6348(s32 arg0) {
if ((D_8018EE10[0].ghostDataSaved != 0) && (arg0 == D_8018EE10[0].courseIndex)) {
return 0;
}
if ((D_8018EE10.unk84 != 0) && (arg0 == D_8018EE10.unk85)) {
if ((D_8018EE10[1].ghostDataSaved != 0) && (arg0 == D_8018EE10[1].courseIndex)) {
return 1;
}
return 0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B6348.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
extern ? D_8018EE10;
? func_800B639C(s32 arg0) {
if ((D_8018EE10.unk4 != 0) && (arg0 == D_8018EE10.unk5)) {
s32 func_800B639C(s32 arg0) {
if ((D_8018EE10[0].ghostDataSaved != 0) && (arg0 == D_8018EE10[0].courseIndex)) {
return 0;
}
if ((D_8018EE10.unk84 != 0) && (arg0 == D_8018EE10.unk85)) {
if ((D_8018EE10[1].ghostDataSaved != 0) && (arg0 == D_8018EE10[1].courseIndex)) {
return 1;
}
return -1;
}
#else
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B639C.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_800051C4(); // extern
? func_80005AE8(Player *); // extern
s32 func_800B60E8(s32); // extern
extern s16 D_80162DD6;
extern s32 D_80162DFC;
extern ? D_8018EE10;
extern s8 gCupSelection;
? func_800B63F0(s32 arg0) {
s32 func_800B63F0(s32 arg0) {
s32 temp_s0;
void *temp_v0;
s32 phi_s0;
void *phi_s1;
? phi_s3;
u8* phi_s1;
s32 phi_s3;
func_800051C4();
D_80162DD6 = 1;
func_80005AE8(gPlayerThree);
temp_v0 = (arg0 << 7) + &D_8018EE10;
phi_s3 = 0;
if (((gCupSelection * 4) + gCupCourseSelection) != temp_v0->unk5) {
if (((gCupSelection * 4) + gCupCourseSelection) != D_8018EE10[arg0].courseIndex) {
phi_s3 = 2;
} else if (D_80162DFC != temp_v0->unk0) {
} else if (D_80162DFC != D_8018EE10[arg0].unk_00) {
phi_s3 = 3;
} else {
phi_s0 = 0;
phi_s1 = temp_v0;
if (D_80162DE0 != temp_v0->unk6) {
if (D_80162DE0 != (u8) D_8018EE10[arg0].characterId) {
phi_s3 = 4;
} else {
loop_6:
temp_s0 = phi_s0 + 1;
phi_s0 = temp_s0;
if (phi_s1->unk7 != func_800B60E8(phi_s0)) {
phi_s3 = 1;
} else {
phi_s1 += 1;
if (temp_s0 != 0x3C) {
goto loop_6;
temp_s0 = 0;
phi_s1 = (u8*) &D_8018EE10[arg0];
while (temp_s0 < 0x3C)
{
if (phi_s1[7] != func_800B60E8(temp_s0)) {
phi_s3 = 1;
break;
}
++phi_s1;
++temp_s0;
}
}
}
return phi_s3;
}
#else
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B63F0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8000522C(); // extern
s32 func_800B60E8(s32); // extern
extern u8 *D_800DC714;
extern s32 D_80162DFC;
extern OSPfs D_8018E868;
extern s32 D_8018EB84;
extern ? D_8018EE10;
s32 func_800B64EC(s32 arg0) {
s32 sp30;
s32 temp_s0;
s32 temp_v0;
void *temp_s3;
s32 phi_s0;
void *phi_s1;
u8 *phi_s1;
if ((arg0 != 0) && (arg0 != 1)) {
if ((arg0 != 0) && (arg0 != 1))
{
return -1;
}
temp_v0 = osPfsReadWriteFile(&D_8018E868, D_8018EB84, 0, (arg0 * 0x3C00) + 0x100, 0x3C00, D_800DC714);
sp30 = temp_v0;
if (temp_v0 == 0) {
temp_s3 = (arg0 << 7) + &D_8018EE10;
phi_s0 = 0;
phi_s1 = temp_s3;
loop_5:
temp_s0 = phi_s0 + 1;
phi_s0 = temp_s0;
if (phi_s1->unk7 != func_800B60E8(phi_s0)) {
temp_s3->unk4 = 0;
return -2;
temp_v0 = osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_READ, (arg0 * 0x3C00) + 0x100, 0x3C00, (u8 *) D_800DC714);
if (temp_v0 == 0)
{
phi_s1 = (u8 *) &D_8018EE10[arg0]; temp_s0 = 0; while (1) {
if (phi_s1[7] != func_800B60E8(temp_s0)) {
D_8018EE10[arg0].ghostDataSaved = 0;
return -2;
}
++phi_s1;
if ((++temp_s0) == 0x3C) {
func_8000522C();
D_80162DD4[0] = 0;
D_80162DE0 = (s32) D_8018EE10[arg0].characterId;
D_80162DFC = D_8018EE10[arg0].unk_00;
break;
}
}
phi_s1 += 1;
if (temp_s0 == 0x3C) {
func_8000522C();
*D_80162DD4 = 0;
D_80162DE0 = temp_s3->unk6;
D_80162DFC = temp_s3->unk0;
goto block_9;
}
goto loop_5;
}
block_9:
return sp30;
return temp_v0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B64EC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -4012,62 +3966,35 @@ block_9:
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B65F4.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_800B6828(s32); // extern
extern OSPfs D_8018E868;
extern s32 D_8018EB84;
extern u8 D_8018EE10;
void func_800B6708(void) {
s32 temp_s0;
s32 phi_s0;
u8 *phi_s1;
osPfsReadWriteFile(&D_8018E868, D_8018EB84, 0, 0, 0x100, &D_8018EE10);
phi_s0 = 0;
phi_s1 = &D_8018EE10;
do {
temp_s0 = phi_s0 + 1;
phi_s0 = temp_s0;
if (phi_s1->unk7F != func_800B6828(phi_s0)) {
phi_s1->unk4 = 0;
osPfsReadWriteFile(&D_8018E868, D_8018EB84, PFS_READ, 0, 0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, (u8*) &D_8018EE10);
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
if (D_8018EE10[temp_s0].checksum != func_800B6828(temp_s0)) {
D_8018EE10[temp_s0].ghostDataSaved = 0;
}
phi_s1 += 0x80;
} while (temp_s0 != 2);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B6708.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 func_800B68F4(s32); // extern
extern u8 *D_8018D9C0;
extern OSPfs D_8018E8D0;
extern s32 D_8018EB88;
void func_800B6798(void) {
s32 temp_s0;
u8 *temp_s2;
void *temp_v1;
s32 phi_s0;
u8* tmp;
tmp = (u8*) D_8018D9C0;
temp_s2 = D_8018D9C0;
osPfsReadWriteFile(&D_8018E8D0, D_8018EB88, 0, 0, 0x100, temp_s2);
phi_s0 = 0;
do {
temp_v1 = temp_s2 + (phi_s0 << 7);
temp_s0 = phi_s0 + 1;
phi_s0 = temp_s0;
if (temp_v1->unk7F != func_800B68F4(phi_s0)) {
temp_v1->unk4 = 0;
osPfsReadWriteFile(&D_8018E8D0, D_8018EB88, PFS_READ, 0, 0x100 /* 2*sizeof(struct_8018EE10_entry) ? */, tmp);
for (temp_s0 = 0; temp_s0 < 2; ++temp_s0) {
// if (D_8018D9C0[temp_s0]->checksum != func_800B68F4(temp_s0)) {
// D_8018D9C0[temp_s0]->ghostDataSaved = 0;
// }
if ( ((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->checksum != func_800B68F4(temp_s0)) {
((struct_8018EE10_entry*) (tmp + (temp_s0 << 7)))->ghostDataSaved = 0;
}
} while (temp_s0 != 2);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B6798.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307

View File

@ -58,9 +58,17 @@ s32 validate_save_data_checksum_backup();
s32 func_800B5B2C(s32);
s32 func_800B5F30();
s32 func_800B6014();
u8 func_800B60E8(s32);
u8 func_800B6828(s32);
u8 func_800B68F4(s32);
void func_800B69BC(s32);
s32 func_800B6A68();
// staff_ghosts.c
s32 func_800051C4();
void func_8000522C();
void func_80005AE8(Player*);
// audio/external.c
void play_sound2(s32);
void func_800CA330(s32);
@ -82,6 +90,7 @@ extern s32 D_800DC540;
extern s16 gCurrentCourseId; // D_800DC5A0
extern s32 gIsMirrorMode; // D_800DC5F4
extern s16 gPlaceItemBoxes; // D_800DC638
extern u32* D_800DC714;
extern s8 gGameModeRowSelectionForNumPlayers[SELECTED_PLAYER_DEFINES_TOTAL]; // D_800E869B. 0-4 players, game type row selected for each player amoun
extern s8 gGameModeSubMenuRowSelectionForNumPlayers[SELECTED_PLAYER_DEFINES_TOTAL][MAX_NUM_MAIN_MENU_GAME_TYPES]; // D_800E869D. 0-4 players, 3 possible game types per player amouunt
extern s32 D_800E86A4;
@ -97,6 +106,10 @@ extern u8 D_800F2E60[];
extern u8 D_800F2E64;
extern u8 D_800F2E74;
extern OSMesgQueue gSIEventMesgQueue; // D_8014F0B8
extern u16 D_80162DD6;
extern s32 D_80162DE0;
extern s32 D_80162DFC;
extern struct_8018EE10_entry* D_8018D9C0;
extern s32 D_8018E7A8;
extern s8 D_8018E7B0;
extern OSPfs D_8018E868;
@ -106,6 +119,7 @@ extern s32 D_8018EB38[16];
extern s32 D_8018EB78;
extern s32 D_8018EB7C;
extern s32 D_8018EB84;
extern s32 D_8018EB88;
extern SaveData D_8018EB90;
extern union GrandPrixPointsUnion D_8018ED10; // Direct reference to the grandPrixPoints section of save data
extern u8 D_8018ED11;
@ -131,6 +145,7 @@ extern u8 gSoundMode; // D_8018EDF2
extern s8 D_8018EDF3;
extern s8 gTimeTrialDataCourseIndex; // D_8018EDF7
extern s8 gCourseRecordsMenuSelection; // D_8018EDF8
extern s8 D_8018EDFB;
extern s32 gMenuTimingCounter; // D_8018EE00
extern s8 gCupSelection; // D_8018EE09
extern s8 D_8018EE0A;