From 0b26e4c5f46d7d8725f8ed37eb8588a81dee4904 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Fri, 18 Jun 2021 20:49:13 -0500 Subject: [PATCH] More documentation & decompiled a couple functions in unknown_0B7A50.c --- asm/get_stack_pointer.s | 15 + asm/non_matchings/menu/func_8008AD44.s | 2 +- asm/non_matchings/menu/func_80094688.s | 2 +- .../unknown_00BC20/func_8000C8F8.s | 2 +- .../unknown_00BC20/func_8000CC7C.s | 2 +- .../unknown_00BC20/func_80010994.s | 2 +- .../unknown_00BC20/func_80017E98.s | 2 +- .../unknown_00BC20/func_80019808.s | 2 +- .../unknown_00BC20/func_8001A8F4.s | 2 +- .../unknown_00BC20/func_8001AE64.s | 2 +- .../unknown_00BC20/func_80022948.s | 2 +- .../unknown_00BC20/func_80022E18.s | 2 +- .../unknown_0255E0/func_800249F0.s | 2 +- .../unknown_0255E0/func_80024D54.s | 8 +- .../unknown_0255E0/func_80028CD0.s | 2 +- .../unknown_032760/func_80031CAC.s | 2 +- .../unknown_032760/func_80034E9C.s | 2 +- .../unknown_032760/func_800361E0.s | 2 +- .../unknown_032760/func_80039330.s | 2 +- .../unknown_032760/func_8003C7A4.s | 2 +- .../unknown_032760/func_8003D5A0.s | 4 +- .../unknown_032760/func_8003E140.s | 2 +- .../unknown_043920/func_80042D20.s | 2 +- .../unknown_043920/func_80044170.s | 2 +- .../unknown_043920/func_8004447C.s | 2 +- .../unknown_043920/func_800452A0.s | 2 +- .../unknown_043920/func_8004DE38.s | 6 +- .../unknown_043920/func_8004F7F4.s | 2 +- .../unknown_043920/func_80054110.s | 2 +- .../unknown_043920/func_8005698C.s | 2 +- .../unknown_043920/func_800576E0.s | 2 +- .../unknown_043920/func_8005A6F0.s | 2 +- .../unknown_043920/func_8005B818.s | 2 +- .../unknown_0667D0/func_80065D98.s | 4 +- .../unknown_066AA0/func_8006A6B0.s | 4 +- .../unknown_066AA0/func_8006CCF0.s | 26 +- .../unknown_066AA0/func_8006DA28.s | 65 --- .../unknown_066AA0/func_8006DCF8.s | 16 +- .../unknown_066AA0/func_8006ECFC.s | 12 +- .../unknown_066AA0/func_8006EFDC.s | 12 +- .../{func_8006B250.s => load_level.s} | 6 +- .../{func_8006C60C.s => render.s} | 6 +- .../unknown_066AA0/thread3_main.s | 49 +++ .../unknown_071730/func_80071A24.s | 18 +- .../unknown_077C50/func_80077050.s | 2 +- .../unknown_09F8F0/func_8009F034.s | 6 +- .../unknown_09F8F0/func_800A01A0.s | 6 +- .../unknown_09F8F0/func_800A277C.s | 2 +- .../unknown_09F8F0/func_800A3884.s | 2 +- .../unknown_09F8F0/func_800A3CE4.s | 2 +- .../unknown_09F8F0/func_800A4C44.s | 2 +- .../unknown_09F8F0/func_800A4F50.s | 2 +- .../unknown_09F8F0/func_800A5A64.s | 4 +- .../unknown_09F8F0/func_800A5F18.s | 2 +- .../unknown_09F8F0/func_800A6254.s | 4 +- .../unknown_09F8F0/func_800A718C.s | 2 +- .../unknown_09F8F0/func_800A7B68.s | 2 +- .../unknown_09F8F0/func_800A8474.s | 12 +- .../unknown_0AEE70/func_800B4A08.s | 2 +- .../unknown_0AEE70/func_800B635C.s | 2 +- .../unknown_0AEE70/func_800B6E50.s | 42 -- .../unknown_0AEE70/func_800B6EE0.s | 11 - .../unknown_0AEE70/func_800B6F04.s | 18 - .../unknown_0AEE70/func_800B6F50.s | 4 +- .../unknown_0AEE70/func_800B70D0.s | 34 -- .../unknown_0AEE70/func_800B7144.s | 32 -- .../unknown_0AEE70/func_800B76B8.s | 12 - .../unknown_0AEE70/func_800B76DC.s | 67 --- .../unknown_0AEE70/func_800B77D4.s | 18 - .../unknown_0AEE70/func_800B7D10.s | 7 - ...00B7810.s => render_epc_lock_up_display.s} | 206 +++++----- .../{func_800B5EDC.s => render_printf.s} | 4 +- .../{func_800B4A40.s => sprintf.s} | 2 +- .../{func_800B6FC4.s => thread0.s} | 2 +- .../unknown_0B8920/func_800C3440.s | 2 +- src/menu.c | 70 +--- src/menu.h | 84 +++- src/unknown_00BC20.c | 2 +- src/unknown_0255E0.c | 2 +- src/unknown_066AA0.c | 2 +- src/unknown_06B2B0.c | 370 +++++++++++------ src/unknown_071730.c | 26 +- src/unknown_09F8F0.c | 2 +- src/unknown_0AEE70.c | 69 ---- src/unknown_0B3D40.c | 4 +- src/unknown_0B7A50.c | 380 +++++++++++++++++- tools/python/rename_file.py | 2 +- undefined_syms.txt | 1 + 88 files changed, 1005 insertions(+), 833 deletions(-) create mode 100644 asm/get_stack_pointer.s delete mode 100644 asm/non_matchings/unknown_066AA0/func_8006DA28.s rename asm/non_matchings/unknown_066AA0/{func_8006B250.s => load_level.s} (99%) rename asm/non_matchings/unknown_066AA0/{func_8006C60C.s => render.s} (99%) create mode 100644 asm/non_matchings/unknown_066AA0/thread3_main.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B6E50.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B6EE0.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B6F04.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B70D0.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B7144.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B76B8.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B76DC.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B77D4.s delete mode 100644 asm/non_matchings/unknown_0AEE70/func_800B7D10.s rename asm/non_matchings/unknown_0AEE70/{func_800B7810.s => render_epc_lock_up_display.s} (69%) rename asm/non_matchings/unknown_0AEE70/{func_800B5EDC.s => render_printf.s} (96%) rename asm/non_matchings/unknown_0AEE70/{func_800B4A40.s => sprintf.s} (99%) rename asm/non_matchings/unknown_0AEE70/{func_800B6FC4.s => thread0.s} (99%) diff --git a/asm/get_stack_pointer.s b/asm/get_stack_pointer.s new file mode 100644 index 00000000..bb632142 --- /dev/null +++ b/asm/get_stack_pointer.s @@ -0,0 +1,15 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800B7D10 */ + +.section .text + +.include "macros.inc" + +.set noat # allow manual use of $at +.set noreorder # dont insert nops after branches +.set gp=64 # 64-bit instructions are used + +glabel get_stack_pointer +jr $ra + move $v0, $sp + \ No newline at end of file diff --git a/asm/non_matchings/menu/func_8008AD44.s b/asm/non_matchings/menu/func_8008AD44.s index 90710aba..fc1c0c93 100644 --- a/asm/non_matchings/menu/func_8008AD44.s +++ b/asm/non_matchings/menu/func_8008AD44.s @@ -89,7 +89,7 @@ glabel func_8008AD44 /* 08BA80 8008AE80 8CA51E14 */ lw $a1, %lo(D_800E1E14)($a1) /* 08BA84 8008AE84 3C04800F */ lui $a0, %hi(D_800E8218) # $a0, 0x800f /* 08BA88 8008AE88 24848218 */ addiu $a0, %lo(D_800E8218) # addiu $a0, $a0, -0x7de8 -/* 08BA8C 8008AE8C 0C02D7B7 */ jal func_800B5EDC +/* 08BA8C 8008AE8C 0C02D7B7 */ jal render_printf /* 08BA90 8008AE90 02003025 */ move $a2, $s0 /* 08BA94 8008AE94 8FBF002C */ lw $ra, 0x2c($sp) /* 08BA98 8008AE98 8FB00018 */ lw $s0, 0x18($sp) diff --git a/asm/non_matchings/menu/func_80094688.s b/asm/non_matchings/menu/func_80094688.s index dae8e1ba..3d3c4d40 100644 --- a/asm/non_matchings/menu/func_80094688.s +++ b/asm/non_matchings/menu/func_80094688.s @@ -5,7 +5,7 @@ glabel func_80094688 /* 095294 80094694 AFA50034 */ sw $a1, 0x34($sp) /* 095298 80094698 0C01C8A6 */ jal func_80072298 /* 09529C 8009469C 00002025 */ move $a0, $zero -/* 0952A0 800946A0 0C01AF6C */ jal func_8006BDB0 +/* 0952A0 800946A0 0C01AF6C */ jal get_current_level_header /* 0952A4 800946A4 00000000 */ nop /* 0952A8 800946A8 8FAE0030 */ lw $t6, 0x30($sp) /* 0952AC 800946AC 3C018012 */ lui $at, %hi(D_80126C28) # $at, 0x8012 diff --git a/asm/non_matchings/unknown_00BC20/func_8000C8F8.s b/asm/non_matchings/unknown_00BC20/func_8000C8F8.s index 78d7c101..82cc32bd 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000C8F8.s +++ b/asm/non_matchings/unknown_00BC20/func_8000C8F8.s @@ -44,7 +44,7 @@ glabel func_8000C8F8 /* 00D598 8000C998 00000000 */ nop /* 00D59C 8000C99C A2000000 */ sb $zero, ($s0) .L8000C9A0: -/* 00D5A0 8000C9A0 0C01AF66 */ jal func_8006BD98 +/* 00D5A0 8000C9A0 0C01AF66 */ jal get_current_level_race_type /* 00D5A4 8000C9A4 00000000 */ nop /* 00D5A8 8000C9A8 10400002 */ beqz $v0, .L8000C9B4 /* 00D5AC 8000C9AC 3C018012 */ lui $at, %hi(D_8011AD3E) # $at, 0x8012 diff --git a/asm/non_matchings/unknown_00BC20/func_8000CC7C.s b/asm/non_matchings/unknown_00BC20/func_8000CC7C.s index 6a9f5b53..e0026d40 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000CC7C.s +++ b/asm/non_matchings/unknown_00BC20/func_8000CC7C.s @@ -39,7 +39,7 @@ glabel func_8000CC7C /* 00D8DC 8000CCDC A2200000 */ sb $zero, ($s1) /* 00D8E0 8000CCE0 0C01486E */ jal func_800521B8 /* 00D8E4 8000CCE4 00002025 */ move $a0, $zero -/* 00D8E8 8000CCE8 0C01AF6C */ jal func_8006BDB0 +/* 00D8E8 8000CCE8 0C01AF6C */ jal get_current_level_header /* 00D8EC 8000CCEC 00000000 */ nop /* 00D8F0 8000CCF0 AFA20078 */ sw $v0, 0x78($sp) /* 00D8F4 8000CCF4 9043004C */ lbu $v1, 0x4c($v0) diff --git a/asm/non_matchings/unknown_00BC20/func_80010994.s b/asm/non_matchings/unknown_00BC20/func_80010994.s index 43d9753a..2ec1bb21 100644 --- a/asm/non_matchings/unknown_00BC20/func_80010994.s +++ b/asm/non_matchings/unknown_00BC20/func_80010994.s @@ -258,7 +258,7 @@ glabel func_80010994 /* 011944 80010D44 1420FFF5 */ bnez $at, .L80010D1C /* 011948 80010D48 26520004 */ addiu $s2, $s2, 4 .L80010D4C: -/* 01194C 80010D4C 0C01AF66 */ jal func_8006BD98 +/* 01194C 80010D4C 0C01AF66 */ jal get_current_level_race_type /* 011950 80010D50 00000000 */ nop /* 011954 80010D54 1440001C */ bnez $v0, .L80010DC8 /* 011958 80010D58 3C078012 */ lui $a3, %hi(playerCount) # $a3, 0x8012 diff --git a/asm/non_matchings/unknown_00BC20/func_80017E98.s b/asm/non_matchings/unknown_00BC20/func_80017E98.s index c94fa4f5..65ac2762 100644 --- a/asm/non_matchings/unknown_00BC20/func_80017E98.s +++ b/asm/non_matchings/unknown_00BC20/func_80017E98.s @@ -158,7 +158,7 @@ glabel func_80017E98 /* 018CE4 800180E4 240500DC */ li $a1, 220 /* 018CE8 800180E8 3C04800E */ lui $a0, %hi(D_800E50D4) # $a0, 0x800e /* 018CEC 800180EC 248450D4 */ addiu $a0, %lo(D_800E50D4) # addiu $a0, $a0, 0x50d4 -/* 018CF0 800180F0 0C02D7B7 */ jal func_800B5EDC +/* 018CF0 800180F0 0C02D7B7 */ jal render_printf /* 018CF4 800180F4 02402825 */ move $a1, $s2 /* 018CF8 800180F8 3C088012 */ lui $t0, %hi(D_8011AED4) # $t0, 0x8012 /* 018CFC 800180FC 2508AED4 */ addiu $t0, %lo(D_8011AED4) # addiu $t0, $t0, -0x512c diff --git a/asm/non_matchings/unknown_00BC20/func_80019808.s b/asm/non_matchings/unknown_00BC20/func_80019808.s index 28486c2f..05557dc7 100644 --- a/asm/non_matchings/unknown_00BC20/func_80019808.s +++ b/asm/non_matchings/unknown_00BC20/func_80019808.s @@ -8,7 +8,7 @@ glabel func_80019808 /* 01A420 80019820 AFB20020 */ sw $s2, 0x20($sp) /* 01A424 80019824 AFB1001C */ sw $s1, 0x1c($sp) /* 01A428 80019828 AFB00018 */ sw $s0, 0x18($sp) -/* 01A42C 8001982C 0C01AF6C */ jal func_8006BDB0 +/* 01A42C 8001982C 0C01AF6C */ jal get_current_level_header /* 01A430 80019830 AFA400A0 */ sw $a0, 0xa0($sp) /* 01A434 80019834 0C01BAA4 */ jal get_settings /* 01A438 80019838 AFA20064 */ sw $v0, 0x64($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_8001A8F4.s b/asm/non_matchings/unknown_00BC20/func_8001A8F4.s index 021b6cdb..33fd6b60 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001A8F4.s +++ b/asm/non_matchings/unknown_00BC20/func_8001A8F4.s @@ -296,7 +296,7 @@ glabel func_8001A8F4 /* 01B944 8001AD44 24040001 */ li $a0, 1 /* 01B948 8001AD48 0C0168EC */ jal func_8005A3B0 /* 01B94C 8001AD4C 00000000 */ nop -/* 01B950 8001AD50 0C01AF66 */ jal func_8006BD98 +/* 01B950 8001AD50 0C01AF66 */ jal get_current_level_race_type /* 01B954 8001AD54 00000000 */ nop /* 01B958 8001AD58 304A0040 */ andi $t2, $v0, 0x40 /* 01B95C 8001AD5C 15400013 */ bnez $t2, .L8001ADAC diff --git a/asm/non_matchings/unknown_00BC20/func_8001AE64.s b/asm/non_matchings/unknown_00BC20/func_8001AE64.s index 7a488318..65e006a2 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001AE64.s +++ b/asm/non_matchings/unknown_00BC20/func_8001AE64.s @@ -1,7 +1,7 @@ glabel func_8001AE64 /* 01BA64 8001AE64 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 01BA68 8001AE68 AFBF001C */ sw $ra, 0x1c($sp) -/* 01BA6C 8001AE6C 0C01AF6C */ jal func_8006BDB0 +/* 01BA6C 8001AE6C 0C01AF6C */ jal get_current_level_header /* 01BA70 8001AE70 AFB00018 */ sw $s0, 0x18($sp) /* 01BA74 8001AE74 0C01BAA4 */ jal get_settings /* 01BA78 8001AE78 AFA2002C */ sw $v0, 0x2c($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_80022948.s b/asm/non_matchings/unknown_00BC20/func_80022948.s index e4154525..0fb7ac6d 100644 --- a/asm/non_matchings/unknown_00BC20/func_80022948.s +++ b/asm/non_matchings/unknown_00BC20/func_80022948.s @@ -9,7 +9,7 @@ glabel func_80022948 /* 023564 80022964 AFBF001C */ sw $ra, 0x1c($sp) /* 023568 80022968 170000E0 */ bnez $t8, .L80022CEC /* 02356C 8002296C AFB00018 */ sw $s0, 0x18($sp) -/* 023570 80022970 0C01AF6C */ jal func_8006BDB0 +/* 023570 80022970 0C01AF6C */ jal get_current_level_header /* 023574 80022974 00000000 */ nop /* 023578 80022978 AFA20068 */ sw $v0, 0x68($sp) /* 02357C 8002297C 90590052 */ lbu $t9, 0x52($v0) diff --git a/asm/non_matchings/unknown_00BC20/func_80022E18.s b/asm/non_matchings/unknown_00BC20/func_80022E18.s index fd73b8f2..f4b990d0 100644 --- a/asm/non_matchings/unknown_00BC20/func_80022E18.s +++ b/asm/non_matchings/unknown_00BC20/func_80022E18.s @@ -1,7 +1,7 @@ glabel func_80022E18 /* 023A18 80022E18 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 023A1C 80022E1C AFBF0014 */ sw $ra, 0x14($sp) -/* 023A20 80022E20 0C01AF6C */ jal func_8006BDB0 +/* 023A20 80022E20 0C01AF6C */ jal get_current_level_header /* 023A24 80022E24 AFA40030 */ sw $a0, 0x30($sp) /* 023A28 80022E28 240E0005 */ li $t6, 5 /* 023A2C 80022E2C A04E004C */ sb $t6, 0x4c($v0) diff --git a/asm/non_matchings/unknown_0255E0/func_800249F0.s b/asm/non_matchings/unknown_0255E0/func_800249F0.s index 52aa24b8..e9f29df6 100644 --- a/asm/non_matchings/unknown_0255E0/func_800249F0.s +++ b/asm/non_matchings/unknown_0255E0/func_800249F0.s @@ -8,7 +8,7 @@ glabel func_800249F0 /* 025608 80024A08 AFB30020 */ sw $s3, 0x20($sp) /* 02560C 80024A0C AFB00014 */ sw $s0, 0x14($sp) /* 025610 80024A10 AFA60030 */ sw $a2, 0x30($sp) -/* 025614 80024A14 0C01AF6C */ jal func_8006BDB0 +/* 025614 80024A14 0C01AF6C */ jal get_current_level_header /* 025618 80024A18 AFA70034 */ sw $a3, 0x34($sp) /* 02561C 80024A1C 3C048012 */ lui $a0, %hi(D_8011B0F8) # $a0, 0x8012 /* 025620 80024A20 3C05800E */ lui $a1, %hi(D_800DC91C) # $a1, 0x800e diff --git a/asm/non_matchings/unknown_0255E0/func_80024D54.s b/asm/non_matchings/unknown_0255E0/func_80024D54.s index 92ebe797..541f08a2 100644 --- a/asm/non_matchings/unknown_0255E0/func_80024D54.s +++ b/asm/non_matchings/unknown_0255E0/func_80024D54.s @@ -35,7 +35,7 @@ glabel func_80024D54 /* 0259D8 80024DD8 8C84D37C */ lw $a0, %lo(D_8011D37C)($a0) /* 0259DC 80024DDC 0C01994B */ jal func_8006652C /* 0259E0 80024DE0 AC20B0BC */ sw $zero, %lo(D_8011B0BC)($at) -/* 0259E4 80024DE4 0C01BAA8 */ jal func_8006EAA0 +/* 0259E4 80024DE4 0C01BAA8 */ jal is_game_paused /* 0259E8 80024DE8 00409825 */ move $s3, $v0 /* 0259EC 80024DEC 10400003 */ beqz $v0, .L80024DFC /* 0259F0 80024DF0 3C188012 */ lui $t8, %hi(D_8011D384) # $t8, 0x8012 @@ -366,17 +366,17 @@ glabel func_80024D54 /* 025EAC 800252AC 24010003 */ li $at, 3 /* 025EB0 800252B0 1661006C */ bne $s3, $at, .L80025464 /* 025EB4 800252B4 00000000 */ nop -/* 025EB8 800252B8 0C01AF66 */ jal func_8006BD98 +/* 025EB8 800252B8 0C01AF66 */ jal get_current_level_race_type /* 025EBC 800252BC 00000000 */ nop /* 025EC0 800252C0 24010042 */ li $at, 66 /* 025EC4 800252C4 10410067 */ beq $v0, $at, .L80025464 /* 025EC8 800252C8 00000000 */ nop -/* 025ECC 800252CC 0C01AF66 */ jal func_8006BD98 +/* 025ECC 800252CC 0C01AF66 */ jal get_current_level_race_type /* 025ED0 800252D0 00000000 */ nop /* 025ED4 800252D4 24010040 */ li $at, 64 /* 025ED8 800252D8 10410062 */ beq $v0, $at, .L80025464 /* 025EDC 800252DC 00000000 */ nop -/* 025EE0 800252E0 0C01AF66 */ jal func_8006BD98 +/* 025EE0 800252E0 0C01AF66 */ jal get_current_level_race_type /* 025EE4 800252E4 00000000 */ nop /* 025EE8 800252E8 24010041 */ li $at, 65 /* 025EEC 800252EC 1041005D */ beq $v0, $at, .L80025464 diff --git a/asm/non_matchings/unknown_0255E0/func_80028CD0.s b/asm/non_matchings/unknown_0255E0/func_80028CD0.s index 2c1b4e39..77917a13 100644 --- a/asm/non_matchings/unknown_0255E0/func_80028CD0.s +++ b/asm/non_matchings/unknown_0255E0/func_80028CD0.s @@ -176,7 +176,7 @@ glabel func_80028CD0 /* 029B74 80028F74 0C02E301 */ jal func_800B8C04 /* 029B78 80028F78 00000000 */ nop .L80028F7C: -/* 029B7C 80028F7C 0C01AF6C */ jal func_8006BDB0 +/* 029B7C 80028F7C 0C01AF6C */ jal get_current_level_header /* 029B80 80028F80 00000000 */ nop /* 029B84 80028F84 240A0001 */ li $t2, 1 /* 029B88 80028F88 0C00A3EB */ jal func_80028FAC diff --git a/asm/non_matchings/unknown_032760/func_80031CAC.s b/asm/non_matchings/unknown_032760/func_80031CAC.s index 1bddc3f0..b2ce5954 100644 --- a/asm/non_matchings/unknown_032760/func_80031CAC.s +++ b/asm/non_matchings/unknown_032760/func_80031CAC.s @@ -95,7 +95,7 @@ glabel func_80031CAC /* 032A18 80031E18 10200020 */ beqz $at, .L80031E9C /* 032A1C 80031E1C 00000000 */ nop /* 032A20 80031E20 AFA50024 */ sw $a1, 0x24($sp) -/* 032A24 80031E24 0C01AF6C */ jal func_8006BDB0 +/* 032A24 80031E24 0C01AF6C */ jal get_current_level_header /* 032A28 80031E28 AFA60018 */ sw $a2, 0x18($sp) /* 032A2C 80031E2C 8FA50024 */ lw $a1, 0x24($sp) /* 032A30 80031E30 8FA60018 */ lw $a2, 0x18($sp) diff --git a/asm/non_matchings/unknown_032760/func_80034E9C.s b/asm/non_matchings/unknown_032760/func_80034E9C.s index e5327d21..c9088bc4 100644 --- a/asm/non_matchings/unknown_032760/func_80034E9C.s +++ b/asm/non_matchings/unknown_032760/func_80034E9C.s @@ -12,7 +12,7 @@ glabel func_80034E9C /* 035AA8 80034EA8 00808025 */ move $s0, $a0 /* 035AAC 80034EAC 0C01BAA4 */ jal get_settings /* 035AB0 80034EB0 AFA5005C */ sw $a1, 0x5c($sp) -/* 035AB4 80034EB4 0C01AF6C */ jal func_8006BDB0 +/* 035AB4 80034EB4 0C01AF6C */ jal get_current_level_header /* 035AB8 80034EB8 AFA20054 */ sw $v0, 0x54($sp) /* 035ABC 80034EBC 8E0E0064 */ lw $t6, 0x64($s0) /* 035AC0 80034EC0 8FA30054 */ lw $v1, 0x54($sp) diff --git a/asm/non_matchings/unknown_032760/func_800361E0.s b/asm/non_matchings/unknown_032760/func_800361E0.s index d8b2f934..436cd371 100644 --- a/asm/non_matchings/unknown_032760/func_800361E0.s +++ b/asm/non_matchings/unknown_032760/func_800361E0.s @@ -48,7 +48,7 @@ glabel func_800361E0 /* 036E68 80036268 00000000 */ nop /* 036E6C 8003626C E62A0004 */ swc1 $f10, 4($s1) .L80036270: -/* 036E70 80036270 0C01AF6C */ jal func_8006BDB0 +/* 036E70 80036270 0C01AF6C */ jal get_current_level_header /* 036E74 80036274 E7A2007C */ swc1 $f2, 0x7c($sp) /* 036E78 80036278 44800000 */ mtc1 $zero, $f0 /* 036E7C 8003627C AFA2004C */ sw $v0, 0x4c($sp) diff --git a/asm/non_matchings/unknown_032760/func_80039330.s b/asm/non_matchings/unknown_032760/func_80039330.s index 36a194e8..0a1af36c 100644 --- a/asm/non_matchings/unknown_032760/func_80039330.s +++ b/asm/non_matchings/unknown_032760/func_80039330.s @@ -44,7 +44,7 @@ glabel func_80039330 .L80039384: /* 039F84 80039384 8E110064 */ lw $s1, 0x64($s0) /* 039F88 80039388 E7A20048 */ swc1 $f2, 0x48($sp) -/* 039F8C 8003938C 0C01AF6C */ jal func_8006BDB0 +/* 039F8C 8003938C 0C01AF6C */ jal get_current_level_header /* 039F90 80039390 E7A000AC */ swc1 $f0, 0xac($sp) /* 039F94 80039394 AFA20064 */ sw $v0, 0x64($sp) /* 039F98 80039398 86180018 */ lh $t8, 0x18($s0) diff --git a/asm/non_matchings/unknown_032760/func_8003C7A4.s b/asm/non_matchings/unknown_032760/func_8003C7A4.s index afa20dd3..8e93bde8 100644 --- a/asm/non_matchings/unknown_032760/func_8003C7A4.s +++ b/asm/non_matchings/unknown_032760/func_8003C7A4.s @@ -24,7 +24,7 @@ glabel func_8003C7A4 /* 03D3FC 8003C7FC 000FC080 */ sll $t8, $t7, 2 /* 03D400 8003C800 01D8C821 */ addu $t9, $t6, $t8 /* 03D404 8003C804 8F300000 */ lw $s0, ($t9) -/* 03D408 8003C808 0C01AF66 */ jal func_8006BD98 +/* 03D408 8003C808 0C01AF66 */ jal get_current_level_race_type /* 03D40C 8003C80C 0040B825 */ move $s7, $v0 /* 03D410 8003C810 83C30009 */ lb $v1, 9($fp) /* 03D414 8003C814 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_8003D5A0.s b/asm/non_matchings/unknown_032760/func_8003D5A0.s index 135a2b54..8a9e2ac6 100644 --- a/asm/non_matchings/unknown_032760/func_8003D5A0.s +++ b/asm/non_matchings/unknown_032760/func_8003D5A0.s @@ -262,7 +262,7 @@ glabel func_8003D5A0 /* 03E558 8003D958 1020001C */ beqz $at, .L8003D9CC /* 03E55C 8003D95C 00000000 */ nop /* 03E560 8003D960 AFA40044 */ sw $a0, 0x44($sp) -/* 03E564 8003D964 0C01AF66 */ jal func_8006BD98 +/* 03E564 8003D964 0C01AF66 */ jal get_current_level_race_type /* 03E568 8003D968 AFA90030 */ sw $t1, 0x30($sp) /* 03E56C 8003D96C 8FA40044 */ lw $a0, 0x44($sp) /* 03E570 8003D970 8FA90030 */ lw $t1, 0x30($sp) @@ -313,7 +313,7 @@ glabel func_8003D5A0 /* 03E620 8003DA20 8C680064 */ lw $t0, 0x64($v1) /* 03E624 8003DA24 AFA90030 */ sw $t1, 0x30($sp) /* 03E628 8003DA28 AFA3006C */ sw $v1, 0x6c($sp) -/* 03E62C 8003DA2C 0C01AF66 */ jal func_8006BD98 +/* 03E62C 8003DA2C 0C01AF66 */ jal get_current_level_race_type /* 03E630 8003DA30 AFA80068 */ sw $t0, 0x68($sp) /* 03E634 8003DA34 8FA3006C */ lw $v1, 0x6c($sp) /* 03E638 8003DA38 8FA80068 */ lw $t0, 0x68($sp) diff --git a/asm/non_matchings/unknown_032760/func_8003E140.s b/asm/non_matchings/unknown_032760/func_8003E140.s index df5dee01..1700eaf4 100644 --- a/asm/non_matchings/unknown_032760/func_8003E140.s +++ b/asm/non_matchings/unknown_032760/func_8003E140.s @@ -159,7 +159,7 @@ glabel func_8003E140 /* 03EF68 8003E368 A0600174 */ sb $zero, 0x174($v1) .L8003E36C: /* 03EF6C 8003E36C AFA30038 */ sw $v1, 0x38($sp) -/* 03EF70 8003E370 0C01AF66 */ jal func_8006BD98 +/* 03EF70 8003E370 0C01AF66 */ jal get_current_level_race_type /* 03EF74 8003E374 AFA60034 */ sw $a2, 0x34($sp) /* 03EF78 8003E378 8FA30038 */ lw $v1, 0x38($sp) /* 03EF7C 8003E37C 30490040 */ andi $t1, $v0, 0x40 diff --git a/asm/non_matchings/unknown_043920/func_80042D20.s b/asm/non_matchings/unknown_043920/func_80042D20.s index 35c098f0..7ee0a5c8 100644 --- a/asm/non_matchings/unknown_043920/func_80042D20.s +++ b/asm/non_matchings/unknown_043920/func_80042D20.s @@ -43,7 +43,7 @@ glabel func_80042D20 /* 043948 80042D48 AFA20040 */ sw $v0, 0x40($sp) /* 04394C 80042D4C 0C0078A7 */ jal func_8001E29C /* 043950 80042D50 24040002 */ li $a0, 2 -/* 043954 80042D54 0C01AF6C */ jal func_8006BDB0 +/* 043954 80042D54 0C01AF6C */ jal get_current_level_header /* 043958 80042D58 AFA20044 */ sw $v0, 0x44($sp) /* 04395C 80042D5C AFA20050 */ sw $v0, 0x50($sp) /* 043960 80042D60 0C006EAB */ jal func_8001BAAC diff --git a/asm/non_matchings/unknown_043920/func_80044170.s b/asm/non_matchings/unknown_043920/func_80044170.s index d4c6ca42..553559af 100644 --- a/asm/non_matchings/unknown_043920/func_80044170.s +++ b/asm/non_matchings/unknown_043920/func_80044170.s @@ -3,7 +3,7 @@ glabel func_80044170 /* 044D74 80044174 AFBF0014 */ sw $ra, 0x14($sp) /* 044D78 80044178 AFA60028 */ sw $a2, 0x28($sp) /* 044D7C 8004417C AFA40020 */ sw $a0, 0x20($sp) -/* 044D80 80044180 0C01AF66 */ jal func_8006BD98 +/* 044D80 80044180 0C01AF66 */ jal get_current_level_race_type /* 044D84 80044184 AFA50024 */ sw $a1, 0x24($sp) /* 044D88 80044188 8FA40020 */ lw $a0, 0x20($sp) /* 044D8C 8004418C 8FA50024 */ lw $a1, 0x24($sp) diff --git a/asm/non_matchings/unknown_043920/func_8004447C.s b/asm/non_matchings/unknown_043920/func_8004447C.s index f95e1ad2..3bb48eb1 100644 --- a/asm/non_matchings/unknown_043920/func_8004447C.s +++ b/asm/non_matchings/unknown_043920/func_8004447C.s @@ -31,7 +31,7 @@ glabel func_8004447C /* 0450C8 800444C8 24010004 */ li $at, 4 /* 0450CC 800444CC 15C10313 */ bne $t6, $at, .L8004511C /* 0450D0 800444D0 8FBF001C */ lw $ra, 0x1c($sp) -/* 0450D4 800444D4 0C01AF6C */ jal func_8006BDB0 +/* 0450D4 800444D4 0C01AF6C */ jal get_current_level_header /* 0450D8 800444D8 00000000 */ nop /* 0450DC 800444DC 804F004C */ lb $t7, 0x4c($v0) /* 0450E0 800444E0 2458002A */ addiu $t8, $v0, 0x2a diff --git a/asm/non_matchings/unknown_043920/func_800452A0.s b/asm/non_matchings/unknown_043920/func_800452A0.s index 74e69563..e181cdf7 100644 --- a/asm/non_matchings/unknown_043920/func_800452A0.s +++ b/asm/non_matchings/unknown_043920/func_800452A0.s @@ -48,7 +48,7 @@ glabel func_800452A0 /* 045F28 80045328 24010004 */ li $at, 4 /* 045F2C 8004532C 15E10235 */ bne $t7, $at, .L80045C04 /* 045F30 80045330 8FBF0054 */ lw $ra, 0x54($sp) -/* 045F34 80045334 0C01AF6C */ jal func_8006BDB0 +/* 045F34 80045334 0C01AF6C */ jal get_current_level_header /* 045F38 80045338 00000000 */ nop /* 045F3C 8004533C 2458002A */ addiu $t8, $v0, 0x2a /* 045F40 80045340 AFB80074 */ sw $t8, 0x74($sp) diff --git a/asm/non_matchings/unknown_043920/func_8004DE38.s b/asm/non_matchings/unknown_043920/func_8004DE38.s index ba48582a..8b059dd6 100644 --- a/asm/non_matchings/unknown_043920/func_8004DE38.s +++ b/asm/non_matchings/unknown_043920/func_8004DE38.s @@ -203,7 +203,7 @@ glabel func_8004DE38 .L8004E0B4: /* 04ECB4 8004E0B4 A2000201 */ sb $zero, 0x201($s0) .L8004E0B8: -/* 04ECB8 8004E0B8 0C01AF6C */ jal func_8006BDB0 +/* 04ECB8 8004E0B8 0C01AF6C */ jal get_current_level_header /* 04ECBC 8004E0BC E7B2009C */ swc1 $f18, 0x9c($sp) /* 04ECC0 8004E0C0 AFA2007C */ sw $v0, 0x7c($sp) /* 04ECC4 8004E0C4 C4480008 */ lwc1 $f8, 8($v0) @@ -245,7 +245,7 @@ glabel func_8004DE38 /* 04ED50 8004E150 46005121 */ cvt.d.s $f4, $f10 /* 04ED54 8004E154 E7A4001C */ swc1 $f4, 0x1c($sp) /* 04ED58 8004E158 E7A50018 */ swc1 $f5, 0x18($sp) -/* 04ED5C 8004E15C 0C02D7B7 */ jal func_800B5EDC +/* 04ED5C 8004E15C 0C02D7B7 */ jal render_printf /* 04ED60 8004E160 24846280 */ addiu $a0, %lo(D_800E6280) # addiu $a0, $a0, 0x6280 .L8004E164: /* 04ED64 8004E164 00002025 */ move $a0, $zero @@ -1247,7 +1247,7 @@ glabel L8004ED88 /* 04FBD4 8004EFD4 00000000 */ nop /* 04FBD8 8004EFD8 1520000B */ bnez $t1, .L8004F008 /* 04FBDC 8004EFDC 00000000 */ nop -/* 04FBE0 8004EFE0 0C01AF66 */ jal func_8006BD98 +/* 04FBE0 8004EFE0 0C01AF66 */ jal get_current_level_race_type /* 04FBE4 8004EFE4 00000000 */ nop /* 04FBE8 8004EFE8 14400007 */ bnez $v0, .L8004F008 /* 04FBEC 8004EFEC 3C01800E */ lui $at, %hi(D_800E65E8) # $at, 0x800e diff --git a/asm/non_matchings/unknown_043920/func_8004F7F4.s b/asm/non_matchings/unknown_043920/func_8004F7F4.s index b2c9ef7e..e9a9ad65 100644 --- a/asm/non_matchings/unknown_043920/func_8004F7F4.s +++ b/asm/non_matchings/unknown_043920/func_8004F7F4.s @@ -334,7 +334,7 @@ glabel func_8004F7F4 /* 05087C 8004FC7C 46209120 */ cvt.s.d $f4, $f18 /* 050880 8004FC80 E6240020 */ swc1 $f4, 0x20($s1) .L8004FC84: -/* 050884 8004FC84 0C01AF6C */ jal func_8006BDB0 +/* 050884 8004FC84 0C01AF6C */ jal get_current_level_header /* 050888 8004FC88 00000000 */ nop /* 05088C 8004FC8C C60A00C0 */ lwc1 $f10, 0xc0($s0) /* 050890 8004FC90 44803800 */ mtc1 $zero, $f7 diff --git a/asm/non_matchings/unknown_043920/func_80054110.s b/asm/non_matchings/unknown_043920/func_80054110.s index 75a0d35f..390f5ea9 100644 --- a/asm/non_matchings/unknown_043920/func_80054110.s +++ b/asm/non_matchings/unknown_043920/func_80054110.s @@ -79,7 +79,7 @@ glabel func_80054110 /* 054E0C 8005420C 00003825 */ move $a3, $zero /* 054E10 80054210 0C014214 */ jal func_80050850 /* 054E14 80054214 AFA00010 */ sw $zero, 0x10($sp) -/* 054E18 80054218 0C01AF6C */ jal func_8006BDB0 +/* 054E18 80054218 0C01AF6C */ jal get_current_level_header /* 054E1C 8005421C 00000000 */ nop /* 054E20 80054220 C61000C0 */ lwc1 $f16, 0xc0($s0) /* 054E24 80054224 44805800 */ mtc1 $zero, $f11 diff --git a/asm/non_matchings/unknown_043920/func_8005698C.s b/asm/non_matchings/unknown_043920/func_8005698C.s index 2260531c..0bf77df4 100644 --- a/asm/non_matchings/unknown_043920/func_8005698C.s +++ b/asm/non_matchings/unknown_043920/func_8005698C.s @@ -24,7 +24,7 @@ glabel func_8005698C /* 0575C8 800569C8 E7B6001C */ swc1 $f22, 0x1c($sp) /* 0575CC 800569CC E7B50010 */ swc1 $f21, 0x10($sp) /* 0575D0 800569D0 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0575D4 800569D4 0C01AF66 */ jal func_8006BD98 +/* 0575D4 800569D4 0C01AF66 */ jal get_current_level_race_type /* 0575D8 800569D8 AFA600C0 */ sw $a2, 0xc0($sp) /* 0575DC 800569DC 860E0000 */ lh $t6, ($s0) /* 0575E0 800569E0 30440040 */ andi $a0, $v0, 0x40 diff --git a/asm/non_matchings/unknown_043920/func_800576E0.s b/asm/non_matchings/unknown_043920/func_800576E0.s index 3aa4f8f6..3f7a8d60 100644 --- a/asm/non_matchings/unknown_043920/func_800576E0.s +++ b/asm/non_matchings/unknown_043920/func_800576E0.s @@ -102,7 +102,7 @@ glabel func_800576E0 /* 05846C 8005786C 27B50088 */ addiu $s5, $sp, 0x88 /* 058470 80057870 24140040 */ li $s4, 64 .L80057874: -/* 058474 80057874 0C01AF66 */ jal func_8006BD98 +/* 058474 80057874 0C01AF66 */ jal get_current_level_race_type /* 058478 80057878 00000000 */ nop /* 05847C 8005787C 12820033 */ beq $s4, $v0, .L8005794C /* 058480 80057880 02A02025 */ move $a0, $s5 diff --git a/asm/non_matchings/unknown_043920/func_8005A6F0.s b/asm/non_matchings/unknown_043920/func_8005A6F0.s index b3551f04..7d23aa83 100644 --- a/asm/non_matchings/unknown_043920/func_8005A6F0.s +++ b/asm/non_matchings/unknown_043920/func_8005A6F0.s @@ -39,7 +39,7 @@ glabel func_8005A6F0 /* 05B310 8005A710 AFA700AC */ sw $a3, 0xac($sp) /* 05B314 8005A714 0C01B683 */ jal func_8006DA0C /* 05B318 8005A718 AC2ED55C */ sw $t6, %lo(D_8011D55C)($at) -/* 05B31C 8005A71C 0C01AF6C */ jal func_8006BDB0 +/* 05B31C 8005A71C 0C01AF6C */ jal get_current_level_header /* 05B320 8005A720 AFA20094 */ sw $v0, 0x94($sp) /* 05B324 8005A724 AFA20070 */ sw $v0, 0x70($sp) /* 05B328 8005A728 820301F6 */ lb $v1, 0x1f6($s0) diff --git a/asm/non_matchings/unknown_043920/func_8005B818.s b/asm/non_matchings/unknown_043920/func_8005B818.s index 186548ab..2619afcf 100644 --- a/asm/non_matchings/unknown_043920/func_8005B818.s +++ b/asm/non_matchings/unknown_043920/func_8005B818.s @@ -44,7 +44,7 @@ glabel func_8005B818 /* 05C470 8005B870 0C0078A7 */ jal func_8001E29C /* 05C474 8005B874 24040021 */ li $a0, 33 /* 05C478 8005B878 3C018012 */ lui $at, %hi(D_8011D564) # $at, 0x8012 -/* 05C47C 8005B87C 0C01AF6C */ jal func_8006BDB0 +/* 05C47C 8005B87C 0C01AF6C */ jal get_current_level_header /* 05C480 8005B880 AC22D564 */ sw $v0, %lo(D_8011D564)($at) /* 05C484 8005B884 0C006E99 */ jal func_8001BA64 /* 05C488 8005B888 AFA20080 */ sw $v0, 0x80($sp) diff --git a/asm/non_matchings/unknown_0667D0/func_80065D98.s b/asm/non_matchings/unknown_0667D0/func_80065D98.s index bd7cad23..f0630ecd 100644 --- a/asm/non_matchings/unknown_0667D0/func_80065D98.s +++ b/asm/non_matchings/unknown_0667D0/func_80065D98.s @@ -6,10 +6,10 @@ glabel D_80065D98 /* 0669A8 80065DA8 3C0E8012 */ lui $t6, %hi(D_8011F758) # $t6, 0x8012 /* 0669AC 80065DAC 25CEF758 */ addiu $t6, %lo(D_8011F758) # addiu $t6, $t6, -0x8a8 /* 0669B0 80065DB0 3C048012 */ lui $a0, %hi(D_8011F910) # $a0, 0x8012 -/* 0669B4 80065DB4 3C068007 */ lui $a2, %hi(func_8006C330) # $a2, 0x8007 +/* 0669B4 80065DB4 3C068007 */ lui $a2, %hi(thread3_main) # $a2, 0x8007 /* 0669B8 80065DB8 240F000A */ li $t7, 10 /* 0669BC 80065DBC AFAF0014 */ sw $t7, 0x14($sp) -/* 0669C0 80065DC0 24C6C330 */ addiu $a2, %lo(func_8006C330) # addiu $a2, $a2, -0x3cd0 +/* 0669C0 80065DC0 24C6C330 */ addiu $a2, %lo(thread3_main) # addiu $a2, $a2, -0x3cd0 /* 0669C4 80065DC4 2484F910 */ addiu $a0, %lo(D_8011F910) # addiu $a0, $a0, -0x6f0 /* 0669C8 80065DC8 AFAE0010 */ sw $t6, 0x10($sp) /* 0669CC 80065DCC 24050003 */ li $a1, 3 diff --git a/asm/non_matchings/unknown_066AA0/func_8006A6B0.s b/asm/non_matchings/unknown_066AA0/func_8006A6B0.s index fa2e8561..61ca82df 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006A6B0.s +++ b/asm/non_matchings/unknown_066AA0/func_8006A6B0.s @@ -60,8 +60,8 @@ glabel func_8006A6B0 /* 06B38C 8006A78C 8D4C0000 */ lw $t4, ($t2) /* 06B390 8006A790 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 /* 06B394 8006A794 3C098012 */ lui $t1, %hi(D_80121174) # $t1, 0x8012 -/* 06B398 8006A798 3C108012 */ lui $s0, %hi(D_80121168) # $s0, 0x8012 -/* 06B39C 8006A79C 26101168 */ addiu $s0, %lo(D_80121168) # addiu $s0, $s0, 0x1168 +/* 06B398 8006A798 3C108012 */ lui $s0, %hi(gCurrentLevelHeader) # $s0, 0x8012 +/* 06B39C 8006A79C 26101168 */ addiu $s0, %lo(gCurrentLevelHeader) # addiu $s0, $s0, 0x1168 /* 06B3A0 8006A7A0 25291174 */ addiu $t1, %lo(D_80121174) # addiu $t1, $t1, 0x1174 /* 06B3A4 8006A7A4 2508117C */ addiu $t0, %lo(D_80121178+4) # addiu $t0, $t0, 0x117c /* 06B3A8 8006A7A8 240BFFFF */ li $t3, -1 diff --git a/asm/non_matchings/unknown_066AA0/func_8006CCF0.s b/asm/non_matchings/unknown_066AA0/func_8006CCF0.s index 54a26fcf..b3279ddd 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006CCF0.s +++ b/asm/non_matchings/unknown_066AA0/func_8006CCF0.s @@ -650,35 +650,35 @@ glabel L8006D1C0 glabel L8006D5FC /* 06E1FC 8006D5FC 2404000F */ li $a0, 15 /* 06E200 8006D600 2405FFFF */ li $a1, -1 -/* 06E204 8006D604 0C01B68A */ jal func_8006DA28 +/* 06E204 8006D604 0C01B68A */ jal load_menu_with_level_background /* 06E208 8006D608 24060001 */ li $a2, 1 /* 06E20C 8006D60C 10000088 */ b .L8006D830 /* 06E210 8006D610 00000000 */ nop glabel L8006D614 /* 06E214 8006D614 24040011 */ li $a0, 17 /* 06E218 8006D618 24050022 */ li $a1, 34 -/* 06E21C 8006D61C 0C01B68A */ jal func_8006DA28 +/* 06E21C 8006D61C 0C01B68A */ jal load_menu_with_level_background /* 06E220 8006D620 00003025 */ move $a2, $zero /* 06E224 8006D624 10000082 */ b .L8006D830 /* 06E228 8006D628 00000000 */ nop glabel L8006D62C /* 06E22C 8006D62C 24040014 */ li $a0, 20 /* 06E230 8006D630 24050022 */ li $a1, 34 -/* 06E234 8006D634 0C01B68A */ jal func_8006DA28 +/* 06E234 8006D634 0C01B68A */ jal load_menu_with_level_background /* 06E238 8006D638 00003025 */ move $a2, $zero /* 06E23C 8006D63C 1000007C */ b .L8006D830 /* 06E240 8006D640 00000000 */ nop glabel L8006D644 /* 06E244 8006D644 24040015 */ li $a0, 21 /* 06E248 8006D648 24050022 */ li $a1, 34 -/* 06E24C 8006D64C 0C01B68A */ jal func_8006DA28 +/* 06E24C 8006D64C 0C01B68A */ jal load_menu_with_level_background /* 06E250 8006D650 00003025 */ move $a2, $zero /* 06E254 8006D654 10000076 */ b .L8006D830 /* 06E258 8006D658 00000000 */ nop glabel L8006D65C /* 06E25C 8006D65C 24040016 */ li $a0, 22 /* 06E260 8006D660 24050022 */ li $a1, 34 -/* 06E264 8006D664 0C01B68A */ jal func_8006DA28 +/* 06E264 8006D664 0C01B68A */ jal load_menu_with_level_background /* 06E268 8006D668 00003025 */ move $a2, $zero /* 06E26C 8006D66C 10000070 */ b .L8006D830 /* 06E270 8006D670 00000000 */ nop @@ -705,7 +705,7 @@ glabel L8006D674 /* 06E2B8 8006D6B8 00002825 */ move $a1, $zero /* 06E2BC 8006D6BC 8FA60044 */ lw $a2, 0x44($sp) /* 06E2C0 8006D6C0 24040003 */ li $a0, 3 -/* 06E2C4 8006D6C4 0C01B68A */ jal func_8006DA28 +/* 06E2C4 8006D6C4 0C01B68A */ jal load_menu_with_level_background /* 06E2C8 8006D6C8 24050016 */ li $a1, 22 /* 06E2CC 8006D6CC 10000058 */ b .L8006D830 /* 06E2D0 8006D6D0 00000000 */ nop @@ -714,14 +714,14 @@ glabel L8006D6D4 /* 06E2D8 8006D6D8 A20D0000 */ sb $t5, ($s0) /* 06E2DC 8006D6DC 24040017 */ li $a0, 23 /* 06E2E0 8006D6E0 2405FFFF */ li $a1, -1 -/* 06E2E4 8006D6E4 0C01B68A */ jal func_8006DA28 +/* 06E2E4 8006D6E4 0C01B68A */ jal load_menu_with_level_background /* 06E2E8 8006D6E8 00003025 */ move $a2, $zero /* 06E2EC 8006D6EC 10000050 */ b .L8006D830 /* 06E2F0 8006D6F0 A2000000 */ sb $zero, ($s0) glabel L8006D6F4 /* 06E2F4 8006D6F4 24040019 */ li $a0, 25 /* 06E2F8 8006D6F8 2405FFFF */ li $a1, -1 -/* 06E2FC 8006D6FC 0C01B68A */ jal func_8006DA28 +/* 06E2FC 8006D6FC 0C01B68A */ jal load_menu_with_level_background /* 06E300 8006D700 00003025 */ move $a2, $zero /* 06E304 8006D704 1000004A */ b .L8006D830 /* 06E308 8006D708 00000000 */ nop @@ -739,7 +739,7 @@ glabel L8006D6F4 /* 06E334 8006D734 3C108012 */ lui $s0, %hi(D_80123514) # $s0, 0x8012 /* 06E338 8006D738 24040008 */ li $a0, 8 /* 06E33C 8006D73C 2405FFFF */ li $a1, -1 -/* 06E340 8006D740 0C01B68A */ jal func_8006DA28 +/* 06E340 8006D740 0C01B68A */ jal load_menu_with_level_background /* 06E344 8006D744 00003025 */ move $a2, $zero /* 06E348 8006D748 10000039 */ b .L8006D830 /* 06E34C 8006D74C 00000000 */ nop @@ -749,7 +749,7 @@ glabel L8006D6F4 /* 06E358 8006D758 A2180000 */ sb $t8, ($s0) /* 06E35C 8006D75C 24040005 */ li $a0, 5 /* 06E360 8006D760 2405FFFF */ li $a1, -1 -/* 06E364 8006D764 0C01B68A */ jal func_8006DA28 +/* 06E364 8006D764 0C01B68A */ jal load_menu_with_level_background /* 06E368 8006D768 2406FFFF */ li $a2, -1 /* 06E36C 8006D76C 10000030 */ b .L8006D830 /* 06E370 8006D770 00000000 */ nop @@ -790,7 +790,7 @@ glabel L8006D6F4 /* 06E3F4 8006D7F4 8CC63504 */ lw $a2, %lo(D_80123504)($a2) /* 06E3F8 8006D7F8 8CA53500 */ lw $a1, %lo(D_80123500)($a1) /* 06E3FC 8006D7FC 8C8434F4 */ lw $a0, %lo(D_801234F4)($a0) -/* 06E400 8006D800 0C01B2D6 */ jal func_8006CB58 +/* 06E400 8006D800 0C01B2D6 */ jal load_level_2 /* 06E404 8006D804 00000000 */ nop /* 06E408 8006D808 10000009 */ b .L8006D830 /* 06E40C 8006D80C 00000000 */ nop @@ -801,7 +801,7 @@ glabel L8006D6F4 /* 06E41C 8006D81C 00402025 */ move $a0, $v0 /* 06E420 8006D820 00002025 */ move $a0, $zero /* 06E424 8006D824 2405FFFF */ li $a1, -1 -/* 06E428 8006D828 0C01B68A */ jal func_8006DA28 +/* 06E428 8006D828 0C01B68A */ jal load_menu_with_level_background /* 06E42C 8006D82C 00003025 */ move $a2, $zero .L8006D830: /* 06E430 8006D830 3C018012 */ lui $at, %hi(D_801234FC) # $at, 0x8012 @@ -822,7 +822,7 @@ glabel L8006D6F4 /* 06E468 8006D868 8CC63504 */ lw $a2, %lo(D_80123504)($a2) /* 06E46C 8006D86C 8CA53500 */ lw $a1, %lo(D_80123500)($a1) /* 06E470 8006D870 8C8434F4 */ lw $a0, %lo(D_801234F4)($a0) -/* 06E474 8006D874 0C01B2D6 */ jal func_8006CB58 +/* 06E474 8006D874 0C01B2D6 */ jal load_level_2 /* 06E478 8006D878 00000000 */ nop /* 06E47C 8006D87C 0C027068 */ jal get_save_file_index /* 06E480 8006D880 00000000 */ nop diff --git a/asm/non_matchings/unknown_066AA0/func_8006DA28.s b/asm/non_matchings/unknown_066AA0/func_8006DA28.s deleted file mode 100644 index dead34de..00000000 --- a/asm/non_matchings/unknown_066AA0/func_8006DA28.s +++ /dev/null @@ -1,65 +0,0 @@ -glabel func_8006DA28 -/* 06E628 8006DA28 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 06E62C 8006DA2C AFBF001C */ sw $ra, 0x1c($sp) -/* 06E630 8006DA30 AFA40020 */ sw $a0, 0x20($sp) -/* 06E634 8006DA34 AFA50024 */ sw $a1, 0x24($sp) -/* 06E638 8006DA38 AFA60028 */ sw $a2, 0x28($sp) -/* 06E63C 8006DA3C 0C01BB3F */ jal func_8006ECFC -/* 06E640 8006DA40 00002025 */ move $a0, $zero -/* 06E644 8006DA44 24020001 */ li $v0, 1 -/* 06E648 8006DA48 3C018012 */ lui $at, %hi(D_801234EC) # $at, 0x8012 -/* 06E64C 8006DA4C AC2234EC */ sw $v0, %lo(D_801234EC)($at) -/* 06E650 8006DA50 3C018012 */ lui $at, %hi(D_801234F0) # $at, 0x8012 -/* 06E654 8006DA54 AC2234F0 */ sw $v0, %lo(D_801234F0)($at) -/* 06E658 8006DA58 00002025 */ move $a0, $zero -/* 06E65C 8006DA5C 0C001298 */ jal func_80004A60 -/* 06E660 8006DA60 24057FFF */ li $a1, 32767 -/* 06E664 8006DA64 24040001 */ li $a0, 1 -/* 06E668 8006DA68 0C001298 */ jal func_80004A60 -/* 06E66C 8006DA6C 24057FFF */ li $a1, 32767 -/* 06E670 8006DA70 24040002 */ li $a0, 2 -/* 06E674 8006DA74 0C001298 */ jal func_80004A60 -/* 06E678 8006DA78 24057FFF */ li $a1, 32767 -/* 06E67C 8006DA7C 0C0197A8 */ jal func_80065EA0 -/* 06E680 8006DA80 00000000 */ nop -/* 06E684 8006DA84 3C028012 */ lui $v0, %hi(D_80123514) # $v0, 0x8012 -/* 06E688 8006DA88 24423514 */ addiu $v0, %lo(D_80123514) # addiu $v0, $v0, 0x3514 -/* 06E68C 8006DA8C 804E0000 */ lb $t6, ($v0) -/* 06E690 8006DA90 8FA40024 */ lw $a0, 0x24($sp) -/* 06E694 8006DA94 15C0000C */ bnez $t6, .L8006DAC8 -/* 06E698 8006DA98 00000000 */ nop -/* 06E69C 8006DA9C 04810004 */ bgez $a0, .L8006DAB0 -/* 06E6A0 8006DAA0 A0400000 */ sb $zero, ($v0) -/* 06E6A4 8006DAA4 240F0001 */ li $t7, 1 -/* 06E6A8 8006DAA8 10000007 */ b .L8006DAC8 -/* 06E6AC 8006DAAC A04F0000 */ sb $t7, ($v0) -.L8006DAB0: -/* 06E6B0 8006DAB0 8FB80028 */ lw $t8, 0x28($sp) -/* 06E6B4 8006DAB4 2405FFFF */ li $a1, -1 -/* 06E6B8 8006DAB8 00003025 */ move $a2, $zero -/* 06E6BC 8006DABC 24070002 */ li $a3, 2 -/* 06E6C0 8006DAC0 0C01B6CF */ jal func_8006DB3C -/* 06E6C4 8006DAC4 AFB80010 */ sw $t8, 0x10($sp) -.L8006DAC8: -/* 06E6C8 8006DAC8 8FA40020 */ lw $a0, 0x20($sp) -/* 06E6CC 8006DACC 24010002 */ li $at, 2 -/* 06E6D0 8006DAD0 10810005 */ beq $a0, $at, .L8006DAE8 -/* 06E6D4 8006DAD4 24010001 */ li $at, 1 -/* 06E6D8 8006DAD8 10810003 */ beq $a0, $at, .L8006DAE8 -/* 06E6DC 8006DADC 00000000 */ nop -/* 06E6E0 8006DAE0 14800005 */ bnez $a0, .L8006DAF8 -/* 06E6E4 8006DAE4 00000000 */ nop -.L8006DAE8: -/* 06E6E8 8006DAE8 0C0204F0 */ jal func_800813C0 -/* 06E6EC 8006DAEC 00000000 */ nop -/* 06E6F0 8006DAF0 8FA40020 */ lw $a0, 0x20($sp) -/* 06E6F4 8006DAF4 00000000 */ nop -.L8006DAF8: -/* 06E6F8 8006DAF8 0C0204F4 */ jal menu_init -/* 06E6FC 8006DAFC 00000000 */ nop -/* 06E700 8006DB00 8FBF001C */ lw $ra, 0x1c($sp) -/* 06E704 8006DB04 3C018012 */ lui $at, %hi(D_80123504) # $at, 0x8012 -/* 06E708 8006DB08 AC203504 */ sw $zero, %lo(D_80123504)($at) -/* 06E70C 8006DB0C 03E00008 */ jr $ra -/* 06E710 8006DB10 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/unknown_066AA0/func_8006DCF8.s b/asm/non_matchings/unknown_066AA0/func_8006DCF8.s index c5e49188..fed9fec3 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006DCF8.s +++ b/asm/non_matchings/unknown_066AA0/func_8006DCF8.s @@ -101,7 +101,7 @@ glabel func_8006DCF8 /* 06EA64 8006DE64 8D040000 */ lw $a0, ($t0) /* 06EA68 8006DE68 8D470000 */ lw $a3, ($t2) /* 06EA6C 8006DE6C 8D260000 */ lw $a2, ($t1) -/* 06EA70 8006DE70 0C01B2D6 */ jal func_8006CB58 +/* 06EA70 8006DE70 0C01B2D6 */ jal load_level_2 /* 06EA74 8006DE74 00000000 */ nop /* 06EA78 8006DE78 0C027068 */ jal get_save_file_index /* 06EA7C 8006DE7C 00000000 */ nop @@ -135,7 +135,7 @@ glabel func_8006DCF8 glabel L8006DEE8 /* 06EAE8 8006DEE8 2404000F */ li $a0, 15 /* 06EAEC 8006DEEC 2405FFFF */ li $a1, -1 -/* 06EAF0 8006DEF0 0C01B68A */ jal func_8006DA28 +/* 06EAF0 8006DEF0 0C01B68A */ jal load_menu_with_level_background /* 06EAF4 8006DEF4 24060001 */ li $a2, 1 /* 06EAF8 8006DEF8 100000F8 */ b .L8006E2DC /* 06EAFC 8006DEFC 8FBF0024 */ lw $ra, 0x24($sp) @@ -160,7 +160,7 @@ glabel L8006DF00 /* 06EB44 8006DF44 8D470000 */ lw $a3, ($t2) /* 06EB48 8006DF48 8D260000 */ lw $a2, ($t1) /* 06EB4C 8006DF4C 8D040000 */ lw $a0, ($t0) -/* 06EB50 8006DF50 0C01B2D6 */ jal func_8006CB58 +/* 06EB50 8006DF50 0C01B2D6 */ jal load_level_2 /* 06EB54 8006DF54 00000000 */ nop /* 06EB58 8006DF58 0C027068 */ jal get_save_file_index /* 06EB5C 8006DF5C 00000000 */ nop @@ -202,7 +202,7 @@ glabel L8006DF70 /* 06EBE0 8006DFE0 8D040000 */ lw $a0, ($t0) /* 06EBE4 8006DFE4 8C650000 */ lw $a1, ($v1) /* 06EBE8 8006DFE8 8D260000 */ lw $a2, ($t1) -/* 06EBEC 8006DFEC 0C01B2D6 */ jal func_8006CB58 +/* 06EBEC 8006DFEC 0C01B2D6 */ jal load_level_2 /* 06EBF0 8006DFF0 00000000 */ nop /* 06EBF4 8006DFF4 0C027068 */ jal get_save_file_index /* 06EBF8 8006DFF8 00000000 */ nop @@ -225,7 +225,7 @@ glabel L8006E00C /* 06EC38 8006E038 8D040000 */ lw $a0, ($t0) /* 06EC3C 8006E03C 8D260000 */ lw $a2, ($t1) /* 06EC40 8006E040 8D470000 */ lw $a3, ($t2) -/* 06EC44 8006E044 0C01B2D6 */ jal func_8006CB58 +/* 06EC44 8006E044 0C01B2D6 */ jal load_level_2 /* 06EC48 8006E048 00000000 */ nop /* 06EC4C 8006E04C 100000A3 */ b .L8006E2DC /* 06EC50 8006E050 8FBF0024 */ lw $ra, 0x24($sp) @@ -261,7 +261,7 @@ glabel L8006E054 /* 06ECC4 8006E0C4 8D040000 */ lw $a0, ($t0) /* 06ECC8 8006E0C8 8D260000 */ lw $a2, ($t1) /* 06ECCC 8006E0CC AD420000 */ sw $v0, ($t2) -/* 06ECD0 8006E0D0 0C01B2D6 */ jal func_8006CB58 +/* 06ECD0 8006E0D0 0C01B2D6 */ jal load_level_2 /* 06ECD4 8006E0D4 00403825 */ move $a3, $v0 /* 06ECD8 8006E0D8 10000080 */ b .L8006E2DC /* 06ECDC 8006E0DC 8FBF0024 */ lw $ra, 0x24($sp) @@ -269,7 +269,7 @@ glabel L8006E054 glabel L8006E0E0 /* 06ECE0 8006E0E0 00002025 */ move $a0, $zero /* 06ECE4 8006E0E4 2405FFFF */ li $a1, -1 -/* 06ECE8 8006E0E8 0C01B68A */ jal func_8006DA28 +/* 06ECE8 8006E0E8 0C01B68A */ jal load_menu_with_level_background /* 06ECEC 8006E0EC 00003025 */ move $a2, $zero /* 06ECF0 8006E0F0 1000007A */ b .L8006E2DC /* 06ECF4 8006E0F4 8FBF0024 */ lw $ra, 0x24($sp) @@ -338,7 +338,7 @@ glabel L8006E0E0 /* 06EDE8 8006E1E8 8D260000 */ lw $a2, ($t1) /* 06EDEC 8006E1EC 25C5FFFF */ addiu $a1, $t6, -1 /* 06EDF0 8006E1F0 AC650000 */ sw $a1, ($v1) -/* 06EDF4 8006E1F4 0C01B2D6 */ jal func_8006CB58 +/* 06EDF4 8006E1F4 0C01B2D6 */ jal load_level_2 /* 06EDF8 8006E1F8 00403825 */ move $a3, $v0 /* 06EDFC 8006E1FC 3C188012 */ lui $t8, %hi(D_8012351C) # $t8, 0x8012 /* 06EE00 8006E200 8F18351C */ lw $t8, %lo(D_8012351C)($t8) diff --git a/asm/non_matchings/unknown_066AA0/func_8006ECFC.s b/asm/non_matchings/unknown_066AA0/func_8006ECFC.s index dbb02375..4a8e1ccc 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006ECFC.s +++ b/asm/non_matchings/unknown_066AA0/func_8006ECFC.s @@ -113,17 +113,17 @@ glabel func_8006ECFC /* 06FAA8 8006EEA8 3C018012 */ lui $at, %hi(D_80121210) # $at, 0x8012 /* 06FAAC 8006EEAC 012D6021 */ addu $t4, $t1, $t5 /* 06FAB0 8006EEB0 AC2C1210 */ sw $t4, %lo(D_80121210)($at) -/* 06FAB4 8006EEB4 3C018012 */ lui $at, %hi(D_80121204) # $at, 0x8012 +/* 06FAB4 8006EEB4 3C018012 */ lui $at, %hi(D_80121200+4) # $at, 0x8012 /* 06FAB8 8006EEB8 00657021 */ addu $t6, $v1, $a1 -/* 06FABC 8006EEBC AC2E1204 */ sw $t6, %lo(D_80121204)($at) +/* 06FABC 8006EEBC AC2E1204 */ sw $t6, %lo(D_80121200+4)($at) /* 06FAC0 8006EEC0 8D4F0004 */ lw $t7, 4($t2) -/* 06FAC4 8006EEC4 3C018012 */ lui $at, %hi(D_80121224) # $at, 0x8012 +/* 06FAC4 8006EEC4 3C018012 */ lui $at, %hi(D_80121220+4) # $at, 0x8012 /* 06FAC8 8006EEC8 00EFC021 */ addu $t8, $a3, $t7 -/* 06FACC 8006EECC AC381224 */ sw $t8, %lo(D_80121224)($at) +/* 06FACC 8006EECC AC381224 */ sw $t8, %lo(D_80121220+4)($at) /* 06FAD0 8006EED0 8D790004 */ lw $t9, 4($t3) -/* 06FAD4 8006EED4 3C018012 */ lui $at, %hi(D_80121214) # $at, 0x8012 +/* 06FAD4 8006EED4 3C018012 */ lui $at, %hi(D_80121210+4) # $at, 0x8012 /* 06FAD8 8006EED8 01396821 */ addu $t5, $t1, $t9 -/* 06FADC 8006EEDC AC2D1214 */ sw $t5, %lo(D_80121214)($at) +/* 06FADC 8006EEDC AC2D1214 */ sw $t5, %lo(D_80121210+4)($at) /* 06FAE0 8006EEE0 3C018012 */ lui $at, %hi(D_80123528) # $at, 0x8012 /* 06FAE4 8006EEE4 AC223528 */ sw $v0, %lo(D_80123528)($at) /* 06FAE8 8006EEE8 3C018012 */ lui $at, %hi(D_8012352C) # $at, 0x8012 diff --git a/asm/non_matchings/unknown_066AA0/func_8006EFDC.s b/asm/non_matchings/unknown_066AA0/func_8006EFDC.s index b76fb2bb..70e7c0b6 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006EFDC.s +++ b/asm/non_matchings/unknown_066AA0/func_8006EFDC.s @@ -63,18 +63,18 @@ glabel func_8006EFDC /* 06FCD0 8006F0D0 000478C0 */ sll $t7, $a0, 3 /* 06FCD4 8006F0D4 AC620004 */ sw $v0, 4($v1) /* 06FCD8 8006F0D8 01E2C021 */ addu $t8, $t7, $v0 -/* 06FCDC 8006F0DC 3C018012 */ lui $at, %hi(D_80121204) # $at, 0x8012 -/* 06FCE0 8006F0E0 AC381204 */ sw $t8, %lo(D_80121204)($at) +/* 06FCDC 8006F0DC 3C018012 */ lui $at, %hi(D_80121200+4) # $at, 0x8012 +/* 06FCE0 8006F0E0 AC381204 */ sw $t8, %lo(D_80121200+4)($at) /* 06FCE4 8006F0E4 00064080 */ sll $t0, $a2, 2 /* 06FCE8 8006F0E8 00055180 */ sll $t2, $a1, 6 /* 06FCEC 8006F0EC 01584821 */ addu $t1, $t2, $t8 -/* 06FCF0 8006F0F0 3C018012 */ lui $at, %hi(D_80121214) # $at, 0x8012 +/* 06FCF0 8006F0F0 3C018012 */ lui $at, %hi(D_80121210+4) # $at, 0x8012 /* 06FCF4 8006F0F4 01064021 */ addu $t0, $t0, $a2 -/* 06FCF8 8006F0F8 AC291214 */ sw $t1, %lo(D_80121214)($at) +/* 06FCF8 8006F0F8 AC291214 */ sw $t1, %lo(D_80121210+4)($at) /* 06FCFC 8006F0FC 00084040 */ sll $t0, $t0, 1 /* 06FD00 8006F100 01096821 */ addu $t5, $t0, $t1 -/* 06FD04 8006F104 3C018012 */ lui $at, %hi(D_80121224) # $at, 0x8012 -/* 06FD08 8006F108 AC2D1224 */ sw $t5, %lo(D_80121224)($at) +/* 06FD04 8006F104 3C018012 */ lui $at, %hi(D_80121220+4) # $at, 0x8012 +/* 06FD08 8006F108 AC2D1224 */ sw $t5, %lo(D_80121220+4)($at) /* 06FD0C 8006F10C 3C018012 */ lui $at, %hi(D_80123528) # $at, 0x8012 /* 06FD10 8006F110 AC243528 */ sw $a0, %lo(D_80123528)($at) /* 06FD14 8006F114 3C018012 */ lui $at, %hi(D_8012352C) # $at, 0x8012 diff --git a/asm/non_matchings/unknown_066AA0/func_8006B250.s b/asm/non_matchings/unknown_066AA0/load_level.s similarity index 99% rename from asm/non_matchings/unknown_066AA0/func_8006B250.s rename to asm/non_matchings/unknown_066AA0/load_level.s index b16c5b14..e390d94b 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006B250.s +++ b/asm/non_matchings/unknown_066AA0/load_level.s @@ -1,4 +1,4 @@ -glabel func_8006B250 +glabel load_level /* 06BE50 8006B250 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 06BE54 8006B254 AFBF002C */ sw $ra, 0x2c($sp) /* 06BE58 8006B258 AFB10028 */ sw $s1, 0x28($sp) @@ -81,8 +81,8 @@ glabel func_8006B250 /* 06BF68 8006B368 01F02023 */ subu $a0, $t7, $s0 /* 06BF6C 8006B36C 0C01C327 */ jal func_80070C9C /* 06BF70 8006B370 AFA40054 */ sw $a0, 0x54($sp) -/* 06BF74 8006B374 3C118012 */ lui $s1, %hi(D_80121168) # $s1, 0x8012 -/* 06BF78 8006B378 26311168 */ addiu $s1, %lo(D_80121168) # addiu $s1, $s1, 0x1168 +/* 06BF74 8006B374 3C118012 */ lui $s1, %hi(gCurrentLevelHeader) # $s1, 0x8012 +/* 06BF78 8006B378 26311168 */ addiu $s1, %lo(gCurrentLevelHeader) # addiu $s1, $s1, 0x1168 /* 06BF7C 8006B37C 8FA70054 */ lw $a3, 0x54($sp) /* 06BF80 8006B380 AE220000 */ sw $v0, ($s1) /* 06BF84 8006B384 24040017 */ li $a0, 23 diff --git a/asm/non_matchings/unknown_066AA0/func_8006C60C.s b/asm/non_matchings/unknown_066AA0/render.s similarity index 99% rename from asm/non_matchings/unknown_066AA0/func_8006C60C.s rename to asm/non_matchings/unknown_066AA0/render.s index b1205f7f..2ad3fe60 100644 --- a/asm/non_matchings/unknown_066AA0/func_8006C60C.s +++ b/asm/non_matchings/unknown_066AA0/render.s @@ -1,4 +1,4 @@ -glabel func_8006C60C +glabel render /* 06D20C 8006C60C 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 06D210 8006C610 AFBF0014 */ sw $ra, 0x14($sp) /* 06D214 8006C614 24040000 */ li $a0, 0 @@ -140,7 +140,7 @@ glabel func_8006C60C /* 06D428 8006C828 AC22D37C */ sw $v0, %lo(D_800DD37C)($at) /* 06D42C 8006C82C 10400006 */ beqz $v0, .L8006C848 /* 06D430 8006C830 00000000 */ nop -/* 06D434 8006C834 0C02DE04 */ jal func_800B7810 +/* 06D434 8006C834 0C02DE04 */ jal render_epc_lock_up_display /* 06D438 8006C838 00000000 */ nop /* 06D43C 8006C83C 240A0005 */ li $t2, 5 /* 06D440 8006C840 3C018012 */ lui $at, %hi(D_801234EC) # $at, 0x8012 @@ -162,7 +162,7 @@ glabel func_8006C60C /* 06D478 8006C878 0041082A */ slt $at, $v0, $at /* 06D47C 8006C87C 14200003 */ bnez $at, .L8006C88C /* 06D480 8006C880 3C04800E */ lui $a0, %hi(D_800E7134) # $a0, 0x800e -/* 06D484 8006C884 0C02D7B7 */ jal func_800B5EDC +/* 06D484 8006C884 0C02D7B7 */ jal render_printf /* 06D488 8006C888 24847134 */ addiu $a0, %lo(D_800E7134) # addiu $a0, $a0, 0x7134 .L8006C88C: /* 06D48C 8006C88C 3C028012 */ lui $v0, %hi(D_801234EC) # $v0, 0x8012 diff --git a/asm/non_matchings/unknown_066AA0/thread3_main.s b/asm/non_matchings/unknown_066AA0/thread3_main.s new file mode 100644 index 00000000..9ec5bbde --- /dev/null +++ b/asm/non_matchings/unknown_066AA0/thread3_main.s @@ -0,0 +1,49 @@ +glabel thread3_main +/* 06CF30 8006C330 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 06CF34 8006C334 AFBF0014 */ sw $ra, 0x14($sp) +/* 06CF38 8006C338 0C01B0F8 */ jal func_8006C3E0 +/* 06CF3C 8006C33C AFA40018 */ sw $a0, 0x18($sp) +/* 06CF40 8006C340 3C04800E */ lui $a0, %hi(D_800DD37C) # $a0, 0x800e +/* 06CF44 8006C344 8C84D37C */ lw $a0, %lo(D_800DD37C)($a0) +/* 06CF48 8006C348 0C01A871 */ jal func_8006A1C4 +/* 06CF4C 8006C34C 00002825 */ move $a1, $zero +/* 06CF50 8006C350 3C01800E */ lui $at, %hi(D_800DD37C) # $at, 0x800e +/* 06CF54 8006C354 AC22D37C */ sw $v0, %lo(D_800DD37C)($at) +/* 06CF58 8006C358 3C018012 */ lui $at, %hi(D_80123520) # $at, 0x8012 +/* 06CF5C 8006C35C AC203520 */ sw $zero, %lo(D_80123520)($at) +/* 06CF60 8006C360 3C018012 */ lui $at, %hi(D_801234EC) # $at, 0x8012 +/* 06CF64 8006C364 240EFFFF */ li $t6, -1 +/* 06CF68 8006C368 AC2E34EC */ sw $t6, %lo(D_801234EC)($at) +.L8006C36C: +/* 06CF6C 8006C36C 0C01BAB0 */ jal func_8006EAC0 +/* 06CF70 8006C370 00000000 */ nop +/* 06CF74 8006C374 1040000E */ beqz $v0, .L8006C3B0 +/* 06CF78 8006C378 00000000 */ nop +/* 06CF7C 8006C37C 0C01C9C2 */ jal func_80072708 +/* 06CF80 8006C380 00000000 */ nop +/* 06CF84 8006C384 0C000A9D */ jal audioStopThread +/* 06CF88 8006C388 00000000 */ nop +/* 06CF8C 8006C38C 0C031CEF */ jal func_800C73BC +/* 06CF90 8006C390 00000000 */ nop +/* 06CF94 8006C394 3C0400AA */ lui $a0, (0x00AAAA82 >> 16) # lui $a0, 0xaa +/* 06CF98 8006C398 0C033490 */ jal __osSpSetStatus +/* 06CF9C 8006C39C 3484AA82 */ ori $a0, (0x00AAAA82 & 0xFFFF) # ori $a0, $a0, 0xaa82 +/* 06CFA0 8006C3A0 0C033494 */ jal func_800CD250 +/* 06CFA4 8006C3A4 240401D6 */ li $a0, 470 +.L8006C3A8: +/* 06CFA8 8006C3A8 1000FFFF */ b .L8006C3A8 +/* 06CFAC 8006C3AC 00000000 */ nop +.L8006C3B0: +/* 06CFB0 8006C3B0 0C01B183 */ jal render +/* 06CFB4 8006C3B4 00000000 */ nop +/* 06CFB8 8006C3B8 0C01978C */ jal func_80065E30 +/* 06CFBC 8006C3BC 00000000 */ nop +/* 06CFC0 8006C3C0 1000FFEA */ b .L8006C36C +/* 06CFC4 8006C3C4 00000000 */ nop +/* 06CFC8 8006C3C8 00000000 */ nop +/* 06CFCC 8006C3CC 00000000 */ nop +/* 06CFD0 8006C3D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 06CFD4 8006C3D4 27BD0018 */ addiu $sp, $sp, 0x18 +/* 06CFD8 8006C3D8 03E00008 */ jr $ra +/* 06CFDC 8006C3DC 00000000 */ nop + diff --git a/asm/non_matchings/unknown_071730/func_80071A24.s b/asm/non_matchings/unknown_071730/func_80071A24.s index 3db3c795..e03583c2 100644 --- a/asm/non_matchings/unknown_071730/func_80071A24.s +++ b/asm/non_matchings/unknown_071730/func_80071A24.s @@ -121,61 +121,61 @@ glabel func_80071A24 /* 072778 80071B78 348400FF */ ori $a0, (0xFF0000FF & 0xFFFF) # ori $a0, $a0, 0xff /* 07277C 80071B7C 3C04800E */ lui $a0, %hi(D_800E7528) # $a0, 0x800e /* 072780 80071B80 24847528 */ addiu $a0, %lo(D_800E7528) # addiu $a0, $a0, 0x7528 -/* 072784 80071B84 0C02D7B7 */ jal func_800B5EDC +/* 072784 80071B84 0C02D7B7 */ jal render_printf /* 072788 80071B88 00402825 */ move $a1, $v0 /* 07278C 80071B8C 3C0400FF */ lui $a0, (0x00FF00FF >> 16) # lui $a0, 0xff /* 072790 80071B90 0C01C689 */ jal func_80071A24 /* 072794 80071B94 348400FF */ ori $a0, (0x00FF00FF & 0xFFFF) # ori $a0, $a0, 0xff /* 072798 80071B98 3C04800E */ lui $a0, %hi(D_800E7530) # $a0, 0x800e /* 07279C 80071B9C 24847530 */ addiu $a0, %lo(D_800E7530) # addiu $a0, $a0, 0x7530 -/* 0727A0 80071BA0 0C02D7B7 */ jal func_800B5EDC +/* 0727A0 80071BA0 0C02D7B7 */ jal render_printf /* 0727A4 80071BA4 00402825 */ move $a1, $v0 /* 0727A8 80071BA8 0C01C689 */ jal func_80071A24 /* 0727AC 80071BAC 3404FFFF */ li $a0, 65535 /* 0727B0 80071BB0 3C04800E */ lui $a0, %hi(D_800E753C) # $a0, 0x800e /* 0727B4 80071BB4 2484753C */ addiu $a0, %lo(D_800E753C) # addiu $a0, $a0, 0x753c -/* 0727B8 80071BB8 0C02D7B7 */ jal func_800B5EDC +/* 0727B8 80071BB8 0C02D7B7 */ jal render_printf /* 0727BC 80071BBC 00402825 */ move $a1, $v0 /* 0727C0 80071BC0 3C04FFFF */ lui $a0, (0xFFFF00FF >> 16) # lui $a0, 0xffff /* 0727C4 80071BC4 0C01C689 */ jal func_80071A24 /* 0727C8 80071BC8 348400FF */ ori $a0, (0xFFFF00FF & 0xFFFF) # ori $a0, $a0, 0xff /* 0727CC 80071BCC 3C04800E */ lui $a0, %hi(D_800E7548) # $a0, 0x800e /* 0727D0 80071BD0 24847548 */ addiu $a0, %lo(D_800E7548) # addiu $a0, $a0, 0x7548 -/* 0727D4 80071BD4 0C02D7B7 */ jal func_800B5EDC +/* 0727D4 80071BD4 0C02D7B7 */ jal render_printf /* 0727D8 80071BD8 00402825 */ move $a1, $v0 /* 0727DC 80071BDC 3C04FF00 */ lui $a0, (0xFF00FFFF >> 16) # lui $a0, 0xff00 /* 0727E0 80071BE0 0C01C689 */ jal func_80071A24 /* 0727E4 80071BE4 3484FFFF */ ori $a0, (0xFF00FFFF & 0xFFFF) # ori $a0, $a0, 0xffff /* 0727E8 80071BE8 3C04800E */ lui $a0, %hi(D_800E7554) # $a0, 0x800e /* 0727EC 80071BEC 24847554 */ addiu $a0, %lo(D_800E7554) # addiu $a0, $a0, 0x7554 -/* 0727F0 80071BF0 0C02D7B7 */ jal func_800B5EDC +/* 0727F0 80071BF0 0C02D7B7 */ jal render_printf /* 0727F4 80071BF4 00402825 */ move $a1, $v0 /* 0727F8 80071BF8 3C0400FF */ lui $a0, (0x00FFFFFF >> 16) # lui $a0, 0xff /* 0727FC 80071BFC 0C01C689 */ jal func_80071A24 /* 072800 80071C00 3484FFFF */ ori $a0, (0x00FFFFFF & 0xFFFF) # ori $a0, $a0, 0xffff /* 072804 80071C04 3C04800E */ lui $a0, %hi(D_800E7560) # $a0, 0x800e /* 072808 80071C08 24847560 */ addiu $a0, %lo(D_800E7560) # addiu $a0, $a0, 0x7560 -/* 07280C 80071C0C 0C02D7B7 */ jal func_800B5EDC +/* 07280C 80071C0C 0C02D7B7 */ jal render_printf /* 072810 80071C10 00402825 */ move $a1, $v0 /* 072814 80071C14 0C01C689 */ jal func_80071A24 /* 072818 80071C18 2404FFFF */ li $a0, -1 /* 07281C 80071C1C 3C04800E */ lui $a0, %hi(D_800E756C) # $a0, 0x800e /* 072820 80071C20 2484756C */ addiu $a0, %lo(D_800E756C) # addiu $a0, $a0, 0x756c -/* 072824 80071C24 0C02D7B7 */ jal func_800B5EDC +/* 072824 80071C24 0C02D7B7 */ jal render_printf /* 072828 80071C28 00402825 */ move $a1, $v0 /* 07282C 80071C2C 3C047F7F */ lui $a0, (0x7F7F7FFF >> 16) # lui $a0, 0x7f7f /* 072830 80071C30 0C01C689 */ jal func_80071A24 /* 072834 80071C34 34847FFF */ ori $a0, (0x7F7F7FFF & 0xFFFF) # ori $a0, $a0, 0x7fff /* 072838 80071C38 3C04800E */ lui $a0, %hi(D_800E7578) # $a0, 0x800e /* 07283C 80071C3C 24847578 */ addiu $a0, %lo(D_800E7578) # addiu $a0, $a0, 0x7578 -/* 072840 80071C40 0C02D7B7 */ jal func_800B5EDC +/* 072840 80071C40 0C02D7B7 */ jal render_printf /* 072844 80071C44 00402825 */ move $a1, $v0 /* 072848 80071C48 3C04FF7F */ lui $a0, (0xFF7F7FFF >> 16) # lui $a0, 0xff7f /* 07284C 80071C4C 0C01C689 */ jal func_80071A24 /* 072850 80071C50 34847FFF */ ori $a0, (0xFF7F7FFF & 0xFFFF) # ori $a0, $a0, 0x7fff /* 072854 80071C54 3C04800E */ lui $a0, %hi(D_800E7584) # $a0, 0x800e /* 072858 80071C58 24847584 */ addiu $a0, %lo(D_800E7584) # addiu $a0, $a0, 0x7584 -/* 07285C 80071C5C 0C02D7B7 */ jal func_800B5EDC +/* 07285C 80071C5C 0C02D7B7 */ jal render_printf /* 072860 80071C60 00402825 */ move $a1, $v0 /* 072864 80071C64 8FBF0014 */ lw $ra, 0x14($sp) /* 072868 80071C68 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/unknown_077C50/func_80077050.s b/asm/non_matchings/unknown_077C50/func_80077050.s index 0d124511..ad18eb60 100644 --- a/asm/non_matchings/unknown_077C50/func_80077050.s +++ b/asm/non_matchings/unknown_077C50/func_80077050.s @@ -63,7 +63,7 @@ glabel func_80077050 .L80077140: /* 077D40 80077140 AFA80034 */ sw $t0, 0x34($sp) /* 077D44 80077144 AFA90038 */ sw $t1, 0x38($sp) -/* 077D48 80077148 0C01AF6C */ jal func_8006BDB0 +/* 077D48 80077148 0C01AF6C */ jal get_current_level_header /* 077D4C 8007714C AFAA0024 */ sw $t2, 0x24($sp) /* 077D50 80077150 0C02A116 */ jal func_800A8458 /* 077D54 80077154 AFA20020 */ sw $v0, 0x20($sp) diff --git a/asm/non_matchings/unknown_09F8F0/func_8009F034.s b/asm/non_matchings/unknown_09F8F0/func_8009F034.s index face1667..9e761589 100644 --- a/asm/non_matchings/unknown_09F8F0/func_8009F034.s +++ b/asm/non_matchings/unknown_09F8F0/func_8009F034.s @@ -45,7 +45,7 @@ glabel func_8009F034 /* 09FC78 8009F078 E7B70020 */ swc1 $f23, 0x20($sp) /* 09FC7C 8009F07C E7B60024 */ swc1 $f22, 0x24($sp) /* 09FC80 8009F080 E7B50018 */ swc1 $f21, 0x18($sp) -/* 09FC84 8009F084 0C01AF66 */ jal func_8006BD98 +/* 09FC84 8009F084 0C01AF66 */ jal get_current_level_race_type /* 09FC88 8009F088 E7B4001C */ swc1 $f20, 0x1c($sp) /* 09FC8C 8009F08C 240C0001 */ li $t4, 1 /* 09FC90 8009F090 11820004 */ beq $t4, $v0, .L8009F0A4 @@ -752,7 +752,7 @@ glabel func_8009F034 /* 0A06C8 8009FAC8 461C3200 */ add.s $f8, $f6, $f28 /* 0A06CC 8009FACC E488020C */ swc1 $f8, 0x20c($a0) .L8009FAD0: -/* 0A06D0 8009FAD0 0C01AF66 */ jal func_8006BD98 +/* 0A06D0 8009FAD0 0C01AF66 */ jal get_current_level_race_type /* 0A06D4 8009FAD4 AFA70090 */ sw $a3, 0x90($sp) /* 0A06D8 8009FAD8 3C014080 */ li $at, 0x40800000 # 4.000000 /* 0A06DC 8009FADC 44819000 */ mtc1 $at, $f18 @@ -1074,7 +1074,7 @@ glabel func_8009F034 /* 0A0B9C 8009FF9C 14EFFCCE */ bne $a3, $t7, .L8009F2D8 /* 0A0BA0 8009FFA0 AFAE006C */ sw $t6, 0x6c($sp) .L8009FFA4: -/* 0A0BA4 8009FFA4 0C01AF66 */ jal func_8006BD98 +/* 0A0BA4 8009FFA4 0C01AF66 */ jal get_current_level_race_type /* 0A0BA8 8009FFA8 00000000 */ nop /* 0A0BAC 8009FFAC 30590040 */ andi $t9, $v0, 0x40 /* 0A0BB0 8009FFB0 13200008 */ beqz $t9, .L8009FFD4 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s index b2567c2d..abc55436 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s @@ -18,7 +18,7 @@ glabel func_800A01A0 /* 0A0DE0 800A01E0 030F2023 */ subu $a0, $t8, $t7 /* 0A0DE4 800A01E4 AFA2003C */ sw $v0, 0x3c($sp) .L800A01E8: -/* 0A0DE8 800A01E8 0C01AF6C */ jal func_8006BDB0 +/* 0A0DE8 800A01E8 0C01AF6C */ jal get_current_level_header /* 0A0DEC 800A01EC 00000000 */ nop /* 0A0DF0 800A01F0 8FB9003C */ lw $t9, 0x3c($sp) /* 0A0DF4 800A01F4 3C018012 */ lui $at, %hi(D_80126D60) # $at, 0x8012 @@ -499,7 +499,7 @@ glabel func_800A01A0 /* 0A1504 800A0904 10000040 */ b .L800A0A08 /* 0A1508 800A0908 8FAB0028 */ lw $t3, 0x28($sp) .L800A090C: -/* 0A150C 800A090C 0C01AF66 */ jal func_8006BD98 +/* 0A150C 800A090C 0C01AF66 */ jal get_current_level_race_type /* 0A1510 800A0910 AFA4002C */ sw $a0, 0x2c($sp) /* 0A1514 800A0914 8FA4002C */ lw $a0, 0x2c($sp) /* 0A1518 800A0918 1040000D */ beqz $v0, .L800A0950 @@ -602,7 +602,7 @@ glabel func_800A01A0 /* 0A1678 800A0A78 00000000 */ nop /* 0A167C 800A0A7C 10400007 */ beqz $v0, .L800A0A9C /* 0A1680 800A0A80 8FA40028 */ lw $a0, 0x28($sp) -/* 0A1684 800A0A84 0C01AF66 */ jal func_8006BD98 +/* 0A1684 800A0A84 0C01AF66 */ jal get_current_level_race_type /* 0A1688 800A0A88 00000000 */ nop /* 0A168C 800A0A8C 24010008 */ li $at, 8 /* 0A1690 800A0A90 14410008 */ bne $v0, $at, .L800A0AB4 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A277C.s b/asm/non_matchings/unknown_09F8F0/func_800A277C.s index 9d0925f7..f48d6b0a 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A277C.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A277C.s @@ -206,7 +206,7 @@ glabel func_800A277C /* 0A3620 800A2A20 1000004C */ b .L800A2B54 /* 0A3624 800A2A24 A60C0018 */ sh $t4, 0x18($s0) .L800A2A28: -/* 0A3628 800A2A28 0C01BAA8 */ jal func_8006EAA0 +/* 0A3628 800A2A28 0C01BAA8 */ jal is_game_paused /* 0A362C 800A2A2C AFA900A8 */ sw $t1, 0xa8($sp) /* 0A3630 800A2A30 8FA900A8 */ lw $t1, 0xa8($sp) /* 0A3634 800A2A34 14400047 */ bnez $v0, .L800A2B54 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A3884.s b/asm/non_matchings/unknown_09F8F0/func_800A3884.s index 380861d2..79597a4f 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A3884.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A3884.s @@ -99,7 +99,7 @@ glabel func_800A3884 /* 0A45DC 800A39DC 00000000 */ nop /* 0A45E0 800A39E0 46006086 */ mov.s $f2, $f12 .L800A39E4: -/* 0A45E4 800A39E4 0C01BAA8 */ jal func_8006EAA0 +/* 0A45E4 800A39E4 0C01BAA8 */ jal is_game_paused /* 0A45E8 800A39E8 E7A20024 */ swc1 $f2, 0x24($sp) /* 0A45EC 800A39EC C7A20024 */ lwc1 $f2, 0x24($sp) /* 0A45F0 800A39F0 1440002E */ bnez $v0, .L800A3AAC diff --git a/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s b/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s index e67528c8..5025c724 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s @@ -2,7 +2,7 @@ glabel func_800A3CE4 /* 0A48E4 800A3CE4 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 0A48E8 800A3CE8 AFBF0024 */ sw $ra, 0x24($sp) /* 0A48EC 800A3CEC AFA40058 */ sw $a0, 0x58($sp) -/* 0A48F0 800A3CF0 0C01BAA8 */ jal func_8006EAA0 +/* 0A48F0 800A3CF0 0C01BAA8 */ jal is_game_paused /* 0A48F4 800A3CF4 AFA5005C */ sw $a1, 0x5c($sp) /* 0A48F8 800A3CF8 8FA90058 */ lw $t1, 0x58($sp) /* 0A48FC 800A3CFC 14400111 */ bnez $v0, .L800A4144 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A4C44.s b/asm/non_matchings/unknown_09F8F0/func_800A4C44.s index 47719427..6a16766c 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A4C44.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A4C44.s @@ -12,7 +12,7 @@ glabel func_800A4C44 /* 0A586C 800A4C6C 8FA30034 */ lw $v1, 0x34($sp) /* 0A5870 800A4C70 1040001B */ beqz $v0, .L800A4CE0 /* 0A5874 800A4C74 00000000 */ nop -/* 0A5878 800A4C78 0C01AF66 */ jal func_8006BD98 +/* 0A5878 800A4C78 0C01AF66 */ jal get_current_level_race_type /* 0A587C 800A4C7C 00000000 */ nop /* 0A5880 800A4C80 24010008 */ li $at, 8 /* 0A5884 800A4C84 10410005 */ beq $v0, $at, .L800A4C9C diff --git a/asm/non_matchings/unknown_09F8F0/func_800A4F50.s b/asm/non_matchings/unknown_09F8F0/func_800A4F50.s index 11dbb9a0..2a429992 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A4F50.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A4F50.s @@ -158,7 +158,7 @@ glabel func_800A4F50 /* 0A5DA4 800A51A4 0C01EFC7 */ jal func_8007BF1C /* 0A5DA8 800A51A8 24040001 */ li $a0, 1 .L800A51AC: -/* 0A5DAC 800A51AC 0C01BAA8 */ jal func_8006EAA0 +/* 0A5DAC 800A51AC 0C01BAA8 */ jal is_game_paused /* 0A5DB0 800A51B0 00000000 */ nop /* 0A5DB4 800A51B4 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 /* 0A5DB8 800A51B8 8FA90018 */ lw $t1, 0x18($sp) diff --git a/asm/non_matchings/unknown_09F8F0/func_800A5A64.s b/asm/non_matchings/unknown_09F8F0/func_800A5A64.s index 3da8be46..5ec9c1a4 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A5A64.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A5A64.s @@ -33,7 +33,7 @@ glabel func_800A5A64 /* 0A66DC 800A5ADC 45000038 */ bc1f .L800A5BC0 /* 0A66E0 800A5AE0 00000000 */ nop .L800A5AE4: -/* 0A66E4 800A5AE4 0C01BAA8 */ jal func_8006EAA0 +/* 0A66E4 800A5AE4 0C01BAA8 */ jal is_game_paused /* 0A66E8 800A5AE8 00000000 */ nop /* 0A66EC 800A5AEC 14400034 */ bnez $v0, .L800A5BC0 /* 0A66F0 800A5AF0 3C038012 */ lui $v1, %hi(D_80126D38) # $v1, 0x8012 @@ -194,7 +194,7 @@ glabel func_800A5A64 /* 0A693C 800A5D3C 00000000 */ nop /* 0A6940 800A5D40 A040047A */ sb $zero, 0x47a($v0) .L800A5D44: -/* 0A6944 800A5D44 0C01BAA8 */ jal func_8006EAA0 +/* 0A6944 800A5D44 0C01BAA8 */ jal is_game_paused /* 0A6948 800A5D48 00000000 */ nop /* 0A694C 800A5D4C 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 /* 0A6950 800A5D50 1440006B */ bnez $v0, .L800A5F00 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A5F18.s b/asm/non_matchings/unknown_09F8F0/func_800A5F18.s index 9d397c1c..01a86f3e 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A5F18.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A5F18.s @@ -33,7 +33,7 @@ glabel func_800A5F18 /* 0A6B68 800A5F68 24846CFC */ addiu $a0, %lo(D_80126CFC) # addiu $a0, $a0, 0x6cfc /* 0A6B6C 800A5F6C 0C02A980 */ jal func_800AA600 /* 0A6B70 800A5F70 24E70600 */ addiu $a3, $a3, 0x600 -/* 0A6B74 800A5F74 0C01AF66 */ jal func_8006BD98 +/* 0A6B74 800A5F74 0C01AF66 */ jal get_current_level_race_type /* 0A6B78 800A5F78 00000000 */ nop /* 0A6B7C 800A5F7C 304E0040 */ andi $t6, $v0, 0x40 /* 0A6B80 800A5F80 15C000B1 */ bnez $t6, .L800A6248 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A6254.s b/asm/non_matchings/unknown_09F8F0/func_800A6254.s index b7450383..83db5620 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A6254.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A6254.s @@ -11,7 +11,7 @@ glabel func_800A6254 /* 0A6E54 800A6254 27BDFF90 */ addiu $sp, $sp, -0x70 /* 0A6E58 800A6258 AFBF0014 */ sw $ra, 0x14($sp) /* 0A6E5C 800A625C AFA50074 */ sw $a1, 0x74($sp) -/* 0A6E60 800A6260 0C01AF66 */ jal func_8006BD98 +/* 0A6E60 800A6260 0C01AF66 */ jal get_current_level_race_type /* 0A6E64 800A6264 AFA40070 */ sw $a0, 0x70($sp) /* 0A6E68 800A6268 0C027B20 */ jal is_in_two_player_adventure /* 0A6E6C 800A626C AFA2005C */ sw $v0, 0x5c($sp) @@ -408,7 +408,7 @@ glabel L800A63D8 .L800A6828: /* 0A7428 800A6828 1102015F */ beq $t0, $v0, .L800A6DA8 /* 0A742C 800A682C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A7430 800A6830 0C01AF6C */ jal func_8006BDB0 +/* 0A7430 800A6830 0C01AF6C */ jal get_current_level_header /* 0A7434 800A6834 AFA70070 */ sw $a3, 0x70($sp) /* 0A7438 800A6838 8FA70070 */ lw $a3, 0x70($sp) /* 0A743C 800A683C 00004025 */ move $t0, $zero diff --git a/asm/non_matchings/unknown_09F8F0/func_800A718C.s b/asm/non_matchings/unknown_09F8F0/func_800A718C.s index 4d3e77ef..cf1f7e4e 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A718C.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A718C.s @@ -194,7 +194,7 @@ glabel func_800A718C /* 0A804C 800A744C AFBF0014 */ sw $ra, 0x14($sp) /* 0A8050 800A7450 15C00008 */ bnez $t6, .L800A7474 /* 0A8054 800A7454 AFA40018 */ sw $a0, 0x18($sp) -/* 0A8058 800A7458 0C01BAA8 */ jal func_8006EAA0 +/* 0A8058 800A7458 0C01BAA8 */ jal is_game_paused /* 0A805C 800A745C 00000000 */ nop /* 0A8060 800A7460 14400004 */ bnez $v0, .L800A7474 /* 0A8064 800A7464 3C058012 */ lui $a1, %hi(D_80126D40) # $a1, 0x8012 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A7B68.s b/asm/non_matchings/unknown_09F8F0/func_800A7B68.s index be48514a..6e2c6c01 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A7B68.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A7B68.s @@ -86,7 +86,7 @@ glabel func_800A7B68 /* 0A88A8 800A7CA8 000A182B */ sltu $v1, $zero, $t2 /* 0A88AC 800A7CAC 14600006 */ bnez $v1, .L800A7CC8 /* 0A88B0 800A7CB0 00000000 */ nop -/* 0A88B4 800A7CB4 0C01BAA8 */ jal func_8006EAA0 +/* 0A88B4 800A7CB4 0C01BAA8 */ jal is_game_paused /* 0A88B8 800A7CB8 00000000 */ nop /* 0A88BC 800A7CBC 3C088012 */ lui $t0, %hi(D_80126CDC) # $t0, 0x8012 /* 0A88C0 800A7CC0 8D086CDC */ lw $t0, %lo(D_80126CDC)($t0) diff --git a/asm/non_matchings/unknown_09F8F0/func_800A8474.s b/asm/non_matchings/unknown_09F8F0/func_800A8474.s index ca8a937e..f2b082c2 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A8474.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A8474.s @@ -182,7 +182,7 @@ glabel func_800A8474 /* 0A92D0 800A86D0 1420FFAE */ bnez $at, .L800A858C /* 0A92D4 800A86D4 26310004 */ addiu $s1, $s1, 4 .L800A86D8: -/* 0A92D8 800A86D8 0C01AF6C */ jal func_8006BDB0 +/* 0A92D8 800A86D8 0C01AF6C */ jal get_current_level_header /* 0A92DC 800A86DC 00000000 */ nop /* 0A92E0 800A86E0 3C018012 */ lui $at, %hi(D_80126D60) # $at, 0x8012 /* 0A92E4 800A86E4 AC226D60 */ sw $v0, %lo(D_80126D60)($at) @@ -1481,17 +1481,17 @@ glabel func_800A8474 /* 0AA60C 800A9A0C 1000004A */ b .L800A9B38 /* 0AA610 800A9A10 AE0B0000 */ sw $t3, ($s0) .L800A9A14: -/* 0AA614 800A9A14 0C01AF66 */ jal func_8006BD98 +/* 0AA614 800A9A14 0C01AF66 */ jal get_current_level_race_type /* 0AA618 800A9A18 00000000 */ nop /* 0AA61C 800A9A1C 24010042 */ li $at, 66 /* 0AA620 800A9A20 1041000B */ beq $v0, $at, .L800A9A50 /* 0AA624 800A9A24 00000000 */ nop -/* 0AA628 800A9A28 0C01AF66 */ jal func_8006BD98 +/* 0AA628 800A9A28 0C01AF66 */ jal get_current_level_race_type /* 0AA62C 800A9A2C 00000000 */ nop /* 0AA630 800A9A30 24010040 */ li $at, 64 /* 0AA634 800A9A34 10410006 */ beq $v0, $at, .L800A9A50 /* 0AA638 800A9A38 00000000 */ nop -/* 0AA63C 800A9A3C 0C01AF66 */ jal func_8006BD98 +/* 0AA63C 800A9A3C 0C01AF66 */ jal get_current_level_race_type /* 0AA640 800A9A40 00000000 */ nop /* 0AA644 800A9A44 24010041 */ li $at, 65 /* 0AA648 800A9A48 14410015 */ bne $v0, $at, .L800A9AA0 @@ -2040,7 +2040,7 @@ glabel func_800A8474 /* 0AAE54 800AA254 01D86025 */ or $t4, $t6, $t8 /* 0AAE58 800AA258 AD0C0004 */ sw $t4, 4($t0) .L800AA25C: -/* 0AAE5C 800AA25C 0C01AF66 */ jal func_8006BD98 +/* 0AAE5C 800AA25C 0C01AF66 */ jal get_current_level_race_type /* 0AAE60 800AA260 AFA50148 */ sw $a1, 0x148($sp) /* 0AAE64 800AA264 8FA50148 */ lw $a1, 0x148($sp) /* 0AAE68 800AA268 304D0040 */ andi $t5, $v0, 0x40 @@ -2062,7 +2062,7 @@ glabel func_800A8474 /* 0AAEA4 800AA2A4 46123101 */ sub.s $f4, $f6, $f18 /* 0AAEA8 800AA2A8 E44401EC */ swc1 $f4, 0x1ec($v0) .L800AA2AC: -/* 0AAEAC 800AA2AC 0C01AF66 */ jal func_8006BD98 +/* 0AAEAC 800AA2AC 0C01AF66 */ jal get_current_level_race_type /* 0AAEB0 800AA2B0 AFA50148 */ sw $a1, 0x148($sp) /* 0AAEB4 800AA2B4 8FA50148 */ lw $a1, 0x148($sp) /* 0AAEB8 800AA2B8 24010040 */ li $at, 64 diff --git a/asm/non_matchings/unknown_0AEE70/func_800B4A08.s b/asm/non_matchings/unknown_0AEE70/func_800B4A08.s index 271bdc26..aa79000a 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B4A08.s +++ b/asm/non_matchings/unknown_0AEE70/func_800B4A08.s @@ -8,7 +8,7 @@ glabel func_800B4A08 /* 0B561C 800B4A1C AFA60028 */ sw $a2, 0x28($sp) /* 0B5620 800B4A20 AFA50024 */ sw $a1, 0x24($sp) /* 0B5624 800B4A24 AFA7002C */ sw $a3, 0x2c($sp) -/* 0B5628 800B4A28 0C02D290 */ jal func_800B4A40 +/* 0B5628 800B4A28 0C02D290 */ jal sprintf /* 0B562C 800B4A2C 27A60028 */ addiu $a2, $sp, 0x28 /* 0B5630 800B4A30 8FBF0014 */ lw $ra, 0x14($sp) /* 0B5634 800B4A34 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/non_matchings/unknown_0AEE70/func_800B635C.s b/asm/non_matchings/unknown_0AEE70/func_800B635C.s index 55c3433b..2c8cd647 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B635C.s +++ b/asm/non_matchings/unknown_0AEE70/func_800B635C.s @@ -49,7 +49,7 @@ glabel func_800B635C /* 0B7014 800B6414 AFA0012C */ sw $zero, 0x12c($sp) /* 0B7018 800B6418 8FA50138 */ lw $a1, 0x138($sp) /* 0B701C 800B641C 27A4002C */ addiu $a0, $sp, 0x2c -/* 0B7020 800B6420 0C02D290 */ jal func_800B4A40 +/* 0B7020 800B6420 0C02D290 */ jal sprintf /* 0B7024 800B6424 27A6013C */ addiu $a2, $sp, 0x13c /* 0B7028 800B6428 0C02D282 */ jal func_800B4A08 /* 0B702C 800B642C 00002025 */ move $a0, $zero diff --git a/asm/non_matchings/unknown_0AEE70/func_800B6E50.s b/asm/non_matchings/unknown_0AEE70/func_800B6E50.s deleted file mode 100644 index 5a61778b..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B6E50.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel func_800B6E50 -/* 0B7A50 800B6E50 3C028012 */ lui $v0, %hi(D_80127CD0) # $v0, 0x8012 -/* 0B7A54 800B6E54 94427CD0 */ lhu $v0, %lo(D_80127CD0)($v0) -/* 0B7A58 800B6E58 24180020 */ li $t8, 32 -/* 0B7A5C 800B6E5C 28410141 */ slti $at, $v0, 0x141 -/* 0B7A60 800B6E60 10200008 */ beqz $at, .L800B6E84 -/* 0B7A64 800B6E64 2459FFE0 */ addiu $t9, $v0, -0x20 -/* 0B7A68 800B6E68 240E0010 */ li $t6, 16 -/* 0B7A6C 800B6E6C 3C018012 */ lui $at, %hi(D_80127CBC) # $at, 0x8012 -/* 0B7A70 800B6E70 AC2E7CBC */ sw $t6, %lo(D_80127CBC)($at) -/* 0B7A74 800B6E74 3C018012 */ lui $at, %hi(D_80127CC0) # $at, 0x8012 -/* 0B7A78 800B6E78 244FFFF0 */ addiu $t7, $v0, -0x10 -/* 0B7A7C 800B6E7C 10000005 */ b .L800B6E94 -/* 0B7A80 800B6E80 AC2F7CC0 */ sw $t7, %lo(D_80127CC0)($at) -.L800B6E84: -/* 0B7A84 800B6E84 3C018012 */ lui $at, %hi(D_80127CBC) # $at, 0x8012 -/* 0B7A88 800B6E88 AC387CBC */ sw $t8, %lo(D_80127CBC)($at) -/* 0B7A8C 800B6E8C 3C018012 */ lui $at, %hi(D_80127CC0) # $at, 0x8012 -/* 0B7A90 800B6E90 AC397CC0 */ sw $t9, %lo(D_80127CC0)($at) -.L800B6E94: -/* 0B7A94 800B6E94 3C028012 */ lui $v0, %hi(D_80127CD2) # $v0, 0x8012 -/* 0B7A98 800B6E98 94427CD2 */ lhu $v0, %lo(D_80127CD2)($v0) -/* 0B7A9C 800B6E9C 240A0020 */ li $t2, 32 -/* 0B7AA0 800B6EA0 284100F1 */ slti $at, $v0, 0xf1 -/* 0B7AA4 800B6EA4 10200008 */ beqz $at, .L800B6EC8 -/* 0B7AA8 800B6EA8 244BFFE0 */ addiu $t3, $v0, -0x20 -/* 0B7AAC 800B6EAC 24080010 */ li $t0, 16 -/* 0B7AB0 800B6EB0 3C018012 */ lui $at, %hi(D_80127CC4) # $at, 0x8012 -/* 0B7AB4 800B6EB4 AC287CC4 */ sw $t0, %lo(D_80127CC4)($at) -/* 0B7AB8 800B6EB8 3C018012 */ lui $at, %hi(D_80127CC8) # $at, 0x8012 -/* 0B7ABC 800B6EBC 2449FFF0 */ addiu $t1, $v0, -0x10 -/* 0B7AC0 800B6EC0 03E00008 */ jr $ra -/* 0B7AC4 800B6EC4 AC297CC8 */ sw $t1, %lo(D_80127CC8)($at) - -.L800B6EC8: -/* 0B7AC8 800B6EC8 3C018012 */ lui $at, %hi(D_80127CC4) # $at, 0x8012 -/* 0B7ACC 800B6ECC AC2A7CC4 */ sw $t2, %lo(D_80127CC4)($at) -/* 0B7AD0 800B6ED0 3C018012 */ lui $at, %hi(D_80127CC8) # $at, 0x8012 -/* 0B7AD4 800B6ED4 AC2B7CC8 */ sw $t3, %lo(D_80127CC8)($at) -/* 0B7AD8 800B6ED8 03E00008 */ jr $ra -/* 0B7ADC 800B6EDC 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B6EE0.s b/asm/non_matchings/unknown_0AEE70/func_800B6EE0.s deleted file mode 100644 index bcd5da2b..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B6EE0.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_800B6EE0 -/* 0B7AE0 800B6EE0 3C0E8012 */ lui $t6, %hi(D_80127CBC) # $t6, 0x8012 -/* 0B7AE4 800B6EE4 8DCE7CBC */ lw $t6, %lo(D_80127CBC)($t6) -/* 0B7AE8 800B6EE8 3C018012 */ lui $at, %hi(D_80127CAC) # $at, 0x8012 -/* 0B7AEC 800B6EEC 3C0F8012 */ lui $t7, %hi(D_80127CC4) # $t7, 0x8012 -/* 0B7AF0 800B6EF0 8DEF7CC4 */ lw $t7, %lo(D_80127CC4)($t7) -/* 0B7AF4 800B6EF4 A42E7CAC */ sh $t6, %lo(D_80127CAC)($at) -/* 0B7AF8 800B6EF8 3C018012 */ lui $at, %hi(D_80127CAE) # $at, 0x8012 -/* 0B7AFC 800B6EFC 03E00008 */ jr $ra -/* 0B7B00 800B6F00 A42F7CAE */ sh $t7, %lo(D_80127CAE)($at) - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B6F04.s b/asm/non_matchings/unknown_0AEE70/func_800B6F04.s deleted file mode 100644 index b5c7e50c..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B6F04.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_800B6F04 -/* 0B7B04 800B6F04 3C0E8012 */ lui $t6, %hi(D_80127CBC) # $t6, 0x8012 -/* 0B7B08 800B6F08 8DCE7CBC */ lw $t6, %lo(D_80127CBC)($t6) -/* 0B7B0C 800B6F0C 3C028012 */ lui $v0, %hi(D_80127CAE) # $v0, 0x8012 -/* 0B7B10 800B6F10 3C018012 */ lui $at, %hi(D_80127CAC) # $at, 0x8012 -/* 0B7B14 800B6F14 24427CAE */ addiu $v0, %lo(D_80127CAE) # addiu $v0, $v0, 0x7cae -/* 0B7B18 800B6F18 A42E7CAC */ sh $t6, %lo(D_80127CAC)($at) -/* 0B7B1C 800B6F1C 944F0000 */ lhu $t7, ($v0) -/* 0B7B20 800B6F20 00000000 */ nop -/* 0B7B24 800B6F24 25F8000B */ addiu $t8, $t7, 0xb -/* 0B7B28 800B6F28 03E00008 */ jr $ra -/* 0B7B2C 800B6F2C A4580000 */ sh $t8, ($v0) - -/* 0B7B30 800B6F30 AFA40000 */ sw $a0, ($sp) -/* 0B7B34 800B6F34 AFA50004 */ sw $a1, 4($sp) -/* 0B7B38 800B6F38 03E00008 */ jr $ra -/* 0B7B3C 800B6F3C AFA60008 */ sw $a2, 8($sp) - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B6F50.s b/asm/non_matchings/unknown_0AEE70/func_800B6F50.s index 7a53bc0a..381a5b76 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B6F50.s +++ b/asm/non_matchings/unknown_0AEE70/func_800B6F50.s @@ -4,10 +4,10 @@ glabel func_800B6F50 /* 0B7B58 800B6F58 AFBF001C */ sw $ra, 0x1c($sp) /* 0B7B5C 800B6F5C 25CE95E0 */ addiu $t6, %lo(D_801295E0) # addiu $t6, $t6, -0x6a20 /* 0B7B60 800B6F60 3C048013 */ lui $a0, %hi(D_801295E0) # $a0, 0x8013 -/* 0B7B64 800B6F64 3C06800B */ lui $a2, %hi(func_800B6FC4) # $a2, 0x800b +/* 0B7B64 800B6F64 3C06800B */ lui $a2, %hi(thread0) # $a2, 0x800b /* 0B7B68 800B6F68 240F00FF */ li $t7, 255 /* 0B7B6C 800B6F6C AFAF0014 */ sw $t7, 0x14($sp) -/* 0B7B70 800B6F70 24C66FC4 */ addiu $a2, %lo(func_800B6FC4) # addiu $a2, $a2, 0x6fc4 +/* 0B7B70 800B6F70 24C66FC4 */ addiu $a2, %lo(thread0) # addiu $a2, $a2, 0x6fc4 /* 0B7B74 800B6F74 248495E0 */ addiu $a0, %lo(D_801295E0) # addiu $a0, $a0, -0x6a20 /* 0B7B78 800B6F78 AFAE0010 */ sw $t6, 0x10($sp) /* 0B7B7C 800B6F7C 00002825 */ move $a1, $zero diff --git a/asm/non_matchings/unknown_0AEE70/func_800B70D0.s b/asm/non_matchings/unknown_0AEE70/func_800B70D0.s deleted file mode 100644 index feccffab..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B70D0.s +++ /dev/null @@ -1,34 +0,0 @@ -glabel func_800B70D0 -/* 0B7CD0 800B70D0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0B7CD4 800B70D4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B7CD8 800B70D8 0C03491C */ jal func_800D2470 -/* 0B7CDC 800B70DC 00000000 */ nop -/* 0B7CE0 800B70E0 8C4E0004 */ lw $t6, 4($v0) -/* 0B7CE4 800B70E4 2404FFFF */ li $a0, -1 -/* 0B7CE8 800B70E8 108E0012 */ beq $a0, $t6, .L800B7134 -/* 0B7CEC 800B70EC 00401825 */ move $v1, $v0 -/* 0B7CF0 800B70F0 8C420004 */ lw $v0, 4($v0) -/* 0B7CF4 800B70F4 3C01FFFF */ lui $at, (0xFFFF00FE >> 16) # lui $at, 0xffff -.L800B70F8: -/* 0B7CF8 800B70F8 14400008 */ bnez $v0, .L800B711C -/* 0B7CFC 800B70FC 00000000 */ nop -/* 0B7D00 800B7100 8C6F0118 */ lw $t7, 0x118($v1) -/* 0B7D04 800B7104 342100FE */ ori $at, (0xFFFF00FE & 0xFFFF) # ori $at, $at, 0xfe -/* 0B7D08 800B7108 01E1C024 */ and $t8, $t7, $at -/* 0B7D0C 800B710C AC780118 */ sw $t8, 0x118($v1) -/* 0B7D10 800B7110 37086C01 */ ori $t0, $t8, 0x6c01 -/* 0B7D14 800B7114 10000007 */ b .L800B7134 -/* 0B7D18 800B7118 AC680118 */ sw $t0, 0x118($v1) -.L800B711C: -/* 0B7D1C 800B711C 8C63000C */ lw $v1, 0xc($v1) -/* 0B7D20 800B7120 00000000 */ nop -/* 0B7D24 800B7124 8C620004 */ lw $v0, 4($v1) -/* 0B7D28 800B7128 00000000 */ nop -/* 0B7D2C 800B712C 1482FFF2 */ bne $a0, $v0, .L800B70F8 -/* 0B7D30 800B7130 00000000 */ nop -.L800B7134: -/* 0B7D34 800B7134 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B7D38 800B7138 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0B7D3C 800B713C 03E00008 */ jr $ra -/* 0B7D40 800B7140 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B7144.s b/asm/non_matchings/unknown_0AEE70/func_800B7144.s deleted file mode 100644 index 00e50fc8..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B7144.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_800B7144 -/* 0B7D44 800B7144 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0B7D48 800B7148 AFBF001C */ sw $ra, 0x1c($sp) -/* 0B7D4C 800B714C AFB10018 */ sw $s1, 0x18($sp) -/* 0B7D50 800B7150 0C03491C */ jal func_800D2470 -/* 0B7D54 800B7154 AFB00014 */ sw $s0, 0x14($sp) -/* 0B7D58 800B7158 8C4E0004 */ lw $t6, 4($v0) -/* 0B7D5C 800B715C 2411FFFF */ li $s1, -1 -/* 0B7D60 800B7160 122E000E */ beq $s1, $t6, .L800B719C -/* 0B7D64 800B7164 00408025 */ move $s0, $v0 -/* 0B7D68 800B7168 01C01025 */ move $v0, $t6 -.L800B716C: -/* 0B7D6C 800B716C 18400005 */ blez $v0, .L800B7184 -/* 0B7D70 800B7170 28410080 */ slti $at, $v0, 0x80 -/* 0B7D74 800B7174 10200003 */ beqz $at, .L800B7184 -/* 0B7D78 800B7178 00000000 */ nop -/* 0B7D7C 800B717C 0C0322BC */ jal osStopThread -/* 0B7D80 800B7180 02002025 */ move $a0, $s0 -.L800B7184: -/* 0B7D84 800B7184 8E10000C */ lw $s0, 0xc($s0) -/* 0B7D88 800B7188 00000000 */ nop -/* 0B7D8C 800B718C 8E020004 */ lw $v0, 4($s0) -/* 0B7D90 800B7190 00000000 */ nop -/* 0B7D94 800B7194 1622FFF5 */ bne $s1, $v0, .L800B716C -/* 0B7D98 800B7198 00000000 */ nop -.L800B719C: -/* 0B7D9C 800B719C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0B7DA0 800B71A0 8FB00014 */ lw $s0, 0x14($sp) -/* 0B7DA4 800B71A4 8FB10018 */ lw $s1, 0x18($sp) -/* 0B7DA8 800B71A8 03E00008 */ jr $ra -/* 0B7DAC 800B71AC 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B76B8.s b/asm/non_matchings/unknown_0AEE70/func_800B76B8.s deleted file mode 100644 index 63f50f37..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B76B8.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_800B76B8 -/* 0B82B8 800B76B8 04800006 */ bltz $a0, .L800B76D4 -/* 0B82BC 800B76BC 28810003 */ slti $at, $a0, 3 -/* 0B82C0 800B76C0 10200004 */ beqz $at, .L800B76D4 -/* 0B82C4 800B76C4 00047080 */ sll $t6, $a0, 2 -/* 0B82C8 800B76C8 3C018013 */ lui $at, %hi(D_80129FB0) # $at, 0x8013 -/* 0B82CC 800B76CC 002E0821 */ addu $at, $at, $t6 -/* 0B82D0 800B76D0 AC259FB0 */ sw $a1, %lo(D_80129FB0)($at) -.L800B76D4: -/* 0B82D4 800B76D4 03E00008 */ jr $ra -/* 0B82D8 800B76D8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B76DC.s b/asm/non_matchings/unknown_0AEE70/func_800B76DC.s deleted file mode 100644 index 89a9d476..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B76DC.s +++ /dev/null @@ -1,67 +0,0 @@ -glabel func_800B76DC -/* 0B82DC 800B76DC 3C02800E */ lui $v0, %hi(D_800E3020) # $v0, 0x800e -/* 0B82E0 800B76E0 24423020 */ addiu $v0, %lo(D_800E3020) # addiu $v0, $v0, 0x3020 -/* 0B82E4 800B76E4 8C430000 */ lw $v1, ($v0) -/* 0B82E8 800B76E8 27BDF7D8 */ addiu $sp, $sp, -0x828 -/* 0B82EC 800B76EC 2401FFFF */ li $at, -1 -/* 0B82F0 800B76F0 10610003 */ beq $v1, $at, .L800B7700 -/* 0B82F4 800B76F4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B82F8 800B76F8 10000032 */ b .L800B77C4 -/* 0B82FC 800B76FC 00601025 */ move $v0, $v1 -.L800B7700: -/* 0B8300 800B7700 AC400000 */ sw $zero, ($v0) -/* 0B8304 800B7704 0C01D637 */ jal func_800758DC -/* 0B8308 800B7708 00002025 */ move $a0, $zero -/* 0B830C 800B770C 14400020 */ bnez $v0, .L800B7790 -/* 0B8310 800B7710 00002025 */ move $a0, $zero -/* 0B8314 800B7714 3C05800F */ lui $a1, %hi(D_800E8EF4) # $a1, 0x800f -/* 0B8318 800B7718 3C06800F */ lui $a2, %hi(D_800E8EFC) # $a2, 0x800f -/* 0B831C 800B771C 24C68EFC */ addiu $a2, %lo(D_800E8EFC) # addiu $a2, $a2, -0x7104 -/* 0B8320 800B7720 24A58EF4 */ addiu $a1, %lo(D_800E8EF4) # addiu $a1, $a1, -0x710c -/* 0B8324 800B7724 0C01D93A */ jal func_800764E8 -/* 0B8328 800B7728 27A70824 */ addiu $a3, $sp, 0x824 -/* 0B832C 800B772C 14400018 */ bnez $v0, .L800B7790 -/* 0B8330 800B7730 00002025 */ move $a0, $zero -/* 0B8334 800B7734 8FA50824 */ lw $a1, 0x824($sp) -/* 0B8338 800B7738 27A60020 */ addiu $a2, $sp, 0x20 -/* 0B833C 800B773C 0C01D984 */ jal func_80076610 -/* 0B8340 800B7740 24070800 */ li $a3, 2048 -/* 0B8344 800B7744 14400012 */ bnez $v0, .L800B7790 -/* 0B8348 800B7748 27A40020 */ addiu $a0, $sp, 0x20 -/* 0B834C 800B774C 3C058013 */ lui $a1, %hi(D_80129800) # $a1, 0x8013 -/* 0B8350 800B7750 24A59800 */ addiu $a1, %lo(D_80129800) # addiu $a1, $a1, -0x6800 -/* 0B8354 800B7754 0C032768 */ jal bcopy -/* 0B8358 800B7758 240601B0 */ li $a2, 432 -/* 0B835C 800B775C 3C058013 */ lui $a1, %hi(D_801299B0) # $a1, 0x8013 -/* 0B8360 800B7760 24A599B0 */ addiu $a1, %lo(D_801299B0) # addiu $a1, $a1, -0x6650 -/* 0B8364 800B7764 27A40220 */ addiu $a0, $sp, 0x220 -/* 0B8368 800B7768 0C032768 */ jal bcopy -/* 0B836C 800B776C 24060200 */ li $a2, 512 -/* 0B8370 800B7770 3C058013 */ lui $a1, %hi(D_80129BB0) # $a1, 0x8013 -/* 0B8374 800B7774 24A59BB0 */ addiu $a1, %lo(D_80129BB0) # addiu $a1, $a1, -0x6450 -/* 0B8378 800B7778 27A40420 */ addiu $a0, $sp, 0x420 -/* 0B837C 800B777C 0C032768 */ jal bcopy -/* 0B8380 800B7780 24060400 */ li $a2, 1024 -/* 0B8384 800B7784 240E0001 */ li $t6, 1 -/* 0B8388 800B7788 3C01800E */ lui $at, %hi(D_800E3020) # $at, 0x800e -/* 0B838C 800B778C AC2E3020 */ sw $t6, %lo(D_800E3020)($at) -.L800B7790: -/* 0B8390 800B7790 0C01D6BB */ jal func_80075AEC -/* 0B8394 800B7794 00002025 */ move $a0, $zero -/* 0B8398 800B7798 3C03800E */ lui $v1, %hi(D_800E3020) # $v1, 0x800e -/* 0B839C 800B779C 8C633020 */ lw $v1, %lo(D_800E3020)($v1) -/* 0B83A0 800B77A0 8FA50824 */ lw $a1, 0x824($sp) -/* 0B83A4 800B77A4 10600007 */ beqz $v1, .L800B77C4 -/* 0B83A8 800B77A8 00601025 */ move $v0, $v1 -/* 0B83AC 800B77AC 0C01D8B2 */ jal func_800762C8 -/* 0B83B0 800B77B0 00002025 */ move $a0, $zero -/* 0B83B4 800B77B4 3C03800E */ lui $v1, %hi(D_800E3020) # $v1, 0x800e -/* 0B83B8 800B77B8 8C633020 */ lw $v1, %lo(D_800E3020)($v1) -/* 0B83BC 800B77BC 00000000 */ nop -/* 0B83C0 800B77C0 00601025 */ move $v0, $v1 -.L800B77C4: -/* 0B83C4 800B77C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B83C8 800B77C8 27BD0828 */ addiu $sp, $sp, 0x828 -/* 0B83CC 800B77CC 03E00008 */ jr $ra -/* 0B83D0 800B77D0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B77D4.s b/asm/non_matchings/unknown_0AEE70/func_800B77D4.s deleted file mode 100644 index 7303ec00..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B77D4.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_800B77D4 -/* 0B83D4 800B77D4 3C02800E */ lui $v0, %hi(D_800E3028) # $v0, 0x800e -/* 0B83D8 800B77D8 24423028 */ addiu $v0, %lo(D_800E3028) # addiu $v0, $v0, 0x3028 -/* 0B83DC 800B77DC 8C4E0000 */ lw $t6, ($v0) -/* 0B83E0 800B77E0 3C03800E */ lui $v1, %hi(D_800E3024) # $v1, 0x800e -/* 0B83E4 800B77E4 01C47821 */ addu $t7, $t6, $a0 -/* 0B83E8 800B77E8 29E1003D */ slti $at, $t7, 0x3d -/* 0B83EC 800B77EC 14200006 */ bnez $at, .L800B7808 -/* 0B83F0 800B77F0 AC4F0000 */ sw $t7, ($v0) -/* 0B83F4 800B77F4 24633024 */ addiu $v1, %lo(D_800E3024) # addiu $v1, $v1, 0x3024 -/* 0B83F8 800B77F8 8C790000 */ lw $t9, ($v1) -/* 0B83FC 800B77FC AC400000 */ sw $zero, ($v0) -/* 0B8400 800B7800 27280001 */ addiu $t0, $t9, 1 -/* 0B8404 800B7804 AC680000 */ sw $t0, ($v1) -.L800B7808: -/* 0B8408 800B7808 03E00008 */ jr $ra -/* 0B840C 800B780C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B7D10.s b/asm/non_matchings/unknown_0AEE70/func_800B7D10.s deleted file mode 100644 index feceb8af..00000000 --- a/asm/non_matchings/unknown_0AEE70/func_800B7D10.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel func_800B7D10 -/* 0B8910 800B7D10 03E00008 */ jr $ra -/* 0B8914 800B7D14 03A01025 */ move $v0, $sp - -/* 0B8918 800B7D18 00000000 */ nop -/* 0B891C 800B7D1C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0AEE70/func_800B7810.s b/asm/non_matchings/unknown_0AEE70/render_epc_lock_up_display.s similarity index 69% rename from asm/non_matchings/unknown_0AEE70/func_800B7810.s rename to asm/non_matchings/unknown_0AEE70/render_epc_lock_up_display.s index 5935d8fb..60ee2366 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B7810.s +++ b/asm/non_matchings/unknown_0AEE70/render_epc_lock_up_display.s @@ -79,7 +79,7 @@ glabel jpt_800E913C .word L800B7898, L800B7C18, L800B7C18, L800B7C18, L800B7C70, L800B7CE4 .text -glabel func_800B7810 +glabel render_epc_lock_up_display /* 0B8410 800B7810 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 0B8414 800B7814 3C0F800E */ lui $t7, %hi(D_800E302C) # $t7, 0x800e /* 0B8418 800B7818 AFBF002C */ sw $ra, 0x2c($sp) @@ -116,9 +116,9 @@ glabel func_800B7810 /* 0B8494 800B7894 00000000 */ nop glabel L800B7898 /* 0B8498 800B7898 444AF800 */ cfc1 $t2, $31 -/* 0B849C 800B789C 3C038013 */ lui $v1, %hi(D_80129800) # $v1, 0x8013 +/* 0B849C 800B789C 3C038013 */ lui $v1, %hi(gEpcInfo) # $v1, 0x8013 /* 0B84A0 800B78A0 35410003 */ ori $at, $t2, 3 -/* 0B84A4 800B78A4 24639800 */ addiu $v1, %lo(D_80129800) # addiu $v1, $v1, -0x6800 +/* 0B84A4 800B78A4 24639800 */ addiu $v1, %lo(gEpcInfo) # addiu $v1, $v1, -0x6800 /* 0B84A8 800B78A8 38210002 */ xori $at, $at, 2 /* 0B84AC 800B78AC 44C1F800 */ ctc1 $at, $31 /* 0B84B0 800B78B0 C4640130 */ lwc1 $f4, 0x130($v1) @@ -150,17 +150,17 @@ glabel L800B7898 /* 0B8518 800B7918 44D9F800 */ ctc1 $t9, $31 /* 0B851C 800B791C 15C1002F */ bne $t6, $at, .L800B79DC /* 0B8520 800B7920 AC580008 */ sw $t8, 8($v0) -/* 0B8524 800B7924 3C058013 */ lui $a1, %hi(D_8012991C) # $a1, 0x8013 -/* 0B8528 800B7928 8CA5991C */ lw $a1, %lo(D_8012991C)($a1) +/* 0B8524 800B7924 3C058013 */ lui $a1, %hi(gEpcInfo+0x11C) # $a1, 0x8013 +/* 0B8528 800B7928 8CA5991C */ lw $a1, %lo(gEpcInfo+0x11C)($a1) /* 0B852C 800B792C 3C04800F */ lui $a0, %hi(D_800E8F18) # $a0, 0x800f -/* 0B8530 800B7930 0C02D7B7 */ jal func_800B5EDC +/* 0B8530 800B7930 0C02D7B7 */ jal render_printf /* 0B8534 800B7934 24848F18 */ addiu $a0, %lo(D_800E8F18) # addiu $a0, $a0, -0x70e8 -/* 0B8538 800B7938 3C098013 */ lui $t1, %hi(D_8012983C) # $t1, 0x8013 -/* 0B853C 800B793C 3C0B8013 */ lui $t3, %hi(D_80129844) # $t3, 0x8013 -/* 0B8540 800B7940 8D669844 */ lw $a2, %lo(D_80129844)($t3) -/* 0B8544 800B7944 8D25983C */ lw $a1, %lo(D_8012983C)($t1) +/* 0B8538 800B7938 3C098013 */ lui $t1, %hi(gEpcInfo+0x3C) # $t1, 0x8013 +/* 0B853C 800B793C 3C0B8013 */ lui $t3, %hi(gEpcInfo+0x44) # $t3, 0x8013 +/* 0B8540 800B7940 8D669844 */ lw $a2, %lo(gEpcInfo+0x44)($t3) +/* 0B8544 800B7944 8D25983C */ lw $a1, %lo(gEpcInfo+0x3C)($t1) /* 0B8548 800B7948 3C04800F */ lui $a0, %hi(D_800E8F28) # $a0, 0x800f -/* 0B854C 800B794C 0C02D7B7 */ jal func_800B5EDC +/* 0B854C 800B794C 0C02D7B7 */ jal render_printf /* 0B8550 800B7950 24848F28 */ addiu $a0, %lo(D_800E8F28) # addiu $a0, $a0, -0x70d8 /* 0B8554 800B7954 3C108013 */ lui $s0, %hi(D_80129FB0) # $s0, 0x8013 /* 0B8558 800B7958 3C15800F */ lui $s5, %hi(D_800E8F44) # $s5, 0x800f @@ -176,14 +176,14 @@ glabel L800B7898 /* 0B857C 800B797C 16600006 */ bnez $s3, .L800B7998 /* 0B8580 800B7980 024F8821 */ addu $s1, $s2, $t7 /* 0B8584 800B7984 24130001 */ li $s3, 1 -/* 0B8588 800B7988 0C02D7B7 */ jal func_800B5EDC +/* 0B8588 800B7988 0C02D7B7 */ jal render_printf /* 0B858C 800B798C 02A02025 */ move $a0, $s5 /* 0B8590 800B7990 8E060000 */ lw $a2, ($s0) /* 0B8594 800B7994 00000000 */ nop .L800B7998: /* 0B8598 800B7998 3C04800F */ lui $a0, %hi(D_800E8F50) # $a0, 0x800f /* 0B859C 800B799C 8E250000 */ lw $a1, ($s1) -/* 0B85A0 800B79A0 0C02D7B7 */ jal func_800B5EDC +/* 0B85A0 800B79A0 0C02D7B7 */ jal render_printf /* 0B85A4 800B79A4 24848F50 */ addiu $a0, %lo(D_800E8F50) # addiu $a0, $a0, -0x70b0 .L800B79A8: /* 0B85A8 800B79A8 3C0C8013 */ lui $t4, %hi(D_80129FBC) # $t4, 0x8013 @@ -192,37 +192,37 @@ glabel L800B7898 /* 0B85B4 800B79B4 160CFFED */ bne $s0, $t4, .L800B796C /* 0B85B8 800B79B8 26520004 */ addiu $s2, $s2, 4 /* 0B85BC 800B79BC 3C04800F */ lui $a0, %hi(D_800E8F58) # $a0, 0x800f -/* 0B85C0 800B79C0 0C02D7B7 */ jal func_800B5EDC +/* 0B85C0 800B79C0 0C02D7B7 */ jal render_printf /* 0B85C4 800B79C4 24848F58 */ addiu $a0, %lo(D_800E8F58) # addiu $a0, $a0, -0x70a8 /* 0B85C8 800B79C8 3C04800F */ lui $a0, %hi(D_800E8F5C) # $a0, 0x800f -/* 0B85CC 800B79CC 0C02D7B7 */ jal func_800B5EDC +/* 0B85CC 800B79CC 0C02D7B7 */ jal render_printf /* 0B85D0 800B79D0 24848F5C */ addiu $a0, %lo(D_800E8F5C) # addiu $a0, $a0, -0x70a4 /* 0B85D4 800B79D4 100000C5 */ b .L800B7CEC /* 0B85D8 800B79D8 8FBF002C */ lw $ra, 0x2c($sp) .L800B79DC: /* 0B85DC 800B79DC 3C04800F */ lui $a0, %hi(D_800E8F6C) # $a0, 0x800f /* 0B85E0 800B79E0 8C650014 */ lw $a1, 0x14($v1) -/* 0B85E4 800B79E4 0C02D7B7 */ jal func_800B5EDC +/* 0B85E4 800B79E4 0C02D7B7 */ jal render_printf /* 0B85E8 800B79E8 24848F6C */ addiu $a0, %lo(D_800E8F6C) # addiu $a0, $a0, -0x7094 -/* 0B85EC 800B79EC 3C058013 */ lui $a1, %hi(D_8012991C) # $a1, 0x8013 -/* 0B85F0 800B79F0 8CA5991C */ lw $a1, %lo(D_8012991C)($a1) +/* 0B85EC 800B79EC 3C058013 */ lui $a1, %hi(gEpcInfo+0x11C) # $a1, 0x8013 +/* 0B85F0 800B79F0 8CA5991C */ lw $a1, %lo(gEpcInfo+0x11C)($a1) /* 0B85F4 800B79F4 3C04800F */ lui $a0, %hi(D_800E8F84) # $a0, 0x800f -/* 0B85F8 800B79F8 0C02D7B7 */ jal func_800B5EDC +/* 0B85F8 800B79F8 0C02D7B7 */ jal render_printf /* 0B85FC 800B79FC 24848F84 */ addiu $a0, %lo(D_800E8F84) # addiu $a0, $a0, -0x707c -/* 0B8600 800B7A00 3C058013 */ lui $a1, %hi(D_80129920) # $a1, 0x8013 -/* 0B8604 800B7A04 8CA59920 */ lw $a1, %lo(D_80129920)($a1) +/* 0B8600 800B7A00 3C058013 */ lui $a1, %hi(gEpcInfo+0x120) # $a1, 0x8013 +/* 0B8604 800B7A04 8CA59920 */ lw $a1, %lo(gEpcInfo+0x120)($a1) /* 0B8608 800B7A08 3C04800F */ lui $a0, %hi(D_800E8F94) # $a0, 0x800f -/* 0B860C 800B7A0C 0C02D7B7 */ jal func_800B5EDC +/* 0B860C 800B7A0C 0C02D7B7 */ jal render_printf /* 0B8610 800B7A10 24848F94 */ addiu $a0, %lo(D_800E8F94) # addiu $a0, $a0, -0x706c -/* 0B8614 800B7A14 3C058013 */ lui $a1, %hi(D_80129918) # $a1, 0x8013 -/* 0B8618 800B7A18 8CA59918 */ lw $a1, %lo(D_80129918)($a1) +/* 0B8614 800B7A14 3C058013 */ lui $a1, %hi(gEpcInfo+0x118) # $a1, 0x8013 +/* 0B8618 800B7A18 8CA59918 */ lw $a1, %lo(gEpcInfo+0x118)($a1) /* 0B861C 800B7A1C 3C04800F */ lui $a0, %hi(D_800E8FA4) # $a0, 0x800f -/* 0B8620 800B7A20 0C02D7B7 */ jal func_800B5EDC +/* 0B8620 800B7A20 0C02D7B7 */ jal render_printf /* 0B8624 800B7A24 24848FA4 */ addiu $a0, %lo(D_800E8FA4) # addiu $a0, $a0, -0x705c -/* 0B8628 800B7A28 3C058013 */ lui $a1, %hi(D_80129924) # $a1, 0x8013 -/* 0B862C 800B7A2C 8CA59924 */ lw $a1, %lo(D_80129924)($a1) +/* 0B8628 800B7A28 3C058013 */ lui $a1, %hi(gEpcInfo+0x124) # $a1, 0x8013 +/* 0B862C 800B7A2C 8CA59924 */ lw $a1, %lo(gEpcInfo+0x124)($a1) /* 0B8630 800B7A30 3C04800F */ lui $a0, %hi(D_800E8FB4) # $a0, 0x800f -/* 0B8634 800B7A34 0C02D7B7 */ jal func_800B5EDC +/* 0B8634 800B7A34 0C02D7B7 */ jal render_printf /* 0B8638 800B7A38 24848FB4 */ addiu $a0, %lo(D_800E8FB4) # addiu $a0, $a0, -0x704c /* 0B863C 800B7A3C 3C108013 */ lui $s0, %hi(D_80129FB0) # $s0, 0x8013 /* 0B8640 800B7A40 3C15800F */ lui $s5, %hi(D_800E8FC8) # $s5, 0x800f @@ -238,14 +238,14 @@ glabel L800B7898 /* 0B8664 800B7A64 16600006 */ bnez $s3, .L800B7A80 /* 0B8668 800B7A68 024D8821 */ addu $s1, $s2, $t5 /* 0B866C 800B7A6C 24130001 */ li $s3, 1 -/* 0B8670 800B7A70 0C02D7B7 */ jal func_800B5EDC +/* 0B8670 800B7A70 0C02D7B7 */ jal render_printf /* 0B8674 800B7A74 02A02025 */ move $a0, $s5 /* 0B8678 800B7A78 8E060000 */ lw $a2, ($s0) /* 0B867C 800B7A7C 00000000 */ nop .L800B7A80: /* 0B8680 800B7A80 3C04800F */ lui $a0, %hi(D_800E8FD4) # $a0, 0x800f /* 0B8684 800B7A84 8E250000 */ lw $a1, ($s1) -/* 0B8688 800B7A88 0C02D7B7 */ jal func_800B5EDC +/* 0B8688 800B7A88 0C02D7B7 */ jal render_printf /* 0B868C 800B7A8C 24848FD4 */ addiu $a0, %lo(D_800E8FD4) # addiu $a0, $a0, -0x702c .L800B7A90: /* 0B8690 800B7A90 3C198013 */ lui $t9, %hi(D_80129FBC) # $t9, 0x8013 @@ -254,95 +254,95 @@ glabel L800B7898 /* 0B869C 800B7A9C 1619FFED */ bne $s0, $t9, .L800B7A54 /* 0B86A0 800B7AA0 26520004 */ addiu $s2, $s2, 4 /* 0B86A4 800B7AA4 3C04800F */ lui $a0, %hi(D_800E8FDC) # $a0, 0x800f -/* 0B86A8 800B7AA8 0C02D7B7 */ jal func_800B5EDC +/* 0B86A8 800B7AA8 0C02D7B7 */ jal render_printf /* 0B86AC 800B7AAC 24848FDC */ addiu $a0, %lo(D_800E8FDC) # addiu $a0, $a0, -0x7024 -/* 0B86B0 800B7AB0 3C198013 */ lui $t9, %hi(D_80129824) # $t9, 0x8013 -/* 0B86B4 800B7AB4 3C0F8013 */ lui $t7, %hi(D_8012982C) # $t7, 0x8013 -/* 0B86B8 800B7AB8 3C098013 */ lui $t1, %hi(D_80129834) # $t1, 0x8013 -/* 0B86BC 800B7ABC 8D279834 */ lw $a3, %lo(D_80129834)($t1) -/* 0B86C0 800B7AC0 8DE6982C */ lw $a2, %lo(D_8012982C)($t7) -/* 0B86C4 800B7AC4 8F259824 */ lw $a1, %lo(D_80129824)($t9) +/* 0B86B0 800B7AB0 3C198013 */ lui $t9, %hi(gEpcInfo+0x24) # $t9, 0x8013 +/* 0B86B4 800B7AB4 3C0F8013 */ lui $t7, %hi(gEpcInfo+0x2C) # $t7, 0x8013 +/* 0B86B8 800B7AB8 3C098013 */ lui $t1, %hi(gEpcInfo+0x34) # $t1, 0x8013 +/* 0B86BC 800B7ABC 8D279834 */ lw $a3, %lo(gEpcInfo+0x34)($t1) +/* 0B86C0 800B7AC0 8DE6982C */ lw $a2, %lo(gEpcInfo+0x2C)($t7) +/* 0B86C4 800B7AC4 8F259824 */ lw $a1, %lo(gEpcInfo+0x24)($t9) /* 0B86C8 800B7AC8 3C04800F */ lui $a0, %hi(D_800E8FE0) # $a0, 0x800f -/* 0B86CC 800B7ACC 0C02D7B7 */ jal func_800B5EDC +/* 0B86CC 800B7ACC 0C02D7B7 */ jal render_printf /* 0B86D0 800B7AD0 24848FE0 */ addiu $a0, %lo(D_800E8FE0) # addiu $a0, $a0, -0x7020 -/* 0B86D4 800B7AD4 3C0B8013 */ lui $t3, %hi(D_8012983C) # $t3, 0x8013 -/* 0B86D8 800B7AD8 3C0D8013 */ lui $t5, %hi(D_80129844) # $t5, 0x8013 -/* 0B86DC 800B7ADC 3C198013 */ lui $t9, %hi(D_8012984C) # $t9, 0x8013 -/* 0B86E0 800B7AE0 8F27984C */ lw $a3, %lo(D_8012984C)($t9) -/* 0B86E4 800B7AE4 8DA69844 */ lw $a2, %lo(D_80129844)($t5) -/* 0B86E8 800B7AE8 8D65983C */ lw $a1, %lo(D_8012983C)($t3) +/* 0B86D4 800B7AD4 3C0B8013 */ lui $t3, %hi(gEpcInfo+0x3C) # $t3, 0x8013 +/* 0B86D8 800B7AD8 3C0D8013 */ lui $t5, %hi(gEpcInfo+0x44) # $t5, 0x8013 +/* 0B86DC 800B7ADC 3C198013 */ lui $t9, %hi(gEpcInfo+0x4C) # $t9, 0x8013 +/* 0B86E0 800B7AE0 8F27984C */ lw $a3, %lo(gEpcInfo+0x4C)($t9) +/* 0B86E4 800B7AE4 8DA69844 */ lw $a2, %lo(gEpcInfo+0x44)($t5) +/* 0B86E8 800B7AE8 8D65983C */ lw $a1, %lo(gEpcInfo+0x3C)($t3) /* 0B86EC 800B7AEC 3C04800F */ lui $a0, %hi(D_800E9000) # $a0, 0x800f -/* 0B86F0 800B7AF0 0C02D7B7 */ jal func_800B5EDC +/* 0B86F0 800B7AF0 0C02D7B7 */ jal render_printf /* 0B86F4 800B7AF4 24849000 */ addiu $a0, %lo(D_800E9000) # addiu $a0, $a0, -0x7000 -/* 0B86F8 800B7AF8 3C0F8013 */ lui $t7, %hi(D_80129854) # $t7, 0x8013 -/* 0B86FC 800B7AFC 3C098013 */ lui $t1, %hi(D_8012985C) # $t1, 0x8013 -/* 0B8700 800B7B00 3C0B8013 */ lui $t3, %hi(D_80129864) # $t3, 0x8013 -/* 0B8704 800B7B04 8D679864 */ lw $a3, %lo(D_80129864)($t3) -/* 0B8708 800B7B08 8D26985C */ lw $a2, %lo(D_8012985C)($t1) -/* 0B870C 800B7B0C 8DE59854 */ lw $a1, %lo(D_80129854)($t7) +/* 0B86F8 800B7AF8 3C0F8013 */ lui $t7, %hi(gEpcInfo+0x54) # $t7, 0x8013 +/* 0B86FC 800B7AFC 3C098013 */ lui $t1, %hi(gEpcInfo+0x5C) # $t1, 0x8013 +/* 0B8700 800B7B00 3C0B8013 */ lui $t3, %hi(gEpcInfo+0x64) # $t3, 0x8013 +/* 0B8704 800B7B04 8D679864 */ lw $a3, %lo(gEpcInfo+0x64)($t3) +/* 0B8708 800B7B08 8D26985C */ lw $a2, %lo(gEpcInfo+0x5C)($t1) +/* 0B870C 800B7B0C 8DE59854 */ lw $a1, %lo(gEpcInfo+0x54)($t7) /* 0B8710 800B7B10 3C04800F */ lui $a0, %hi(D_800E9020) # $a0, 0x800f -/* 0B8714 800B7B14 0C02D7B7 */ jal func_800B5EDC +/* 0B8714 800B7B14 0C02D7B7 */ jal render_printf /* 0B8718 800B7B18 24849020 */ addiu $a0, %lo(D_800E9020) # addiu $a0, $a0, -0x6fe0 -/* 0B871C 800B7B1C 3C0D8013 */ lui $t5, %hi(D_8012986C) # $t5, 0x8013 -/* 0B8720 800B7B20 3C198013 */ lui $t9, %hi(D_80129874) # $t9, 0x8013 -/* 0B8724 800B7B24 3C0F8013 */ lui $t7, %hi(D_8012987C) # $t7, 0x8013 -/* 0B8728 800B7B28 8DE7987C */ lw $a3, %lo(D_8012987C)($t7) -/* 0B872C 800B7B2C 8F269874 */ lw $a2, %lo(D_80129874)($t9) -/* 0B8730 800B7B30 8DA5986C */ lw $a1, %lo(D_8012986C)($t5) +/* 0B871C 800B7B1C 3C0D8013 */ lui $t5, %hi(gEpcInfo+0x6C) # $t5, 0x8013 +/* 0B8720 800B7B20 3C198013 */ lui $t9, %hi(gEpcInfo+0x74) # $t9, 0x8013 +/* 0B8724 800B7B24 3C0F8013 */ lui $t7, %hi(gEpcInfo+0x7C) # $t7, 0x8013 +/* 0B8728 800B7B28 8DE7987C */ lw $a3, %lo(gEpcInfo+0x7C)($t7) +/* 0B872C 800B7B2C 8F269874 */ lw $a2, %lo(gEpcInfo+0x74)($t9) +/* 0B8730 800B7B30 8DA5986C */ lw $a1, %lo(gEpcInfo+0x6C)($t5) /* 0B8734 800B7B34 3C04800F */ lui $a0, %hi(D_800E9040) # $a0, 0x800f -/* 0B8738 800B7B38 0C02D7B7 */ jal func_800B5EDC +/* 0B8738 800B7B38 0C02D7B7 */ jal render_printf /* 0B873C 800B7B3C 24849040 */ addiu $a0, %lo(D_800E9040) # addiu $a0, $a0, -0x6fc0 -/* 0B8740 800B7B40 3C098013 */ lui $t1, %hi(D_80129884) # $t1, 0x8013 -/* 0B8744 800B7B44 3C0B8013 */ lui $t3, %hi(D_8012988C) # $t3, 0x8013 -/* 0B8748 800B7B48 3C0D8013 */ lui $t5, %hi(D_80129894) # $t5, 0x8013 -/* 0B874C 800B7B4C 8DA79894 */ lw $a3, %lo(D_80129894)($t5) -/* 0B8750 800B7B50 8D66988C */ lw $a2, %lo(D_8012988C)($t3) -/* 0B8754 800B7B54 8D259884 */ lw $a1, %lo(D_80129884)($t1) +/* 0B8740 800B7B40 3C098013 */ lui $t1, %hi(gEpcInfo+0x84) # $t1, 0x8013 +/* 0B8744 800B7B44 3C0B8013 */ lui $t3, %hi(gEpcInfo+0x8C) # $t3, 0x8013 +/* 0B8748 800B7B48 3C0D8013 */ lui $t5, %hi(gEpcInfo+0x94) # $t5, 0x8013 +/* 0B874C 800B7B4C 8DA79894 */ lw $a3, %lo(gEpcInfo+0x94)($t5) +/* 0B8750 800B7B50 8D66988C */ lw $a2, %lo(gEpcInfo+0x8C)($t3) +/* 0B8754 800B7B54 8D259884 */ lw $a1, %lo(gEpcInfo+0x84)($t1) /* 0B8758 800B7B58 3C04800F */ lui $a0, %hi(D_800E9060) # $a0, 0x800f -/* 0B875C 800B7B5C 0C02D7B7 */ jal func_800B5EDC +/* 0B875C 800B7B5C 0C02D7B7 */ jal render_printf /* 0B8760 800B7B60 24849060 */ addiu $a0, %lo(D_800E9060) # addiu $a0, $a0, -0x6fa0 -/* 0B8764 800B7B64 3C198013 */ lui $t9, %hi(D_8012989C) # $t9, 0x8013 -/* 0B8768 800B7B68 3C0F8013 */ lui $t7, %hi(D_801298A4) # $t7, 0x8013 -/* 0B876C 800B7B6C 3C098013 */ lui $t1, %hi(D_801298AC) # $t1, 0x8013 -/* 0B8770 800B7B70 8D2798AC */ lw $a3, %lo(D_801298AC)($t1) -/* 0B8774 800B7B74 8DE698A4 */ lw $a2, %lo(D_801298A4)($t7) -/* 0B8778 800B7B78 8F25989C */ lw $a1, %lo(D_8012989C)($t9) +/* 0B8764 800B7B64 3C198013 */ lui $t9, %hi(gEpcInfo+0x9C) # $t9, 0x8013 +/* 0B8768 800B7B68 3C0F8013 */ lui $t7, %hi(gEpcInfo+0xA4) # $t7, 0x8013 +/* 0B876C 800B7B6C 3C098013 */ lui $t1, %hi(gEpcInfo+0xAC) # $t1, 0x8013 +/* 0B8770 800B7B70 8D2798AC */ lw $a3, %lo(gEpcInfo+0xAC)($t1) +/* 0B8774 800B7B74 8DE698A4 */ lw $a2, %lo(gEpcInfo+0xA4)($t7) +/* 0B8778 800B7B78 8F25989C */ lw $a1, %lo(gEpcInfo+0x9C)($t9) /* 0B877C 800B7B7C 3C04800F */ lui $a0, %hi(D_800E9080) # $a0, 0x800f -/* 0B8780 800B7B80 0C02D7B7 */ jal func_800B5EDC +/* 0B8780 800B7B80 0C02D7B7 */ jal render_printf /* 0B8784 800B7B84 24849080 */ addiu $a0, %lo(D_800E9080) # addiu $a0, $a0, -0x6f80 -/* 0B8788 800B7B88 3C0B8013 */ lui $t3, %hi(D_801298B4) # $t3, 0x8013 -/* 0B878C 800B7B8C 3C0D8013 */ lui $t5, %hi(D_801298BC) # $t5, 0x8013 -/* 0B8790 800B7B90 3C198013 */ lui $t9, %hi(D_801298C4) # $t9, 0x8013 -/* 0B8794 800B7B94 8F2798C4 */ lw $a3, %lo(D_801298C4)($t9) -/* 0B8798 800B7B98 8DA698BC */ lw $a2, %lo(D_801298BC)($t5) -/* 0B879C 800B7B9C 8D6598B4 */ lw $a1, %lo(D_801298B4)($t3) +/* 0B8788 800B7B88 3C0B8013 */ lui $t3, %hi(gEpcInfo+0xB4) # $t3, 0x8013 +/* 0B878C 800B7B8C 3C0D8013 */ lui $t5, %hi(gEpcInfo+0xBC) # $t5, 0x8013 +/* 0B8790 800B7B90 3C198013 */ lui $t9, %hi(gEpcInfo+0xC4) # $t9, 0x8013 +/* 0B8794 800B7B94 8F2798C4 */ lw $a3, %lo(gEpcInfo+0xC4)($t9) +/* 0B8798 800B7B98 8DA698BC */ lw $a2, %lo(gEpcInfo+0xBC)($t5) +/* 0B879C 800B7B9C 8D6598B4 */ lw $a1, %lo(gEpcInfo+0xB4)($t3) /* 0B87A0 800B7BA0 3C04800F */ lui $a0, %hi(D_800E90A0) # $a0, 0x800f -/* 0B87A4 800B7BA4 0C02D7B7 */ jal func_800B5EDC +/* 0B87A4 800B7BA4 0C02D7B7 */ jal render_printf /* 0B87A8 800B7BA8 248490A0 */ addiu $a0, %lo(D_800E90A0) # addiu $a0, $a0, -0x6f60 -/* 0B87AC 800B7BAC 3C0F8013 */ lui $t7, %hi(D_801298CC) # $t7, 0x8013 -/* 0B87B0 800B7BB0 3C098013 */ lui $t1, %hi(D_801298D4) # $t1, 0x8013 -/* 0B87B4 800B7BB4 3C0B8013 */ lui $t3, %hi(D_801298DC) # $t3, 0x8013 -/* 0B87B8 800B7BB8 8D6798DC */ lw $a3, %lo(D_801298DC)($t3) -/* 0B87BC 800B7BBC 8D2698D4 */ lw $a2, %lo(D_801298D4)($t1) -/* 0B87C0 800B7BC0 8DE598CC */ lw $a1, %lo(D_801298CC)($t7) +/* 0B87AC 800B7BAC 3C0F8013 */ lui $t7, %hi(gEpcInfo+0xCC) # $t7, 0x8013 +/* 0B87B0 800B7BB0 3C098013 */ lui $t1, %hi(gEpcInfo+0xD4) # $t1, 0x8013 +/* 0B87B4 800B7BB4 3C0B8013 */ lui $t3, %hi(gEpcInfo+0xDC) # $t3, 0x8013 +/* 0B87B8 800B7BB8 8D6798DC */ lw $a3, %lo(gEpcInfo+0xDC)($t3) +/* 0B87BC 800B7BBC 8D2698D4 */ lw $a2, %lo(gEpcInfo+0xD4)($t1) +/* 0B87C0 800B7BC0 8DE598CC */ lw $a1, %lo(gEpcInfo+0xCC)($t7) /* 0B87C4 800B7BC4 3C04800F */ lui $a0, %hi(D_800E90C0) # $a0, 0x800f -/* 0B87C8 800B7BC8 0C02D7B7 */ jal func_800B5EDC +/* 0B87C8 800B7BC8 0C02D7B7 */ jal render_printf /* 0B87CC 800B7BCC 248490C0 */ addiu $a0, %lo(D_800E90C0) # addiu $a0, $a0, -0x6f40 -/* 0B87D0 800B7BD0 3C0D8013 */ lui $t5, %hi(D_801298E4) # $t5, 0x8013 -/* 0B87D4 800B7BD4 3C198013 */ lui $t9, %hi(D_801298EC) # $t9, 0x8013 -/* 0B87D8 800B7BD8 3C0F8013 */ lui $t7, %hi(D_801298F4) # $t7, 0x8013 -/* 0B87DC 800B7BDC 8DE798F4 */ lw $a3, %lo(D_801298F4)($t7) -/* 0B87E0 800B7BE0 8F2698EC */ lw $a2, %lo(D_801298EC)($t9) -/* 0B87E4 800B7BE4 8DA598E4 */ lw $a1, %lo(D_801298E4)($t5) +/* 0B87D0 800B7BD0 3C0D8013 */ lui $t5, %hi(gEpcInfo+0xE4) # $t5, 0x8013 +/* 0B87D4 800B7BD4 3C198013 */ lui $t9, %hi(gEpcInfo+0xEC) # $t9, 0x8013 +/* 0B87D8 800B7BD8 3C0F8013 */ lui $t7, %hi(gEpcInfo+0xF4) # $t7, 0x8013 +/* 0B87DC 800B7BDC 8DE798F4 */ lw $a3, %lo(gEpcInfo+0xF4)($t7) +/* 0B87E0 800B7BE0 8F2698EC */ lw $a2, %lo(gEpcInfo+0xEC)($t9) +/* 0B87E4 800B7BE4 8DA598E4 */ lw $a1, %lo(gEpcInfo+0xE4)($t5) /* 0B87E8 800B7BE8 3C04800F */ lui $a0, %hi(D_800E90E0) # $a0, 0x800f -/* 0B87EC 800B7BEC 0C02D7B7 */ jal func_800B5EDC +/* 0B87EC 800B7BEC 0C02D7B7 */ jal render_printf /* 0B87F0 800B7BF0 248490E0 */ addiu $a0, %lo(D_800E90E0) # addiu $a0, $a0, -0x6f20 -/* 0B87F4 800B7BF4 3C098013 */ lui $t1, %hi(D_801298FC) # $t1, 0x8013 -/* 0B87F8 800B7BF8 3C0B8013 */ lui $t3, %hi(D_80129904) # $t3, 0x8013 -/* 0B87FC 800B7BFC 8D669904 */ lw $a2, %lo(D_80129904)($t3) -/* 0B8800 800B7C00 8D2598FC */ lw $a1, %lo(D_801298FC)($t1) +/* 0B87F4 800B7BF4 3C098013 */ lui $t1, %hi(gEpcInfo+0xFC) # $t1, 0x8013 +/* 0B87F8 800B7BF8 3C0B8013 */ lui $t3, %hi(gEpcInfo+0x104) # $t3, 0x8013 +/* 0B87FC 800B7BFC 8D669904 */ lw $a2, %lo(gEpcInfo+0x104)($t3) +/* 0B8800 800B7C00 8D2598FC */ lw $a1, %lo(gEpcInfo+0xFC)($t1) /* 0B8804 800B7C04 3C04800F */ lui $a0, %hi(D_800E9100) # $a0, 0x800f -/* 0B8808 800B7C08 0C02D7B7 */ jal func_800B5EDC +/* 0B8808 800B7C08 0C02D7B7 */ jal render_printf /* 0B880C 800B7C0C 24849100 */ addiu $a0, %lo(D_800E9100) # addiu $a0, $a0, -0x6f00 /* 0B8810 800B7C10 10000036 */ b .L800B7CEC /* 0B8814 800B7C14 8FBF002C */ lw $ra, 0x2c($sp) @@ -363,7 +363,7 @@ glabel L800B7C18 /* 0B8848 800B7C48 8E050000 */ lw $a1, ($s0) /* 0B884C 800B7C4C 8E060040 */ lw $a2, 0x40($s0) /* 0B8850 800B7C50 8E070080 */ lw $a3, 0x80($s0) -/* 0B8854 800B7C54 0C02D7B7 */ jal func_800B5EDC +/* 0B8854 800B7C54 0C02D7B7 */ jal render_printf /* 0B8858 800B7C58 02202025 */ move $a0, $s1 /* 0B885C 800B7C5C 26940001 */ addiu $s4, $s4, 1 /* 0B8860 800B7C60 1695FFF9 */ bne $s4, $s5, .L800B7C48 @@ -384,18 +384,18 @@ glabel L800B7C70 /* 0B8898 800B7C98 24130008 */ li $s3, 8 .L800B7C9C: /* 0B889C 800B7C9C 3C04800F */ lui $a0, %hi(D_800E912C) # $a0, 0x800f -/* 0B88A0 800B7CA0 0C02D7B7 */ jal func_800B5EDC +/* 0B88A0 800B7CA0 0C02D7B7 */ jal render_printf /* 0B88A4 800B7CA4 2484912C */ addiu $a0, %lo(D_800E912C) # addiu $a0, $a0, -0x6ed4 /* 0B88A8 800B7CA8 00008025 */ move $s0, $zero .L800B7CAC: /* 0B88AC 800B7CAC 96250000 */ lhu $a1, ($s1) -/* 0B88B0 800B7CB0 0C02D7B7 */ jal func_800B5EDC +/* 0B88B0 800B7CB0 0C02D7B7 */ jal render_printf /* 0B88B4 800B7CB4 02402025 */ move $a0, $s2 /* 0B88B8 800B7CB8 26100001 */ addiu $s0, $s0, 1 /* 0B88BC 800B7CBC 1613FFFB */ bne $s0, $s3, .L800B7CAC /* 0B88C0 800B7CC0 26310002 */ addiu $s1, $s1, 2 /* 0B88C4 800B7CC4 3C04800F */ lui $a0, %hi(D_800E9138) # $a0, 0x800f -/* 0B88C8 800B7CC8 0C02D7B7 */ jal func_800B5EDC +/* 0B88C8 800B7CC8 0C02D7B7 */ jal render_printf /* 0B88CC 800B7CCC 24849138 */ addiu $a0, %lo(D_800E9138) # addiu $a0, $a0, -0x6ec8 /* 0B88D0 800B7CD0 26940001 */ addiu $s4, $s4, 1 /* 0B88D4 800B7CD4 1695FFF1 */ bne $s4, $s5, .L800B7C9C diff --git a/asm/non_matchings/unknown_0AEE70/func_800B5EDC.s b/asm/non_matchings/unknown_0AEE70/render_printf.s similarity index 96% rename from asm/non_matchings/unknown_0AEE70/func_800B5EDC.s rename to asm/non_matchings/unknown_0AEE70/render_printf.s index fceffe58..8da4a269 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B5EDC.s +++ b/asm/non_matchings/unknown_0AEE70/render_printf.s @@ -1,4 +1,4 @@ -glabel func_800B5EDC +glabel render_printf /* 0B6ADC 800B5EDC 3C0E8013 */ lui $t6, %hi(D_801285D8) # $t6, 0x8013 /* 0B6AE0 800B5EE0 8DCE85D8 */ lw $t6, %lo(D_801285D8)($t6) /* 0B6AE4 800B5EE4 27BDFFE0 */ addiu $sp, $sp, -0x20 @@ -20,7 +20,7 @@ glabel func_800B5EDC /* 0B6B20 800B5F20 3C048013 */ lui $a0, %hi(D_801285D8) # $a0, 0x8013 /* 0B6B24 800B5F24 8C8485D8 */ lw $a0, %lo(D_801285D8)($a0) /* 0B6B28 800B5F28 8FA50020 */ lw $a1, 0x20($sp) -/* 0B6B2C 800B5F2C 0C02D290 */ jal func_800B4A40 +/* 0B6B2C 800B5F2C 0C02D290 */ jal sprintf /* 0B6B30 800B5F30 27A60024 */ addiu $a2, $sp, 0x24 /* 0B6B34 800B5F34 00002025 */ move $a0, $zero /* 0B6B38 800B5F38 0C02D282 */ jal func_800B4A08 diff --git a/asm/non_matchings/unknown_0AEE70/func_800B4A40.s b/asm/non_matchings/unknown_0AEE70/sprintf.s similarity index 99% rename from asm/non_matchings/unknown_0AEE70/func_800B4A40.s rename to asm/non_matchings/unknown_0AEE70/sprintf.s index 41aa2573..daa4f703 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B4A40.s +++ b/asm/non_matchings/unknown_0AEE70/sprintf.s @@ -7,7 +7,7 @@ glabel jpt_800E8D88 .word L800B52C4, L800B5E0C, L800B5794, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B4F84, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5AC4, L800B4E38, L800B52C4, L800B57A4, L800B5794, L800B5E0C, L800B4E38, L800B5E0C, L800B5E0C, L800B5E0C, L800B5E0C, L800B5D78, L800B4F64, L800B5C8C, L800B5E0C, L800B5E0C, L800B5B48, L800B5E0C, L800B4F44, L800B5E0C, L800B5E0C, L800B4FA4 .text -glabel func_800B4A40 +glabel sprintf /* 0B5640 800B4A40 27BDFE48 */ addiu $sp, $sp, -0x1b8 /* 0B5644 800B4A44 AFBF004C */ sw $ra, 0x4c($sp) /* 0B5648 800B4A48 AFBE0048 */ sw $fp, 0x48($sp) diff --git a/asm/non_matchings/unknown_0AEE70/func_800B6FC4.s b/asm/non_matchings/unknown_0AEE70/thread0.s similarity index 99% rename from asm/non_matchings/unknown_0AEE70/func_800B6FC4.s rename to asm/non_matchings/unknown_0AEE70/thread0.s index 01a5203b..e6ff5a83 100644 --- a/asm/non_matchings/unknown_0AEE70/func_800B6FC4.s +++ b/asm/non_matchings/unknown_0AEE70/thread0.s @@ -1,4 +1,4 @@ -glabel func_800B6FC4 +glabel thread0 /* 0B7BC4 800B6FC4 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 0B7BC8 800B6FC8 AFB40028 */ sw $s4, 0x28($sp) /* 0B7BCC 800B6FCC 3C148013 */ lui $s4, %hi(D_80129790) # $s4, 0x8013 diff --git a/asm/non_matchings/unknown_0B8920/func_800C3440.s b/asm/non_matchings/unknown_0B8920/func_800C3440.s index 41b42b22..8018a7f1 100644 --- a/asm/non_matchings/unknown_0B8920/func_800C3440.s +++ b/asm/non_matchings/unknown_0B8920/func_800C3440.s @@ -7,7 +7,7 @@ glabel func_800C3440 /* 0C4054 800C3454 AFB00014 */ sw $s0, 0x14($sp) /* 0C4058 800C3458 11C0003D */ beqz $t6, .L800C3550 /* 0C405C 800C345C AFA40020 */ sw $a0, 0x20($sp) -/* 0C4060 800C3460 0C01BAA8 */ jal func_8006EAA0 +/* 0C4060 800C3460 0C01BAA8 */ jal is_game_paused /* 0C4064 800C3464 00000000 */ nop /* 0C4068 800C3468 1440000D */ bnez $v0, .L800C34A0 /* 0C406C 800C346C 3C10800E */ lui $s0, %hi(D_800E3678) # $s0, 0x800e diff --git a/src/menu.c b/src/menu.c index 331f7b25..df467a7a 100644 --- a/src/menu.c +++ b/src/menu.c @@ -12,72 +12,6 @@ * @file Contains all the code used for every menu in the game. */ -#define CHEAT(index) 1 << index - -typedef enum Cheats { - CHEAT_CONTROL_TT = CHEAT(0), - CHEAT_CONTROL_DRUMSTICK = CHEAT(1), - CHEAT_MIRRORED_TRACKS = CHEAT(2), - CHEAT_HIGH_SPEED_RACING = CHEAT(3), - CHEAT_BIG_CHARACTERS = CHEAT(4), - CHEAT_SMALL_CHARACTERS = CHEAT(5), - CHEAT_MUSIC_MENU = CHEAT(6), - CHEAT_START_WITH_10_BANANAS = CHEAT(7), - CHEAT_HORN_CHEAT = CHEAT(8), - CHEAT_PRINT_COORDS = CHEAT(9), - CHEAT_DISPLAY_CREDITS = CHEAT(10), - CHEAT_DISABLE_WEAPONS = CHEAT(11), - CHEAT_DISABLE_BANANAS = CHEAT(12), - CHEAT_BANANAS_REDUCE_SPEED = CHEAT(13), - CHEAT_NO_LIMIT_TO_BANANAS = CHEAT(14), - CHEAT_ALL_BALLOONS_ARE_RED = CHEAT(15), - CHEAT_ALL_BALLOONS_ARE_GREEN = CHEAT(16), - CHEAT_ALL_BALLOONS_ARE_BLUE = CHEAT(17), - CHEAT_ALL_BALLOONS_ARE_YELLOW = CHEAT(18), - CHEAT_ALL_BALLOONS_ARE_RAINBOW = CHEAT(19), - CHEAT_MAXIMUM_POWER_UP = CHEAT(20), - CHEAT_TURN_OFF_ZIPPERS = CHEAT(21), - CHEAT_SELECT_SAME_PLAYER = CHEAT(22), - CHEAT_FOUR_WHEEL_DRIVER = CHEAT(23), - CHEAT_TWO_PLAYER_ADVENTURE = CHEAT(24), - CHEAT_ULTIMATE_AI = CHEAT(25), - CHEAT_FREE_BALLOON = CHEAT(26), - CHEAT_EPC_LOCK_UP_DISPLAY = CHEAT(27), - CHEAT_ROM_CHECKSUM = CHEAT(28) -} Cheats; - -typedef enum MENU_ID { - MENU_TITLE, - MENU_LOGOS, - MENU_UNUSED_2, - MENU_CHARACTER_SELECT, - MENU_UNUSED_4, - MENU_UNKNOWN_5, - MENU_FILE_SELECT, - MENU_UNUSED_7, - MENU_UNUSED_8, - MENU_UNUSED_9, - MENU_MAGIC_CODES, - MENU_MAGIC_CODES_LIST, - MENU_OPTIONS, - MENU_AUDIO_OPTIONS, - MENU_SAVE_OPTIONS, - MENU_TRACK_SELECT, - MENU_UNUSED_16, - MENU_RESULTS, - MENU_UNUSED_18, - MENU_GAME_SELECT, - MENU_TROPHY_RACE_ROUND, - MENU_TROPHY_RACE_RANKINGS, - MENU_UNUSED_22, - MENU_UNKNOWN_23, - MENU_GHOST_DATA, - MENU_CREDITS, - MENU_BOOT, - MENU_UNUSED_27, - MENU_CAUTION -} MENU_ID; - extern s32 osTvType; /************ .bss ************/ @@ -3676,7 +3610,7 @@ void func_80096790(void) { s32 temp; s8 *temp2; - temp2 = (s8*)func_8006BDB0(); + temp2 = (s8*)get_current_level_header(); func_8009C4A8(D_800E0A24); temp = *temp2 - 1; @@ -4334,7 +4268,7 @@ typedef struct unk8006BDB0 { } unk8006BDB0; s32 func_8009C3D8(void) { - unk8006BDB0 *temp = (unk8006BDB0*)func_8006BDB0(); + unk8006BDB0 *temp = (unk8006BDB0*)get_current_level_header(); if (gIsInTwoPlayerAdventure && !gIsInTracksMode) { if (temp->unk4C == 0 || (temp->unk4C & 0x40) != 0) { return 2; diff --git a/src/menu.h b/src/menu.h index c282714d..71ba48d1 100644 --- a/src/menu.h +++ b/src/menu.h @@ -4,6 +4,72 @@ #include "types.h" #include "structs.h" +#define CHEAT(index) 1 << index + +typedef enum Cheats { + CHEAT_CONTROL_TT = CHEAT(0), + CHEAT_CONTROL_DRUMSTICK = CHEAT(1), + CHEAT_MIRRORED_TRACKS = CHEAT(2), + CHEAT_HIGH_SPEED_RACING = CHEAT(3), + CHEAT_BIG_CHARACTERS = CHEAT(4), + CHEAT_SMALL_CHARACTERS = CHEAT(5), + CHEAT_MUSIC_MENU = CHEAT(6), + CHEAT_START_WITH_10_BANANAS = CHEAT(7), + CHEAT_HORN_CHEAT = CHEAT(8), + CHEAT_PRINT_COORDS = CHEAT(9), + CHEAT_DISPLAY_CREDITS = CHEAT(10), + CHEAT_DISABLE_WEAPONS = CHEAT(11), + CHEAT_DISABLE_BANANAS = CHEAT(12), + CHEAT_BANANAS_REDUCE_SPEED = CHEAT(13), + CHEAT_NO_LIMIT_TO_BANANAS = CHEAT(14), + CHEAT_ALL_BALLOONS_ARE_RED = CHEAT(15), + CHEAT_ALL_BALLOONS_ARE_GREEN = CHEAT(16), + CHEAT_ALL_BALLOONS_ARE_BLUE = CHEAT(17), + CHEAT_ALL_BALLOONS_ARE_YELLOW = CHEAT(18), + CHEAT_ALL_BALLOONS_ARE_RAINBOW = CHEAT(19), + CHEAT_MAXIMUM_POWER_UP = CHEAT(20), + CHEAT_TURN_OFF_ZIPPERS = CHEAT(21), + CHEAT_SELECT_SAME_PLAYER = CHEAT(22), + CHEAT_FOUR_WHEEL_DRIVER = CHEAT(23), + CHEAT_TWO_PLAYER_ADVENTURE = CHEAT(24), + CHEAT_ULTIMATE_AI = CHEAT(25), + CHEAT_FREE_BALLOON = CHEAT(26), + CHEAT_EPC_LOCK_UP_DISPLAY = CHEAT(27), + CHEAT_ROM_CHECKSUM = CHEAT(28) +} Cheats; + +typedef enum MENU_ID { + MENU_TITLE, + MENU_LOGOS, + MENU_UNUSED_2, + MENU_CHARACTER_SELECT, + MENU_UNUSED_4, + MENU_UNKNOWN_5, + MENU_FILE_SELECT, + MENU_UNUSED_7, + MENU_UNUSED_8, + MENU_UNUSED_9, + MENU_MAGIC_CODES, + MENU_MAGIC_CODES_LIST, + MENU_OPTIONS, + MENU_AUDIO_OPTIONS, + MENU_SAVE_OPTIONS, + MENU_TRACK_SELECT, + MENU_UNUSED_16, + MENU_RESULTS, + MENU_UNUSED_18, + MENU_GAME_SELECT, + MENU_TROPHY_RACE_ROUND, + MENU_TROPHY_RACE_RANKINGS, + MENU_UNUSED_22, + MENU_UNKNOWN_23, + MENU_GHOST_DATA, + MENU_CREDITS, + MENU_BOOT, + MENU_UNUSED_27, + MENU_CAUTION +} MENU_ID; + extern s8 D_800DF450; extern f32 D_800DF454; extern s32 D_800DF458; @@ -132,7 +198,7 @@ typedef struct MenuBootDrawTexture { extern s16 D_800DF7C4[12]; -MenuBootDrawTexture D_800DF7DC[12]; +extern MenuBootDrawTexture D_800DF7DC[12]; /* Size: 0x30 bytes */ typedef struct unk800DF83C { @@ -259,11 +325,11 @@ extern s32 D_800DFF40[36]; extern s32 D_800DFFD0; extern s32 D_800DFFD4; -MenuElement D_800DFFD8[14]; +extern MenuElement D_800DFFD8[14]; -MenuElement D_800E0198[7]; +extern MenuElement D_800E0198[7]; -MenuElement D_800E0278[9]; +extern MenuElement D_800E0278[9]; extern s16 D_800E0398[6]; @@ -407,11 +473,11 @@ extern char gEighthPlace[4]; extern char *gRacePlacementsArray[8]; -MenuElement D_800E0BEC[8]; +extern MenuElement D_800E0BEC[8]; -MenuElement D_800E0CEC[11]; +extern MenuElement D_800E0CEC[11]; -MenuElement D_800E0E4C[9]; +extern MenuElement D_800E0E4C[9]; // Valid characters for name input. Must be u8, not char. extern u8 gFileNameValidChars[32]; @@ -447,7 +513,7 @@ extern s16 D_800E1024[14]; extern s32 D_800E1040; extern s16 D_800E1044; -MenuElement D_800E1048[9][3]; +extern MenuElement D_800E1048[9][3]; extern s16 D_800E13A8[138]; @@ -502,7 +568,7 @@ extern s32 gCheatsInCreditsArray[21]; extern s32 gViewingCreditsFromCheat; -MenuElement D_800E1B50[9]; +extern MenuElement D_800E1B50[9]; // Fast3D (F3DDKR) display list extern u32 D_800E1C70[24]; diff --git a/src/unknown_00BC20.c b/src/unknown_00BC20.c index a5d98fa9..beee0851 100644 --- a/src/unknown_00BC20.c +++ b/src/unknown_00BC20.c @@ -1564,7 +1564,7 @@ Player* func_8002342C(f32 x, f32 z){ s32 func_80023568(void) { if (D_8011AD3C != 0) { return D_8011AD24[1] + 1; - } else if (func_8006BD98() == 8) { + } else if (get_current_level_race_type() == 8) { return D_8011AD24[1] + 1; } return 0; diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index b44db8b6..6d7ae166 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -239,7 +239,7 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u s32 i; s32 tmp_a2; - D_800DC91C = func_8006BDB0(); + D_800DC91C = get_current_level_header(); D_8011B0F8 = 0; D_8011B100 = 0; D_8011B104 = 0; diff --git a/src/unknown_066AA0.c b/src/unknown_066AA0.c index 7a66abe3..995cdcf5 100644 --- a/src/unknown_066AA0.c +++ b/src/unknown_066AA0.c @@ -232,7 +232,7 @@ void func_8006F870(s32*, s32*); s16 func_80029F18(f32, f32, f32); void func_8006A50C(void); void func_800665E8(s32 arg0); -void func_8006CB58(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void load_level_2(s32 arg0, s32 arg1, s32 arg2, s32 arg3); void func_8006C164(void); void func_8000E194(void); f32 sqrtf(f32); diff --git a/src/unknown_06B2B0.c b/src/unknown_06B2B0.c index a648d389..0573ea68 100644 --- a/src/unknown_06B2B0.c +++ b/src/unknown_06B2B0.c @@ -7,6 +7,7 @@ #include "macros.h" #include "structs.h" #include "fast3d.h" +#include "menu.h" /************ .rodata ************/ @@ -110,9 +111,9 @@ extern s32 D_800DFD94; /************ .bss ************/ -s32 D_80121160; +s32 *D_80121160; s32 D_80121164; -LevelHeader* D_80121168; +LevelHeader *gCurrentLevelHeader; s32 D_8012116C; s32 D_80121170; s32 D_80121174; @@ -132,15 +133,13 @@ s16 D_801211C8[20]; Gfx *D_801211F0[2]; Gfx *D_801211F8; s32 D_801211FC; -s32 D_80121200; -s32 D_80121204; -s32 D_80121208[2]; -s32 D_80121210; -s32 D_80121214; -s32 D_80121218[2]; -s32 D_80121220; -s32 D_80121224; -s32 D_80121228[10]; +s32 D_80121200[2]; +s32 D_80121208; +s32 D_80121210[2]; +s32 D_80121218; +s32 D_80121220[2]; +s32 D_80121228; +s32 D_80121230[8]; s8 D_80121250[16]; s32 D_80121260[2210]; s32 D_801234E8; @@ -169,15 +168,22 @@ s32 D_80123530; s32 D_80123534; s32 D_80123538[3]; s32 D_80123544; -s32* D_80123548; // This is actually an OSMesgQueue pointer. +s32 *D_80123548; // This is actually an OSMesgQueue pointer. s32 D_8012354C; s32 D_80123550[4]; s32 D_80123560[8]; /******************************/ +extern s32 D_801262D4; +extern s32 D_801262D8; +extern s32 D_801262E0; +extern s32 osTvType; + +void func_8006F43C(void); + void func_800014BC(f32 arg0); -s8* func_8001E29C(s32 arg0); +s8 *func_8001E29C(s32 arg0); s32 func_8006A624(s8 arg0); void func_8006F64C(s32*, f32, f32, f32, f32*, f32*, f32*); void guPerspectiveF(s32*, s32*, f32, f32, f32, f32, f32); @@ -185,7 +191,7 @@ void func_8006F870(s32*, s32*); s16 func_80029F18(f32, f32, f32); void func_8006A50C(void); void func_800665E8(s32 arg0); -void func_8006CB58(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void load_level_2(s32 arg0, s32 arg1, s32 arg2, s32 arg3); void func_8006C164(void); void func_8000E194(void); f32 sqrtf(f32); @@ -193,6 +199,10 @@ void osSetTime(u64); void func_8001D5E0(f32 arg0, f32 arg1, f32 arg2); void func_800705F8(s32, f32, f32, f32); void func_8006ECFC(s32 arg0); +void load_level_3(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void func_800813C0(); +void func_80004A60(s32, s32); +void menu_init(s32); GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006A6B0.s") @@ -250,7 +260,7 @@ s32 func_8006B240(void) { } #if 1 -GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006B250.s") +GLOBAL_ASM("asm/non_matchings/unknown_066AA0/load_level.s") #else Settings *get_settings(void); @@ -262,8 +272,8 @@ s16 func_8006C2F0(void); void func_8006DB20(s32 arg0); void func_80072708(void); -// load_level(levelID, numOfPlayers, entrance, vehicle, ???); -void func_8006B250(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { +// load_level(levelId, numberOfPlayers, entranceId, vehicleId, cutsceneId); +void load_level(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { s32 sp48; s32 sp44; Settings *settings; @@ -314,19 +324,19 @@ void func_8006B250(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } temp2 = D_80121160[arg0]; temp = D_80121160[arg0 + 1] - temp2; - D_80121168 = func_80070C9C(temp, 0xFFFF00FF); - func_80076E68(0x17, D_80121168, temp2, temp); + gCurrentLevelHeader = func_80070C9C(temp, 0xFFFF00FF); + func_80076E68(0x17, gCurrentLevelHeader, temp2, temp); D_800DD330 = 0; sp44 = arg0; - if (D_80121168->race_type == 0) { + if (gCurrentLevelHeader->race_type == 0) { func_8006C2E4(); } if (func_8006C2F0() == 0) { if (D_800DD32C == 0) { - if (D_80121168->race_type == 8) { + if (gCurrentLevelHeader->race_type == 8) { phi_v1_2 = settings->courseFlagsPtr[temp2] & 1; phi_v0_2 = 0; - if (D_80121168->world == 0 || D_80121168->world == 5) { + if (gCurrentLevelHeader->world == 0 || gCurrentLevelHeader->world == 5) { phi_v0_2 = 1; } if (phi_v1_2 == 0 || phi_v0_2 != 0) { @@ -352,21 +362,21 @@ void func_8006B250(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } } - if (D_80121168->race_type == 5) { - if (D_80121168->world > 0 && D_80121168->world < 5) { - if ((settings->keys & (1 << D_80121168->world)) != 0) { - temp_v0_5 = 0x4000 << (D_80121168->world + 0x1F); + if (gCurrentLevelHeader->race_type == 5) { + if (gCurrentLevelHeader->world > 0 && gCurrentLevelHeader->world < 5) { + if ((settings->keys & (1 << gCurrentLevelHeader->world)) != 0) { + temp_v0_5 = 0x4000 << (gCurrentLevelHeader->world + 0x1F); if ((settings->cutsceneFlags & temp_v0_5) == 0) { func_8006C1AC(arg0, arg2, arg3, arg4); settings->cutsceneFlags |= temp_v0_5; arg2 = 0; arg4 = 5; - arg0 = func_8001E29C(0x44)[D_80121168->world - 1]; + arg0 = func_8001E29C(0x44)[gCurrentLevelHeader->world - 1]; } } } } - if (D_80121168->race_type == 5 && D_80121168->world == 0 && (settings->cutsceneFlags & 0x2000) == 0 && settings->wizpigAmulet >= 4) { + if (gCurrentLevelHeader->race_type == 5 && gCurrentLevelHeader->world == 0 && (settings->cutsceneFlags & 0x2000) == 0 && settings->wizpigAmulet >= 4) { s32 temp_a1 = arg2; s32 temp_a3 = arg4; arg4 = 0; @@ -379,48 +389,48 @@ void func_8006B250(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } D_800DD32C = 0; if (sp44 != arg0) { - func_80071140(D_80121168); + func_80071140(gCurrentLevelHeader); temp2 = D_80121160[arg0]; temp = D_80121160[arg0 + 1] - temp2; - D_80121168 = func_80070C9C(temp, 0xFFFF00FF); - func_80076E68(0x17, D_80121168, temp2, temp); + gCurrentLevelHeader = func_80070C9C(temp, 0xFFFF00FF); + func_80076E68(0x17, gCurrentLevelHeader, temp2, temp); } func_80071140(D_80121160); - func_8006BFC8(&D_80121168->unk20); + func_8006BFC8(&gCurrentLevelHeader->unk20); func_8000CBC0(); D_80121164 = arg0; for (phi_v1_5 = 0; phi_v1_5 < 7; phi_v1_5++) { - if ((s32)D_80121168->unk74[phi_v1_5] != -1) { - D_80121168->unk74[phi_v1_5] = func_8001E29C((s32)D_80121168->unk74[phi_v1_5]); - func_8007F1E8(D_80121168->unk74[phi_v1_5]); + if ((s32)gCurrentLevelHeader->unk74[phi_v1_5] != -1) { + gCurrentLevelHeader->unk74[phi_v1_5] = func_8001E29C((s32)gCurrentLevelHeader->unk74[phi_v1_5]); + func_8007F1E8(gCurrentLevelHeader->unk74[phi_v1_5]); } } if (arg4 == 0x64) { - if(get_trophy_race_world_id() != 0 && D_80121168->race_type == 0) { + if(get_trophy_race_world_id() != 0 && gCurrentLevelHeader->race_type == 0) { arg4 = 0; - } else if(is_in_tracks_mode() == 1 && D_80121168->race_type == 0) { + } else if(is_in_tracks_mode() == 1 && gCurrentLevelHeader->race_type == 0) { arg4 = 0; } } - if (D_80121168->race_type == 0 || D_80121168->race_type == 8) { + if (gCurrentLevelHeader->race_type == 0 || gCurrentLevelHeader->race_type == 8) { D_800DD31C = 1; } else { D_800DD31C = 0; } - if (sp48 != 0 && D_80121168->race_type != 7) { - D_80121168->race_type = 6; + if (sp48 != 0 && gCurrentLevelHeader->race_type != 7) { + gCurrentLevelHeader->race_type = 6; } - func_80000BE0(D_80121168->unkB3); + func_80000BE0(gCurrentLevelHeader->unkB3); func_80000CBC(); func_80031BB8(0x20); phi_s0_2 = (u8)0; if (arg3 >= 0 && arg3 < 3) { - phi_s0_2 = D_80121168->unk4F[arg3]; + phi_s0_2 = gCurrentLevelHeader->unk4F[arg3]; } func_80017E74(phi_s0_2); settings->courseId = arg0; - if (D_80121168->world != -1) { - settings->worldId = D_80121168->world; + if (gCurrentLevelHeader->world != -1) { + settings->worldId = gCurrentLevelHeader->world; } if (settings->worldId == 0 && settings->worldId > 0) { D_800DD314 = func_8006DB2C(); @@ -429,7 +439,7 @@ void func_8006B250(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { arg3 = D_800DD314; } func_8006DB20(arg3); - if (D_80121168->race_type == 5) { + if (gCurrentLevelHeader->race_type == 5) { if (settings->worldId > 0) { temp_s0_5 = 8 << (settings->worldId + 31); if (settings->worldId == 5) { @@ -458,21 +468,21 @@ void func_8006B250(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } } } - if (arg1 != 0 && D_80121168->race_type == 0) { + if (arg1 != 0 && gCurrentLevelHeader->race_type == 0) { arg4 = 0x64; } - if (D_80121168->race_type == 0 || ((D_80121168->race_type & 0x40) != 0 && is_in_two_player_adventure(D_80121168->race_type) != 0)) { + if (gCurrentLevelHeader->race_type == 0 || ((gCurrentLevelHeader->race_type & 0x40) != 0 && is_in_two_player_adventure(gCurrentLevelHeader->race_type) != 0)) { D_800DD318 = (u8)1; arg4 = 0x64; } else { D_800DD318 = (u8)0; } - if (D_80121168->race_type == 0 && sp48 == 0 && is_time_trial_enabled(arg4) != 0) { + if (gCurrentLevelHeader->race_type == 0 && sp48 == 0 && is_time_trial_enabled(arg4) != 0) { arg4 = 0x64; } func_8001E450(arg4); - func_800249F0(D_80121168->geometry, D_80121168->skybox, arg1, arg3, arg2, D_80121168->collectables, D_80121168->unkBA); - if (D_80121168->unk3A == 0 && D_80121168->unk3C == 0 && D_80121168->fogR == 0 && D_80121168->fogG == 0 && D_80121168->fogB == 0) { + func_800249F0(gCurrentLevelHeader->geometry, gCurrentLevelHeader->skybox, arg1, arg3, arg2, gCurrentLevelHeader->collectables, gCurrentLevelHeader->unkBA); + if (gCurrentLevelHeader->unk3A == 0 && gCurrentLevelHeader->unk3C == 0 && gCurrentLevelHeader->fogR == 0 && gCurrentLevelHeader->fogG == 0 && gCurrentLevelHeader->fogB == 0) { phi_s0_3 = 0; while(phi_s0_3 < 4) { func_800307BC(phi_s0_3); @@ -481,49 +491,49 @@ void func_8006B250(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } else { phi_s0_3 = 0; while(phi_s0_3 < 4) { - func_80030664(phi_s0_3, D_80121168->unk3A, D_80121168->unk3C, (u8)D_80121168->fogR, D_80121168->fogG, D_80121168->fogB); + func_80030664(phi_s0_3, gCurrentLevelHeader->unk3A, gCurrentLevelHeader->unk3C, (u8)gCurrentLevelHeader->fogR, gCurrentLevelHeader->fogG, gCurrentLevelHeader->fogB); phi_s0_3++; } } settings = get_settings(); - if (D_80121168->world != -1) { - settings->worldId = D_80121168->world; + if (gCurrentLevelHeader->world != -1) { + settings->worldId = gCurrentLevelHeader->world; } settings->courseId = arg0; - if (D_80121168->weather_enable > 0) { + if (gCurrentLevelHeader->weather_enable > 0) { func_800AB4A8( - D_80121168->unk92, - D_80121168->weather_enable, - D_80121168->unk96 << 8, - D_80121168->unk98 << 8, - D_80121168->unk9A << 8, - D_80121168->unk94 * 0x101, - D_80121168->unk95 * 0x101 + gCurrentLevelHeader->unk92, + gCurrentLevelHeader->weather_enable, + gCurrentLevelHeader->unk96 << 8, + gCurrentLevelHeader->unk98 << 8, + gCurrentLevelHeader->unk9A << 8, + gCurrentLevelHeader->unk94 * 0x101, + gCurrentLevelHeader->unk95 * 0x101 ); func_800AB308(-1, -0x200); } - if (D_80121168->unk49 == -1) { - D_80121168->unkA4 = func_8007AE74(D_80121168->unkA4); - D_80121168->unkA8 = (u16)0; - D_80121168->unkAA = (u16)0; + if (gCurrentLevelHeader->unk49 == -1) { + gCurrentLevelHeader->unkA4 = func_8007AE74(gCurrentLevelHeader->unkA4); + gCurrentLevelHeader->unkA8 = (u16)0; + gCurrentLevelHeader->unkAA = (u16)0; } - if ((s32)D_80121168->unkAC != -1) { - D_80121168->unkAC = func_8001E29C((s32)D_80121168->unkAC); - func_8007F414(D_80121168->unkAC); + if ((s32)gCurrentLevelHeader->unkAC != -1) { + gCurrentLevelHeader->unkAC = func_8001E29C((s32)gCurrentLevelHeader->unkAC); + func_8007F414(gCurrentLevelHeader->unkAC); } - func_800660EC((f32)D_80121168->unk9C); - func_80077B34(D_80121168->unk9D, D_80121168->unk9E, D_80121168->unk9F); + func_800660EC((f32)gCurrentLevelHeader->unk9C); + func_80077B34(gCurrentLevelHeader->unk9D, gCurrentLevelHeader->unk9E, gCurrentLevelHeader->unk9F); func_8007A974(); - func_8007AB24(D_80121168->unk4[arg1]); + func_8007AB24(gCurrentLevelHeader->unk4[arg1]); } #endif void func_8006BD10(f32 arg0) { - if (D_80121168->music != 0) { + if (gCurrentLevelHeader->music != 0) { func_800012E8(); - play_music(D_80121168->music); + play_music(gCurrentLevelHeader->music); func_800014BC(arg0); - func_80001074(D_80121168->instruments); + func_80001074(gCurrentLevelHeader->instruments); } } @@ -531,12 +541,12 @@ s32 func_8006BD88(void) { return D_80121164; } -u8 func_8006BD98(void) { - return D_80121168->race_type; +u8 get_current_level_race_type(void) { + return gCurrentLevelHeader->race_type; } -LevelHeader* func_8006BDB0(void) { - return D_80121168; +LevelHeader* get_current_level_header(void) { + return gCurrentLevelHeader; } /* Unused? */ @@ -549,7 +559,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006BDDC.s") void func_8006BEFC(void) { func_8006C164(); func_80077B34(0, 0, 0); - func_80071140(D_80121168); + func_80071140(gCurrentLevelHeader); func_800049D8(); func_80001844(); func_800018E0(); @@ -558,20 +568,18 @@ void func_8006BEFC(void) { func_8002C7D4(); func_80008174(); func_80000968(0); - if (D_80121168->weather_enable > 0) { + if (gCurrentLevelHeader->weather_enable > 0) { func_800AB35C(); } - if (D_80121168->unk49 == 0xFF) { - func_8007B2BC(D_80121168->unkA4); + if (gCurrentLevelHeader->unk49 == 0xFF) { + func_8007B2BC(gCurrentLevelHeader->unkA4); } } Settings *get_settings(void); s32 *func_80076C58(s32); -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006BFC8.s") -#else +#ifdef NON_MATCHING void func_8006BFC8(s8 *arg0) { s32 temp, temp2; s16 phi_v1; @@ -618,10 +626,12 @@ void func_8006BFC8(s8 *arg0) { } temp2 = D_80121160[phi_s0]; temp = D_80121160[phi_s0 + 1] - temp2; - D_801211C0[0] = func_80070C9C(temp, 0xFFFF00FF, D_80121160); + D_801211C0[0] = func_80070C9C(temp, 0xFFFF00FF); func_80076E68(0, D_801211C0[0], temp2, temp); func_80071140(D_80121160); } +#else +GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006BFC8.s") #endif void func_8006C164(void) { @@ -680,7 +690,7 @@ s32 func_8006C300(void) { } } -void func_8006C330(s32 arg0) { +void thread3_main(s32 arg0) { func_8006C3E0(); D_800DD37C = func_8006A1C4(D_800DD37C, 0); D_80123520 = 0; @@ -694,7 +704,7 @@ void func_8006C330(s32 arg0) { func_800CD250(0x1D6); while(1); // Infinite loop } - func_8006C60C(); + render(); func_80065E30(); } } @@ -774,7 +784,119 @@ void func_8006C3E0(void) { } #endif -GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006C60C.s") +#ifdef NON_MATCHING +void render(void) { + s32 phi_v0; + s32 phi_v0_2; + s32 i; + + if (D_800DD380 == 8) { + D_801211F8 = D_801211F0[D_801234E8]; + func_8007A2D0(&D_801211F8, 0, 0); + func_8007A2D0(&D_801211F8, 1, D_801262D4); + func_8007A2D0(&D_801211F8, 2, D_801262E0); + func_8007A2D0(&D_801211F8, 4, D_801262D4 - 0x500); + } + if (D_800DD3F0 == 0) { + setupOSTasks(D_801211F0[D_801234E8], D_801211F8, 0); + D_801234E8 += 1; + D_801234E8 &= 1; + } + if (D_800DD3F0 != 0) { + D_800DD3F0 -= 1; + } + + D_801211F8 = D_801211F0[D_801234E8]; + D_80121208 = D_80121200[D_801234E8]; + D_80121218 = D_80121210[D_801234E8]; + D_80121228 = D_80121220[D_801234E8]; + + func_8007A2D0(&D_801211F8, 0, 0, &D_801234E8); + func_8007A2D0(&D_801211F8, 1, D_801262D8); + func_8007A2D0(&D_801211F8, 2, D_801262E0); + func_8007A2D0(&D_801211F8, 4, D_801262D8 - 0x500); + func_800780DC(&D_801211F8); + func_80078054(&D_801211F8); + func_80077B9C(&D_801211F8, &D_80121208, 1); + D_800DD37C = func_8006A1C4(D_800DD37C, D_800DD404); + if (func_800B76DC() != 0) { + render_epc_lock_up_display(); + D_801234EC = 5; + } + if (D_800DD3A0 != 0) { + phi_v0 = 0; + while(phi_v0 != 10000000) { + phi_v0 += 1; + } + if (phi_v0 >= 20000001) { // This shouldn't ever be true? + render_printf(D_800E7134 /* "BBB\n" */); + } + } + + switch(D_801234EC) { + case -1: + func_8006F43C(); + break; + case 0: + func_8006CCF0(D_800DD404); + break; + case 1: + func_8006DCF8(D_800DD404); + break; + case 5: + func_800B77D4(D_800DD404); + break; + } + + // This is a good spot to place custom text if you want it to overlay it over ALL the + // menus & gameplay. + + func_80000D00((u8)D_800DD404); + func_800B5F78(&D_801211F8); + func_800C56FC(&D_801211F8, &D_80121208, &D_80121218); + func_800C5620(4); + func_800C5494(4); + if (func_800C0494(D_800DD404) != 0) { + func_800C05C8(&D_801211F8, &D_80121208, &D_80121218); + } + if ((D_80123520 >= 8) && (func_8006F4C8() != 0)) { + func_800829F8(&D_801211F8, D_800DD404); + } + + fast3d_cmd(D_801211F8++, 0xE9000000, 0x00000000) + fast3d_cmd(D_801211F8++, 0xB8000000, 0x00000000) + + func_80066610(); + if (D_800DD3F0 != 1) { + if (D_800DD38C == 0) { + D_800DD380 = func_80077A54(); + } + } else { + D_800DD3F0 = 0; + } + D_800DD38C = 0; + func_80071198(); + if (gIsPaused == 0) { + func_80066520(); + } + if (D_800DD3F0 == 2) { + phi_v0_2 = 153600; + if (osTvType == 0) { + phi_v0_2 = 168960; + } + func_80070B04(D_801262D8, D_801262D4, D_801262D4 + phi_v0_2); + } + + D_800DD404 = func_8007A98C(D_800DD380); + + // Can't get this to match. + if (D_800DD404 >= 7) { + D_800DD404 = 6; + } +} +#else +GLOBAL_ASM("asm/non_matchings/unknown_066AA0/render.s") +#endif void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2) { D_80123500 = arg0 - 1; @@ -783,15 +905,20 @@ void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2) { } else { D_801234F4 = arg1; } - func_8006CB58(D_801234F4, D_80123500, D_80123504, arg2); + load_level_2(D_801234F4, D_80123500, D_80123504, arg2); } -void func_8006CB58(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - func_8006ECFC(arg1); +/** + * Calls load_level() with the same arguments except for the cutsceneId, + * which is the value at D_80123508. Also does some other stuff. + * Needs a better name! + */ +void load_level_2(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId) { + func_8006ECFC(numberOfPlayers); func_800710B0(0); func_80065EA0(); func_800C3048(); - func_8006B250(arg0, arg1, arg2, arg3, D_80123508); + load_level(levelId, numberOfPlayers, entranceId, vehicleId, D_80123508); func_8009ECF0(func_80066210()); func_800AE728(8, 0x10, 0x96, 0x64, 0x32, 0); func_8001BF20(); @@ -877,18 +1004,7 @@ void func_8006DA1C(s32 arg0) { D_801234EC = arg0; } -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006DA28.s") -#else - -// For some reason this function is storing arg0 in s0. - -void func_8006DB3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); -void func_800813C0(s32); -void func_80004A60(s32, s32); -void menu_init(s32); - -void func_8006DA28(s32 arg0, s32 arg1, s32 arg2) { +void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId) { func_8006ECFC(0); D_801234EC = 1; D_801234F0 = 1; @@ -898,20 +1014,19 @@ void func_8006DA28(s32 arg0, s32 arg1, s32 arg2) { func_80065EA0(); if (D_80123514 == 0) { - D_80123514 = 0; // Someone at rare: "I know I just checked if this was zero, but I need to be sure!" - if (arg1 < 0) { + D_80123514 = 0; // Someone at Rare: "I know I just checked if this was zero, but I need to be sure!" + if (levelId < 0) { D_80123514 = 1; } else { - func_8006DB3C(arg1, -1, 0, 2, arg2); + load_level_3(levelId, -1, 0, 2, cutsceneId); } } - if (arg0 == 0 || arg0 == 1 || arg0 == 2) { - func_800813C0(arg0); + if (menuId == MENU_UNUSED_2 || menuId == MENU_LOGOS || menuId == MENU_TITLE) { + func_800813C0(); } - menu_init(arg0); + menu_init(menuId); D_80123504 = 0; } -#endif void func_8006DB14(s32 arg0) { D_80123518 = arg0; @@ -925,11 +1040,15 @@ s32 func_8006DB2C(void) { return D_80123518; } -void func_8006DB3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { +/** + * Calls load_level() with the same arguments, but also does some other stuff. + * Needs a better name! + */ +void load_level_3(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, s32 cutsceneId) { func_800710B0(0); func_80065EA0(); func_800C3048(); - func_8006B250(arg0, arg1, arg2, arg3, arg4); + load_level(levelId, numberOfPlayers, entranceId, vehicleId, cutsceneId); func_8009ECF0(func_80066210()); func_800AE728(4, 4, 0x6E, 0x30, 0x20, 0); func_8001BF20(); @@ -977,7 +1096,7 @@ void func_8006E2E8(s32 arg0, s32 arg1, s32 arg2) { } } if (arg0 != -1) { - func_8006DB3C(arg0, arg1, 0, 2, arg2); + load_level_3(arg0, arg1, 0, 2, arg2); D_80123514 = (u8)0; return; } @@ -1053,7 +1172,10 @@ Settings* get_settings(void) { return gSettingsPtr; } -s8 func_8006EAA0(void) { +/** + * Returns the value in gIsPaused. + */ +s8 is_game_paused(void) { return gIsPaused; } @@ -1134,15 +1256,16 @@ void func_8006ECE0(void) { GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006ECFC.s") -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006EFB8.s") -#else +#ifdef NON_MATCHING +extern s32 D_A4000000; s32 func_8006EFB8(void) { if (D_A4000000 != -1) { // regalloc issue with D_A4000000 return 0; } return 1; } +#else +GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006EFB8.s") #endif #if 1 @@ -1317,7 +1440,7 @@ void func_8006F43C(void) { } D_80123520++; if (D_80123520 >= 8) { - func_8006DA28(0x1A, 0x27, 2); + load_menu_with_level_background(0x1A, 0x27, 2); } } @@ -1329,13 +1452,14 @@ s32 func_8006F4C8(void) { } } -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006F4EC.s") -#else +#ifdef NON_MATCHING +extern s32 SP_IMEM; s32 func_8006F4EC(void) { if (SP_IMEM != 0x17D7) { // Same regalloc issue as func_8006EFB8 return 0; } return 1; } +#else +GLOBAL_ASM("asm/non_matchings/unknown_066AA0/func_8006F4EC.s") #endif diff --git a/src/unknown_071730.c b/src/unknown_071730.c index 5b9a6504..76aa2c55 100644 --- a/src/unknown_071730.c +++ b/src/unknown_071730.c @@ -3,6 +3,7 @@ #include "unknown_071730.h" +#include "structs.h" #include "types.h" #include "macros.h" @@ -97,7 +98,7 @@ typedef struct unk800B7D10 { s32 unk14; } unk800B7D10; -unk800B7D10 *func_800B7D10(void); +unk800B7D10 *get_stack_pointer(void); void *func_80070D3C(s32, s32, s32); unk80070BE4_8 *func_80070BE4(unk80070BE4_8 *arg0, s32 size, s32 arg2); @@ -106,8 +107,7 @@ void* func_80070C9C(s32, s32); s32 *func_8006F510(void); void func_8006F53C(s32*); -void func_80071440(s32 arg0); - +void func_80071440(LevelHeader *levelHeader); void func_80070B30(void) { s32 tmp = -1; @@ -173,14 +173,14 @@ unk80070BE4_8 *func_80070BE4(unk80070BE4_8 *arg0, s32 size, s32 arg2) { } #endif -void *func_80070C9C(s32 arg0, s32 arg1) { +void *func_80070C9C(s32 size, s32 mask) { void *temp_v0; - if (arg0 == 0) { - func_800B7460(func_800B7D10()->unk14, arg0, arg1); + if (size == 0) { + func_800B7460(*(s32 *)((u8 *)get_stack_pointer() + 0x14), size, mask); } - temp_v0 = func_80070D3C(0, arg0, arg1); + temp_v0 = func_80070D3C(0, size, mask); if (temp_v0 == (void *)NULL) { - func_800B7460(func_800B7D10()->unk14, arg0, arg1); + func_800B7460(*(s32 *)((u8 *)get_stack_pointer() + 0x14), size, mask); } return temp_v0; } @@ -253,12 +253,12 @@ void func_800710B0(s32 arg0) { func_8006F53C(sp2C); } -void func_80071140(s32 arg0) { +void func_80071140(LevelHeader *levelHeader) { s32 *sp1C = func_8006F510(); if (D_80123DCC == 0) { - func_80071278(arg0); + func_80071278(levelHeader); } else { - func_80071440(arg0); + func_80071440(levelHeader); } func_8006F53C(sp1C); } @@ -266,8 +266,8 @@ void func_80071140(s32 arg0) { GLOBAL_ASM("asm/non_matchings/unknown_071730/func_80071198.s") GLOBAL_ASM("asm/non_matchings/unknown_071730/func_80071278.s") -void func_80071440(s32 arg0) { - D_801235C8[D_80123DC8].unk0 = arg0; +void func_80071440(LevelHeader *levelHeader) { + D_801235C8[D_80123DC8].unk0 = levelHeader; D_801235C8[D_80123DC8].unk4 = D_80123DCC; D_80123DC8++; } diff --git a/src/unknown_09F8F0.c b/src/unknown_09F8F0.c index 3a5d2654..efb25721 100644 --- a/src/unknown_09F8F0.c +++ b/src/unknown_09F8F0.c @@ -529,7 +529,7 @@ void func_800A258C(s32 arg0, unk800A0DC0* arg1, s32 arg2) { func_800A7B68(temp, arg2); func_800A7520(arg1, arg2); - level = func_8006BDB0(); + level = get_current_level_header(); if (level->laps > 1) { func_800A4F50(temp, arg2); } diff --git a/src/unknown_0AEE70.c b/src/unknown_0AEE70.c index 8f9cf5d6..686eb380 100644 --- a/src/unknown_0AEE70.c +++ b/src/unknown_0AEE70.c @@ -188,75 +188,6 @@ s32 D_80129790[6]; s32 D_801297A8[8]; s32 D_801297C8[8]; s32 D_801297E8[6]; -s32 D_80129800[9]; -s32 D_80129824; -s32 D_80129828; -s32 D_8012982C; -s32 D_80129830; -s32 D_80129834; -s32 D_80129838; -s32 D_8012983C; -s32 D_80129840; -s32 D_80129844; -s32 D_80129848; -s32 D_8012984C; -s32 D_80129850; -s32 D_80129854; -s32 D_80129858; -s32 D_8012985C; -s32 D_80129860; -s32 D_80129864; -s32 D_80129868; -s32 D_8012986C; -s32 D_80129870; -s32 D_80129874; -s32 D_80129878; -s32 D_8012987C; -s32 D_80129880; -s32 D_80129884; -s32 D_80129888; -s32 D_8012988C; -s32 D_80129890; -s32 D_80129894; -s32 D_80129898; -s32 D_8012989C; -s32 D_801298A0; -s32 D_801298A4; -s32 D_801298A8; -s32 D_801298AC; -s32 D_801298B0; -s32 D_801298B4; -s32 D_801298B8; -s32 D_801298BC; -s32 D_801298C0; -s32 D_801298C4; -s32 D_801298C8; -s32 D_801298CC; -s32 D_801298D0; -s32 D_801298D4; -s32 D_801298D8; -s32 D_801298DC; -s32 D_801298E0; -s32 D_801298E4; -s32 D_801298E8; -s32 D_801298EC; -s32 D_801298F0; -s32 D_801298F4; -s32 D_801298F8; -s32 D_801298FC; -s32 D_80129900; -s32 D_80129904; -s32 D_80129908; -s32 D_8012990C; -s32 D_80129910; -s32 D_80129914; -s32 D_80129918; -s32 D_8012991C; -s32 D_80129920; -s32 D_80129924; -s32 D_80129928[34]; -s32 D_801299B0[64]; - /******************************/ diff --git a/src/unknown_0B3D40.c b/src/unknown_0B3D40.c index 8fd5c389..172e4689 100644 --- a/src/unknown_0B3D40.c +++ b/src/unknown_0B3D40.c @@ -65,9 +65,9 @@ GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B4668.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B46BC.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B4940.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B4A08.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B4A40.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/sprintf.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B5E88.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B5EDC.s") +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/render_printf.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B5F78.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B62B4.s") GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B635C.s") diff --git a/src/unknown_0B7A50.c b/src/unknown_0B7A50.c index 549248d2..5e8638c5 100644 --- a/src/unknown_0B7A50.c +++ b/src/unknown_0B7A50.c @@ -3,6 +3,8 @@ #include "types.h" #include "macros.h" +#include "libultra_internal.h" +#include "menu.h" /************ .rodata ************/ @@ -30,22 +32,378 @@ char *D_800E302C[3] = { /*******************************/ +/************ .bss ************/ -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6E50.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6EE0.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F04.s") +/* Size: 0x1B0 bytes */ +typedef struct epcInfo { +/* 0x00 */ s32 unk0; +/* 0x04 */ s32 unk4; +/* 0x08 */ s32 unk8; +/* 0x0C */ s32 unkC; +/* 0x10 */ s32 unk10; +/* 0x14 */ s32 thread; +/* 0x18 */ s32 unk18; +/* 0x1C */ s32 unk1C; +/* 0x20 */ s64 at; +/* 0x28 */ s64 v0; +/* 0x30 */ s64 v1; +/* 0x38 */ s64 a0; +/* 0x40 */ s64 a1; +/* 0x48 */ s64 a2; +/* 0x50 */ s64 a3; +/* 0x58 */ s64 t0; +/* 0x60 */ s64 t1; +/* 0x68 */ s64 t2; +/* 0x70 */ s64 t3; +/* 0x78 */ s64 t4; +/* 0x80 */ s64 t5; +/* 0x88 */ s64 t6; +/* 0x90 */ s64 t7; +/* 0x98 */ s64 s0; +/* 0xA0 */ s64 s1; +/* 0xA8 */ s64 s2; +/* 0xB0 */ s64 s3; +/* 0xB8 */ s64 s4; +/* 0xC0 */ s64 s5; +/* 0xC8 */ s64 s6; +/* 0xD0 */ s64 s7; +/* 0xD8 */ s64 t8; +/* 0xE0 */ s64 t9; +/* 0xE8 */ s64 gp; +/* 0xF0 */ s64 sp; +/* 0xF8 */ s64 s8; +/* 0x100 */ s64 ra; +/* 0x108 */ s32 unk108; +/* 0x10C */ s32 unk10C; +/* 0x110 */ s32 unk110; +/* 0x114 */ s32 unk114; +/* 0x118 */ s32 sr; +/* 0x11C */ s32 epc; +/* 0x120 */ s32 cause; +/* 0x124 */ s32 badvaddr; +/* 0x128 */ s32 unk128; +/* 0x12C */ s32 unk12C; +/* 0x130 */ f32 unk130; +/* 0x134 */ f32 unk134; +/* 0x138 */ f32 unk138; +/* 0x13C */ u8 pad13C[0x74]; +} epcInfo; + +epcInfo gEpcInfo; +s32 D_801299B0[64]; + +extern s32 D_80129BB0[256]; + +/******************************/ + +s16 *func_80024594(s32 *arg0, s32 *arg1); + +void thread0(s32 arg0); +void func_800B70D0(void); +void func_800B7144(void); +void func_800B71B0(void); + +extern OSThread D_801295E0; +extern OSMesgQueue D_80129790; +extern OSMesg D_801297A8; +extern OSMesgQueue D_801297E8; +extern OSMesg D_801297C8; + +extern s32 D_80129FB0[3]; + +extern u16 D_80127CAC; +extern u16 D_80127CAE; +extern s32 D_80127CBC; +extern s32 D_80127CC0; +extern s32 D_80127CC4; +extern s32 D_80127CC8; +extern u16 D_80127CD0; +extern u16 D_80127CD2; + +void func_800B6E50(void) { + if (D_80127CD0 < 0x141) { + D_80127CBC = 0x10; + D_80127CC0 = D_80127CD0 - 0x10; + } else { + D_80127CBC = 0x20; + D_80127CC0 = D_80127CD0 - 0x20; + } + if (D_80127CD2 < 0xF1) { + D_80127CC4 = 0x10; + D_80127CC8 = D_80127CD2 - 0x10; + } else { + D_80127CC4 = 0x20; + D_80127CC8 = D_80127CD2 - 0x20; + } +} + + + +void func_800B6EE0(void) { + D_80127CAC = D_80127CBC; + D_80127CAE = D_80127CC4; +} + +void func_800B6F04(void) { + D_80127CAC = D_80127CBC; + D_80127CAE += 11; +} + +void func_800B6F30(s32 arg0, s32 arg1, s32 arg2) { +} void func_800B6F40(s32 arg0, s32 arg1, s32 arg2) { } +#ifdef NON_MATCHING +void func_800B6F50(void) { + s32 i; + + // Almost matching, just have an issue with argument 4. + // The -O2 compiler is too smart. :( + osCreateThread(&D_801295E0, 0, &thread0, 0, &D_801295E0, 255); + + osStartThread(&D_801295E0); + + for(i = 0; i < 3; i++) { + D_80129FB0[i] = -1; + } +} +#else GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6F50.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B6FC4.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B70D0.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7144.s") +#endif + +#ifdef NON_MATCHING +void thread0(s32 arg0) { // Has regalloc issues + s32 sp34; + s32 s0 = 0; + + osCreateMesgQueue(&D_80129790, &D_801297A8, 8); + osSetEventMesg(12, &D_80129790, 8); + osSetEventMesg(10, &D_80129790, 2); + osCreatePiManager(150, &D_801297E8, &D_801297C8, 8); + + while(1) { + while(1) { + osRecvMesg(&D_80129790, &sp34, 1); + if (!(get_filtered_cheats() & CHEAT_EPC_LOCK_UP_DISPLAY)) { + continue; + } + s0 |= sp34; + if ((s0 & 8) || (s0 & 2)) { + break; + } + } + s0 &= ~8; + func_800B70D0(); + func_800B7144(); + func_800B71B0(); + } +} +#else +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/thread0.s") +#endif + +/* Unknown Size, might be epcInfo? */ +typedef struct unk800D2470 { +/* 0x00 */ OSThread *thread; +/* 0x04 */ s32 unk4; +/* 0x08 */ s32 unk8; +/* 0x0C */ struct unk800D2470 *next; +/* 0x10 */ u8 pad10[0x108]; +/* 0x118 */ s32 unk118; +} unk800D2470; + +void func_800B70D0(void) { + unk800D2470 *node = func_800D2470(); + while(node->unk4 != -1) { + if (node->unk4 == 0) { + node->unk118 &= 0xFFFF00FE; + node->unk118 |= 0x6C01; + return; + } + node = node->next; + } +} + +void func_800B7144(void) { + s32 temp_v0_2; + s32 phi_v0; + s32 phi_return; + unk800D2470 *node = func_800D2470(); + while (node->unk4 != -1) { + if ((node->unk4 > 0) && (node->unk4 < 0x80)) { + osStopThread(&node->thread); + } + node = node->next; + } +} + GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B71B0.s") + +#if 1 GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7460.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B76B8.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B76DC.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B77D4.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7810.s") -GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/func_800B7D10.s") +#else + +void func_800B7460(s32 *epc, s32 size, s32 mask) { + epcInfo sp840; + s16 sp440[0x200]; + u8 sp240[0x200]; + epcInfo sp40; + s32 sp38; + s16 *v0; + s32 i; + + if ((get_filtered_cheats() << 4) < 0) { // This is checking if the EPC cheat is active + memzero(&sp840, 0x1B0); + sp840.a0 = size; + sp840.a1 = mask; + sp840.epc = epc; + sp840.cause = -1; + sp840.unk130 = D_80129FB0[0]; + sp840.unk134 = D_80129FB0[1]; + sp840.unk138 = D_80129FB0[2]; + bcopy(&sp840, &sp40, 0x1B0); + memzero(&sp240, 0x200); + v0 = func_80024594(&sp38, &size); + for (i = 0; i < size; i++) { + sp440[i] = v0[sp38]; + sp38--; + if (sp38 < 0) { + sp38 += size; + } + } + func_800766D4(0, -1, &D_800E8EE8, &D_800E8EF0, &sp40, 0x800); + while(1); // Infinite loop; waiting for the player to reset the console? + } +} +#endif + +void func_800B76B8(s32 arg0, s32 arg1) { + if ((arg0 >= 0) && (arg0 < 3)) { + D_80129FB0[arg0] = arg1; + } +} + +s32 func_800B76DC(void) { + s32 sp824; + u8 sp820[4]; // Unused? + s16 sp420[0x200]; + u8 sp220[0x200]; + u8 sp1D0[0x50]; // Unused? + epcInfo sp20; + + if (D_800E3020 != -1) { + return D_800E3020; + } else { + D_800E3020 = 0; + if ((func_800758DC(0) == 0) && (func_800764E8(0, &D_800E8EF4, &D_800E8EFC, &sp824) == 0) + && (func_80076610(0, sp824, &sp20, 0x800) == 0)) { + bcopy(&sp20, &gEpcInfo, 0x1B0); + bcopy(&sp220, &D_801299B0, 0x200); + bcopy(&sp420, &D_80129BB0, 0x400); + D_800E3020 = 1; + } + func_80075AEC(0); + if (D_800E3020 != 0) { + func_800762C8(0, sp824); + } + return D_800E3020; + } +} + +void func_800B77D4(s32 arg0) { + D_800E3028 += arg0; + if (D_800E3028 >= 0x3D) { + D_800E3028 = 0; + D_800E3024++; + } +} + + +#if 1 +GLOBAL_ASM("asm/non_matchings/unknown_0AEE70/render_epc_lock_up_display.s") +#else +void render_epc_lock_up_display(void) { + char *sp50[3]; + s32 s3; + s32 i, j; + + sp50[0] = D_800E302C[0]; // "setup" + sp50[1] = D_800E302C[1]; // "control" + sp50[2] = D_800E302C[2]; // "print" + + s3 = 0; + + func_800B635C(0x10, 0x20); + + switch (D_800E3024) { + case 0: + D_80129FB0[0] = gEpcInfo.unk130; + D_80129FB0[1] = gEpcInfo.unk134; + D_80129FB0[2] = gEpcInfo.unk138; + if (gEpcInfo.cause != -1) { + render_printf(" Fault in thread %d\n", gEpcInfo.thread); + render_printf(" epc\t\t0x%08x\n", gEpcInfo.epc); + render_printf(" cause\t\t0x%08x\n", gEpcInfo.cause); + render_printf(" sr\t\t0x%08x\n", gEpcInfo.sr); + render_printf(" badvaddr\t0x%08x\n", gEpcInfo.badvaddr); + for(i = 0; i < 3; i++) { + if (D_80129FB0[i] != -1) { + if (s3 == 0) { + s3 = 1; + render_printf(" object\t\t"); + } + render_printf("%s %d ", sp50[i], D_80129FB0[i]); + } + } + render_printf("\n"); + render_printf(" at 0x%08x v0 0x%08x v1 0x%08x\n", gEpcInfo.at, gEpcInfo.v0, gEpcInfo.v1); + render_printf(" a0 0x%08x a1 0x%08x a2 0x%08x\n", gEpcInfo.a0, gEpcInfo.a1, gEpcInfo.a2); + render_printf(" a3 0x%08x t0 0x%08x t1 0x%08x\n", gEpcInfo.a3, gEpcInfo.t0, gEpcInfo.t1); + render_printf(" t2 0x%08x t3 0x%08x t4 0x%08x\n", gEpcInfo.t2, gEpcInfo.t3, gEpcInfo.t4); + render_printf(" t5 0x%08x t6 0x%08x t7 0x%08x\n", gEpcInfo.t5, gEpcInfo.t6, gEpcInfo.t7); + render_printf(" s0 0x%08x s1 0x%08x s2 0x%08x\n", gEpcInfo.s0, gEpcInfo.s1, gEpcInfo.s2); + render_printf(" s3 0x%08x s4 0x%08x s5 0x%08x\n", gEpcInfo.s3, gEpcInfo.s4, gEpcInfo.s5); + render_printf(" s6 0x%08x s7 0x%08x t8 0x%08x\n", gEpcInfo.s6, gEpcInfo.s7, gEpcInfo.t8); + render_printf(" t9 0x%08x gp 0x%08x sp 0x%08x\n", gEpcInfo.t9, gEpcInfo.gp, gEpcInfo.sp); + render_printf(" s8 0x%08x ra 0x%08x\n\n", gEpcInfo.s8, gEpcInfo.ra); + } else { // gEpcInfo.cause == -1 + render_printf(" epc\t\t0x%08x\n", gEpcInfo.epc); + render_printf(" cause\t\tmmAlloc(%d,0x%8x)\n", gEpcInfo.a0, gEpcInfo.a1); + for(i = 0; i < 3; i++) { + if (D_80129FB0[i] != -1) { + if (s3 == 0) { + s3 = 1; + render_printf(" object\t\t"); + } + render_printf("%s %d ", sp50[i], D_80129FB0[i]); + } + } + render_printf("\n"); + render_printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + render_printf(" s8 0x%08x ra 0x%08x\n\n", gEpcInfo.s8, gEpcInfo.ra); + render_printf("\n"); + } + break; + default: + for (i = 0; i < 16; i++) { + render_printf(" %08x %08x %08x\n", + D_801299B0[i - 1], D_801299B0[i - 1 + 16], D_801299B0[i - 1 + 32]); + } + break; + case 4: + for (i = 0; i < 16; i++) { + render_printf(" "); + for (j = 0; j < 8; j++) { + render_printf("%04x ", D_80129BB0[(i * 16) + j - 2]); + } + render_printf("\n"); + } + break; + case 5: + D_800E3024 = 0; + break; + } +} +#endif diff --git a/tools/python/rename_file.py b/tools/python/rename_file.py index 7114d251..fca55c41 100644 --- a/tools/python/rename_file.py +++ b/tools/python/rename_file.py @@ -18,9 +18,9 @@ def find_and_rename(directory, paths): path = directory + '/' + name if oldSymbol in path: newPath = path.replace(oldSymbol, newSymbol) - print('Renamed "' + path + '" to "' + newPath + '"') try: FileUtil.rename_file(path, newPath) + print('Renamed "' + path + '" to "' + newPath + '"') except FileNotFoundError: pass diff --git a/undefined_syms.txt b/undefined_syms.txt index 528174a5..9cc15528 100755 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -6,6 +6,7 @@ osAppNMIBuffer = 0x8000031C; D_A0000200 = 0xA0000200; D_A0000284 = 0xA0000284; +D_A4000000 = 0xA4000000; SP_IMEM = 0xA4001000; D_A4040004 = 0xA4040004; D_A4040008 = 0xA4040008;