diff --git a/asm/non_matchings/save_data/func_800738A4.s b/asm/non_matchings/save_data/func_800738A4.s deleted file mode 100644 index 35d9b858..00000000 --- a/asm/non_matchings/save_data/func_800738A4.s +++ /dev/null @@ -1,250 +0,0 @@ -glabel func_800738A4 -/* 0744A4 800738A4 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0744A8 800738A8 AFB40028 */ sw $s4, 0x28($sp) -/* 0744AC 800738AC 0080A025 */ move $s4, $a0 -/* 0744B0 800738B0 AFBF002C */ sw $ra, 0x2c($sp) -/* 0744B4 800738B4 AFA50054 */ sw $a1, 0x54($sp) -/* 0744B8 800738B8 AFB30024 */ sw $s3, 0x24($sp) -/* 0744BC 800738BC AFB20020 */ sw $s2, 0x20($sp) -/* 0744C0 800738C0 AFB1001C */ sw $s1, 0x1c($sp) -/* 0744C4 800738C4 AFB00018 */ sw $s0, 0x18($sp) -/* 0744C8 800738C8 27A50044 */ addiu $a1, $sp, 0x44 -/* 0744CC 800738CC 0C01AC89 */ jal get_number_of_levels_and_worlds -/* 0744D0 800738D0 27A40048 */ addiu $a0, $sp, 0x48 -/* 0744D4 800738D4 8FAE0054 */ lw $t6, 0x54($sp) -/* 0744D8 800738D8 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 -/* 0744DC 800738DC AC2E41EC */ sw $t6, %lo(D_801241EC)($at) -/* 0744E0 800738E0 3C018012 */ lui $at, %hi(D_801241F0) # $at, 0x8012 -/* 0744E4 800738E4 AC2041F0 */ sw $zero, %lo(D_801241F0)($at) -/* 0744E8 800738E8 3C018012 */ lui $at, %hi(D_801241F4) # $at, 0x8012 -/* 0744EC 800738EC 240F0080 */ li $t7, 128 -/* 0744F0 800738F0 AC2F41F4 */ sw $t7, %lo(D_801241F4)($at) -/* 0744F4 800738F4 24040010 */ li $a0, 16 -/* 0744F8 800738F8 0C01CB8A */ jal func_80072E28 -/* 0744FC 800738FC 00002825 */ move $a1, $zero -/* 074500 80073900 8FB80048 */ lw $t8, 0x48($sp) -/* 074504 80073904 00009025 */ move $s2, $zero -/* 074508 80073908 1B000043 */ blez $t8, .L80073A18 -/* 07450C 8007390C 00008825 */ move $s1, $zero -.L80073910: -/* 074510 80073910 0C01AC53 */ jal func_8006B14C -/* 074514 80073914 02202025 */ move $a0, $s1 -/* 074518 80073918 1440003B */ bnez $v0, .L80073A08 -/* 07451C 8007391C 8FAF0048 */ lw $t7, 0x48($sp) -/* 074520 80073920 0C01AC3E */ jal get_map_available_vehicles -/* 074524 80073924 02202025 */ move $a0, $s1 -/* 074528 80073928 00029C00 */ sll $s3, $v0, 0x10 -/* 07452C 8007392C 0013CC03 */ sra $t9, $s3, 0x10 -/* 074530 80073930 304A0001 */ andi $t2, $v0, 1 -/* 074534 80073934 1140000E */ beqz $t2, .L80073970 -/* 074538 80073938 03209825 */ move $s3, $t9 -/* 07453C 8007393C 8E8B0024 */ lw $t3, 0x24($s4) -/* 074540 80073940 00118040 */ sll $s0, $s1, 1 -/* 074544 80073944 01706021 */ addu $t4, $t3, $s0 -/* 074548 80073948 95850000 */ lhu $a1, ($t4) -/* 07454C 8007394C 0C01CB8A */ jal func_80072E28 -/* 074550 80073950 24040010 */ li $a0, 16 -/* 074554 80073954 8E8D0018 */ lw $t5, 0x18($s4) -/* 074558 80073958 24040010 */ li $a0, 16 -/* 07455C 8007395C 01B07021 */ addu $t6, $t5, $s0 -/* 074560 80073960 95C50000 */ lhu $a1, ($t6) -/* 074564 80073964 0C01CB8A */ jal func_80072E28 -/* 074568 80073968 00000000 */ nop -/* 07456C 8007396C 26520001 */ addiu $s2, $s2, 1 -.L80073970: -/* 074570 80073970 326F0002 */ andi $t7, $s3, 2 -/* 074574 80073974 11E0000F */ beqz $t7, .L800739B4 -/* 074578 80073978 326A0004 */ andi $t2, $s3, 4 -/* 07457C 8007397C 8E980028 */ lw $t8, 0x28($s4) -/* 074580 80073980 00118040 */ sll $s0, $s1, 1 -/* 074584 80073984 0310C821 */ addu $t9, $t8, $s0 -/* 074588 80073988 97250000 */ lhu $a1, ($t9) -/* 07458C 8007398C 0C01CB8A */ jal func_80072E28 -/* 074590 80073990 24040010 */ li $a0, 16 -/* 074594 80073994 8E88001C */ lw $t0, 0x1c($s4) -/* 074598 80073998 24040010 */ li $a0, 16 -/* 07459C 8007399C 01104821 */ addu $t1, $t0, $s0 -/* 0745A0 800739A0 95250000 */ lhu $a1, ($t1) -/* 0745A4 800739A4 0C01CB8A */ jal func_80072E28 -/* 0745A8 800739A8 00000000 */ nop -/* 0745AC 800739AC 26520001 */ addiu $s2, $s2, 1 -/* 0745B0 800739B0 326A0004 */ andi $t2, $s3, 4 -.L800739B4: -/* 0745B4 800739B4 1140000F */ beqz $t2, .L800739F4 -/* 0745B8 800739B8 2A410030 */ slti $at, $s2, 0x30 -/* 0745BC 800739BC 8E8B002C */ lw $t3, 0x2c($s4) -/* 0745C0 800739C0 00118040 */ sll $s0, $s1, 1 -/* 0745C4 800739C4 01706021 */ addu $t4, $t3, $s0 -/* 0745C8 800739C8 95850000 */ lhu $a1, ($t4) -/* 0745CC 800739CC 0C01CB8A */ jal func_80072E28 -/* 0745D0 800739D0 24040010 */ li $a0, 16 -/* 0745D4 800739D4 8E8D0020 */ lw $t5, 0x20($s4) -/* 0745D8 800739D8 24040010 */ li $a0, 16 -/* 0745DC 800739DC 01B07021 */ addu $t6, $t5, $s0 -/* 0745E0 800739E0 95C50000 */ lhu $a1, ($t6) -/* 0745E4 800739E4 0C01CB8A */ jal func_80072E28 -/* 0745E8 800739E8 00000000 */ nop -/* 0745EC 800739EC 26520001 */ addiu $s2, $s2, 1 -/* 0745F0 800739F0 2A410030 */ slti $at, $s2, 0x30 -.L800739F4: -/* 0745F4 800739F4 14200004 */ bnez $at, .L80073A08 -/* 0745F8 800739F8 8FAF0048 */ lw $t7, 0x48($sp) -/* 0745FC 800739FC 10000007 */ b .L80073A1C -/* 074600 80073A00 8FB80054 */ lw $t8, 0x54($sp) -/* 074604 80073A04 8FAF0048 */ lw $t7, 0x48($sp) -.L80073A08: -/* 074608 80073A08 26310001 */ addiu $s1, $s1, 1 -/* 07460C 80073A0C 022F082A */ slt $at, $s1, $t7 -/* 074610 80073A10 1420FFBF */ bnez $at, .L80073910 -/* 074614 80073A14 00000000 */ nop -.L80073A18: -/* 074618 80073A18 8FB80054 */ lw $t8, 0x54($sp) -.L80073A1C: -/* 07461C 80073A1C 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 -/* 074620 80073A20 AC3841EC */ sw $t8, %lo(D_801241EC)($at) -/* 074624 80073A24 3C018012 */ lui $at, %hi(D_801241F0) # $at, 0x8012 -/* 074628 80073A28 AC2041F0 */ sw $zero, %lo(D_801241F0)($at) -/* 07462C 80073A2C 3C018012 */ lui $at, %hi(D_801241F4) # $at, 0x8012 -/* 074630 80073A30 24190080 */ li $t9, 128 -/* 074634 80073A34 AC3941F4 */ sw $t9, %lo(D_801241F4)($at) -/* 074638 80073A38 24110002 */ li $s1, 2 -/* 07463C 80073A3C 24030005 */ li $v1, 5 -/* 074640 80073A40 27020002 */ addiu $v0, $t8, 2 -.L80073A44: -/* 074644 80073A44 90480000 */ lbu $t0, ($v0) -/* 074648 80073A48 26310001 */ addiu $s1, $s1, 1 -/* 07464C 80073A4C 00681821 */ addu $v1, $v1, $t0 -/* 074650 80073A50 00034C00 */ sll $t1, $v1, 0x10 -/* 074654 80073A54 2A2100C0 */ slti $at, $s1, 0xc0 -/* 074658 80073A58 00095403 */ sra $t2, $t1, 0x10 -/* 07465C 80073A5C 24420001 */ addiu $v0, $v0, 1 -/* 074660 80073A60 1420FFF8 */ bnez $at, .L80073A44 -/* 074664 80073A64 01401825 */ move $v1, $t2 -/* 074668 80073A68 24040010 */ li $a0, 16 -/* 07466C 80073A6C 0C01CB8A */ jal func_80072E28 -/* 074670 80073A70 01402825 */ move $a1, $t2 -/* 074674 80073A74 8FB20054 */ lw $s2, 0x54($sp) -/* 074678 80073A78 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 -/* 07467C 80073A7C 265200C0 */ addiu $s2, $s2, 0xc0 -/* 074680 80073A80 AC3241EC */ sw $s2, %lo(D_801241EC)($at) -/* 074684 80073A84 3C018012 */ lui $at, %hi(D_801241F0) # $at, 0x8012 -/* 074688 80073A88 AC2041F0 */ sw $zero, %lo(D_801241F0)($at) -/* 07468C 80073A8C 3C018012 */ lui $at, %hi(D_801241F4) # $at, 0x8012 -/* 074690 80073A90 240B0080 */ li $t3, 128 -/* 074694 80073A94 AC2B41F4 */ sw $t3, %lo(D_801241F4)($at) -/* 074698 80073A98 24040010 */ li $a0, 16 -/* 07469C 80073A9C 0C01CB8A */ jal func_80072E28 -/* 0746A0 80073AA0 00002825 */ move $a1, $zero -/* 0746A4 80073AA4 8FAC0048 */ lw $t4, 0x48($sp) -/* 0746A8 80073AA8 00008825 */ move $s1, $zero -/* 0746AC 80073AAC 1980003B */ blez $t4, .L80073B9C -/* 0746B0 80073AB0 00000000 */ nop -.L80073AB4: -/* 0746B4 80073AB4 0C01AC53 */ jal func_8006B14C -/* 0746B8 80073AB8 02202025 */ move $a0, $s1 -/* 0746BC 80073ABC 14400033 */ bnez $v0, .L80073B8C -/* 0746C0 80073AC0 8FAB0048 */ lw $t3, 0x48($sp) -/* 0746C4 80073AC4 0C01AC3E */ jal get_map_available_vehicles -/* 0746C8 80073AC8 02202025 */ move $a0, $s1 -/* 0746CC 80073ACC 00029C00 */ sll $s3, $v0, 0x10 -/* 0746D0 80073AD0 00136C03 */ sra $t5, $s3, 0x10 -/* 0746D4 80073AD4 30590001 */ andi $t9, $v0, 1 -/* 0746D8 80073AD8 1320000D */ beqz $t9, .L80073B10 -/* 0746DC 80073ADC 01A09825 */ move $s3, $t5 -/* 0746E0 80073AE0 8E98003C */ lw $t8, 0x3c($s4) -/* 0746E4 80073AE4 00118040 */ sll $s0, $s1, 1 -/* 0746E8 80073AE8 03104021 */ addu $t0, $t8, $s0 -/* 0746EC 80073AEC 95050000 */ lhu $a1, ($t0) -/* 0746F0 80073AF0 0C01CB8A */ jal func_80072E28 -/* 0746F4 80073AF4 24040010 */ li $a0, 16 -/* 0746F8 80073AF8 8E890030 */ lw $t1, 0x30($s4) -/* 0746FC 80073AFC 24040010 */ li $a0, 16 -/* 074700 80073B00 01305021 */ addu $t2, $t1, $s0 -/* 074704 80073B04 95450000 */ lhu $a1, ($t2) -/* 074708 80073B08 0C01CB8A */ jal func_80072E28 -/* 07470C 80073B0C 00000000 */ nop -.L80073B10: -/* 074710 80073B10 326B0002 */ andi $t3, $s3, 2 -/* 074714 80073B14 1160000E */ beqz $t3, .L80073B50 -/* 074718 80073B18 32790004 */ andi $t9, $s3, 4 -/* 07471C 80073B1C 8E8C0040 */ lw $t4, 0x40($s4) -/* 074720 80073B20 00118040 */ sll $s0, $s1, 1 -/* 074724 80073B24 01906821 */ addu $t5, $t4, $s0 -/* 074728 80073B28 95A50000 */ lhu $a1, ($t5) -/* 07472C 80073B2C 0C01CB8A */ jal func_80072E28 -/* 074730 80073B30 24040010 */ li $a0, 16 -/* 074734 80073B34 8E8E0034 */ lw $t6, 0x34($s4) -/* 074738 80073B38 24040010 */ li $a0, 16 -/* 07473C 80073B3C 01D07821 */ addu $t7, $t6, $s0 -/* 074740 80073B40 95E50000 */ lhu $a1, ($t7) -/* 074744 80073B44 0C01CB8A */ jal func_80072E28 -/* 074748 80073B48 00000000 */ nop -/* 07474C 80073B4C 32790004 */ andi $t9, $s3, 4 -.L80073B50: -/* 074750 80073B50 1320000E */ beqz $t9, .L80073B8C -/* 074754 80073B54 8FAB0048 */ lw $t3, 0x48($sp) -/* 074758 80073B58 8E980044 */ lw $t8, 0x44($s4) -/* 07475C 80073B5C 00118040 */ sll $s0, $s1, 1 -/* 074760 80073B60 03104021 */ addu $t0, $t8, $s0 -/* 074764 80073B64 95050000 */ lhu $a1, ($t0) -/* 074768 80073B68 0C01CB8A */ jal func_80072E28 -/* 07476C 80073B6C 24040010 */ li $a0, 16 -/* 074770 80073B70 8E890038 */ lw $t1, 0x38($s4) -/* 074774 80073B74 24040010 */ li $a0, 16 -/* 074778 80073B78 01305021 */ addu $t2, $t1, $s0 -/* 07477C 80073B7C 95450000 */ lhu $a1, ($t2) -/* 074780 80073B80 0C01CB8A */ jal func_80072E28 -/* 074784 80073B84 00000000 */ nop -/* 074788 80073B88 8FAB0048 */ lw $t3, 0x48($sp) -.L80073B8C: -/* 07478C 80073B8C 26310001 */ addiu $s1, $s1, 1 -/* 074790 80073B90 022B082A */ slt $at, $s1, $t3 -/* 074794 80073B94 1420FFC7 */ bnez $at, .L80073AB4 -/* 074798 80073B98 00000000 */ nop -.L80073B9C: -/* 07479C 80073B9C 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 -/* 0747A0 80073BA0 AC3241EC */ sw $s2, %lo(D_801241EC)($at) -/* 0747A4 80073BA4 3C018012 */ lui $at, %hi(D_801241F0) # $at, 0x8012 -/* 0747A8 80073BA8 3C048012 */ lui $a0, %hi(D_801241EC) # $a0, 0x8012 -/* 0747AC 80073BAC 8C8441EC */ lw $a0, %lo(D_801241EC)($a0) -/* 0747B0 80073BB0 AC2041F0 */ sw $zero, %lo(D_801241F0)($at) -/* 0747B4 80073BB4 3C018012 */ lui $at, %hi(D_801241F4) # $at, 0x8012 -/* 0747B8 80073BB8 240C0080 */ li $t4, 128 -/* 0747BC 80073BBC AC2C41F4 */ sw $t4, %lo(D_801241F4)($at) -/* 0747C0 80073BC0 24850002 */ addiu $a1, $a0, 2 -/* 0747C4 80073BC4 90A30000 */ lbu $v1, ($a1) -/* 0747C8 80073BC8 90AF0001 */ lbu $t7, 1($a1) -/* 0747CC 80073BCC 246E0005 */ addiu $t6, $v1, 5 -/* 0747D0 80073BD0 01CF1821 */ addu $v1, $t6, $t7 -/* 0747D4 80073BD4 0003CC00 */ sll $t9, $v1, 0x10 -/* 0747D8 80073BD8 24820004 */ addiu $v0, $a0, 4 -/* 0747DC 80073BDC 240400C0 */ li $a0, 192 -/* 0747E0 80073BE0 00191C03 */ sra $v1, $t9, 0x10 -/* 0747E4 80073BE4 24110004 */ li $s1, 4 -.L80073BE8: -/* 0747E8 80073BE8 90480000 */ lbu $t0, ($v0) -/* 0747EC 80073BEC 904B0001 */ lbu $t3, 1($v0) -/* 0747F0 80073BF0 904E0002 */ lbu $t6, 2($v0) -/* 0747F4 80073BF4 00685021 */ addu $t2, $v1, $t0 -/* 0747F8 80073BF8 90580003 */ lbu $t8, 3($v0) -/* 0747FC 80073BFC 014B6821 */ addu $t5, $t2, $t3 -/* 074800 80073C00 01AEC821 */ addu $t9, $t5, $t6 -/* 074804 80073C04 03381821 */ addu $v1, $t9, $t8 -/* 074808 80073C08 00034400 */ sll $t0, $v1, 0x10 -/* 07480C 80073C0C 00084C03 */ sra $t1, $t0, 0x10 -/* 074810 80073C10 26310004 */ addiu $s1, $s1, 4 -/* 074814 80073C14 01201825 */ move $v1, $t1 -/* 074818 80073C18 1624FFF3 */ bne $s1, $a0, .L80073BE8 -/* 07481C 80073C1C 24420004 */ addiu $v0, $v0, 4 -/* 074820 80073C20 24040010 */ li $a0, 16 -/* 074824 80073C24 0C01CB8A */ jal func_80072E28 -/* 074828 80073C28 01202825 */ move $a1, $t1 -/* 07482C 80073C2C 8FBF002C */ lw $ra, 0x2c($sp) -/* 074830 80073C30 8FB00018 */ lw $s0, 0x18($sp) -/* 074834 80073C34 8FB1001C */ lw $s1, 0x1c($sp) -/* 074838 80073C38 8FB20020 */ lw $s2, 0x20($sp) -/* 07483C 80073C3C 8FB30024 */ lw $s3, 0x24($sp) -/* 074840 80073C40 8FB40028 */ lw $s4, 0x28($sp) -/* 074844 80073C44 03E00008 */ jr $ra -/* 074848 80073C48 27BD0050 */ addiu $sp, $sp, 0x50 - diff --git a/asm/non_matchings/save_data/func_80074B34.s b/asm/non_matchings/save_data/func_80074B34.s index 5dcb1b68..8e267407 100644 --- a/asm/non_matchings/save_data/func_80074B34.s +++ b/asm/non_matchings/save_data/func_80074B34.s @@ -8,7 +8,7 @@ glabel func_80074B34 /* 07574C 80074B4C 0C01D637 */ jal get_si_device_status /* 075750 80074B50 AFA00040 */ sw $zero, 0x40($sp) /* 075754 80074B54 10400007 */ beqz $v0, .L80074B74 -/* 075758 80074B58 3C05800E */ lui $a1, %hi(D_800E773C) # $a1, 0x800e +/* 075758 80074B58 3C05800E */ lui $a1, %hi(sDKRacingGhosts) # $a1, 0x800e /* 07575C 80074B5C 8FA40058 */ lw $a0, 0x58($sp) /* 075760 80074B60 0C01D6BB */ jal start_reading_controller_data /* 075764 80074B64 AFA2004C */ sw $v0, 0x4c($sp) @@ -17,9 +17,9 @@ glabel func_80074B34 /* 075770 80074B70 8FBF001C */ lw $ra, 0x1c($sp) .L80074B74: /* 075774 80074B74 8FA20064 */ lw $v0, 0x64($sp) -/* 075778 80074B78 24A5773C */ addiu $a1, %lo(D_800E773C) # addiu $a1, $a1, 0x773c +/* 075778 80074B78 24A5773C */ addiu $a1, %lo(sDKRacingGhosts) # addiu $a1, $a1, 0x773c /* 07577C 80074B7C 10400006 */ beqz $v0, .L80074B98 -/* 075780 80074B80 3C06800E */ lui $a2, %hi(D_800E774C) # $a2, 0x800e +/* 075780 80074B80 3C06800E */ lui $a2, %hi(sDKRacingGhostFileExt) # $a2, 0x800e /* 075784 80074B84 8FAF0068 */ lw $t7, 0x68($sp) /* 075788 80074B88 240EFFFF */ li $t6, -1 /* 07578C 80074B8C 3418FFFF */ li $t8, 65535 @@ -27,7 +27,7 @@ glabel func_80074B34 /* 075794 80074B94 A4580000 */ sh $t8, ($v0) .L80074B98: /* 075798 80074B98 8FA40058 */ lw $a0, 0x58($sp) -/* 07579C 80074B9C 24C6774C */ addiu $a2, %lo(D_800E774C) # addiu $a2, $a2, 0x774c +/* 07579C 80074B9C 24C6774C */ addiu $a2, %lo(sDKRacingGhostFileExt) # addiu $a2, $a2, 0x774c /* 0757A0 80074BA0 0C01D93A */ jal get_file_number /* 0757A4 80074BA4 27A70048 */ addiu $a3, $sp, 0x48 /* 0757A8 80074BA8 144000A1 */ bnez $v0, .L80074E30 diff --git a/src/audio.c b/src/audio.c index d8413313..70a4b508 100644 --- a/src/audio.c +++ b/src/audio.c @@ -295,7 +295,7 @@ void handle_music_fade(u8 updateRate) { sMusicDelayTimer += updateRate; sMusicFadeVolume = ((f32)sMusicDelayTimer) / ((f32)sMusicDelayLength); - if ((f64)sMusicFadeVolume > 1.0f) { + if (sMusicFadeVolume > 1.0) { sMusicDelayTimer = 0; sMusicDelayLength = 0; sMusicFadeVolume = 1.0f; @@ -305,7 +305,7 @@ void handle_music_fade(u8 updateRate) { sMusicDelayTimer -= updateRate; sMusicFadeVolume = 1.0f - ((f32)sMusicDelayTimer) / ((f32)sMusicDelayLength); - if ((f64)sMusicFadeVolume < 0) { + if (sMusicFadeVolume < 0.0) { sMusicDelayTimer = 0; sMusicDelayLength = 0; sMusicFadeVolume = 0.0f; @@ -314,7 +314,6 @@ void handle_music_fade(u8 updateRate) { } if (D_800DC658 > 0) { - //reg_arg0 = updateRate; for (reg_s2 = 0; reg_s2 < D_800DC658;) { D_80115D48[reg_s2].unk2 -= updateRate; if (D_80115D48[reg_s2].unk2 <= 0) { @@ -327,7 +326,6 @@ void handle_music_fade(u8 updateRate) { D_80115D48[reg_s2].unk2 = D_80115D48[reg_s2 + 1].unk2; D_80115D48[reg_s2].unk4 = D_80115D48[reg_s2 + 1].unk4; j++; - //break; } j++; } else { diff --git a/src/object_functions.c b/src/object_functions.c index c75c682f..e21bdc76 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -4357,7 +4357,7 @@ void obj_loop_log(Object *obj, s32 updateRate) { obj->unk7C.word--; } } - obj->segment.trans.y_position -= (f64) (f32) obj->unk7C.word; + obj->segment.trans.y_position -= (f32) obj->unk7C.word * 1.0; if (obj->unk78 > 0) { obj->unk78 -= updateRate; if (obj->unk78 < 0) { diff --git a/src/save_data.c b/src/save_data.c index 5d6e5748..19f3bb6a 100644 --- a/src/save_data.c +++ b/src/save_data.c @@ -25,39 +25,41 @@ s32 D_800DE48C = 0; /************ .rodata ************/ -const char D_800E7590[] = "Region = %d loc = %x size = %x\t"; -const char D_800E75B4[] = "FREE"; -const char D_800E75BC[] = "ALLOCATED"; -const char D_800E75C8[] = "ALLOCATED,FIXED"; -const char D_800E75D8[] = "\n"; -const char D_800E75DC[] = "\n"; -const char D_800E75E0[] = "Region number = %d\t"; -const char D_800E75F4[] = "maxSlots = %d\t"; -const char D_800E7604[] = "slotsUsed = %d\t"; -const char D_800E7614[] = "loc = %x\t"; -const char D_800E7620[] = "size = %x\n"; -const char D_800E762C[] = "\n"; +UNUSED const char D_800E7590[] = "Region = %d loc = %x size = %x\t"; +UNUSED const char D_800E75B4[] = "FREE"; +UNUSED const char D_800E75BC[] = "ALLOCATED"; +UNUSED const char D_800E75C8[] = "ALLOCATED,FIXED"; +UNUSED const char D_800E75D8[] = "\n"; +UNUSED const char D_800E75DC[] = "\n"; +UNUSED const char D_800E75E0[] = "Region number = %d\t"; +UNUSED const char D_800E75F4[] = "maxSlots = %d\t"; +UNUSED const char D_800E7604[] = "slotsUsed = %d\t"; +UNUSED const char D_800E7614[] = "loc = %x\t"; +UNUSED const char D_800E7620[] = "size = %x\n"; +UNUSED const char D_800E762C[] = "\n"; -const char D_800E7630[] = "DKRACING-ADV"; -const char D_800E7640[] = "DKRACING-ADV"; -const char D_800E7650[] = "DKRACING-TIMES"; -const char D_800E7660[] = "DKRACING-TIMES"; -const char D_800E7670[] = "DKRACING-ADV"; -const char D_800E7680[] = "DKRACING-ADV"; -const char D_800E7690[] = "DKRACING-TIMES"; -const char D_800E76A0[] = "DKRACING-TIMES"; +// File Names +const char sDKRacingAdv1[] = "DKRACING-ADV"; +const char sDKRacingAdv2[] = "DKRACING-ADV"; +const char sDKRacingTimes1[] = "DKRACING-TIMES"; +const char sDKRacingTimes2[] = "DKRACING-TIMES"; +const char sDKRacingAdv3[] = "DKRACING-ADV"; +const char sDKRacingAdv4[] = "DKRACING-ADV"; +const char sDKRacingTimes3[] = "DKRACING-TIMES"; +const char sDKRacingTimes4[] = "DKRACING-TIMES"; -const char D_800E76B0[] = "WARNING : No Eprom\n"; -const char D_800E76C4[] = "WARNING : No Eprom\n"; -const char D_800E76D8[] = "WARNING : No Eprom\n"; -const char D_800E76EC[] = "WARNING : No Eprom\n"; -const char D_800E7700[] = "WARNING : No Eprom\n"; -const char D_800E7714[] = "WARNING : No Eprom\n"; -const char D_800E7728[] = "WARNING : No Eprom\n"; +UNUSED const char D_800E76B0[] = "WARNING : No Eprom\n"; +UNUSED const char D_800E76C4[] = "WARNING : No Eprom\n"; +UNUSED const char D_800E76D8[] = "WARNING : No Eprom\n"; +UNUSED const char D_800E76EC[] = "WARNING : No Eprom\n"; +UNUSED const char D_800E7700[] = "WARNING : No Eprom\n"; +UNUSED const char D_800E7714[] = "WARNING : No Eprom\n"; +UNUSED const char D_800E7728[] = "WARNING : No Eprom\n"; -const char D_800E773C[] = "DKRACING-GHOSTS"; // Used in func_80074B34 -const u8 D_800E774C[4] = { 0, 0, 0, 0 }; // Used in func_80074B34, but I'm confused to what this is for. -const char D_800E7750[] = "warning: corrupt ghost\n"; +const char sDKRacingGhosts[] = "DKRACING-GHOSTS"; +const char sDKRacingGhostFileExt[] = ""; + +UNUSED const char D_800E7750[] = "warning: corrupt ghost\n"; /*********************************/ @@ -526,7 +528,7 @@ void func_80073588(Settings *settings, u8 *saveData, u8 arg2) { D_801241F0 = 0; D_801241F4 = 0; for (i = 2, sum = 5; i < 192; i++) { - sum += (s16) D_801241EC[i]; + sum += D_801241EC[i]; } sum -= func_80072C54(16); if (sum == 0) { @@ -554,7 +556,6 @@ void func_80073588(Settings *settings, u8 *saveData, u8 arg2) { } } -#ifdef NON_EQUIVALENT void func_800738A4(Settings *settings, u8 *saveData) { s16 availableVehicles; s32 levelCount; @@ -563,85 +564,80 @@ void func_800738A4(Settings *settings, u8 *saveData) { s32 vehicleCount; s16 sum; - // Fakematch? - if (1) { - get_number_of_levels_and_worlds(&levelCount, &worldCount); - D_801241EC = saveData; - D_801241F0 = 0; - D_801241F4 = 128; - func_80072E28(16, 0); - for (vehicleCount = 0, i = 0; i < levelCount; i++) { - if (func_8006B14C(i) == 0) { - availableVehicles = get_map_available_vehicles(i); - // Car Available - if (availableVehicles & 1) { - func_80072E28(16, settings->flapTimesPtr[0][i]); - func_80072E28(16, settings->flapInitialsPtr[0][i]); - vehicleCount++; - } - // Hovercraft Available - if (availableVehicles & 2) { - func_80072E28(16, settings->flapTimesPtr[1][i]); - func_80072E28(16, settings->flapInitialsPtr[1][i]); - vehicleCount++; - } - // Plane Available - if (availableVehicles & 4) { - func_80072E28(16, settings->flapTimesPtr[2][i]); - func_80072E28(16, settings->flapInitialsPtr[2][i]); - vehicleCount++; - } - // How do we make the `b` instruction appear? - if (vehicleCount < 48) { - continue; - } else { - break; - } + get_number_of_levels_and_worlds(&levelCount, &worldCount); + D_801241EC = saveData; + D_801241F0 = 0; + D_801241F4 = 128; + func_80072E28(16, 0); + for (vehicleCount = 0, i = 0; i < levelCount; i++) { + if (func_8006B14C(i) == 0) { + availableVehicles = get_map_available_vehicles(i); + // Car Available + if (availableVehicles & 1) { + func_80072E28(16, settings->flapTimesPtr[0][i]); + func_80072E28(16, settings->flapInitialsPtr[0][i]); + vehicleCount++; + } + // Hovercraft Available + if (availableVehicles & 2) { + func_80072E28(16, settings->flapTimesPtr[1][i]); + func_80072E28(16, settings->flapInitialsPtr[1][i]); + vehicleCount++; + } + // Plane Available + if (availableVehicles & 4) { + func_80072E28(16, settings->flapTimesPtr[2][i]); + func_80072E28(16, settings->flapInitialsPtr[2][i]); + vehicleCount++; + } + if (vehicleCount >= 48) { + vehicleCount = 0; // Fakematch + break; } } - D_801241EC = saveData; - D_801241F0 = 0; - D_801241F4 = 128; - for (i = 2, sum = 5; i < 192; i++) { - sum += (s16) D_801241EC[i]; - } - func_80072E28(16, sum); - D_801241EC = saveData + 192; - D_801241F0 = 0; - D_801241F4 = 128; - func_80072E28(16, 0); - for (i = 0; i < levelCount; i++) { - if (func_8006B14C(i) == 0) { - availableVehicles = get_map_available_vehicles(i); - // Car Available - if (availableVehicles & 1) { - func_80072E28(16, settings->courseTimesPtr[0][i]); - func_80072E28(16, settings->courseInitialsPtr[0][i]); - } - // Hovercraft Available - if (availableVehicles & 2) { - func_80072E28(16, settings->courseTimesPtr[1][i]); - func_80072E28(16, settings->courseInitialsPtr[1][i]); - } - // Plane Available - if (availableVehicles & 4) { - func_80072E28(16, settings->courseTimesPtr[2][i]); - func_80072E28(16, settings->courseInitialsPtr[2][i]); - } - } - } - D_801241EC = saveData + 192; - D_801241F0 = 0; - D_801241F4 = 128; } + + if (vehicleCount) { } // Fakematch + + D_801241EC = saveData; + D_801241F0 = 0; + D_801241F4 = 128; + for (i = 2, sum = 5; i < 192; i++) { + sum += D_801241EC[i]; + } + func_80072E28(16, sum); + D_801241EC = saveData + 192; + D_801241F0 = 0; + D_801241F4 = 128; + func_80072E28(16, 0); + for (i = 0; i < levelCount; i++) { + if (func_8006B14C(i) == 0) { + availableVehicles = get_map_available_vehicles(i); + // Car Available + if (availableVehicles & 1) { + func_80072E28(16, settings->courseTimesPtr[0][i]); + func_80072E28(16, settings->courseInitialsPtr[0][i]); + } + // Hovercraft Available + if (availableVehicles & 2) { + func_80072E28(16, settings->courseTimesPtr[1][i]); + func_80072E28(16, settings->courseInitialsPtr[1][i]); + } + // Plane Available + if (availableVehicles & 4) { + func_80072E28(16, settings->courseTimesPtr[2][i]); + func_80072E28(16, settings->courseInitialsPtr[2][i]); + } + } + } + D_801241EC = saveData + 192; + D_801241F0 = 0; + D_801241F4 = 128; for (i = 2, sum = 5; i < 192; i++) { sum += D_801241EC[i]; } func_80072E28(16, sum); } -#else -GLOBAL_ASM("asm/non_matchings/save_data/func_800738A4.s") -#endif s32 get_game_data_file_size(void) { return 256; @@ -671,10 +667,10 @@ SIDeviceStatus get_file_extension(s32 controllerIndex, s32 fileType, char *fileE continue; } if (fileType == 3) { - if((func_800CE050((u8 *) fileNames[fileNum], (char *)D_800E7630, strlen((char *)D_800E7640)) != 0)) { + if((func_800CE050((u8 *) fileNames[fileNum], (char *) sDKRacingAdv1, strlen((char *) sDKRacingAdv2)) != 0)) { continue; } - } else if((func_800CE050((u8 *) fileNames[fileNum], (char *)D_800E7650, strlen((char *)D_800E7660)) != 0)) { + } else if((func_800CE050((u8 *) fileNames[fileNum], (char *) sDKRacingTimes1, strlen((char *) sDKRacingTimes2)) != 0)) { continue; } @@ -715,8 +711,7 @@ s32 read_game_data_from_controller_pak(s32 controllerIndex, char *fileExt, Setti start_reading_controller_data(controllerIndex); return (controllerIndex << 30) | ret; } - //D_800E7670 = "DKRACING-ADV" - ret = get_file_number(controllerIndex, (char *)D_800E7670, fileExt, &fileNumber); + ret = get_file_number(controllerIndex, (char *) sDKRacingAdv3, fileExt, &fileNumber); if (ret == CONTROLLER_PAK_GOOD) { ret = get_file_size(controllerIndex, fileNumber, &fileSize); if (fileSize == 0) { @@ -762,8 +757,7 @@ s32 write_game_data_to_controller_pak(s32 controllerIndex, Settings *arg1) { func_800732E8(arg1, gameData + 4); ret = get_file_extension(controllerIndex, 3, (char *)&fileExt); if (ret == CONTROLLER_PAK_GOOD) { - // D_800E7680 = DKRACING-ADV - ret = write_controller_pak_file(controllerIndex, -1, (char *) D_800E7680, (char *)&fileExt, gameData, fileSize); + ret = write_controller_pak_file(controllerIndex, -1, (char *) sDKRacingAdv4, (char *) &fileExt, gameData, fileSize); } free_from_memory_pool(gameData); if (ret != CONTROLLER_PAK_GOOD) { @@ -785,8 +779,7 @@ s32 read_time_data_from_controller_pak(s32 controllerIndex, char *fileExt, Setti return (controllerIndex << 30) | status; } - //D_800E7690 = DKRACING-TIMES - status = get_file_number(controllerIndex, (char *)D_800E7690, fileExt, &fileNumber); + status = get_file_number(controllerIndex, (char *) sDKRacingTimes3, fileExt, &fileNumber); if (status == CONTROLLER_PAK_GOOD) { status = get_file_size(controllerIndex, fileNumber, &fileSize); if (fileSize == 0) { @@ -830,8 +823,7 @@ s32 write_time_data_to_controller_pak(s32 controllerIndex, Settings *arg1) { func_800738A4(arg1, timeData + 4); ret = get_file_extension(controllerIndex, 4, (char *)&fileExt); if (ret == CONTROLLER_PAK_GOOD) { - //D_800E76A0 = DKRACING-TIMES - ret = write_controller_pak_file(controllerIndex, -1, (char *)D_800E76A0, (char *)&fileExt, timeData, fileSize); + ret = write_controller_pak_file(controllerIndex, -1, (char *) sDKRacingTimes4, (char *) &fileExt, timeData, fileSize); } free_from_memory_pool(timeData); if (ret != CONTROLLER_PAK_GOOD) { @@ -1180,9 +1172,7 @@ s32 func_80074B34(s32 controllerIndex, s16 levelId, s16 vehicleId, s16 *ghostCha *ghostTime = -1; *ghostCharacterId = -1; } - //D_800E773C = "DKRACING-GHOSTS" - //D_800E774C = "" - ret = get_file_number(controllerIndex, (char *) D_800E773C, (char *) D_800E774C, &fileNumber); + ret = get_file_number(controllerIndex, (char *) sDKRacingGhosts, (char *) sDKRacingGhostFileExt, &fileNumber); if (ret == CONTROLLER_PAK_GOOD) { fileData = allocate_from_main_pool_safe(GHSS_FILE_SIZE, COLOUR_TAG_BLACK); if (!(pfs[controllerIndex].status & PFS_INITIALIZED)) { @@ -1272,10 +1262,6 @@ loop_10: GLOBAL_ASM("asm/non_matchings/save_data/func_80074B34.s") #endif -GLOBAL_ASM("asm/non_matchings/save_data/func_80074EB8.s") -GLOBAL_ASM("asm/non_matchings/save_data/func_80075000.s") -GLOBAL_ASM("asm/non_matchings/save_data/func_800753D8.s") - typedef struct GhostHeaderAltUnk0 { u8 levelID; u8 vehicleID; // 0 = Car, 1 = Hovercraft, 2 = Plane @@ -1296,6 +1282,222 @@ typedef struct GhostHeaderAlt { }; } GhostHeaderAlt; +typedef struct GhostDataData { + s16 unk0; + s16 unk2; + u8 unk4; + u8 unk5; + s16 unk6; + s16 unk8; + s16 unkA; + u8 padB[10]; + s16 unk16; + s16 unk18; + s16 unk1A; +} GhostDataData; + +typedef struct GhostData { + /* 0x00 */ s32 headerId; + union { + /* 0x04 */ GhostHeader *ghostHeader; + /* 0x04 */ GhostDataData *ghostData; + }; + /* 0x08 */ u8 unk8_pad[0x14]; + /* 0x1C */ u8 unk1C; + /* 0x1E */ s16 unk1E; +} GhostData; + +GLOBAL_ASM("asm/non_matchings/save_data/func_80074EB8.s") + +#ifdef NON_EQUIVALENT +s32 func_80075000(s32 controllerIndex, s16 levelId, s16 vehicleId, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, GhostHeader *ghostData) { + GhostHeaderAlt *sp70; + s32 sp58; + s32 fileSize; + s32 fileNumber; + s32 ret; + s32 ghostIndex; + s32 i; + GhostHeader *ghostFileData; + GhostHeaderAlt *ghostFileDataAlt; + GhostData *fileData; + GhostData *fileDataToWrite; + + ret = get_si_device_status(controllerIndex); + if (ret != CONTROLLER_PAK_GOOD) { + start_reading_controller_data(controllerIndex); + return ret; + } + ret = get_file_number(controllerIndex, "DKRACING-GHOSTS", "", &fileNumber); + if (ret == CONTROLLER_PAK_CHANGED) { + start_reading_controller_data(controllerIndex); + return func_80074EB8(controllerIndex, levelId, vehicleId, ghostCharacterId, ghostTime, ghostNodeCount, &ghostData->unk0.levelID); + } + if (ret != CONTROLLER_PAK_GOOD) { + start_reading_controller_data(controllerIndex); + return ret; + } else { + ret = get_file_size(controllerIndex, fileNumber, &fileSize); + if (ret != CONTROLLER_PAK_GOOD) { + start_reading_controller_data(controllerIndex); + return ret; + } else { + fileData = allocate_from_main_pool_safe(fileSize + 0x100, COLOUR_TAG_BLACK); + ret = read_data_from_controller_pak(controllerIndex, fileNumber, fileData, fileSize); + start_reading_controller_data(controllerIndex); + if (ret != CONTROLLER_PAK_GOOD) { + free_from_memory_pool(fileData); + } else { + ret = CONTROLLER_PAK_BAD_DATA; + if (fileData->headerId == GHSS) { + ghostFileData = &fileData->ghostHeader; + ghostFileDataAlt = (GhostHeaderAlt *) &fileData->ghostHeader; + + for (i = 0, ghostIndex = -1; i < 6; i++) { + if (levelId == ghostFileDataAlt[i].unk0.levelID && vehicleId == ghostFileDataAlt[i].unk0.vehicleID) { + ghostIndex = i; + break; + } + } + + if ((ghostIndex != -1) && (fileData[ghostFileDataAlt[ghostIndex].unk2].ghostHeader->time < ghostTime)) { + ghostIndex = -2; + } + + if (ghostIndex == -1) { + ghostFileDataAlt = (GhostHeaderAlt *) &fileData->ghostHeader; + for (i = 0; i < 6; i++) { + if (ghostFileDataAlt[i].unk0.levelID == 0xFF) { + ghostIndex = i; + break; + } + } + } + if (ghostIndex == -2) { + ret = CONTROLLER_PAK_GOOD; + } else if (ghostIndex == -1) { + ret = CONTROLLER_PAK_UNK6; + } else { + sp58 = (0x1100 - ghostFileData[ghostIndex].nodeCount) + ghostFileData[ghostIndex].unk2; + fileDataToWrite = allocate_from_main_pool_safe(fileSize + 0x100, COLOUR_TAG_BLACK); + fileDataToWrite->headerId = GHSS; + sp70 = &fileDataToWrite->ghostHeader; + fileDataToWrite->unk1C = 0xFF; + fileDataToWrite->unk1E = (s16) (ghostFileData[3].unk2 + sp58); + for (i = 0; i < 6; i++) { + sp70[i].unk0.levelID = ghostFileData[i].unk0.levelID; + sp70[i].unk0.vehicleID = ghostFileData[i].unk0.vehicleID; + if (ghostIndex >= i) { + sp70[i].unk2 = ghostFileData[i].unk2; + } else { + sp70[i].unk2 = (ghostFileData[i].unk2 + sp58); + } + bcopy(&fileData[ghostFileData[i].unk2], &fileDataToWrite[sp70[i].unk2], ghostFileData[i].nodeCount - ghostFileData[i].unk2); + } + func_80074AA8((GhostHeader *) &fileDataToWrite[sp70[ghostIndex].unk2], ghostCharacterId, ghostTime, ghostNodeCount, &ghostData->unk0.levelID); + sp70[ghostIndex].unk0.levelID = levelId; + sp70[ghostIndex].unk0.vehicleID = vehicleId; + ret = write_controller_pak_file(controllerIndex, fileNumber, "DKRACING-GHOSTS", "", fileDataToWrite, fileSize); + free_from_memory_pool(fileDataToWrite); + } + } + free_from_memory_pool(fileData); + } + } + } + return ret; +} +#else +GLOBAL_ASM("asm/non_matchings/save_data/func_80075000.s") +#endif + + + +#ifdef NON_EQUIVALENT +//I give up. Ghost data structs have be beat for now. + +s32 func_800753D8(s32 controllerIndex, s32 arg1) { + GhostData *dataToWrite; + s32 fileNumber; + s32 fileLength; + u8 *sp28; + u8 *sp20; + s16 temp_t9_2; + s16 temp_t9_3; + s32 temp_a3; + s32 temp_t8; + s32 temp_t8_2; + s32 var_at; + s32 ret; + s32 var_v1_4; + GhostDataData *temp_t1; + GhostData *fileData; + GhostData *temp_v0_6; + u8 *temp_v1; + u8 temp_t2_2; + u8 temp_t3; + u8 temp_t7; + u8 temp_t7_2; + u8 temp_t8_3; + u8 temp_t8_4; + GhostDataData *temp_v0_5; + u8 *temp_v0_8; + GhostDataData *var_v0; + u8 *var_v0_2; + + ret = get_si_device_status(controllerIndex); + if (ret != CONTROLLER_PAK_GOOD) { + start_reading_controller_data(controllerIndex); + return ret; + } + ret = get_file_number(controllerIndex, "DKRACING-GHOSTS", "", &fileNumber); + if (ret == CONTROLLER_PAK_GOOD) { + ret = get_file_size(controllerIndex, fileNumber, &fileLength); + if (ret != CONTROLLER_PAK_GOOD) { + start_reading_controller_data(controllerIndex); + return ret; + } + fileData = (GhostData *)allocate_from_main_pool_safe(fileLength + 0x100, COLOUR_TAG_BLACK); + ret = read_data_from_controller_pak(controllerIndex, fileNumber, (u8 *)fileData, fileLength); + start_reading_controller_data(controllerIndex); + if (ret == CONTROLLER_PAK_GOOD) { + ret = CONTROLLER_PAK_BAD_DATA; + if (fileData->headerId == GHSS) { + temp_t8 = arg1 * 4; + temp_v0_5 = (GhostDataData *)&fileData[temp_t8]; + temp_a3 = temp_v0_5->unk6 - temp_v0_5->unkA; + temp_v0_6 = (GhostData *)allocate_from_main_pool_safe(fileLength + 0x100, COLOUR_TAG_BLACK); + temp_v1 = fileData->ghostHeader; + dataToWrite = temp_v0_6; + temp_t1 = &temp_v1[temp_t8]; + sp20 = temp_t1; + sp28 = temp_v1; + bcopy(fileData, temp_v0_6, temp_t1->unk2); + if (arg1 != 5) { + bcopy(&fileData[temp_t1->unk6], &(&dataToWrite[temp_t1->unk6])[temp_a3], fileData->ghostData->unk1A - temp_t1->unk6); + } + var_v0 = &dataToWrite[arg1].ghostData; + for (var_v1_4 = arg1; var_v1_4 < 6; var_v1_4++) { + var_v0[var_v1_4].unk2 = (var_v0[var_v1_4].unk6 + temp_a3); + var_v0[var_v1_4].unk18 = var_v0[var_v1_4].unk4; + var_v0[var_v1_4].unk1A = var_v0[var_v1_4].unk5; + } + dataToWrite->ghostData->unk1A = dataToWrite->ghostData->unk16; + ret = write_controller_pak_file(controllerIndex, fileNumber, "DKRACING-GHOSTS", "", (u8 *) dataToWrite, fileLength); + } + free_from_memory_pool(dataToWrite); + } + free_from_memory_pool(fileData); + } else { + start_reading_controller_data(controllerIndex); + } + + return ret; +} +#else +GLOBAL_ASM("asm/non_matchings/save_data/func_800753D8.s") +#endif + SIDeviceStatus func_800756D4(s32 controllerIndex, u8 *arg1, u8 *arg2, u8 *arg3, s16 *arg4) { s32 i; u8 *fileData; @@ -1324,7 +1526,7 @@ SIDeviceStatus func_800756D4(s32 controllerIndex, u8 *arg1, u8 *arg2, u8 *arg3, fileData = allocate_from_main_pool_safe(fileSize + 0x100, COLOUR_TAG_BLACK); ret = read_data_from_controller_pak(controllerIndex, fileNumber, (u8 *)fileData, fileSize); if (ret == CONTROLLER_PAK_GOOD) { - for (i = 0, var_s1 = (GhostHeaderAlt *)(&fileData[4]); i < 6; i++) { + for (i = 0, var_s1 = (GhostHeaderAlt *) (&fileData[4]); i < 6; i++) { if (var_s1[i].unk0.levelID != 0xFF) { if (calculate_ghost_header_checksum((GhostHeader *) &fileData[var_s1[i].unk2]) != ((GhostHeaderAlt*)&fileData[var_s1[i].unk2])->checksum) { ret = CONTROLLER_PAK_BAD_DATA; @@ -1333,7 +1535,7 @@ SIDeviceStatus func_800756D4(s32 controllerIndex, u8 *arg1, u8 *arg2, u8 *arg3, arg1[i] = var_s1[i].unk0.levelID; arg2[i] = var_s1[i].unk0.vehicleID; arg3[i] = fileData[var_s1[i].unk2+2]; - arg4[i] = ((GhostHeaderAlt*)&fileData[var_s1[i].unk2] + 1)->checksum; + arg4[i] = ((GhostHeaderAlt *) &fileData[var_s1[i].unk2] + 1)->checksum; } } } diff --git a/src/save_data.h b/src/save_data.h index 403eac0d..f6beaf81 100644 --- a/src/save_data.h +++ b/src/save_data.h @@ -86,11 +86,11 @@ void populate_settings_from_save_data(Settings *settings, u8 *saveData); s32 func_80074204(s32 saveFileNum, Settings *settings); void erase_save_file(s32 saveFileNum, Settings *settings); SIDeviceStatus func_800756D4(s32 controllerIndex, u8 *arg1, u8 *arg2, u8 *arg3, s16 *arg4); -SIDeviceStatus get_file_extension(s32 controllerIndex, s32 fileType, char *fileExt); //Non matching +SIDeviceStatus get_file_extension(s32 controllerIndex, s32 fileType, char *fileExt); void func_80073588(Settings *settings, u8 *saveData, u8 arg2); void func_800732E8(Settings *settings, u8 *saveData); - void func_800738A4(Settings *settings, u8 *saveData); + //Using some context, and best guesses, these could be the names of the variables s32 func_80074B34(s32 controllerIndex, s16 levelId, s16 vehicleId, s16 *ghostCharacterId, s16 *ghostTime, s16 *ghostNodeCount, GhostHeader *ghostData); //Non matching char *string_to_font_codes(char *inString, char *outString, s32 stringLength); diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index acc014a1..def16f45 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -1213,7 +1213,7 @@ s32 check_if_in_draw_range(Object *obj) { temp2 = viewDistance - fadeDist; if (temp2 > 0) { fadeDist = dist - fadeDist; - alpha = ((f64) (f32) (1.0f - (f64) ((fadeDist) / temp2)) * 255.0f); + alpha = ((f32) (1.0 - ((fadeDist) / temp2)) * 255.0); } if (alpha == 0) { alpha = 1; diff --git a/src/vehicle_tricky.c b/src/vehicle_tricky.c index b32d847a..c3314865 100644 --- a/src/vehicle_tricky.c +++ b/src/vehicle_tricky.c @@ -110,17 +110,15 @@ void update_tricky(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r racer->headAngle = sp52; obj->segment.unk38.byte.unk3B = sp56; obj->segment.animFrame = sp54; - if (racer->attackType != 0) { - if (obj->segment.unk38.byte.unk3B != 3) { - racer->unk1CD = obj->segment.unk38.byte.unk3B; - obj->segment.unk38.byte.unk3B = 3; - obj->segment.y_velocity += 7.5; - func_8005CB04(1); - play_sound_global(SOUND_EXPLOSION, NULL); - set_camera_shake(12.0f); - racer->velocity *= 0.3; - racer->unkC = 0.0f; - } + if ((racer->attackType != ATTACK_NONE) && (obj->segment.unk38.byte.unk3B != 3)) { + racer->unk1CD = obj->segment.unk38.byte.unk3B; + obj->segment.unk38.byte.unk3B = 3; + obj->segment.y_velocity += 7.5; + func_8005CB04(1); + play_sound_global(SOUND_EXPLOSION, NULL); + set_camera_shake(12.0f); + racer->velocity *= 0.3; + racer->unkC = 0.0f; } racer->attackType = ATTACK_NONE; if (racer->approachTarget != NULL) { @@ -135,7 +133,7 @@ void update_tricky(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r if (racer->velocity < -2.0) { obj->segment.unk38.byte.unk3B = 1; racer->unkC -= (racer->velocity * updateRateF) * 0.5; - } else if (racer->velocity < -0.1 || 0.1 < racer->velocity) { + } else if ((racer->velocity < -0.1) || (racer->velocity > 0.1)) { obj->segment.unk38.byte.unk3B = 2; racer->unkC -= (racer->velocity * updateRateF) * 2; } else {