mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Merge pull request #137 from DavidSM64/doc
Documented and renamed unknown_0C7F50 as thread30
This commit is contained in:
@@ -342,7 +342,7 @@ glabel func_800890AC
|
||||
/* 08A180 80089580 24040001 */ li $a0, 1
|
||||
/* 08A184 80089584 24040015 */ li $a0, 21
|
||||
/* 08A188 80089588 2405FFFF */ li $a1, -1
|
||||
/* 08A18C 8008958C 0C01B8BA */ jal func_8006E2E8
|
||||
/* 08A18C 8008958C 0C01B8BA */ jal load_level_for_menu
|
||||
/* 08A190 80089590 00003025 */ move $a2, $zero
|
||||
.L80089594:
|
||||
/* 08A194 80089594 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
|
||||
@@ -8,7 +8,7 @@ glabel D_800E84E8
|
||||
glabel func_800904E8
|
||||
/* 0910E8 800904E8 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* 0910EC 800904EC AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0910F0 800904F0 0C031CFC */ jal func_800C73F0
|
||||
/* 0910F0 800904F0 0C031CFC */ jal tick_thread30
|
||||
/* 0910F4 800904F4 AFA40048 */ sw $a0, 0x48($sp)
|
||||
/* 0910F8 800904F8 8FA50048 */ lw $a1, 0x48($sp)
|
||||
/* 0910FC 800904FC 00001025 */ move $v0, $zero
|
||||
@@ -154,7 +154,7 @@ glabel func_800904E8
|
||||
/* 091318 80090718 250869E4 */ addiu $t0, %lo(D_801269E4) # addiu $t0, $t0, 0x69e4
|
||||
/* 09131C 8009071C 15C10034 */ bne $t6, $at, .L800907F0
|
||||
/* 091320 80090720 246369DC */ addiu $v1, %lo(D_801269DC) # addiu $v1, $v1, 0x69dc
|
||||
/* 091324 80090724 0C031CF8 */ jal func_800C73E0
|
||||
/* 091324 80090724 0C031CF8 */ jal get_thread30_level_id_to_load
|
||||
/* 091328 80090728 00000000 */ nop
|
||||
/* 09132C 8009072C 3C038012 */ lui $v1, %hi(D_801269DC) # $v1, 0x8012
|
||||
/* 091330 80090730 3C088012 */ lui $t0, %hi(D_801269E4) # $t0, 0x8012
|
||||
@@ -180,7 +180,7 @@ glabel func_800904E8
|
||||
/* 09137C 8009077C 2401FFFF */ li $at, -1
|
||||
/* 091380 80090780 1081001B */ beq $a0, $at, .L800907F0
|
||||
/* 091384 80090784 00000000 */ nop
|
||||
/* 091388 80090788 0C031D16 */ jal func_800C7458
|
||||
/* 091388 80090788 0C031D16 */ jal set_level_to_load_in_background
|
||||
/* 09138C 8009078C 24050001 */ li $a1, 1
|
||||
/* 091390 80090790 3C038012 */ lui $v1, %hi(D_801269DC) # $v1, 0x8012
|
||||
/* 091394 80090794 3C088012 */ lui $t0, %hi(D_801269E4) # $t0, 0x8012
|
||||
|
||||
@@ -150,7 +150,7 @@ glabel func_80090918
|
||||
/* 09174C 80090B4C 00002025 */ move $a0, $zero
|
||||
/* 091750 80090B50 0C019A06 */ jal func_80066818
|
||||
/* 091754 80090B54 00002825 */ move $a1, $zero
|
||||
/* 091758 80090B58 0C031CF8 */ jal func_800C73E0
|
||||
/* 091758 80090B58 0C031CF8 */ jal get_thread30_level_id_to_load
|
||||
/* 09175C 80090B5C 00000000 */ nop
|
||||
/* 091760 80090B60 14400051 */ bnez $v0, .L80090CA8
|
||||
/* 091764 80090B64 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e
|
||||
|
||||
@@ -43,7 +43,7 @@ glabel menu_23_loop
|
||||
/* 09B998 8009AD98 00000000 */ nop
|
||||
/* 09B99C 8009AD9C 81050001 */ lb $a1, 1($t0)
|
||||
/* 09B9A0 8009ADA0 81060002 */ lb $a2, 2($t0)
|
||||
/* 09B9A4 8009ADA4 0C01B8BA */ jal func_8006E2E8
|
||||
/* 09B9A4 8009ADA4 0C01B8BA */ jal load_level_for_menu
|
||||
/* 09B9A8 8009ADA8 00000000 */ nop
|
||||
/* 09B9AC 8009ADAC 1000000D */ b .L8009ADE4
|
||||
/* 09B9B0 8009ADB0 00000000 */ nop
|
||||
|
||||
@@ -118,7 +118,7 @@ glabel menu_5_init
|
||||
/* 093A44 80092E44 24040002 */ li $a0, 2
|
||||
/* 093A48 80092E48 02002025 */ move $a0, $s0
|
||||
/* 093A4C 80092E4C 2405FFFF */ li $a1, -1
|
||||
/* 093A50 80092E50 0C01B8BA */ jal func_8006E2E8
|
||||
/* 093A50 80092E50 0C01B8BA */ jal load_level_for_menu
|
||||
/* 093A54 80092E54 24060001 */ li $a2, 1
|
||||
.L80092E58:
|
||||
/* 093A58 80092E58 0C031525 */ jal func_800C5494
|
||||
|
||||
@@ -132,7 +132,7 @@ glabel menu_character_select_loop
|
||||
/* 08CB10 8008BF10 00000000 */ nop
|
||||
/* 08CB14 8008BF14 24040027 */ li $a0, 39
|
||||
/* 08CB18 8008BF18 2405FFFF */ li $a1, -1
|
||||
/* 08CB1C 8008BF1C 0C01B8BA */ jal func_8006E2E8
|
||||
/* 08CB1C 8008BF1C 0C01B8BA */ jal load_level_for_menu
|
||||
/* 08CB20 8008BF20 00003025 */ move $a2, $zero
|
||||
/* 08CB24 8008BF24 3C18800E */ lui $t8, %hi(gNumberOfActivePlayers) # $t8, 0x800e
|
||||
/* 08CB28 8008BF28 8F18F4BC */ lw $t8, %lo(gNumberOfActivePlayers)($t8)
|
||||
|
||||
@@ -24,7 +24,7 @@ glabel menu_credits_loop
|
||||
/* 09BF70 8009B370 AFA2005C */ sw $v0, 0x5c($sp)
|
||||
/* 09BF74 8009B374 0C0078A7 */ jal get_misc_asset
|
||||
/* 09BF78 8009B378 24040045 */ li $a0, 69
|
||||
/* 09BF7C 8009B37C 0C031CFC */ jal func_800C73F0
|
||||
/* 09BF7C 8009B37C 0C031CFC */ jal tick_thread30
|
||||
/* 09BF80 8009B380 AFA20060 */ sw $v0, 0x60($sp)
|
||||
/* 09BF84 8009B384 3C0E800E */ lui $t6, %hi(gMenuDelay) # $t6, 0x800e
|
||||
/* 09BF88 8009B388 8DCEF47C */ lw $t6, %lo(gMenuDelay)($t6)
|
||||
@@ -529,7 +529,7 @@ glabel L8009BA98
|
||||
/* 09C6AC 8009BAAC 016D1021 */ addu $v0, $t3, $t5
|
||||
/* 09C6B0 8009BAB0 80440000 */ lb $a0, ($v0)
|
||||
/* 09C6B4 8009BAB4 80450002 */ lb $a1, 2($v0)
|
||||
/* 09C6B8 8009BAB8 0C031D16 */ jal func_800C7458
|
||||
/* 09C6B8 8009BAB8 0C031D16 */ jal set_level_to_load_in_background
|
||||
/* 09C6BC 8009BABC 00000000 */ nop
|
||||
/* 09C6C0 8009BAC0 240E0001 */ li $t6, 1
|
||||
/* 09C6C4 8009BAC4 AE0E0000 */ sw $t6, ($s0)
|
||||
@@ -538,7 +538,7 @@ glabel L8009BA98
|
||||
/* 09C6D0 8009BAD0 1000004C */ b .L8009BC04
|
||||
/* 09C6D4 8009BAD4 AC2F63D8 */ sw $t7, %lo(D_801263D8)($at)
|
||||
glabel L8009BAD8
|
||||
/* 09C6D8 8009BAD8 0C031CF8 */ jal func_800C73E0
|
||||
/* 09C6D8 8009BAD8 0C031CF8 */ jal get_thread30_level_id_to_load
|
||||
/* 09C6DC 8009BADC 00000000 */ nop
|
||||
/* 09C6E0 8009BAE0 14400048 */ bnez $v0, .L8009BC04
|
||||
/* 09C6E4 8009BAE4 3C038012 */ lui $v1, %hi(D_801263BC) # $v1, 0x8012
|
||||
@@ -648,7 +648,7 @@ glabel L8009BB9C
|
||||
/* 09C85C 8009BC5C 18400015 */ blez $v0, .L8009BCB4
|
||||
/* 09C860 8009BC60 004FC021 */ addu $t8, $v0, $t7
|
||||
/* 09C864 8009BC64 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
|
||||
/* 09C868 8009BC68 0C031CF8 */ jal func_800C73E0
|
||||
/* 09C868 8009BC68 0C031CF8 */ jal get_thread30_level_id_to_load
|
||||
/* 09C86C 8009BC6C AC38F47C */ sw $t8, %lo(gMenuDelay)($at)
|
||||
/* 09C870 8009BC70 14400010 */ bnez $v0, .L8009BCB4
|
||||
/* 09C874 8009BC74 3C19800E */ lui $t9, %hi(gMenuDelay) # $t9, 0x800e
|
||||
@@ -663,7 +663,7 @@ glabel L8009BB9C
|
||||
/* 09C898 8009BC98 00000000 */ nop
|
||||
/* 09C89C 8009BC9C 24040015 */ li $a0, 21
|
||||
/* 09C8A0 8009BCA0 2405FFFF */ li $a1, -1
|
||||
/* 09C8A4 8009BCA4 0C01B8BA */ jal func_8006E2E8
|
||||
/* 09C8A4 8009BCA4 0C01B8BA */ jal load_level_for_menu
|
||||
/* 09C8A8 8009BCA8 00003025 */ move $a2, $zero
|
||||
/* 09C8AC 8009BCAC 0C0204F4 */ jal menu_init
|
||||
/* 09C8B0 8009BCB0 24040001 */ li $a0, 1
|
||||
|
||||
@@ -62,7 +62,7 @@ glabel menu_game_select_loop
|
||||
/* 08D49C 8008C89C AC2CF4B8 */ sw $t4, %lo(gIsInTracksMode)($at)
|
||||
/* 08D4A0 8008C8A0 2404FFFF */ li $a0, -1
|
||||
/* 08D4A4 8008C8A4 2405FFFF */ li $a1, -1
|
||||
/* 08D4A8 8008C8A8 0C01B8BA */ jal func_8006E2E8
|
||||
/* 08D4A8 8008C8A8 0C01B8BA */ jal load_level_for_menu
|
||||
/* 08D4AC 8008C8AC 00003025 */ move $a2, $zero
|
||||
/* 08D4B0 8008C8B0 0C0204F4 */ jal menu_init
|
||||
/* 08D4B4 8008C8B4 2404000F */ li $a0, 15
|
||||
@@ -100,7 +100,7 @@ glabel menu_game_select_loop
|
||||
/* 08D528 8008C928 38CD0003 */ xori $t5, $a2, 3
|
||||
/* 08D52C 8008C92C 01A03025 */ move $a2, $t5
|
||||
.L8008C930:
|
||||
/* 08D530 8008C930 0C01B8BA */ jal func_8006E2E8
|
||||
/* 08D530 8008C930 0C01B8BA */ jal load_level_for_menu
|
||||
/* 08D534 8008C934 2405FFFF */ li $a1, -1
|
||||
/* 08D538 8008C938 00002025 */ move $a0, $zero
|
||||
/* 08D53C 8008C93C 0C022BAD */ jal func_8008AEB4
|
||||
|
||||
@@ -270,7 +270,7 @@ glabel menu_results_loop
|
||||
/* 098284 80097684 2404FFFF */ li $a0, -1
|
||||
/* 098288 80097688 144E0007 */ bne $v0, $t6, .L800976A8
|
||||
/* 09828C 8009768C 2405FFFF */ li $a1, -1
|
||||
/* 098290 80097690 0C01B8BA */ jal func_8006E2E8
|
||||
/* 098290 80097690 0C01B8BA */ jal load_level_for_menu
|
||||
/* 098294 80097694 00003025 */ move $a2, $zero
|
||||
/* 098298 80097698 0C0204F4 */ jal menu_init
|
||||
/* 09829C 8009769C 2404000F */ li $a0, 15
|
||||
|
||||
@@ -129,7 +129,7 @@ glabel menu_title_screen_init
|
||||
.L8008372C:
|
||||
/* 08432C 8008372C 80640000 */ lb $a0, ($v1)
|
||||
/* 084330 80083730 80660002 */ lb $a2, 2($v1)
|
||||
/* 084334 80083734 0C01B8BA */ jal func_8006E2E8
|
||||
/* 084334 80083734 0C01B8BA */ jal load_level_for_menu
|
||||
/* 084338 80083738 00000000 */ nop
|
||||
/* 08433C 8008373C 44803000 */ mtc1 $zero, $f6
|
||||
/* 084340 80083740 3C018012 */ lui $at, %hi(D_801268D8) # $at, 0x8012
|
||||
|
||||
@@ -160,7 +160,7 @@ glabel menu_title_screen_loop
|
||||
.L80083C14:
|
||||
/* 084814 80083C14 80640000 */ lb $a0, ($v1)
|
||||
/* 084818 80083C18 80660002 */ lb $a2, 2($v1)
|
||||
/* 08481C 80083C1C 0C01B8BA */ jal func_8006E2E8
|
||||
/* 08481C 80083C1C 0C01B8BA */ jal load_level_for_menu
|
||||
/* 084820 80083C20 00000000 */ nop
|
||||
/* 084824 80083C24 3C088012 */ lui $t0, %hi(D_80126864) # $t0, 0x8012
|
||||
/* 084828 80083C28 25086864 */ addiu $t0, %lo(D_80126864) # addiu $t0, $t0, 0x6864
|
||||
@@ -474,7 +474,7 @@ glabel menu_title_screen_loop
|
||||
/* 084CB4 800840B4 38C90003 */ xori $t1, $a2, 3
|
||||
/* 084CB8 800840B8 01203025 */ move $a2, $t1
|
||||
.L800840BC:
|
||||
/* 084CBC 800840BC 0C01B8BA */ jal func_8006E2E8
|
||||
/* 084CBC 800840BC 0C01B8BA */ jal load_level_for_menu
|
||||
/* 084CC0 800840C0 2405FFFF */ li $a1, -1
|
||||
/* 084CC4 800840C4 00002025 */ move $a0, $zero
|
||||
/* 084CC8 800840C8 0C022BAD */ jal func_8008AEB4
|
||||
@@ -486,7 +486,7 @@ glabel menu_title_screen_loop
|
||||
.L800840E0:
|
||||
/* 084CE0 800840E0 AC20F460 */ sw $zero, %lo(D_800DF460)($at)
|
||||
/* 084CE4 800840E4 2405FFFF */ li $a1, -1
|
||||
/* 084CE8 800840E8 0C01B8BA */ jal func_8006E2E8
|
||||
/* 084CE8 800840E8 0C01B8BA */ jal load_level_for_menu
|
||||
/* 084CEC 800840EC 00003025 */ move $a2, $zero
|
||||
/* 084CF0 800840F0 0C0204F4 */ jal menu_init
|
||||
/* 084CF4 800840F4 2404000C */ li $a0, 12
|
||||
|
||||
@@ -505,7 +505,7 @@ glabel menu_track_select_init
|
||||
/* 08FB30 8008EF30 244263D0 */ addiu $v0, %lo(D_801263D0) # addiu $v0, $v0, 0x63d0
|
||||
/* 08FB34 8008EF34 2405FFFF */ li $a1, -1
|
||||
/* 08FB38 8008EF38 24060001 */ li $a2, 1
|
||||
/* 08FB3C 8008EF3C 0C01B8BA */ jal func_8006E2E8
|
||||
/* 08FB3C 8008EF3C 0C01B8BA */ jal load_level_for_menu
|
||||
/* 08FB40 8008EF40 AC440000 */ sw $a0, ($v0)
|
||||
/* 08FB44 8008EF44 240A0001 */ li $t2, 1
|
||||
/* 08FB48 8008EF48 AE0A0000 */ sw $t2, ($s0)
|
||||
|
||||
@@ -10,7 +10,7 @@ glabel menu_track_select_loop
|
||||
/* 08FE54 8008F254 AFA20018 */ sw $v0, 0x18($sp)
|
||||
/* 08FE58 8008F258 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 08FE5C 8008F25C 3319003F */ andi $t9, $t8, 0x3f
|
||||
/* 08FE60 8008F260 0C031CF8 */ jal func_800C73E0
|
||||
/* 08FE60 8008F260 0C031CF8 */ jal get_thread30_level_id_to_load
|
||||
/* 08FE64 8008F264 AC790000 */ sw $t9, ($v1)
|
||||
/* 08FE68 8008F268 14400011 */ bnez $v0, .L8008F2B0
|
||||
/* 08FE6C 8008F26C 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e
|
||||
@@ -134,7 +134,7 @@ glabel menu_track_select_loop
|
||||
/* 09001C 8008F41C 38CB0003 */ xori $t3, $a2, 3
|
||||
/* 090020 8008F420 01603025 */ move $a2, $t3
|
||||
.L8008F424:
|
||||
/* 090024 8008F424 0C01B8BA */ jal func_8006E2E8
|
||||
/* 090024 8008F424 0C01B8BA */ jal load_level_for_menu
|
||||
/* 090028 8008F428 2405FFFF */ li $a1, -1
|
||||
/* 09002C 8008F42C 00002025 */ move $a0, $zero
|
||||
/* 090030 8008F430 0C022BAD */ jal func_8008AEB4
|
||||
@@ -147,7 +147,7 @@ glabel menu_track_select_loop
|
||||
/* 090048 8008F448 24040027 */ li $a0, 39
|
||||
.L8008F44C:
|
||||
/* 09004C 8008F44C 2405FFFF */ li $a1, -1
|
||||
/* 090050 8008F450 0C01B8BA */ jal func_8006E2E8
|
||||
/* 090050 8008F450 0C01B8BA */ jal load_level_for_menu
|
||||
/* 090054 8008F454 00003025 */ move $a2, $zero
|
||||
/* 090058 8008F458 0C0204F4 */ jal menu_init
|
||||
/* 09005C 8008F45C 24040013 */ li $a0, 19
|
||||
|
||||
@@ -68,7 +68,7 @@ glabel menu_trophy_race_round_init
|
||||
/* 098F5C 8009835C 00402025 */ move $a0, $v0
|
||||
/* 098F60 80098360 02002025 */ move $a0, $s0
|
||||
/* 098F64 80098364 2405FFFF */ li $a1, -1
|
||||
/* 098F68 80098368 0C01B8BA */ jal func_8006E2E8
|
||||
/* 098F68 80098368 0C01B8BA */ jal load_level_for_menu
|
||||
/* 098F6C 8009836C 24060001 */ li $a2, 1
|
||||
/* 098F70 80098370 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
|
||||
/* 098F74 80098374 AC20F47C */ sw $zero, %lo(gMenuDelay)($at)
|
||||
|
||||
@@ -93,7 +93,7 @@ glabel func_8006C3E0
|
||||
/* 06D138 8006C538 00000000 */ nop
|
||||
/* 06D13C 8006C53C 0C020486 */ jal func_80081218
|
||||
/* 06D140 8006C540 00000000 */ nop
|
||||
/* 06D144 8006C544 0C031CD4 */ jal func_800C7350
|
||||
/* 06D144 8006C544 0C031CD4 */ jal create_and_start_thread30
|
||||
/* 06D148 8006C548 00000000 */ nop
|
||||
/* 06D14C 8006C54C 3C048012 */ lui $a0, %hi(D_80123548) # $a0, 0x8012
|
||||
/* 06D150 8006C550 3C058012 */ lui $a1, %hi(D_80123544) # $a1, 0x8012
|
||||
|
||||
@@ -23,7 +23,7 @@ glabel thread3_main
|
||||
/* 06CF80 8006C380 00000000 */ nop
|
||||
/* 06CF84 8006C384 0C000A9D */ jal audioStopThread
|
||||
/* 06CF88 8006C388 00000000 */ nop
|
||||
/* 06CF8C 8006C38C 0C031CEF */ jal func_800C73BC
|
||||
/* 06CF8C 8006C38C 0C031CEF */ jal stop_thread30
|
||||
/* 06CF90 8006C390 00000000 */ nop
|
||||
/* 06CF94 8006C394 3C0400AA */ lui $a0, (0x00AAAA82 >> 16) # lui $a0, 0xaa
|
||||
/* 06CF98 8006C398 0C033490 */ jal __osSpSetStatus
|
||||
|
||||
@@ -2,11 +2,11 @@ glabel osInitialize
|
||||
/* 0CD1A0 800CC5A0 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 0CD1A4 800CC5A4 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0CD1A8 800CC5A8 240E0001 */ li $t6, 1
|
||||
/* 0CD1AC 800CC5AC 3C018013 */ lui $at, %hi(D_8012CCC0) # $at, 0x8013
|
||||
/* 0CD1AC 800CC5AC 3C018013 */ lui $at, %hi(gThread30Stack) # $at, 0x8013
|
||||
/* 0CD1B0 800CC5B0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0CD1B4 800CC5B4 AFA00038 */ sw $zero, 0x38($sp)
|
||||
/* 0CD1B8 800CC5B8 0C03515C */ jal __osGetSR
|
||||
/* 0CD1BC 800CC5BC AC2ECCC0 */ sw $t6, %lo(D_8012CCC0)($at)
|
||||
/* 0CD1BC 800CC5BC AC2ECCC0 */ sw $t6, %lo(gThread30Stack)($at)
|
||||
/* 0CD1C0 800CC5C0 00408025 */ move $s0, $v0
|
||||
/* 0CD1C4 800CC5C4 3C012000 */ lui $at, 0x2000
|
||||
/* 0CD1C8 800CC5C8 0C035158 */ jal __osSetSR
|
||||
|
||||
@@ -15,7 +15,7 @@ OSDevMgr __osViDevMgr = {0};
|
||||
#define OS_VIM_STACKSIZE 4096
|
||||
u8 viThreadStack[2960]; // viThreadStack[OS_VIM_STACKSIZE];
|
||||
|
||||
s32 D_8012CCC0;
|
||||
s32 gThread30Stack;
|
||||
|
||||
extern OSThread viThread;
|
||||
extern OSMesgQueue viEventQueue;
|
||||
|
||||
+8
-8
@@ -2947,7 +2947,7 @@ s32 menu_character_select_loop(s32 arg0) {
|
||||
gIsInTracksMode = 1;
|
||||
if (phi_t3 >= gNumberOfActivePlayers) {
|
||||
func_80000B18();
|
||||
func_8006E2E8(0x27, -1, 0);
|
||||
load_level_for_menu(0x27, -1, 0);
|
||||
if (gNumberOfActivePlayers == 1 && !gPlayerHasSeenCautionMenu) {
|
||||
menu_init(MENU_CAUTION);
|
||||
} else {
|
||||
@@ -3314,7 +3314,7 @@ void func_80090ED8(s32 arg0);
|
||||
void func_80090F30(s32 arg0);
|
||||
void func_80092188(s32 arg0);
|
||||
void func_8008E4EC(void);
|
||||
s32 func_800C73E0(void);
|
||||
s32 get_thread30_level_id_to_load(void);
|
||||
void set_relative_volume_for_music(u8 arg0);
|
||||
|
||||
s32 menu_track_select_loop(s32 arg0) {
|
||||
@@ -3324,7 +3324,7 @@ s32 menu_track_select_loop(s32 arg0) {
|
||||
|
||||
settings = get_settings();
|
||||
D_801263BC = (D_801263BC + arg0) & 0x3F;
|
||||
if (func_800C73E0() == 0 && gMenuDelay != 0) {
|
||||
if (get_thread30_level_id_to_load() == 0 && gMenuDelay != 0) {
|
||||
if (gMenuDelay < 0) {
|
||||
gMenuDelay -= arg0;
|
||||
} else {
|
||||
@@ -3368,12 +3368,12 @@ s32 menu_track_select_loop(s32 arg0) {
|
||||
if (is_tt_unlocked()) {
|
||||
phi_a2 ^= 3;
|
||||
}
|
||||
func_8006E2E8(0x16, -1, phi_a2);
|
||||
load_level_for_menu(0x16, -1, phi_a2);
|
||||
func_8008AEB4(0, NULL);
|
||||
menu_init(MENU_CHARACTER_SELECT);
|
||||
return 0;
|
||||
}
|
||||
func_8006E2E8(0x27, -1, 0);
|
||||
load_level_for_menu(0x27, -1, 0);
|
||||
menu_init(MENU_GAME_SELECT);
|
||||
return 0;
|
||||
}
|
||||
@@ -3525,7 +3525,7 @@ block_7:
|
||||
gMenuDelay = 0;
|
||||
D_800E0980 = 0x1E;
|
||||
func_800C4170(2);
|
||||
func_8006E2E8(temp_s0, -1, 1);
|
||||
load_level_for_menu(temp_s0, -1, 1);
|
||||
}
|
||||
} else {
|
||||
goto block_7;
|
||||
@@ -3836,7 +3836,7 @@ void menu_trophy_race_round_init(void) {
|
||||
}
|
||||
|
||||
func_8006DB14(func_8006B0AC(temp));
|
||||
func_8006E2E8(temp, -1, 1);
|
||||
load_level_for_menu(temp, -1, 1);
|
||||
|
||||
gMenuDelay = 0;
|
||||
D_800E0980 = 10;
|
||||
@@ -3969,7 +3969,7 @@ void menu_23_init(void) {
|
||||
func_8009C674(D_800E1768);
|
||||
func_80094604();
|
||||
}
|
||||
func_8006E2E8(D_801267EC[0], D_801267EC[1], D_801267EC[2]);
|
||||
load_level_for_menu(D_801267EC[0], D_801267EC[1], D_801267EC[2]);
|
||||
gMenuDelay = 0;
|
||||
D_801263E0 = 0;
|
||||
}
|
||||
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
/* The comment below is needed for this file to be picked up by generate_ld */
|
||||
/* RAM_POS: 0x800C7350 */
|
||||
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
#include "libultra_internal.h"
|
||||
|
||||
/************ .data ************/
|
||||
|
||||
s32 gThread30NeedToLoadLevel = FALSE;
|
||||
s32 gThread30LevelIdToLoad = -1;
|
||||
s32 gThread30CutsceneIdToLoad = -1;
|
||||
s32 gThread30LoadDelay = 0;
|
||||
|
||||
/*******************************/
|
||||
|
||||
/************ .bss ************/
|
||||
|
||||
// Used for __osException, but .bss file order is weird. Need to fix later.
|
||||
s32 D_8012AAE0[4];
|
||||
|
||||
OSThread gThread30;
|
||||
OSMesgQueue gThread30MesgQueue;
|
||||
OSMesg gThread30Messages[2];
|
||||
|
||||
s32 D_8012ACC0[1305]; // Unused? Might be another stack.
|
||||
|
||||
// Currently defined in osViMgr.c
|
||||
// There are a few stacks defined next to each other. Maybe they are in their own separate file?
|
||||
extern void *gThread30Stack;
|
||||
|
||||
/*****************************/
|
||||
|
||||
void thread30(void *arg);
|
||||
|
||||
/**
|
||||
* Initalizes and starts thread30()
|
||||
*/
|
||||
void create_and_start_thread30(void) {
|
||||
osCreateMesgQueue(&gThread30MesgQueue, &gThread30Messages, 2);
|
||||
osCreateThread(&gThread30, 30, &thread30, NULL, &gThread30Stack, 8);
|
||||
osStartThread(&gThread30);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop thread30()
|
||||
*/
|
||||
void stop_thread30(void) {
|
||||
osStopThread(&gThread30);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value in gThread30NeedToLoadLevel.
|
||||
*/
|
||||
s32 get_thread30_level_id_to_load(void) {
|
||||
return gThread30NeedToLoadLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* If gThread30NeedToLoadLevel is set, then decrement gThread30LoadDelay. If gThread30LoadDelay is 0,
|
||||
* then signal thread30 to load a level.
|
||||
* Unused.
|
||||
*/
|
||||
void tick_thread30(void) {
|
||||
if (gThread30NeedToLoadLevel && gThread30LoadDelay > 0) {
|
||||
gThread30LoadDelay--;
|
||||
if (gThread30LoadDelay == 0) {
|
||||
// Signal thread30 that the level needs to load.
|
||||
osSendMesg(&gThread30MesgQueue, OS_MESG_TYPE_LOOPBACK, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value in gThread30LoadDelay.
|
||||
* Unused.
|
||||
*/
|
||||
s32 get_thread30_load_delay(void) {
|
||||
return gThread30LoadDelay;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a level id and cutscene id to be loaded. Used in the tracks menu & credits menu.
|
||||
* Returns 1 if successful, or 0 if gThread30NeedToLoadLevel was already set.
|
||||
*/
|
||||
s32 set_level_to_load_in_background(s32 levelId, s32 cutsceneId) {
|
||||
if (!gThread30NeedToLoadLevel) {
|
||||
gThread30LoadDelay = 4;
|
||||
gThread30LevelIdToLoad = levelId;
|
||||
gThread30CutsceneIdToLoad = cutsceneId;
|
||||
gThread30NeedToLoadLevel = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Waits for a signal from the main thread to load a level asynchronously.
|
||||
*/
|
||||
void thread30(void *arg) {
|
||||
OSMesg mesg = 0;
|
||||
while(TRUE){
|
||||
// Wait for a signal from the main thread
|
||||
do {
|
||||
osRecvMesg(&gThread30MesgQueue, &mesg, 1);
|
||||
} while(mesg != (OSMesg)OS_MESG_TYPE_LOOPBACK);
|
||||
load_level_for_menu(gThread30LevelIdToLoad, -1, gThread30CutsceneIdToLoad); // -1 means there won't be any racers loaded.
|
||||
gThread30NeedToLoadLevel = FALSE;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user