From fca83853cdabab24f212ab73caf990df82bd077b Mon Sep 17 00:00:00 2001 From: David Benepe Date: Sun, 19 Jul 2020 02:41:07 -0500 Subject: [PATCH] Decompiled 11 functions in unknown_080500 --- .../unknown_080500/MenuAudioOptionsInit.s | 68 --- .../unknown_080500/MenuFileSelectInit.s | 79 ---- asm/non_matchings/unknown_080500/MenuInit.s | 2 +- .../unknown_080500/func_80081E54.s | 65 --- .../unknown_080500/func_800828B8.s | 86 ---- .../unknown_080500/func_80082FAC.s | 66 --- .../unknown_080500/func_800860A8.s | 78 --- .../unknown_080500/func_800874D0.s | 77 --- .../unknown_080500/func_800875E4.s | 64 --- .../unknown_080500/func_8008BFE8.s | 90 ---- .../unknown_080500/func_80094C14.s | 76 --- .../unknown_080500/func_8009BD5C.s | 67 --- include/structs.h | 2 +- score.sh | 2 +- src/mips1/unknown_080500.c | 447 ++++++++++++++++-- tools/python/score.py | 45 +- 16 files changed, 457 insertions(+), 857 deletions(-) delete mode 100644 asm/non_matchings/unknown_080500/MenuAudioOptionsInit.s delete mode 100644 asm/non_matchings/unknown_080500/MenuFileSelectInit.s delete mode 100644 asm/non_matchings/unknown_080500/func_80081E54.s delete mode 100644 asm/non_matchings/unknown_080500/func_800828B8.s delete mode 100644 asm/non_matchings/unknown_080500/func_80082FAC.s delete mode 100644 asm/non_matchings/unknown_080500/func_800860A8.s delete mode 100644 asm/non_matchings/unknown_080500/func_800874D0.s delete mode 100644 asm/non_matchings/unknown_080500/func_800875E4.s delete mode 100644 asm/non_matchings/unknown_080500/func_8008BFE8.s delete mode 100644 asm/non_matchings/unknown_080500/func_80094C14.s delete mode 100644 asm/non_matchings/unknown_080500/func_8009BD5C.s diff --git a/asm/non_matchings/unknown_080500/MenuAudioOptionsInit.s b/asm/non_matchings/unknown_080500/MenuAudioOptionsInit.s deleted file mode 100644 index 0fbddd23..00000000 --- a/asm/non_matchings/unknown_080500/MenuAudioOptionsInit.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel MenuAudioOptionsInit -/* 085354 80084754 3C018012 */ lui $at, %hi(D_80126C46) # $at, 0x8012 -/* 085358 80084758 A4206C46 */ sh $zero, %lo(D_80126C46)($at) -/* 08535C 8008475C 3C018012 */ lui $at, %hi(D_801263BC) # $at, 0x8012 -/* 085360 80084760 AC2063BC */ sw $zero, %lo(D_801263BC)($at) -/* 085364 80084764 3C01800E */ lui $at, %hi(D_800DF47C) # $at, 0x800e -/* 085368 80084768 AC20F47C */ sw $zero, %lo(D_800DF47C)($at) -/* 08536C 8008476C 3C018012 */ lui $at, %hi(D_801269FC) # $at, 0x8012 -/* 085370 80084770 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 085374 80084774 AC2069FC */ sw $zero, %lo(D_801269FC)($at) -/* 085378 80084778 AFBF0014 */ sw $ra, 0x14($sp) -/* 08537C 8008477C 3C018012 */ lui $at, %hi(D_801263D8) # $at, 0x8012 -/* 085380 80084780 240EFFFF */ li $t6, -1 -/* 085384 80084784 3C04800E */ lui $a0, %hi(D_800DFA2C) # $a0, 0x800e -/* 085388 80084788 AC2E63D8 */ sw $t6, %lo(D_801263D8)($at) -/* 08538C 8008478C 0C02719D */ jal func_8009C674 -/* 085390 80084790 2484FA2C */ addiu $a0, %lo(D_800DFA2C) # addiu $a0, $a0, -0x5d4 -/* 085394 80084794 3C04800E */ lui $a0, %hi(D_800DFA38) # $a0, 0x800e -/* 085398 80084798 0C027229 */ jal func_8009C8A4 -/* 08539C 8008479C 2484FA38 */ addiu $a0, %lo(D_800DFA38) # addiu $a0, $a0, -0x5c8 -/* 0853A0 800847A0 0C02392C */ jal func_8008E4B0 -/* 0853A4 800847A4 00000000 */ nop -/* 0853A8 800847A8 3C04800E */ lui $a0, %hi(D_800DF77C) # $a0, 0x800e -/* 0853AC 800847AC 0C030076 */ jal func_800C01D8 -/* 0853B0 800847B0 2484F77C */ addiu $a0, %lo(D_800DF77C) # addiu $a0, $a0, -0x884 -/* 0853B4 800847B4 0C01FFFB */ jal func_8007FFEC -/* 0853B8 800847B8 24040002 */ li $a0, 2 -/* 0853BC 800847BC 0C0006BF */ jal musicVolumeSliderPercentage -/* 0853C0 800847C0 00000000 */ nop -/* 0853C4 800847C4 3C01800E */ lui $at, %hi(D_800DFAC4) # $at, 0x800e -/* 0853C8 800847C8 0C000C5F */ jal sfxVolumeSliderPercentage -/* 0853CC 800847CC AC22FAC4 */ sw $v0, %lo(D_800DFAC4)($at) -/* 0853D0 800847D0 3C0F800E */ lui $t7, %hi(gActiveMagicCodes) # $t7, 0x800e -/* 0853D4 800847D4 8DEFFD98 */ lw $t7, %lo(gActiveMagicCodes)($t7) -/* 0853D8 800847D8 3C01800E */ lui $at, %hi(D_800DFAC0) # $at, 0x800e -/* 0853DC 800847DC 31F80040 */ andi $t8, $t7, 0x40 -/* 0853E0 800847E0 1300000E */ beqz $t8, .L8008481C -/* 0853E4 800847E4 AC22FAC0 */ sw $v0, %lo(D_800DFAC0)($at) -/* 0853E8 800847E8 3C198012 */ lui $t9, %hi(D_801269E0) # $t9, 0x8012 -/* 0853EC 800847EC 8F3969E0 */ lw $t9, %lo(D_801269E0)($t9) -/* 0853F0 800847F0 3C02800E */ lui $v0, %hi(D_800DFA3C) # $v0, 0x800e -/* 0853F4 800847F4 2442FA3C */ addiu $v0, %lo(D_800DFA3C) # addiu $v0, $v0, -0x5c4 -/* 0853F8 800847F8 240800D4 */ li $t0, 212 -/* 0853FC 800847FC A4480032 */ sh $t0, 0x32($v0) -/* 085400 80084800 24040020 */ li $a0, 32 -/* 085404 80084804 0C0002F8 */ jal func_80000BE0 -/* 085408 80084808 AC59006C */ sw $t9, 0x6c($v0) -/* 08540C 8008480C 24090005 */ li $t1, 5 -/* 085410 80084810 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 085414 80084814 10000009 */ b .L8008483C -/* 085418 80084818 AC2963E0 */ sw $t1, %lo(D_801263E0)($at) -.L8008481C: -/* 08541C 8008481C 3C02800E */ lui $v0, %hi(D_800DFA3C) # $v0, 0x800e -/* 085420 80084820 2442FA3C */ addiu $v0, %lo(D_800DFA3C) # addiu $v0, $v0, -0x5c4 -/* 085424 80084824 240A00C0 */ li $t2, 192 -/* 085428 80084828 AC40006C */ sw $zero, 0x6c($v0) -/* 08542C 8008482C A44A0032 */ sh $t2, 0x32($v0) -/* 085430 80084830 240B0004 */ li $t3, 4 -/* 085434 80084834 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 085438 80084838 AC2B63E0 */ sw $t3, %lo(D_801263E0)($at) -.L8008483C: -/* 08543C 8008483C 0C03105C */ jal func_800C4170 -/* 085440 80084840 24040002 */ li $a0, 2 -/* 085444 80084844 8FBF0014 */ lw $ra, 0x14($sp) -/* 085448 80084848 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08544C 8008484C 03E00008 */ jr $ra -/* 085450 80084850 00000000 */ nop - diff --git a/asm/non_matchings/unknown_080500/MenuFileSelectInit.s b/asm/non_matchings/unknown_080500/MenuFileSelectInit.s deleted file mode 100644 index 0b1bcf57..00000000 --- a/asm/non_matchings/unknown_080500/MenuFileSelectInit.s +++ /dev/null @@ -1,79 +0,0 @@ -glabel MenuFileSelectInit -/* 08D6FC 8008CAFC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 08D700 8008CB00 AFBF002C */ sw $ra, 0x2c($sp) -/* 08D704 8008CB04 AFB40028 */ sw $s4, 0x28($sp) -/* 08D708 8008CB08 AFB30024 */ sw $s3, 0x24($sp) -/* 08D70C 8008CB0C AFB20020 */ sw $s2, 0x20($sp) -/* 08D710 8008CB10 AFB1001C */ sw $s1, 0x1c($sp) -/* 08D714 8008CB14 AFB00018 */ sw $s0, 0x18($sp) -/* 08D718 8008CB18 27A40038 */ addiu $a0, $sp, 0x38 -/* 08D71C 8008CB1C 0C01AC89 */ jal func_8006B224 -/* 08D720 8008CB20 27A50034 */ addiu $a1, $sp, 0x34 -/* 08D724 8008CB24 3C04800E */ lui $a0, %hi(D_800E0398) # $a0, 0x800e -/* 08D728 8008CB28 0C02719D */ jal func_8009C674 -/* 08D72C 8008CB2C 24840398 */ addiu $a0, %lo(D_800E0398) # addiu $a0, $a0, 0x398 -/* 08D730 8008CB30 3C04800E */ lui $a0, %hi(D_800E03A4) # $a0, 0x800e -/* 08D734 8008CB34 0C027229 */ jal func_8009C8A4 -/* 08D738 8008CB38 248403A4 */ addiu $a0, %lo(D_800E03A4) # addiu $a0, $a0, 0x3a4 -/* 08D73C 8008CB3C 0C01FFFB */ jal func_8007FFEC -/* 08D740 8008CB40 24040006 */ li $a0, 6 -/* 08D744 8008CB44 0C01BAEA */ jal func_8006EBA8 -/* 08D748 8008CB48 00000000 */ nop -/* 08D74C 8008CB4C 240E0001 */ li $t6, 1 -/* 08D750 8008CB50 3C018012 */ lui $at, %hi(D_801263D8) # $at, 0x8012 -/* 08D754 8008CB54 AC2E63D8 */ sw $t6, %lo(D_801263D8)($at) -/* 08D758 8008CB58 3C01800E */ lui $at, %hi(gSaveFileIndex) # $at, 0x800e -/* 08D75C 8008CB5C AC20F4CC */ sw $zero, %lo(gSaveFileIndex)($at) -/* 08D760 8008CB60 3C01800E */ lui $at, %hi(D_800DF47C) # $at, 0x800e -/* 08D764 8008CB64 AC20F47C */ sw $zero, %lo(D_800DF47C)($at) -/* 08D768 8008CB68 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 08D76C 8008CB6C AC2063E0 */ sw $zero, %lo(D_801263E0)($at) -/* 08D770 8008CB70 3C018012 */ lui $at, %hi(D_801263BC) # $at, 0x8012 -/* 08D774 8008CB74 AC2063BC */ sw $zero, %lo(D_801263BC)($at) -/* 08D778 8008CB78 3C018012 */ lui $at, %hi(D_80126484) # $at, 0x8012 -/* 08D77C 8008CB7C AC206484 */ sw $zero, %lo(D_80126484)($at) -/* 08D780 8008CB80 3C018012 */ lui $at, %hi(D_80126488) # $at, 0x8012 -/* 08D784 8008CB84 AC206488 */ sw $zero, %lo(D_80126488)($at) -/* 08D788 8008CB88 3C018012 */ lui $at, %hi(D_80126CC0) # $at, 0x8012 -/* 08D78C 8008CB8C 3C04800E */ lui $a0, %hi(D_800DF77C) # $a0, 0x800e -/* 08D790 8008CB90 AC206CC0 */ sw $zero, %lo(D_80126CC0)($at) -/* 08D794 8008CB94 0C030076 */ jal func_800C01D8 -/* 08D798 8008CB98 2484F77C */ addiu $a0, %lo(D_800DF77C) # addiu $a0, $a0, -0x884 -/* 08D79C 8008CB9C 0C03105C */ jal func_800C4170 -/* 08D7A0 8008CBA0 24040002 */ li $a0, 2 -/* 08D7A4 8008CBA4 0C0002CD */ jal func_80000B34 -/* 08D7A8 8008CBA8 2404001A */ li $a0, 26 -/* 08D7AC 8008CBAC 3C13800E */ lui $s3, %hi(D_800DFDB4) # $s3, 0x800e -/* 08D7B0 8008CBB0 3C128012 */ lui $s2, %hi(D_801263B4) # $s2, 0x8012 -/* 08D7B4 8008CBB4 265263B4 */ addiu $s2, %lo(D_801263B4) # addiu $s2, $s2, 0x63b4 -/* 08D7B8 8008CBB8 2673FDB4 */ addiu $s3, %lo(D_800DFDB4) # addiu $s3, $s3, -0x24c -/* 08D7BC 8008CBBC 00008025 */ move $s0, $zero -/* 08D7C0 8008CBC0 2414000A */ li $s4, 10 -.L8008CBC4: -/* 08D7C4 8008CBC4 824F0000 */ lb $t7, ($s2) -/* 08D7C8 8008CBC8 0010C040 */ sll $t8, $s0, 1 -/* 08D7CC 8008CBCC 120F0007 */ beq $s0, $t7, .L8008CBEC -/* 08D7D0 8008CBD0 02788821 */ addu $s1, $s3, $t8 -/* 08D7D4 8008CBD4 92240000 */ lbu $a0, ($s1) -/* 08D7D8 8008CBD8 0C000445 */ jal func_80001114 -/* 08D7DC 8008CBDC 00000000 */ nop -/* 08D7E0 8008CBE0 92240001 */ lbu $a0, 1($s1) -/* 08D7E4 8008CBE4 0C000445 */ jal func_80001114 -/* 08D7E8 8008CBE8 00000000 */ nop -.L8008CBEC: -/* 08D7EC 8008CBEC 26100001 */ addiu $s0, $s0, 1 -/* 08D7F0 8008CBF0 1614FFF4 */ bne $s0, $s4, .L8008CBC4 -/* 08D7F4 8008CBF4 00000000 */ nop -/* 08D7F8 8008CBF8 0C000445 */ jal func_80001114 -/* 08D7FC 8008CBFC 24040006 */ li $a0, 6 -/* 08D800 8008CC00 0C0002C6 */ jal func_80000B18 -/* 08D804 8008CC04 00000000 */ nop -/* 08D808 8008CC08 8FBF002C */ lw $ra, 0x2c($sp) -/* 08D80C 8008CC0C 8FB00018 */ lw $s0, 0x18($sp) -/* 08D810 8008CC10 8FB1001C */ lw $s1, 0x1c($sp) -/* 08D814 8008CC14 8FB20020 */ lw $s2, 0x20($sp) -/* 08D818 8008CC18 8FB30024 */ lw $s3, 0x24($sp) -/* 08D81C 8008CC1C 8FB40028 */ lw $s4, 0x28($sp) -/* 08D820 8008CC20 03E00008 */ jr $ra -/* 08D824 8008CC24 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/unknown_080500/MenuInit.s b/asm/non_matchings/unknown_080500/MenuInit.s index 0da8254f..bff43ffc 100644 --- a/asm/non_matchings/unknown_080500/MenuInit.s +++ b/asm/non_matchings/unknown_080500/MenuInit.s @@ -68,7 +68,7 @@ glabel MenuInit /* 0820D8 800814D8 00000000 */ nop /* 0820DC 800814DC 1000002C */ b .L80081590 /* 0820E0 800814E0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0820E4 800814E4 0C0232BF */ jal MenuFileSelectInit +/* 0820E4 800814E4 0C0232BF */ jal menu_file_select_init /* 0820E8 800814E8 00000000 */ nop /* 0820EC 800814EC 10000028 */ b .L80081590 /* 0820F0 800814F0 8FBF0014 */ lw $ra, 0x14($sp) diff --git a/asm/non_matchings/unknown_080500/func_80081E54.s b/asm/non_matchings/unknown_080500/func_80081E54.s deleted file mode 100644 index 6e8c1082..00000000 --- a/asm/non_matchings/unknown_080500/func_80081E54.s +++ /dev/null @@ -1,65 +0,0 @@ -glabel func_80081E54 -/* 082A54 80081E54 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 082A58 80081E58 44810000 */ mtc1 $at, $f0 -/* 082A5C 80081E5C 44856000 */ mtc1 $a1, $f12 -/* 082A60 80081E60 3C01800E */ lui $at, %hi(D_800DF798) # $at, 0x800e -/* 082A64 80081E64 46006102 */ mul.s $f4, $f12, $f0 -/* 082A68 80081E68 AC24F798 */ sw $a0, %lo(D_800DF798)($at) -/* 082A6C 80081E6C 3C01800E */ lui $at, %hi(D_800DF794) # $at, 0x800e -/* 082A70 80081E70 AC20F794 */ sw $zero, %lo(D_800DF794)($at) -/* 082A74 80081E74 444EF800 */ cfc1 $t6, $31 -/* 082A78 80081E78 44867000 */ mtc1 $a2, $f14 -/* 082A7C 80081E7C 35C10003 */ ori $at, $t6, 3 -/* 082A80 80081E80 38210002 */ xori $at, $at, 2 -/* 082A84 80081E84 44C1F800 */ ctc1 $at, $31 -/* 082A88 80081E88 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 082A8C 80081E8C 460021A4 */ cvt.w.s $f6, $f4 -/* 082A90 80081E90 AFA70024 */ sw $a3, 0x24($sp) -/* 082A94 80081E94 44CEF800 */ ctc1 $t6, $31 -/* 082A98 80081E98 C7B00024 */ lwc1 $f16, 0x24($sp) -/* 082A9C 80081E9C 46007202 */ mul.s $f8, $f14, $f0 -/* 082AA0 80081EA0 440F3000 */ mfc1 $t7, $f6 -/* 082AA4 80081EA4 3C028012 */ lui $v0, %hi(D_80126858) # $v0, 0x8012 -/* 082AA8 80081EA8 24426858 */ addiu $v0, %lo(D_80126858) # addiu $v0, $v0, 0x6858 -/* 082AAC 80081EAC 4458F800 */ cfc1 $t8, $31 -/* 082AB0 80081EB0 AC4F0000 */ sw $t7, ($v0) -/* 082AB4 80081EB4 37010003 */ ori $at, $t8, 3 -/* 082AB8 80081EB8 38210002 */ xori $at, $at, 2 -/* 082ABC 80081EBC 44C1F800 */ ctc1 $at, $31 -/* 082AC0 80081EC0 3C018012 */ lui $at, %hi(D_8012685C) # $at, 0x8012 -/* 082AC4 80081EC4 460042A4 */ cvt.w.s $f10, $f8 -/* 082AC8 80081EC8 8FAA0028 */ lw $t2, 0x28($sp) -/* 082ACC 80081ECC 44D8F800 */ ctc1 $t8, $31 -/* 082AD0 80081ED0 44195000 */ mfc1 $t9, $f10 -/* 082AD4 80081ED4 46008482 */ mul.s $f18, $f16, $f0 -/* 082AD8 80081ED8 AC39685C */ sw $t9, %lo(D_8012685C)($at) -/* 082ADC 80081EDC 8FAB002C */ lw $t3, 0x2c($sp) -/* 082AE0 80081EE0 AFBF0014 */ sw $ra, 0x14($sp) -/* 082AE4 80081EE4 4448F800 */ cfc1 $t0, $31 -/* 082AE8 80081EE8 24040016 */ li $a0, 22 -/* 082AEC 80081EEC 35010003 */ ori $at, $t0, 3 -/* 082AF0 80081EF0 38210002 */ xori $at, $at, 2 -/* 082AF4 80081EF4 44C1F800 */ ctc1 $at, $31 -/* 082AF8 80081EF8 3C018012 */ lui $at, %hi(D_80126860) # $at, 0x8012 -/* 082AFC 80081EFC 46009124 */ cvt.w.s $f4, $f18 -/* 082B00 80081F00 44092000 */ mfc1 $t1, $f4 -/* 082B04 80081F04 44C8F800 */ ctc1 $t0, $31 -/* 082B08 80081F08 AC296860 */ sw $t1, %lo(D_80126860)($at) -/* 082B0C 80081F0C 3C018012 */ lui $at, %hi(D_80126854) # $at, 0x8012 -/* 082B10 80081F10 AC206854 */ sw $zero, %lo(D_80126854)($at) -/* 082B14 80081F14 3C01800E */ lui $at, %hi(D_800DF79C) # $at, 0x800e -/* 082B18 80081F18 AC2AF79C */ sw $t2, %lo(D_800DF79C)($at) -/* 082B1C 80081F1C 3C01800E */ lui $at, %hi(D_800DF7A0) # $at, 0x800e -/* 082B20 80081F20 AC2BF7A0 */ sw $t3, %lo(D_800DF7A0)($at) -/* 082B24 80081F24 8C4C0000 */ lw $t4, ($v0) -/* 082B28 80081F28 00000000 */ nop -/* 082B2C 80081F2C 19800004 */ blez $t4, .L80081F40 -/* 082B30 80081F30 8FBF0014 */ lw $ra, 0x14($sp) -/* 082B34 80081F34 0C000741 */ jal func_80001D04 -/* 082B38 80081F38 00002825 */ move $a1, $zero -/* 082B3C 80081F3C 8FBF0014 */ lw $ra, 0x14($sp) -.L80081F40: -/* 082B40 80081F40 27BD0018 */ addiu $sp, $sp, 0x18 -/* 082B44 80081F44 03E00008 */ jr $ra -/* 082B48 80081F48 00000000 */ nop - diff --git a/asm/non_matchings/unknown_080500/func_800828B8.s b/asm/non_matchings/unknown_080500/func_800828B8.s deleted file mode 100644 index b8e43404..00000000 --- a/asm/non_matchings/unknown_080500/func_800828B8.s +++ /dev/null @@ -1,86 +0,0 @@ -glabel func_800828B8 -/* 0834B8 800828B8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0834BC 800828BC AFBF0014 */ sw $ra, 0x14($sp) -/* 0834C0 800828C0 0C01BAA4 */ jal get_settings -/* 0834C4 800828C4 00000000 */ nop -/* 0834C8 800828C8 27A40024 */ addiu $a0, $sp, 0x24 -/* 0834CC 800828CC 27A50028 */ addiu $a1, $sp, 0x28 -/* 0834D0 800828D0 0C01AC89 */ jal func_8006B224 -/* 0834D4 800828D4 AFA20020 */ sw $v0, 0x20($sp) -/* 0834D8 800828D8 8FAE0024 */ lw $t6, 0x24($sp) -/* 0834DC 800828DC 8FA60020 */ lw $a2, 0x20($sp) -/* 0834E0 800828E0 19C00020 */ blez $t6, .L80082964 -/* 0834E4 800828E4 00002825 */ move $a1, $zero -/* 0834E8 800828E8 3C048012 */ lui $a0, %hi(D_80126530) # $a0, 0x8012 -/* 0834EC 800828EC 24846530 */ addiu $a0, %lo(D_80126530) # addiu $a0, $a0, 0x6530 -/* 0834F0 800828F0 00001825 */ move $v1, $zero -.L800828F4: -/* 0834F4 800828F4 8CCF0004 */ lw $t7, 4($a2) -/* 0834F8 800828F8 00000000 */ nop -/* 0834FC 800828FC 01E3C021 */ addu $t8, $t7, $v1 -/* 083500 80082900 AF000000 */ sw $zero, ($t8) -/* 083504 80082904 AFA00028 */ sw $zero, 0x28($sp) -.L80082908: -/* 083508 80082908 8FA90028 */ lw $t1, 0x28($sp) -/* 08350C 8008290C 8CD90004 */ lw $t9, 4($a2) -/* 083510 80082910 00095080 */ sll $t2, $t1, 2 -/* 083514 80082914 008A5821 */ addu $t3, $a0, $t2 -/* 083518 80082918 8D6C0000 */ lw $t4, ($t3) -/* 08351C 8008291C 03231021 */ addu $v0, $t9, $v1 -/* 083520 80082920 8D8D0004 */ lw $t5, 4($t4) -/* 083524 80082924 8C480000 */ lw $t0, ($v0) -/* 083528 80082928 01A37021 */ addu $t6, $t5, $v1 -/* 08352C 8008292C 8DCF0000 */ lw $t7, ($t6) -/* 083530 80082930 00000000 */ nop -/* 083534 80082934 010FC025 */ or $t8, $t0, $t7 -/* 083538 80082938 AC580000 */ sw $t8, ($v0) -/* 08353C 8008293C 8FB90028 */ lw $t9, 0x28($sp) -/* 083540 80082940 00000000 */ nop -/* 083544 80082944 27290001 */ addiu $t1, $t9, 1 -/* 083548 80082948 29210003 */ slti $at, $t1, 3 -/* 08354C 8008294C 1420FFEE */ bnez $at, .L80082908 -/* 083550 80082950 AFA90028 */ sw $t1, 0x28($sp) -/* 083554 80082954 8FAA0024 */ lw $t2, 0x24($sp) -/* 083558 80082958 24A50001 */ addiu $a1, $a1, 1 -/* 08355C 8008295C 14AAFFE5 */ bne $a1, $t2, .L800828F4 -/* 083560 80082960 24630004 */ addiu $v1, $v1, 4 -.L80082964: -/* 083564 80082964 3C028012 */ lui $v0, %hi(D_80126530) # $v0, 0x8012 -/* 083568 80082968 3C038012 */ lui $v1, %hi(D_8012653C) # $v1, 0x8012 -/* 08356C 8008296C A4C0000E */ sh $zero, 0xe($a2) -/* 083570 80082970 A4C00008 */ sh $zero, 8($a2) -/* 083574 80082974 A4C0000C */ sh $zero, 0xc($a2) -/* 083578 80082978 ACC00010 */ sw $zero, 0x10($a2) -/* 08357C 8008297C 2463653C */ addiu $v1, %lo(D_8012653C) # addiu $v1, $v1, 0x653c -/* 083580 80082980 24426530 */ addiu $v0, %lo(D_80126530) # addiu $v0, $v0, 0x6530 -.L80082984: -/* 083584 80082984 8C4C0000 */ lw $t4, ($v0) -/* 083588 80082988 94CB000E */ lhu $t3, 0xe($a2) -/* 08358C 8008298C 958D000E */ lhu $t5, 0xe($t4) -/* 083590 80082990 94C80008 */ lhu $t0, 8($a2) -/* 083594 80082994 016D7025 */ or $t6, $t3, $t5 -/* 083598 80082998 A4CE000E */ sh $t6, 0xe($a2) -/* 08359C 8008299C 8C4F0000 */ lw $t7, ($v0) -/* 0835A0 800829A0 94C9000C */ lhu $t1, 0xc($a2) -/* 0835A4 800829A4 95F80008 */ lhu $t8, 8($t7) -/* 0835A8 800829A8 8CCD0010 */ lw $t5, 0x10($a2) -/* 0835AC 800829AC 0118C825 */ or $t9, $t0, $t8 -/* 0835B0 800829B0 A4D90008 */ sh $t9, 8($a2) -/* 0835B4 800829B4 8C4A0000 */ lw $t2, ($v0) -/* 0835B8 800829B8 24420004 */ addiu $v0, $v0, 4 -/* 0835BC 800829BC 954C000C */ lhu $t4, 0xc($t2) -/* 0835C0 800829C0 00000000 */ nop -/* 0835C4 800829C4 012C5825 */ or $t3, $t1, $t4 -/* 0835C8 800829C8 A4CB000C */ sh $t3, 0xc($a2) -/* 0835CC 800829CC 8C4EFFFC */ lw $t6, -4($v0) -/* 0835D0 800829D0 00000000 */ nop -/* 0835D4 800829D4 8DCF0010 */ lw $t7, 0x10($t6) -/* 0835D8 800829D8 00000000 */ nop -/* 0835DC 800829DC 01AF4025 */ or $t0, $t5, $t7 -/* 0835E0 800829E0 1443FFE8 */ bne $v0, $v1, .L80082984 -/* 0835E4 800829E4 ACC80010 */ sw $t0, 0x10($a2) -/* 0835E8 800829E8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0835EC 800829EC 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0835F0 800829F0 03E00008 */ jr $ra -/* 0835F4 800829F4 00000000 */ nop - diff --git a/asm/non_matchings/unknown_080500/func_80082FAC.s b/asm/non_matchings/unknown_080500/func_80082FAC.s deleted file mode 100644 index d33d11bb..00000000 --- a/asm/non_matchings/unknown_080500/func_80082FAC.s +++ /dev/null @@ -1,66 +0,0 @@ -glabel func_80082FAC -/* 083BAC 80082FAC 3C0F8012 */ lui $t7, %hi(D_8012644C) # $t7, 0x8012 -/* 083BB0 80082FB0 8DEF644C */ lw $t7, %lo(D_8012644C)($t7) -/* 083BB4 80082FB4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 083BB8 80082FB8 3C0E8012 */ lui $t6, %hi(D_80126448) # $t6, 0x8012 -/* 083BBC 80082FBC 8DCE6448 */ lw $t6, %lo(D_80126448)($t6) -/* 083BC0 80082FC0 AFBF0014 */ sw $ra, 0x14($sp) -/* 083BC4 80082FC4 AFAF001C */ sw $t7, 0x1c($sp) -/* 083BC8 80082FC8 31F90002 */ andi $t9, $t7, 2 -/* 083BCC 80082FCC AFAE0018 */ sw $t6, 0x18($sp) -/* 083BD0 80082FD0 1320000A */ beqz $t9, .L80082FFC -/* 083BD4 80082FD4 8FAB001C */ lw $t3, 0x1c($sp) -/* 083BD8 80082FD8 0C0270B8 */ jal set_magic_code_flags -/* 083BDC 80082FDC 24040002 */ li $a0, 2 -/* 083BE0 80082FE0 3C088012 */ lui $t0, %hi(D_80126448) # $t0, 0x8012 -/* 083BE4 80082FE4 3C098012 */ lui $t1, %hi(D_8012644C) # $t1, 0x8012 -/* 083BE8 80082FE8 8D29644C */ lw $t1, %lo(D_8012644C)($t1) -/* 083BEC 80082FEC 8D086448 */ lw $t0, %lo(D_80126448)($t0) -/* 083BF0 80082FF0 AFA9001C */ sw $t1, 0x1c($sp) -/* 083BF4 80082FF4 AFA80018 */ sw $t0, 0x18($sp) -/* 083BF8 80082FF8 8FAB001C */ lw $t3, 0x1c($sp) -.L80082FFC: -/* 083BFC 80082FFC 3C0100FF */ lui $at, (0x00FFFFF0 >> 16) # lui $at, 0xff -/* 083C00 80083000 3421FFF0 */ ori $at, (0x00FFFFF0 & 0xFFFF) # ori $at, $at, 0xfff0 -/* 083C04 80083004 01616824 */ and $t5, $t3, $at -/* 083C08 80083008 3C0100FF */ lui $at, (0x00FFFFF0 >> 16) # lui $at, 0xff -/* 083C0C 8008300C 3421FFF0 */ ori $at, (0x00FFFFF0 & 0xFFFF) # ori $at, $at, 0xfff0 -/* 083C10 80083010 15A1000A */ bne $t5, $at, .L8008303C -/* 083C14 80083014 8FB9001C */ lw $t9, 0x1c($sp) -/* 083C18 80083018 0C0270B8 */ jal set_magic_code_flags -/* 083C1C 8008301C 24040001 */ li $a0, 1 -/* 083C20 80083020 3C0E8012 */ lui $t6, %hi(D_80126448) # $t6, 0x8012 -/* 083C24 80083024 3C0F8012 */ lui $t7, %hi(D_8012644C) # $t7, 0x8012 -/* 083C28 80083028 8DEF644C */ lw $t7, %lo(D_8012644C)($t7) -/* 083C2C 8008302C 8DCE6448 */ lw $t6, %lo(D_80126448)($t6) -/* 083C30 80083030 AFAF001C */ sw $t7, 0x1c($sp) -/* 083C34 80083034 AFAE0018 */ sw $t6, 0x18($sp) -/* 083C38 80083038 8FB9001C */ lw $t9, 0x1c($sp) -.L8008303C: -/* 083C3C 8008303C 240A0001 */ li $t2, 1 -/* 083C40 80083040 33290001 */ andi $t1, $t9, 1 -/* 083C44 80083044 11200004 */ beqz $t1, .L80083058 -/* 083C48 80083048 3C01800E */ lui $at, 0x800e -/* 083C4C 8008304C 3C01800E */ lui $at, %hi(gIsInAdventureTwo) # $at, 0x800e -/* 083C50 80083050 10000002 */ b .L8008305C -/* 083C54 80083054 AC2AF494 */ sw $t2, %lo(gIsInAdventureTwo)($at) -.L80083058: -/* 083C58 80083058 AC20F494 */ sw $zero, %lo(gIsInAdventureTwo)($at) -.L8008305C: -/* 083C5C 8008305C 8FAD001C */ lw $t5, 0x1c($sp) -/* 083C60 80083060 3C010200 */ lui $at, 0x200 -/* 083C64 80083064 01A17824 */ and $t7, $t5, $at -/* 083C68 80083068 15E00003 */ bnez $t7, .L80083078 -/* 083C6C 8008306C 00000000 */ nop -/* 083C70 80083070 0C030ABD */ jal func_800C2AF4 -/* 083C74 80083074 00002025 */ move $a0, $zero -.L80083078: -/* 083C78 80083078 0C027AC8 */ jal func_8009EB20 -/* 083C7C 8008307C 00000000 */ nop -/* 083C80 80083080 0C01FE40 */ jal func_8007F900 -/* 083C84 80083084 00402025 */ move $a0, $v0 -/* 083C88 80083088 8FBF0014 */ lw $ra, 0x14($sp) -/* 083C8C 8008308C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 083C90 80083090 03E00008 */ jr $ra -/* 083C94 80083094 00000000 */ nop - diff --git a/asm/non_matchings/unknown_080500/func_800860A8.s b/asm/non_matchings/unknown_080500/func_800860A8.s deleted file mode 100644 index 554b5564..00000000 --- a/asm/non_matchings/unknown_080500/func_800860A8.s +++ /dev/null @@ -1,78 +0,0 @@ -glabel func_800860A8 -/* 086CA8 800860A8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 086CAC 800860AC AFBF0014 */ sw $ra, 0x14($sp) -/* 086CB0 800860B0 AFA5002C */ sw $a1, 0x2c($sp) -/* 086CB4 800860B4 AFA60030 */ sw $a2, 0x30($sp) -/* 086CB8 800860B8 8CAF0000 */ lw $t7, ($a1) -/* 086CBC 800860BC 00004025 */ move $t0, $zero -/* 086CC0 800860C0 11E0003D */ beqz $t7, .L800861B8 -/* 086CC4 800860C4 00045080 */ sll $t2, $a0, 2 -/* 086CC8 800860C8 8CF80000 */ lw $t8, ($a3) -/* 086CCC 800860CC 3C0B8012 */ lui $t3, %hi(D_80126A20) # $t3, 0x8012 -/* 086CD0 800860D0 0018C900 */ sll $t9, $t8, 4 -/* 086CD4 800860D4 03262821 */ addu $a1, $t9, $a2 -/* 086CD8 800860D8 256B6A20 */ addiu $t3, %lo(D_80126A20) # addiu $t3, $t3, 0x6a20 -/* 086CDC 800860DC 014B3021 */ addu $a2, $t2, $t3 -/* 086CE0 800860E0 AFA6001C */ sw $a2, 0x1c($sp) -/* 086CE4 800860E4 24A5000C */ addiu $a1, $a1, 0xc -/* 086CE8 800860E8 AFA70034 */ sw $a3, 0x34($sp) -/* 086CEC 800860EC 0C01D865 */ jal func_80076194 -/* 086CF0 800860F0 AFA40028 */ sw $a0, 0x28($sp) -/* 086CF4 800860F4 8FA3002C */ lw $v1, 0x2c($sp) -/* 086CF8 800860F8 8FA40028 */ lw $a0, 0x28($sp) -/* 086CFC 800860FC 8FA50030 */ lw $a1, 0x30($sp) -/* 086D00 80086100 8FA6001C */ lw $a2, 0x1c($sp) -/* 086D04 80086104 8FA70034 */ lw $a3, 0x34($sp) -/* 086D08 80086108 14400019 */ bnez $v0, .L80086170 -/* 086D0C 8008610C 00404025 */ move $t0, $v0 -/* 086D10 80086110 8CEC0000 */ lw $t4, ($a3) -/* 086D14 80086114 8FAF0038 */ lw $t7, 0x38($sp) -/* 086D18 80086118 000C6900 */ sll $t5, $t4, 4 -/* 086D1C 8008611C 00AD1021 */ addu $v0, $a1, $t5 -/* 086D20 80086120 8C4E000C */ lw $t6, 0xc($v0) -/* 086D24 80086124 00000000 */ nop -/* 086D28 80086128 01CF082A */ slt $at, $t6, $t7 -/* 086D2C 8008612C 14200023 */ bnez $at, .L800861BC -/* 086D30 80086130 8FBF0014 */ lw $ra, 0x14($sp) -/* 086D34 80086134 8CD80000 */ lw $t8, ($a2) -/* 086D38 80086138 24190008 */ li $t9, 8 -/* 086D3C 8008613C 1B00001F */ blez $t8, .L800861BC -/* 086D40 80086140 8FBF0014 */ lw $ra, 0x14($sp) -/* 086D44 80086144 A0590000 */ sb $t9, ($v0) -/* 086D48 80086148 8CE90000 */ lw $t1, ($a3) -/* 086D4C 8008614C 00000000 */ nop -/* 086D50 80086150 00095100 */ sll $t2, $t1, 4 -/* 086D54 80086154 00AA5821 */ addu $t3, $a1, $t2 -/* 086D58 80086158 A1640006 */ sb $a0, 6($t3) -/* 086D5C 8008615C 8CEC0000 */ lw $t4, ($a3) -/* 086D60 80086160 00000000 */ nop -/* 086D64 80086164 258D0001 */ addiu $t5, $t4, 1 -/* 086D68 80086168 10000013 */ b .L800861B8 -/* 086D6C 8008616C ACED0000 */ sw $t5, ($a3) -.L80086170: -/* 086D70 80086170 8C6E0000 */ lw $t6, ($v1) -/* 086D74 80086174 304F00FF */ andi $t7, $v0, 0xff -/* 086D78 80086178 05C10006 */ bgez $t6, .L80086194 -/* 086D7C 8008617C 24010007 */ li $at, 7 -/* 086D80 80086180 15E10004 */ bne $t7, $at, .L80086194 -/* 086D84 80086184 00000000 */ nop -/* 086D88 80086188 AC600000 */ sw $zero, ($v1) -/* 086D8C 8008618C 1000000A */ b .L800861B8 -/* 086D90 80086190 00004025 */ move $t0, $zero -.L80086194: -/* 086D94 80086194 304300FF */ andi $v1, $v0, 0xff -/* 086D98 80086198 24010003 */ li $at, 3 -/* 086D9C 8008619C 10610006 */ beq $v1, $at, .L800861B8 -/* 086DA0 800861A0 24010002 */ li $at, 2 -/* 086DA4 800861A4 10610004 */ beq $v1, $at, .L800861B8 -/* 086DA8 800861A8 24010009 */ li $at, 9 -/* 086DAC 800861AC 10610003 */ beq $v1, $at, .L800861BC -/* 086DB0 800861B0 8FBF0014 */ lw $ra, 0x14($sp) -/* 086DB4 800861B4 00004025 */ move $t0, $zero -.L800861B8: -/* 086DB8 800861B8 8FBF0014 */ lw $ra, 0x14($sp) -.L800861BC: -/* 086DBC 800861BC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 086DC0 800861C0 03E00008 */ jr $ra -/* 086DC4 800861C4 01001025 */ move $v0, $t0 - diff --git a/asm/non_matchings/unknown_080500/func_800874D0.s b/asm/non_matchings/unknown_080500/func_800874D0.s deleted file mode 100644 index d26715f6..00000000 --- a/asm/non_matchings/unknown_080500/func_800874D0.s +++ /dev/null @@ -1,77 +0,0 @@ -glabel func_800874D0 -/* 0880D0 800874D0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0880D4 800874D4 308E4000 */ andi $t6, $a0, 0x4000 -/* 0880D8 800874D8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0880DC 800874DC 11C00012 */ beqz $t6, .L80087528 -/* 0880E0 800874E0 AFA0001C */ sw $zero, 0x1c($sp) -/* 0880E4 800874E4 3C0F8012 */ lui $t7, %hi(D_80126A14) # $t7, 0x8012 -/* 0880E8 800874E8 3C188012 */ lui $t8, %hi(D_80126A10) # $t8, 0x8012 -/* 0880EC 800874EC 8F186A10 */ lw $t8, %lo(D_80126A10)($t8) -/* 0880F0 800874F0 8DEF6A14 */ lw $t7, %lo(D_80126A14)($t7) -/* 0880F4 800874F4 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 0880F8 800874F8 11F80005 */ beq $t7, $t8, .L80087510 -/* 0880FC 800874FC AC2063E0 */ sw $zero, %lo(D_801263E0)($at) -/* 088100 80087500 0C021C76 */ jal func_800871D8 -/* 088104 80087504 24040008 */ li $a0, 8 -/* 088108 80087508 10000033 */ b .L800875D8 -/* 08810C 8008750C 8FBF0014 */ lw $ra, 0x14($sp) -.L80087510: -/* 088110 80087510 24040241 */ li $a0, 577 -/* 088114 80087514 0C000741 */ jal func_80001D04 -/* 088118 80087518 00002825 */ move $a1, $zero -/* 08811C 8008751C 2419FFFF */ li $t9, -1 -/* 088120 80087520 1000002C */ b .L800875D4 -/* 088124 80087524 AFB9001C */ sw $t9, 0x1c($sp) -.L80087528: -/* 088128 80087528 30889000 */ andi $t0, $a0, 0x9000 -/* 08812C 8008752C 11000007 */ beqz $t0, .L8008754C -/* 088130 80087530 240400EF */ li $a0, 239 -/* 088134 80087534 0C000741 */ jal func_80001D04 -/* 088138 80087538 00002825 */ move $a1, $zero -/* 08813C 8008753C 24090004 */ li $t1, 4 -/* 088140 80087540 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 088144 80087544 10000023 */ b .L800875D4 -/* 088148 80087548 AC2963E0 */ sw $t1, %lo(D_801263E0)($at) -.L8008754C: -/* 08814C 8008754C 04A1000F */ bgez $a1, .L8008758C -/* 088150 80087550 3C028012 */ lui $v0, %hi(D_80126BD4) # $v0, 0x8012 -/* 088154 80087554 24426BD4 */ addiu $v0, %lo(D_80126BD4) # addiu $v0, $v0, 0x6bd4 -/* 088158 80087558 8C4A0000 */ lw $t2, ($v0) -/* 08815C 8008755C 240400EB */ li $a0, 235 -/* 088160 80087560 1940000A */ blez $t2, .L8008758C -/* 088164 80087564 00000000 */ nop -/* 088168 80087568 0C000741 */ jal func_80001D04 -/* 08816C 8008756C 00002825 */ move $a1, $zero -/* 088170 80087570 3C028012 */ lui $v0, %hi(D_80126BD4) # $v0, 0x8012 -/* 088174 80087574 24426BD4 */ addiu $v0, %lo(D_80126BD4) # addiu $v0, $v0, 0x6bd4 -/* 088178 80087578 8C4B0000 */ lw $t3, ($v0) -/* 08817C 8008757C 00000000 */ nop -/* 088180 80087580 256CFFFF */ addiu $t4, $t3, -1 -/* 088184 80087584 10000013 */ b .L800875D4 -/* 088188 80087588 AC4C0000 */ sw $t4, ($v0) -.L8008758C: -/* 08818C 8008758C 3C028012 */ lui $v0, %hi(D_80126BD4) # $v0, 0x8012 -/* 088190 80087590 18A00010 */ blez $a1, .L800875D4 -/* 088194 80087594 24426BD4 */ addiu $v0, %lo(D_80126BD4) # addiu $v0, $v0, 0x6bd4 -/* 088198 80087598 3C0E8012 */ lui $t6, %hi(D_80126A08) # $t6, 0x8012 -/* 08819C 8008759C 8DCE6A08 */ lw $t6, %lo(D_80126A08)($t6) -/* 0881A0 800875A0 8C4D0000 */ lw $t5, ($v0) -/* 0881A4 800875A4 25CFFFFF */ addiu $t7, $t6, -1 -/* 0881A8 800875A8 01AF082A */ slt $at, $t5, $t7 -/* 0881AC 800875AC 10200009 */ beqz $at, .L800875D4 -/* 0881B0 800875B0 240400EB */ li $a0, 235 -/* 0881B4 800875B4 0C000741 */ jal func_80001D04 -/* 0881B8 800875B8 00002825 */ move $a1, $zero -/* 0881BC 800875BC 3C028012 */ lui $v0, %hi(D_80126BD4) # $v0, 0x8012 -/* 0881C0 800875C0 24426BD4 */ addiu $v0, %lo(D_80126BD4) # addiu $v0, $v0, 0x6bd4 -/* 0881C4 800875C4 8C580000 */ lw $t8, ($v0) -/* 0881C8 800875C8 00000000 */ nop -/* 0881CC 800875CC 27190001 */ addiu $t9, $t8, 1 -/* 0881D0 800875D0 AC590000 */ sw $t9, ($v0) -.L800875D4: -/* 0881D4 800875D4 8FBF0014 */ lw $ra, 0x14($sp) -.L800875D8: -/* 0881D8 800875D8 8FA2001C */ lw $v0, 0x1c($sp) -/* 0881DC 800875DC 03E00008 */ jr $ra -/* 0881E0 800875E0 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/unknown_080500/func_800875E4.s b/asm/non_matchings/unknown_080500/func_800875E4.s deleted file mode 100644 index 38f21eb9..00000000 --- a/asm/non_matchings/unknown_080500/func_800875E4.s +++ /dev/null @@ -1,64 +0,0 @@ -glabel func_800875E4 -/* 0881E4 800875E4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0881E8 800875E8 308E4000 */ andi $t6, $a0, 0x4000 -/* 0881EC 800875EC 11C00008 */ beqz $t6, .L80087610 -/* 0881F0 800875F0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0881F4 800875F4 24040241 */ li $a0, 577 -/* 0881F8 800875F8 0C000741 */ jal func_80001D04 -/* 0881FC 800875FC 00002825 */ move $a1, $zero -/* 088200 80087600 240F0003 */ li $t7, 3 -/* 088204 80087604 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 088208 80087608 1000002C */ b .L800876BC -/* 08820C 8008760C AC2F63E0 */ sw $t7, %lo(D_801263E0)($at) -.L80087610: -/* 088210 80087610 30989000 */ andi $t8, $a0, 0x9000 -/* 088214 80087614 13000007 */ beqz $t8, .L80087634 -/* 088218 80087618 240400EF */ li $a0, 239 -/* 08821C 8008761C 0C000741 */ jal func_80001D04 -/* 088220 80087620 00002825 */ move $a1, $zero -/* 088224 80087624 24190006 */ li $t9, 6 -/* 088228 80087628 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 08822C 8008762C 10000023 */ b .L800876BC -/* 088230 80087630 AC3963E0 */ sw $t9, %lo(D_801263E0)($at) -.L80087634: -/* 088234 80087634 04A1000F */ bgez $a1, .L80087674 -/* 088238 80087638 3C028012 */ lui $v0, %hi(D_80126BE4) # $v0, 0x8012 -/* 08823C 8008763C 24426BE4 */ addiu $v0, %lo(D_80126BE4) # addiu $v0, $v0, 0x6be4 -/* 088240 80087640 8C480000 */ lw $t0, ($v0) -/* 088244 80087644 240400EB */ li $a0, 235 -/* 088248 80087648 1900000A */ blez $t0, .L80087674 -/* 08824C 8008764C 00000000 */ nop -/* 088250 80087650 0C000741 */ jal func_80001D04 -/* 088254 80087654 00002825 */ move $a1, $zero -/* 088258 80087658 3C028012 */ lui $v0, %hi(D_80126BE4) # $v0, 0x8012 -/* 08825C 8008765C 24426BE4 */ addiu $v0, %lo(D_80126BE4) # addiu $v0, $v0, 0x6be4 -/* 088260 80087660 8C490000 */ lw $t1, ($v0) -/* 088264 80087664 00000000 */ nop -/* 088268 80087668 252AFFFF */ addiu $t2, $t1, -1 -/* 08826C 8008766C 10000013 */ b .L800876BC -/* 088270 80087670 AC4A0000 */ sw $t2, ($v0) -.L80087674: -/* 088274 80087674 3C028012 */ lui $v0, %hi(D_80126BE4) # $v0, 0x8012 -/* 088278 80087678 18A00010 */ blez $a1, .L800876BC -/* 08827C 8008767C 24426BE4 */ addiu $v0, %lo(D_80126BE4) # addiu $v0, $v0, 0x6be4 -/* 088280 80087680 3C0C8012 */ lui $t4, %hi(D_80126A00) # $t4, 0x8012 -/* 088284 80087684 8D8C6A00 */ lw $t4, %lo(D_80126A00)($t4) -/* 088288 80087688 8C4B0000 */ lw $t3, ($v0) -/* 08828C 8008768C 258DFFFF */ addiu $t5, $t4, -1 -/* 088290 80087690 016D082A */ slt $at, $t3, $t5 -/* 088294 80087694 10200009 */ beqz $at, .L800876BC -/* 088298 80087698 240400EB */ li $a0, 235 -/* 08829C 8008769C 0C000741 */ jal func_80001D04 -/* 0882A0 800876A0 00002825 */ move $a1, $zero -/* 0882A4 800876A4 3C028012 */ lui $v0, %hi(D_80126BE4) # $v0, 0x8012 -/* 0882A8 800876A8 24426BE4 */ addiu $v0, %lo(D_80126BE4) # addiu $v0, $v0, 0x6be4 -/* 0882AC 800876AC 8C4E0000 */ lw $t6, ($v0) -/* 0882B0 800876B0 00000000 */ nop -/* 0882B4 800876B4 25CF0001 */ addiu $t7, $t6, 1 -/* 0882B8 800876B8 AC4F0000 */ sw $t7, ($v0) -.L800876BC: -/* 0882BC 800876BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0882C0 800876C0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0882C4 800876C4 03E00008 */ jr $ra -/* 0882C8 800876C8 00001025 */ move $v0, $zero - diff --git a/asm/non_matchings/unknown_080500/func_8008BFE8.s b/asm/non_matchings/unknown_080500/func_8008BFE8.s deleted file mode 100644 index 6dac3df4..00000000 --- a/asm/non_matchings/unknown_080500/func_8008BFE8.s +++ /dev/null @@ -1,90 +0,0 @@ -glabel func_8008BFE8 -/* 08CBE8 8008BFE8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 08CBEC 8008BFEC AFB6002C */ sw $s6, 0x2c($sp) -/* 08CBF0 8008BFF0 AFB40024 */ sw $s4, 0x24($sp) -/* 08CBF4 8008BFF4 AFB30020 */ sw $s3, 0x20($sp) -/* 08CBF8 8008BFF8 AFB10018 */ sw $s1, 0x18($sp) -/* 08CBFC 8008BFFC AFB00014 */ sw $s0, 0x14($sp) -/* 08CC00 8008C000 00A09825 */ move $s3, $a1 -/* 08CC04 8008C004 0080A025 */ move $s4, $a0 -/* 08CC08 8008C008 00C0B025 */ move $s6, $a2 -/* 08CC0C 8008C00C AFBF0034 */ sw $ra, 0x34($sp) -/* 08CC10 8008C010 AFB70030 */ sw $s7, 0x30($sp) -/* 08CC14 8008C014 AFB50028 */ sw $s5, 0x28($sp) -/* 08CC18 8008C018 AFB2001C */ sw $s2, 0x1c($sp) -/* 08CC1C 8008C01C AFA70044 */ sw $a3, 0x44($sp) -/* 08CC20 8008C020 00008825 */ move $s1, $zero -/* 08CC24 8008C024 18C00026 */ blez $a2, .L8008C0C0 -/* 08CC28 8008C028 24100001 */ li $s0, 1 -/* 08CC2C 8008C02C 80AE0000 */ lb $t6, ($a1) -/* 08CC30 8008C030 2417FFFF */ li $s7, -1 -/* 08CC34 8008C034 12EE0022 */ beq $s7, $t6, .L8008C0C0 -/* 08CC38 8008C038 3C150040 */ lui $s5, 0x40 -/* 08CC3C 8008C03C 3C128012 */ lui $s2, %hi(D_801263E8) # $s2, 0x8012 -/* 08CC40 8008C040 265263E8 */ addiu $s2, %lo(D_801263E8) # addiu $s2, $s2, 0x63e8 -.L8008C044: -/* 08CC44 8008C044 0C0270C3 */ jal func_8009C30C -/* 08CC48 8008C048 00008025 */ move $s0, $zero -/* 08CC4C 8008C04C 00557824 */ and $t7, $v0, $s5 -/* 08CC50 8008C050 15E00013 */ bnez $t7, .L8008C0A0 -/* 08CC54 8008C054 00001025 */ move $v0, $zero -.L8008C058: -/* 08CC58 8008C058 10540008 */ beq $v0, $s4, .L8008C07C -/* 08CC5C 8008C05C 0242C021 */ addu $t8, $s2, $v0 -/* 08CC60 8008C060 02714021 */ addu $t0, $s3, $s1 -/* 08CC64 8008C064 81090000 */ lb $t1, ($t0) -/* 08CC68 8008C068 83190000 */ lb $t9, ($t8) -/* 08CC6C 8008C06C 00000000 */ nop -/* 08CC70 8008C070 17290002 */ bne $t9, $t1, .L8008C07C -/* 08CC74 8008C074 00000000 */ nop -/* 08CC78 8008C078 24100001 */ li $s0, 1 -.L8008C07C: -/* 08CC7C 8008C07C 24420001 */ addiu $v0, $v0, 1 -/* 08CC80 8008C080 28410004 */ slti $at, $v0, 4 -/* 08CC84 8008C084 10200003 */ beqz $at, .L8008C094 -/* 08CC88 8008C088 00000000 */ nop -/* 08CC8C 8008C08C 1200FFF2 */ beqz $s0, .L8008C058 -/* 08CC90 8008C090 00000000 */ nop -.L8008C094: -/* 08CC94 8008C094 12000002 */ beqz $s0, .L8008C0A0 -/* 08CC98 8008C098 00000000 */ nop -/* 08CC9C 8008C09C 26310001 */ addiu $s1, $s1, 1 -.L8008C0A0: -/* 08CCA0 8008C0A0 12000007 */ beqz $s0, .L8008C0C0 -/* 08CCA4 8008C0A4 0236082A */ slt $at, $s1, $s6 -/* 08CCA8 8008C0A8 10200005 */ beqz $at, .L8008C0C0 -/* 08CCAC 8008C0AC 02715021 */ addu $t2, $s3, $s1 -/* 08CCB0 8008C0B0 814B0000 */ lb $t3, ($t2) -/* 08CCB4 8008C0B4 00000000 */ nop -/* 08CCB8 8008C0B8 16EBFFE2 */ bne $s7, $t3, .L8008C044 -/* 08CCBC 8008C0BC 00000000 */ nop -.L8008C0C0: -/* 08CCC0 8008C0C0 3C128012 */ lui $s2, %hi(D_801263E8) # $s2, 0x8012 -/* 08CCC4 8008C0C4 1600000A */ bnez $s0, .L8008C0F0 -/* 08CCC8 8008C0C8 265263E8 */ addiu $s2, %lo(D_801263E8) # addiu $s2, $s2, 0x63e8 -/* 08CCCC 8008C0CC 02716021 */ addu $t4, $s3, $s1 -/* 08CCD0 8008C0D0 818D0000 */ lb $t5, ($t4) -/* 08CCD4 8008C0D4 02547021 */ addu $t6, $s2, $s4 -/* 08CCD8 8008C0D8 A1CD0000 */ sb $t5, ($t6) -/* 08CCDC 8008C0DC 97A40046 */ lhu $a0, 0x46($sp) -/* 08CCE0 8008C0E0 0C000741 */ jal func_80001D04 -/* 08CCE4 8008C0E4 00002825 */ move $a1, $zero -/* 08CCE8 8008C0E8 10000005 */ b .L8008C100 -/* 08CCEC 8008C0EC 8FBF0034 */ lw $ra, 0x34($sp) -.L8008C0F0: -/* 08CCF0 8008C0F0 97A4004A */ lhu $a0, 0x4a($sp) -/* 08CCF4 8008C0F4 0C000741 */ jal func_80001D04 -/* 08CCF8 8008C0F8 00002825 */ move $a1, $zero -/* 08CCFC 8008C0FC 8FBF0034 */ lw $ra, 0x34($sp) -.L8008C100: -/* 08CD00 8008C100 8FB00014 */ lw $s0, 0x14($sp) -/* 08CD04 8008C104 8FB10018 */ lw $s1, 0x18($sp) -/* 08CD08 8008C108 8FB2001C */ lw $s2, 0x1c($sp) -/* 08CD0C 8008C10C 8FB30020 */ lw $s3, 0x20($sp) -/* 08CD10 8008C110 8FB40024 */ lw $s4, 0x24($sp) -/* 08CD14 8008C114 8FB50028 */ lw $s5, 0x28($sp) -/* 08CD18 8008C118 8FB6002C */ lw $s6, 0x2c($sp) -/* 08CD1C 8008C11C 8FB70030 */ lw $s7, 0x30($sp) -/* 08CD20 8008C120 03E00008 */ jr $ra -/* 08CD24 8008C124 27BD0038 */ addiu $sp, $sp, 0x38 - diff --git a/asm/non_matchings/unknown_080500/func_80094C14.s b/asm/non_matchings/unknown_080500/func_80094C14.s deleted file mode 100644 index 9066e61f..00000000 --- a/asm/non_matchings/unknown_080500/func_80094C14.s +++ /dev/null @@ -1,76 +0,0 @@ -glabel func_80094C14 -/* 095814 80094C14 3C038012 */ lui $v1, %hi(D_801263BC) # $v1, 0x8012 -/* 095818 80094C18 246363BC */ addiu $v1, %lo(D_801263BC) # addiu $v1, $v1, 0x63bc -/* 09581C 80094C1C 3C058012 */ lui $a1, %hi(D_80126A94) # $a1, 0x8012 -/* 095820 80094C20 8C6E0000 */ lw $t6, ($v1) -/* 095824 80094C24 24A56A94 */ addiu $a1, %lo(D_80126A94) # addiu $a1, $a1, 0x6a94 -/* 095828 80094C28 8CB90000 */ lw $t9, ($a1) -/* 09582C 80094C2C 01C47821 */ addu $t7, $t6, $a0 -/* 095830 80094C30 31F8003F */ andi $t8, $t7, 0x3f -/* 095834 80094C34 03244021 */ addu $t0, $t9, $a0 -/* 095838 80094C38 AC780000 */ sw $t8, ($v1) -/* 09583C 80094C3C ACA80000 */ sw $t0, ($a1) -/* 095840 80094C40 3C028012 */ lui $v0, %hi(D_801263D8) # $v0, 0x8012 -/* 095844 80094C44 8C4263D8 */ lw $v0, %lo(D_801263D8)($v0) -/* 095848 80094C48 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09584C 80094C4C 04400032 */ bltz $v0, .L80094D18 -/* 095850 80094C50 AFBF0014 */ sw $ra, 0x14($sp) -/* 095854 80094C54 3C03800E */ lui $v1, %hi(D_800DF460) # $v1, 0x800e -/* 095858 80094C58 8C63F460 */ lw $v1, %lo(D_800DF460)($v1) -/* 09585C 80094C5C 00444821 */ addu $t1, $v0, $a0 -/* 095860 80094C60 3C018012 */ lui $at, %hi(D_801263D8) # $at, 0x8012 -/* 095864 80094C64 10600006 */ beqz $v1, .L80094C80 -/* 095868 80094C68 AC2963D8 */ sw $t1, %lo(D_801263D8)($at) -/* 09586C 80094C6C 24010001 */ li $at, 1 -/* 095870 80094C70 10610011 */ beq $v1, $at, .L80094CB8 -/* 095874 80094C74 00000000 */ nop -/* 095878 80094C78 1000001D */ b .L80094CF0 -/* 09587C 80094C7C 00000000 */ nop -.L80094C80: -/* 095880 80094C80 0C00322D */ jal func_8000C8B4 -/* 095884 80094C84 240400F0 */ li $a0, 240 -/* 095888 80094C88 3C0A8012 */ lui $t2, %hi(D_801263D8) # $t2, 0x8012 -/* 09588C 80094C8C 8D4A63D8 */ lw $t2, %lo(D_801263D8)($t2) -/* 095890 80094C90 00000000 */ nop -/* 095894 80094C94 004A082A */ slt $at, $v0, $t2 -/* 095898 80094C98 10200015 */ beqz $at, .L80094CF0 -/* 09589C 80094C9C 00000000 */ nop -/* 0958A0 80094CA0 0C000326 */ jal func_80000C98 -/* 0958A4 80094CA4 2404FF00 */ li $a0, -256 -/* 0958A8 80094CA8 240B0001 */ li $t3, 1 -/* 0958AC 80094CAC 3C01800E */ lui $at, %hi(D_800DF460) # $at, 0x800e -/* 0958B0 80094CB0 1000000F */ b .L80094CF0 -/* 0958B4 80094CB4 AC2BF460 */ sw $t3, %lo(D_800DF460)($at) -.L80094CB8: -/* 0958B8 80094CB8 0C00322D */ jal func_8000C8B4 -/* 0958BC 80094CBC 2404012C */ li $a0, 300 -/* 0958C0 80094CC0 3C0C8012 */ lui $t4, %hi(D_801263D8) # $t4, 0x8012 -/* 0958C4 80094CC4 8D8C63D8 */ lw $t4, %lo(D_801263D8)($t4) -/* 0958C8 80094CC8 00000000 */ nop -/* 0958CC 80094CCC 004C082A */ slt $at, $v0, $t4 -/* 0958D0 80094CD0 10200007 */ beqz $at, .L80094CF0 -/* 0958D4 80094CD4 00000000 */ nop -/* 0958D8 80094CD8 0C0002F8 */ jal func_80000BE0 -/* 0958DC 80094CDC 24040018 */ li $a0, 24 -/* 0958E0 80094CE0 0C0002CD */ jal func_80000B34 -/* 0958E4 80094CE4 24040018 */ li $a0, 24 -/* 0958E8 80094CE8 0C000326 */ jal func_80000C98 -/* 0958EC 80094CEC 24040100 */ li $a0, 256 -.L80094CF0: -/* 0958F0 80094CF0 0C00322D */ jal func_8000C8B4 -/* 0958F4 80094CF4 2404012C */ li $a0, 300 -/* 0958F8 80094CF8 3C038012 */ lui $v1, %hi(D_801263D8) # $v1, 0x8012 -/* 0958FC 80094CFC 246363D8 */ addiu $v1, %lo(D_801263D8) # addiu $v1, $v1, 0x63d8 -/* 095900 80094D00 8C6D0000 */ lw $t5, ($v1) -/* 095904 80094D04 240EFFFF */ li $t6, -1 -/* 095908 80094D08 004D082A */ slt $at, $v0, $t5 -/* 09590C 80094D0C 10200003 */ beqz $at, .L80094D1C -/* 095910 80094D10 8FBF0014 */ lw $ra, 0x14($sp) -/* 095914 80094D14 AC6E0000 */ sw $t6, ($v1) -.L80094D18: -/* 095918 80094D18 8FBF0014 */ lw $ra, 0x14($sp) -.L80094D1C: -/* 09591C 80094D1C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 095920 80094D20 03E00008 */ jr $ra -/* 095924 80094D24 00000000 */ nop - diff --git a/asm/non_matchings/unknown_080500/func_8009BD5C.s b/asm/non_matchings/unknown_080500/func_8009BD5C.s deleted file mode 100644 index 6e98fb24..00000000 --- a/asm/non_matchings/unknown_080500/func_8009BD5C.s +++ /dev/null @@ -1,67 +0,0 @@ -glabel func_8009BD5C -/* 09C95C 8009BD5C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09C960 8009BD60 AFBF0014 */ sw $ra, 0x14($sp) -/* 09C964 8009BD64 0C01994B */ jal func_8006652C -/* 09C968 8009BD68 00002025 */ move $a0, $zero -/* 09C96C 8009BD6C 0C01997A */ jal func_800665E8 -/* 09C970 8009BD70 00002025 */ move $a0, $zero -/* 09C974 8009BD74 0C01A748 */ jal func_80069D20 -/* 09C978 8009BD78 00000000 */ nop -/* 09C97C 8009BD7C 844E0000 */ lh $t6, ($v0) -/* 09C980 8009BD80 3C01C200 */ li $at, 0xC2000000 # -32.000000 -/* 09C984 8009BD84 A7AE002A */ sh $t6, 0x2a($sp) -/* 09C988 8009BD88 844F0002 */ lh $t7, 2($v0) -/* 09C98C 8009BD8C 44810000 */ mtc1 $at, $f0 -/* 09C990 8009BD90 A7AF0028 */ sh $t7, 0x28($sp) -/* 09C994 8009BD94 84580004 */ lh $t8, 4($v0) -/* 09C998 8009BD98 44806000 */ mtc1 $zero, $f12 -/* 09C99C 8009BD9C A7B80026 */ sh $t8, 0x26($sp) -/* 09C9A0 8009BDA0 C444000C */ lwc1 $f4, 0xc($v0) -/* 09C9A4 8009BDA4 24198000 */ li $t9, -32768 -/* 09C9A8 8009BDA8 E7A40020 */ swc1 $f4, 0x20($sp) -/* 09C9AC 8009BDAC C4460010 */ lwc1 $f6, 0x10($v0) -/* 09C9B0 8009BDB0 3C06BF80 */ lui $a2, 0xbf80 -/* 09C9B4 8009BDB4 E7A6001C */ swc1 $f6, 0x1c($sp) -/* 09C9B8 8009BDB8 C4480014 */ lwc1 $f8, 0x14($v0) -/* 09C9BC 8009BDBC 46006386 */ mov.s $f14, $f12 -/* 09C9C0 8009BDC0 E7A80018 */ swc1 $f8, 0x18($sp) -/* 09C9C4 8009BDC4 A4400004 */ sh $zero, 4($v0) -/* 09C9C8 8009BDC8 A4400002 */ sh $zero, 2($v0) -/* 09C9CC 8009BDCC A4590000 */ sh $t9, ($v0) -/* 09C9D0 8009BDD0 E440000C */ swc1 $f0, 0xc($v0) -/* 09C9D4 8009BDD4 E4400010 */ swc1 $f0, 0x10($v0) -/* 09C9D8 8009BDD8 E4400014 */ swc1 $f0, 0x14($v0) -/* 09C9DC 8009BDDC 0C007578 */ jal func_8001D5E0 -/* 09C9E0 8009BDE0 AFA2002C */ sw $v0, 0x2c($sp) -/* 09C9E4 8009BDE4 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012 -/* 09C9E8 8009BDE8 3C058012 */ lui $a1, %hi(D_801263A8) # $a1, 0x8012 -/* 09C9EC 8009BDEC 24A563A8 */ addiu $a1, %lo(D_801263A8) # addiu $a1, $a1, 0x63a8 -/* 09C9F0 8009BDF0 0C019B37 */ jal func_80066CDC -/* 09C9F4 8009BDF4 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 -/* 09C9F8 8009BDF8 8FA3002C */ lw $v1, 0x2c($sp) -/* 09C9FC 8009BDFC 87A8002A */ lh $t0, 0x2a($sp) -/* 09CA00 8009BE00 00000000 */ nop -/* 09CA04 8009BE04 A4680000 */ sh $t0, ($v1) -/* 09CA08 8009BE08 87A90028 */ lh $t1, 0x28($sp) -/* 09CA0C 8009BE0C 00000000 */ nop -/* 09CA10 8009BE10 A4690002 */ sh $t1, 2($v1) -/* 09CA14 8009BE14 87AA0026 */ lh $t2, 0x26($sp) -/* 09CA18 8009BE18 00000000 */ nop -/* 09CA1C 8009BE1C A46A0004 */ sh $t2, 4($v1) -/* 09CA20 8009BE20 C7AA0020 */ lwc1 $f10, 0x20($sp) -/* 09CA24 8009BE24 00000000 */ nop -/* 09CA28 8009BE28 E46A000C */ swc1 $f10, 0xc($v1) -/* 09CA2C 8009BE2C C7B0001C */ lwc1 $f16, 0x1c($sp) -/* 09CA30 8009BE30 00000000 */ nop -/* 09CA34 8009BE34 E4700010 */ swc1 $f16, 0x10($v1) -/* 09CA38 8009BE38 C7B20018 */ lwc1 $f18, 0x18($sp) -/* 09CA3C 8009BE3C 00000000 */ nop -/* 09CA40 8009BE40 E4720014 */ swc1 $f18, 0x14($v1) -/* 09CA44 8009BE44 8FBF0014 */ lw $ra, 0x14($sp) -/* 09CA48 8009BE48 27BD0030 */ addiu $sp, $sp, 0x30 -/* 09CA4C 8009BE4C 03E00008 */ jr $ra -/* 09CA50 8009BE50 00000000 */ nop - -/* 09CA54 8009BE54 03E00008 */ jr $ra -/* 09CA58 8009BE58 00000000 */ nop - diff --git a/include/structs.h b/include/structs.h index d9bd3cbd..3ecc8bbd 100644 --- a/include/structs.h +++ b/include/structs.h @@ -55,7 +55,7 @@ typedef struct Settings4C { /* Size: 0x840 bytes */ typedef struct Settings { /* 0x0000 */ void *balloonsPtr; - /* 0x0004 */ void *courseFlagsPtr; + /* 0x0004 */ s32 *courseFlagsPtr; /* 0x0008 */ u16 keys; /* 0x000A */ char unkA[2]; /* 0x000C */ u16 bosses; diff --git a/score.sh b/score.sh index 72ab5be4..5a22e15b 100755 --- a/score.sh +++ b/score.sh @@ -1 +1 @@ -python3 ./tools/python/score.py \ No newline at end of file +python3 ./tools/python/score.py "$@" \ No newline at end of file diff --git a/src/mips1/unknown_080500.c b/src/mips1/unknown_080500.c index 28c056e1..a7d7cc61 100644 --- a/src/mips1/unknown_080500.c +++ b/src/mips1/unknown_080500.c @@ -41,6 +41,7 @@ extern s32 osTvType; extern s8 D_800DF450; extern s32 D_800DF458; +extern s32 D_800DF460; extern s32 D_800DF46C; extern s32 gIsInAdventureTwo; extern s32 gActiveMagicCodes; @@ -70,12 +71,33 @@ extern s32 gSaveFileIndex; extern s16 D_800DF7C4[11]; extern s32 D_800DF774; extern s32 D_800DF77C; +extern s32 D_800DF794; +extern s32 D_800DF798; +extern s32 D_800DF79C; +extern s32 D_800DF7A0; extern s32 D_800DFA2C; + + +typedef struct unk800DFA3C { + u8 pad0[0x32]; + u16 unk32; + u8 pad34[0x38]; + u32* unk6C; +} unk800DFA3C; + +extern unk800DFA3C D_800DFA3C; + +extern s32 D_800DFAC0; +extern s32 D_800DFAC4; +extern s16 D_800DFA38; + extern s16 D_800DFC78[24]; +extern u8 D_800DFDB4[10][2]; extern s32 D_800DFDC8; extern s32 D_800DFFD0; extern s32 D_800DFFD4; extern s32 D_800E0398; +extern s32 D_800E03A4; extern s32 D_800E0410; extern s32 D_800E0414; extern u32* D_800E041C; @@ -92,10 +114,11 @@ typedef struct unk800E045C { s32 pad10; s32 pad14; } unk800E045C; + extern unk800E045C D_800E045C; + extern unk800E045C D_800E0474; extern unk800E045C D_800E048C; - extern s16 D_800E0710[30]; extern s16 D_800E07C4[30]; extern s32 D_800E0970; @@ -118,9 +141,12 @@ extern s32 D_800E0F98; extern s32 D_800E0F9C; extern s32 D_800E0FA0; extern s32 D_800E0FB4; +extern s32 D_800E0FE4; // Number of racers in trophy race? extern s32 D_800E0FEC; extern s32 gTrophyRaceWorldId; extern s32 D_800E1024; +extern MenuElement D_800E1048; +extern MenuElement D_800E1088[8][3]; // 8 Racers with 3 MenuElement structs. extern s32 D_800E1708; extern s16 D_800E1768[10]; extern s32 D_800E17D8; @@ -130,10 +156,12 @@ extern s32 D_800E1DB4; extern s32 D_800E1DB8; extern s32 D_800E1DBC; extern s8 D_800E1E28; +extern f32 D_800E8414; extern s32 D_801263A0; extern s32 D_801263A8; extern s32 D_801263AC; +extern s8 D_801263B4; extern s32 D_801263BC; extern s32 D_801263C4; extern s8 D_801263D4[4]; @@ -142,6 +170,8 @@ extern s32 D_801263D8; extern s32 D_801263E0; extern s8 D_801263E8[8]; extern s8 D_801263F0[8]; +extern u8 D_80126418[8]; +extern u8 D_80126420[8]; extern s64 D_80126448; extern f32 D_80126450; extern u8 D_80126454; @@ -169,20 +199,14 @@ extern u8 D_8012646D; extern u8 D_8012646E; extern u8 D_8012646F; extern s32 D_80126470; +extern s32 D_80126484; +extern s32 D_80126488; extern s8 D_801264D8; extern s8 D_801264E2; extern s8 D_80126504; extern s8 D_8012650E; extern s8 D_80126516; - -/* Size: 0x228 bytes */ -typedef struct unk80126530 { - u8 pad0[0x4B]; - u8 unk4B; - u8 pad4C[0x1DC]; -} unk80126530; -extern unk80126530 *D_80126530[3]; - +extern Settings *D_80126530[3]; extern u32* D_80126550[1]; // lookup table? Unknown number of entries. extern s8* D_801267EC; extern s32 D_80126804; @@ -191,11 +215,26 @@ extern s32 D_8012683C; extern s32 D_80126840; extern s32 D_80126844; extern s32 D_8012684C; +extern s32 D_80126854; +extern s32 D_80126858; +extern s32 D_8012685C; +extern s32 D_80126860; extern s8 D_801269C0[4]; // Unknown number of entries. +extern u32* D_801269E0; extern s32 D_801269FC; +extern s32 D_80126A00; +extern s32 D_80126A08; extern s32 D_80126A0C; +extern s32 D_80126A10; +extern s32 D_80126A14; +extern s32 D_80126A20[8]; // Unknown number of entries. extern s32 D_80126A64; +extern s32 D_80126A94; extern s32 D_80126AA0; +extern s32 D_80126BD4; +extern f32 D_80126BDC; +extern f32 D_80126BEC; +extern s32 D_80126BE4; extern s32 *D_80126C2C; extern s32 D_80126C34; extern s32 D_80126C3C; @@ -211,9 +250,11 @@ extern s32 *D_80126C6C; extern s32 D_80126C70; extern s32 D_80126C74; extern s32 D_80126C78; +extern s32 D_80126CC0; Settings *get_settings(); void func_8009C4A8(s16 *arg0); +void func_8009C674(s16 *arg0); void func_8008E4B0(void); s8* func_8001E29C(s32 arg0); @@ -252,10 +293,52 @@ GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuInit.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuLoop.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80081800.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80081C04.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80081E54.s") + +void func_80081E54(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, s32 arg5) { + D_800DF798 = arg0; + D_800DF794 = 0; + D_80126858 = arg1 * 60.0f; + D_8012685C = arg2 * 60.0f; + D_80126860 = arg3 * 60.0f; + D_80126854 = 0; + D_800DF79C = arg4; + D_800DF7A0 = arg5; + if (D_80126858 > 0) { + func_80001D04(0x16, 0); + } +} + + GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80081F4C.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/DrawMenuText.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_800828B8.s") + +void func_800828B8(void) { + s32 i; + s32 j; + s32 num; + Settings *settings; + + settings = get_settings(); + func_8006B224(&num, &j); + + for(i = 0; i < num; i++) { + settings->courseFlagsPtr[i] = 0; + for(j = 0; j < 3; j++) { + settings->courseFlagsPtr[i] |= D_80126530[j]->courseFlagsPtr[i]; + } + } + + settings->trophies = 0; + settings->keys = 0; + settings->bosses = 0; + settings->cutsceneFlags = 0; + for(i = 0; i < 3; i++) { + settings->trophies |= D_80126530[i]->trophies; + settings->keys |= D_80126530[i]->keys; + settings->bosses |= D_80126530[i]->bosses; + settings->cutsceneFlags |= D_80126530[i]->cutsceneFlags; + } +} void func_800829F8(s32 arg0, s32 arg1) { s32 temp; @@ -291,7 +374,27 @@ void menu_logos_screen_init(void) { } GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuLogoScreenLoop.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80082FAC.s") + +void set_magic_code_flags(s32 flags); + +void func_80082FAC(void) { + if (D_80126448 & 2) { + set_magic_code_flags(2); + } + if ((D_80126448 & 0xFFFFF0) == 0xFFFFF0) { + set_magic_code_flags(1); + } + if (D_80126448 & 1) { + gIsInAdventureTwo = 1; + } else { + gIsInAdventureTwo = 0; + } + if ((D_80126448 & 0x2000000) == 0) { + func_800C2AF4(0); + } + func_8007F900(func_8009EB20()); +} + GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80083098.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuTitleScreenInit.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008377C.s") @@ -323,7 +426,35 @@ void func_80084734(void) { func_800C422C(2); } -GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuAudioOptionsInit.s") +void func_8009C8A4(s16 *arg0); + +//GLOBAL_ASM("asm/non_matchings/unknown_080500/menu_audio_options_init") +void MenuAudioOptionsInit(void) { + D_80126C46 = 0; + D_801263BC = 0; + D_800DF47C = 0; + D_801269FC = 0; + D_801263D8 = -1; + func_8009C674((s16*)&D_800DFA2C); + func_8009C8A4(&D_800DFA38); + func_8008E4B0(); + func_800C01D8(&D_800DF77C); + func_8007FFEC(2); + D_800DFAC4 = musicVolumeSliderPercentage(); + D_800DFAC0 = sfxVolumeSliderPercentage(); + if (gActiveMagicCodes & 0x40) { // Check if "JUKEBOX" cheat is active + D_800DFA3C.unk6C = D_801269E0; + D_800DFA3C.unk32 = 0xD4; + func_80000BE0(0x20); + D_801263E0 = 5; + } else { + D_800DFA3C.unk6C = NULL; + D_800DFA3C.unk32 = 0xC0; + D_801263E0 = 4; + } + func_800C4170(2); +} + GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80084854.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuAudioOptionsLoop.s") @@ -344,7 +475,44 @@ void func_800851FC(void) { GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuSaveOptionsInit.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_800853D0.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80085B9C.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_800860A8.s") + +/* Size: 0x10 Bytes */ +typedef struct unk800860A8 { + s8 unk0; + u8 pad1[0x5]; + s8 unk6; + u8 pad7[0x5]; + s32 unkC; +} unk800860A8; + +s32 func_800860A8(s32 arg0, s32 *arg1, unk800860A8 *arg2, s32 *arg3, s32 arg4) { + s32 temp_v1; + s32 phi_t0; + + phi_t0 = 0; + if (*arg1 != 0) { + phi_t0 = func_80076194(arg0, &arg2[*arg3].unkC, &D_80126A20[arg0]); + if (phi_t0 == 0) { + if ((arg2[*arg3].unkC >= arg4) && (D_80126A20[arg0] > 0)) { + arg2[*arg3].unk0 = 8; + arg2[*arg3].unk6 = arg0; + (*arg3)++; + } + } else { + if((*arg1 < 0) && ((phi_t0 & 0xFF) == 7)) { + *arg1 = 0; + phi_t0 = 0; + } else { + temp_v1 = phi_t0 & 0xFF; + if (temp_v1 != 3 && temp_v1 != 2 && temp_v1 != 9) { + phi_t0 = 0; + } + } + } + } + + return phi_t0; +} /* Size: 0x10 bytes */ typedef struct unk800861C8 { @@ -362,7 +530,7 @@ typedef struct unk800861C8 { void func_800861C8(unk800861C8* arg0, s32 *arg1) { s32 i; for(i = 0; i < 3; i++) { - if (D_80126530[i]->unk4B != 0) { + if (D_80126530[i]->newGame != 0) { arg0[*arg1].unk0 = 1; arg0[*arg1].unk1 = 0; arg0[*arg1].unk2 = 0; @@ -379,14 +547,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_080500/func_800867D4.s") #if 1 GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80086A48.s") #else -extern s32 D_80126A08; -extern s32 D_80126A00; -extern s32 D_801263E0; -extern s32 D_80126BD4; -extern f32 D_80126BDC; -extern f32 D_800E8414; -extern f32 D_80126BEC; -extern s32 D_80126BE4; void func_80086A48(s32 arg0) { f32 temp, temp2, temp3; @@ -407,8 +567,58 @@ void func_80086A48(s32 arg0) { GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80086AFC.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_800871D8.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_800874D0.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_800875E4.s") + + +s32 func_800874D0(s32 arg0, s32 arg1) { + s32 sp1C; + + sp1C = 0; + if (arg0 & 0x4000) { + D_801263E0 = 0; + if (D_80126A10 != D_80126A14) { + func_800871D8(8); + } else { + func_80001D04(0x241, 0); + sp1C = -1; + } + } else { + if (arg0 & 0x9000) { + func_80001D04(0xEF, 0); + D_801263E0 = 4; + } else { + if ((arg1 < 0) && (D_80126BD4 > 0)) { + func_80001D04(0xEB, 0); + D_80126BD4 = (s32) (D_80126BD4 - 1); + } else if ((arg1 > 0) && (D_80126BD4 < (D_80126A08 - 1))) { + func_80001D04(0xEB, 0); + D_80126BD4 = (s32) (D_80126BD4 + 1); + } + } + } + return sp1C; +} + +s32 func_800875E4(s32 arg0, s32 arg1) { + if (arg0 & 0x4000) { + func_80001D04(0x241, 0); + D_801263E0 = 3; + } else { + if (arg0 & 0x9000) { + func_80001D04(0xEF, 0); + D_801263E0 = 6; + } else { + if ((arg1 < 0) && (D_80126BE4 > 0)) { + func_80001D04(0xEB, 0); + D_80126BE4 = (s32) (D_80126BE4 - 1); + } else if ((arg1 > 0) && (D_80126BE4 < D_80126A00 - 1)) { + func_80001D04(0xEB, 0); + D_80126BE4 = (s32) (D_80126BE4 + 1); + } + } + } + return 0; +} + s32 func_800876CC(s32 arg0, s32 arg1) { if (arg0 & 0x4000) { @@ -577,7 +787,36 @@ GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008B4C8.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008B758.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008BB3C.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuCharacterSelectLoop.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008BFE8.s") + +void func_8008BFE8(s32 arg0, s8 *arg1, s32 arg2, u16 arg3, u16 arg4) { + s32 someBool; + s32 j; + s32 i; + + j = 0; + someBool = 1; + while (someBool && j < arg2 && arg1[j] != -1) { + someBool = 0; + if ((func_8009C30C() & 0x400000) == 0) { + i = 0; + while(i < 4 && !someBool){ + if (i != arg0 && D_801263E8[i] == arg1[j]) { + someBool = 1; + } + i++; + } + if (someBool) { + j++; + } + } + } + if (!someBool) { + D_801263E8[arg0] = arg1[j]; + func_80001D04(arg3, 0); + return; + } + func_80001D04(arg4, 0); +} void func_8008C128(void) { func_8009C4A8((s16*)&D_800DFDC8); @@ -643,7 +882,38 @@ void func_8008CACC(void) { func_8009C508(0x43); } -GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuFileSelectInit.s") +void menu_file_select_init(void) { + s32 i; + s32 sp38; + s32 sp34; + + func_8006B224(&sp38, &sp34); + func_8009C674((s16*)&D_800E0398); + func_8009C8A4((s16*)&D_800E03A4); + func_8007FFEC(6); + func_8006EBA8(); + D_801263D8 = 1; + gSaveFileIndex = 0; + D_800DF47C = 0; + D_801263E0 = 0; + D_801263BC = 0; + D_80126484 = 0; + D_80126488 = 0; + D_80126CC0 = 0; + func_800C01D8(&D_800DF77C); + func_800C4170(2); + func_80000B34(0x1A); + for(i = 0; i < 10; i++) { + if (i != D_801263B4) { + func_80001114(D_800DFDB4[i][0]); + func_80001114(D_800DFDB4[i][1]); + } + } + func_80001114(6); + func_80000B18(); +} + + GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008CC28.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008CD74.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8008D5F8.s") @@ -790,7 +1060,33 @@ void func_80094604(void) { GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80094688.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80094A5C.s") -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80094C14.s") + +void func_80094C14(s32 arg0) { + D_801263BC = (D_801263BC + arg0) & 0x3F; + D_80126A94 += arg0; + if (D_801263D8 >= 0) { + D_801263D8 += arg0; + switch(D_800DF460) { + case 0: + if (func_8000C8B4(0xF0, &D_80126A94) < D_801263D8) { + func_80000C98(-0x100); + D_800DF460 = 1; + } + break; + case 1: + if (func_8000C8B4(0x12C, &D_80126A94) < D_801263D8) { + func_80000BE0(0x18); + func_80000B34(0x18); + func_80000C98(0x100); + } + break; + } + if (func_8000C8B4(0x12C) < D_801263D8) { + D_801263D8 = -1; + } + } +} + GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80094D28.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80095624.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80095728.s") @@ -938,7 +1234,38 @@ void func_80098754(void) { GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80098774.s") GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuTrophyRaceRankingsInit.s") + +#if 1 GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80098EBC.s") +#else +void func_80098EBC(s32 arg0) { + s32 fade; + s32 i; + + D_801263BC = (D_801263BC + arg0) & 0x3F; + + arg0 = D_801263BC * 8; + if (arg0 >= 0x100) { + arg0 = 0x1FF - arg0; + } + + // Has regalloc issues starting here. + for (i = 0; i < D_800E0FE4; i++) { + fade = 0xFF; + if (D_800DF4BC < 3 && ((D_801263E0 == 0 && D_80126418[i] != 0) || (D_801263E0 != 0 && D_80126420[i] != 0))) { + fade = (arg0 >> 1) + 0x80; + } + D_800E1088[i][0].filterRed = fade; + D_800E1088[i][0].filterGreen = fade; + D_800E1088[i][0].filterBlue = fade; + } + + if (D_801263E0 == 2 || D_801263E0 == 3) { + DrawMenuText(1, &D_800E1048, 1.0f); + } +} +#endif + GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuTrophyRaceRankingsLoop.s") void func_80099600(void) { @@ -986,8 +1313,6 @@ void func_8009ABD8(s8 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { D_80126804 = arg5; } -void func_8009C674(s16 *arg0); - void menu_17_init(void) { if (D_80126804 != 0) { func_8009C674(D_800E1768); @@ -1019,7 +1344,61 @@ void func_8009BCF0(void) { func_800C422C(2); func_8006F564(0); } -GLOBAL_ASM("asm/non_matchings/unknown_080500/func_8009BD5C.s") + +/* Unknown size */ +typedef struct unk80069D20 { + s16 unk0; + s16 unk2; + s16 unk4; + u8 pad6[6]; + f32 unkC; + f32 unk10; + f32 unk14; +} unk80069D20; + +void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2); + +void func_8009BD5C(void) { + unk80069D20 *temp_v0; + s16 sp2A; + s16 sp28; + s16 sp26; + f32 sp20; + f32 sp1C; + f32 sp18; + + func_8006652C(0); + func_800665E8(0); + + temp_v0 = (unk80069D20*)func_80069D20(); + + sp2A = temp_v0->unk0; + sp28 = temp_v0->unk2; + sp26 = temp_v0->unk4; + sp20 = temp_v0->unkC; + sp1C = temp_v0->unk10; + sp18 = temp_v0->unk14; + temp_v0->unk4 = 0; + temp_v0->unk2 = 0; + temp_v0->unk0 = 0x8000; + temp_v0->unkC = -32.0f; + temp_v0->unk10 = -32.0f; + temp_v0->unk14 = -32.0f; + + func_8001D5E0(0, 0, -1); + func_80066CDC(&D_801263A0, &D_801263A8); + + temp_v0->unk0 = sp2A; + temp_v0->unk2 = sp28; + temp_v0->unk4 = sp26; + temp_v0->unkC = sp20; + temp_v0->unk10 = sp1C; + temp_v0->unk14 = sp18; +} + +void func_8009BE54() { + +} void func_8009BE5C(void) { D_8012645C = 0; @@ -1166,8 +1545,8 @@ s32 func_8009C440(void) { return (D_800E0410 + 1) << 1; // Doesn't match with multiply. } -unk80126530** func_8009C490(void) { - return (unk80126530**)&D_80126530; +Settings** func_8009C490(void) { + return (Settings**)D_80126530; } void func_8009C49C(void) { diff --git a/tools/python/score.py b/tools/python/score.py index 5d6ee822..04026816 100644 --- a/tools/python/score.py +++ b/tools/python/score.py @@ -1,9 +1,11 @@ import re +import sys from file_util import FileUtil SRC_DIRECTORY = './src' FUNCTION_REGEX = r'([/][*]([^*]|([*][^/]))*[*][/][\n]\s*)?(void|s64|s32|s16|s8|u64|u32|u16|u8|f32|f64)(\s|[*])*([0-9A-Za-z_]+)\s*[(][^)]*[)]\s*{' -WIP_REGEX = r'#if(.|\n)*?(GLOBAL_ASM[(][^)]*[)])(.|\n)*?#else(.|\n)*?#endif' +GLOBAL_ASM_REGEX = r'GLOBAL_ASM[(]\"[^/]*/[^/]*/[^/]*/([a-zA-Z0-9_]*).s\"[)]' +WIP_REGEX = r'#if(.|\n)*?(GLOBAL_ASM[(]([^)]*)[)])(.|\n)*?#else(.|\n)*?#endif' CODE_START = 0x80000400 CODE_END = 0x800D75F4 @@ -41,6 +43,7 @@ class ScoreFileMatch: class ScoreFile: def __init__(self, filepath): self.functions = [] + self.unfinishedSize = 0 self.numGlobalAsms = 0 self.path = filepath self.read_file() @@ -50,14 +53,22 @@ class ScoreFile: def read_file(self): with open(self.path, "r") as inFile: self.text = inFile.read() - self.text = re.sub(WIP_REGEX, 'GLOBAL_ASM()', self.text) + self.text = re.sub(WIP_REGEX, r"GLOBAL_ASM(\3)", self.text) def get_matches(self): matches = re.finditer(FUNCTION_REGEX, self.text, re.MULTILINE) for matchNum, match in enumerate(matches, start=1): groups = match.groups() self.functions.append(ScoreFileMatch(groups[0], groups[5])) - self.numGlobalAsms = self.text.count("GLOBAL_ASM") + + matches = re.finditer(GLOBAL_ASM_REGEX, self.text, re.MULTILINE) + for matchNum, match in enumerate(matches, start=1): + groups = match.groups() + self.numGlobalAsms += 1 + try: + self.unfinishedSize += MAP_FILE.functionSizes[groups[0]] + except Exception: + pass def get_number_of_documented_functions(self): count = 0 @@ -80,6 +91,19 @@ class ScoreFile: return size def main(): + showTopFiles = 0 + + numArgs = len(sys.argv) + for i in range(1, numArgs): + arg = sys.argv[i].lower() + print('Argument:', sys.argv[i]) + if arg.startswith("--top"): + num = arg[5:] + if num == "": + showTopFiles = 10 # 10 is the default + else: + showTopFiles = int(num) + scoreFiles = [] srcFilenames = FileUtil.get_filenames_from_directory_recursive(SRC_DIRECTORY, extensions=('.c')) totalNumberOfDecompiledFunctions = 0 @@ -111,7 +135,20 @@ def main(): print(' # Documented functions: ' + str(totalNumberOfDocumentedFunctions)) print(' # Undocumented remaining: ' + str(totalNumberOfFunctions - totalNumberOfDocumentedFunctions)) print('=========================================') - #print(totalNumberOfDecompiledFunctions, totalNumberOfGlobalAsms, totalNumberOfDocumentedFunctions) + + if showTopFiles > 0: + if showTopFiles > len(scoreFiles): + showTopFiles = len(scoreFiles) + print('======= TOP FILES ======== | TODO | DONE |') + files = [] + for file in scoreFiles: + files.append([file.path, file.unfinishedSize, file.get_size_of_functions()]) + files.sort(key=lambda x:x[1], reverse=True) # Sort by Size, Largest to Smallest + for i in range(0, showTopFiles): + percentageRemaining = (files[i][1] / CODE_SIZE) * 100 + percentageDone = (files[i][2] / CODE_SIZE) * 100 + funcName = files[i][0][12:] + print("", funcName, (" " * (24 - len(funcName))), "| {:5.2f}% | {:5.2f}% |".format(percentageRemaining, percentageDone)) main()