Match audio/external.c BSS segment (#470)

* Match audio/external.c BSS segment

Also fix a misnamed function found in audio/heap, used in
 audio/load

* Match audio/seqplayer .data section

* Match func_800C76C0

That was the last function referencing some fake variables, so it
 should be possible to match audio/external's .data section as
 well

* Match audio/external's .data section

The only thing in src/audio left to be matched is audio/external's
 .text section.

There's probably some beautifying that could be done to data/sound_data,
 but that is a future problem

Signed-off-by: Taggerung <tyler.taggerung@email.com>
This commit is contained in:
Tyler McGavran 2023-10-19 14:31:33 -04:00 committed by GitHub
parent 134e126cd9
commit 318bf3a6c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 378 additions and 1668 deletions

View File

@ -1,33 +0,0 @@
.include "macros.inc"
.section .bss
glabel sNumSoundsInBank
.skip 8
glabel D_80192AB8
.skip 384
glabel D_80192C38
.skip 4
glabel sSoundBankDisabled # 0x80192C3C
.skip 12
glabel D_80192C48
.skip 96
glabel D_80192CA8
.skip 30
glabel D_80192CC6
.skip 10
glabel D_80192CD0
.skip 1024
glabel D_801930D0
.skip 584
glabel D_80193318
.skip 1192

View File

@ -1,941 +0,0 @@
glabel func_800C76C0
/* 0C82C0 800C76C0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0C82C4 800C76C4 308E00FF */ andi $t6, $a0, 0xff
/* 0C82C8 800C76C8 3C19800F */ lui $t9, %hi(D_800E9EA4) # $t9, 0x800f
/* 0C82CC 800C76CC 27399EA4 */ addiu $t9, %lo(D_800E9EA4) # addiu $t9, $t9, -0x615c
/* 0C82D0 800C76D0 000E7880 */ sll $t7, $t6, 2
/* 0C82D4 800C76D4 01F94021 */ addu $t0, $t7, $t9
/* 0C82D8 800C76D8 AFBF002C */ sw $ra, 0x2c($sp)
/* 0C82DC 800C76DC AFBE0028 */ sw $fp, 0x28($sp)
/* 0C82E0 800C76E0 AFA40040 */ sw $a0, 0x40($sp)
/* 0C82E4 800C76E4 AFA80034 */ sw $t0, 0x34($sp)
/* 0C82E8 800C76E8 AFAF0038 */ sw $t7, 0x38($sp)
/* 0C82EC 800C76EC 8D030000 */ lw $v1, ($t0)
/* 0C82F0 800C76F0 01C02025 */ move $a0, $t6
/* 0C82F4 800C76F4 03A0F025 */ move $fp, $sp
/* 0C82F8 800C76F8 1060035B */ beqz $v1, .L800C8468
/* 0C82FC 800C76FC 286102BC */ slti $at, $v1, 0x2bc
/* 0C8300 800C7700 10200003 */ beqz $at, .L800C7710
/* 0C8304 800C7704 24690001 */ addiu $t1, $v1, 1
/* 0C8308 800C7708 AD090000 */ sw $t1, ($t0)
/* 0C830C 800C770C 01201825 */ move $v1, $t1
.L800C7710:
/* 0C8310 800C7710 24010002 */ li $at, 2
/* 0C8314 800C7714 14610218 */ bne $v1, $at, .L800C7F78
/* 0C8318 800C7718 A3C40043 */ sb $a0, 0x43($fp)
/* 0C831C 800C771C 3C050100 */ lui $a1, (0x0100FA28 >> 16) # lui $a1, 0x100
/* 0C8320 800C7720 34A5FA28 */ ori $a1, (0x0100FA28 & 0xFFFF) # ori $a1, $a1, 0xfa28
/* 0C8324 800C7724 0C032406 */ jal func_800C9018
/* 0C8328 800C7728 A3C40043 */ sb $a0, 0x43($fp)
/* 0C832C 800C772C 3C050100 */ lui $a1, (0x0100FF2C >> 16) # lui $a1, 0x100
/* 0C8330 800C7730 34A5FF2C */ ori $a1, (0x0100FF2C & 0xFFFF) # ori $a1, $a1, 0xff2c
/* 0C8334 800C7734 0C032406 */ jal func_800C9018
/* 0C8338 800C7738 93C40043 */ lbu $a0, 0x43($fp)
/* 0C833C 800C773C 3C050100 */ lui $a1, (0x0100FA4C >> 16) # lui $a1, 0x100
/* 0C8340 800C7740 34A5FA4C */ ori $a1, (0x0100FA4C & 0xFFFF) # ori $a1, $a1, 0xfa4c
/* 0C8344 800C7744 0C032406 */ jal func_800C9018
/* 0C8348 800C7748 93C40043 */ lbu $a0, 0x43($fp)
/* 0C834C 800C774C 93CA0043 */ lbu $t2, 0x43($fp)
/* 0C8350 800C7750 8FCD0038 */ lw $t5, 0x38($fp)
/* 0C8354 800C7754 3C0C800F */ lui $t4, %hi(D_800E9F7C) # $t4, 0x800f
/* 0C8358 800C7758 000A5900 */ sll $t3, $t2, 4
/* 0C835C 800C775C 3C05800F */ lui $a1, %hi(D_800E9E94)
/* 0C8360 800C7760 016A5823 */ subu $t3, $t3, $t2
/* 0C8364 800C7764 000B5880 */ sll $t3, $t3, 2
/* 0C8368 800C7768 258C9F7C */ addiu $t4, %lo(D_800E9F7C) # addiu $t4, $t4, -0x6084
/* 0C836C 800C776C 00AD2821 */ addu $a1, $a1, $t5
/* 0C8370 800C7770 8CA59E94 */ lw $a1, %lo(D_800E9E94)($a1)
/* 0C8374 800C7774 0C03155E */ jal func_800C5578
/* 0C8378 800C7778 016C2021 */ addu $a0, $t3, $t4
/* 0C837C 800C777C 8FCE0038 */ lw $t6, 0x38($fp)
/* 0C8380 800C7780 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 0C8384 800C7784 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 0C8388 800C7788 3C01800F */ lui $at, %hi(D_800E9E74)
/* 0C838C 800C778C 002E0821 */ addu $at, $at, $t6
/* 0C8390 800C7790 1040000D */ beqz $v0, .L800C77C8
/* 0C8394 800C7794 AC209E74 */ sw $zero, %lo(D_800E9E74)($at)
/* 0C8398 800C7798 24070001 */ li $a3, 1
/* 0C839C 800C779C 104700AC */ beq $v0, $a3, .L800C7A50
/* 0C83A0 800C77A0 3C041001 */ lui $a0, 0x1001
/* 0C83A4 800C77A4 24010002 */ li $at, 2
/* 0C83A8 800C77A8 104100D5 */ beq $v0, $at, .L800C7B00
/* 0C83AC 800C77AC 3C0B800F */ lui $t3, %hi(D_800EA0EC)
/* 0C83B0 800C77B0 24010003 */ li $at, 3
/* 0C83B4 800C77B4 10410165 */ beq $v0, $at, .L800C7D4C
/* 0C83B8 800C77B8 00000000 */ nop
/* 0C83BC 800C77BC 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C83C0 800C77C0 100001ED */ b .L800C7F78
/* 0C83C4 800C77C4 8DE30000 */ lw $v1, ($t7)
.L800C77C8:
/* 0C83C8 800C77C8 93D80043 */ lbu $t8, 0x43($fp)
/* 0C83CC 800C77CC 3C19800F */ lui $t9, %hi(D_800EA0EC) # $t9, 0x800f
/* 0C83D0 800C77D0 2739A0EC */ addiu $t9, %lo(D_800EA0EC) # addiu $t9, $t9, -0x5f14
/* 0C83D4 800C77D4 24080002 */ li $t0, 2
/* 0C83D8 800C77D8 03191021 */ addu $v0, $t8, $t9
/* 0C83DC 800C77DC A0480000 */ sb $t0, ($v0)
/* 0C83E0 800C77E0 3C051900 */ lui $a1, (0x1900F103 >> 16) # lui $a1, 0x1900
/* 0C83E4 800C77E4 34A5F103 */ ori $a1, (0x1900F103 & 0xFFFF) # ori $a1, $a1, 0xf103
/* 0C83E8 800C77E8 AFC20030 */ sw $v0, 0x30($fp)
/* 0C83EC 800C77EC 0C032418 */ jal func_800C9060
/* 0C83F0 800C77F0 93C40043 */ lbu $a0, 0x43($fp)
/* 0C83F4 800C77F4 3C09800F */ lui $t1, %hi(D_800EA1C0) # $t1, 0x800f
/* 0C83F8 800C77F8 9129A1C0 */ lbu $t1, %lo(D_800EA1C0)($t1)
/* 0C83FC 800C77FC 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C8400 800C7800 240E0002 */ li $t6, 2
/* 0C8404 800C7804 55200037 */ bnel $t1, $zero, .L800C78E4
/* 0C8408 800C7808 8FCF0030 */ lw $t7, 0x30($fp)
/* 0C840C 800C780C 0C030D12 */ jal func_800C3448
/* 0C8410 800C7810 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8414 800C7814 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C8418 800C7818 0C030D12 */ jal func_800C3448
/* 0C841C 800C781C 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8420 800C7820 0C03149E */ jal func_800C5278
/* 0C8424 800C7824 24040005 */ li $a0, 5
/* 0C8428 800C7828 93CA0043 */ lbu $t2, 0x43($fp)
/* 0C842C 800C782C 3C02800F */ lui $v0, %hi(gPlayers+0x4)
/* 0C8430 800C7830 000A58C0 */ sll $t3, $t2, 3
/* 0C8434 800C7834 016A5823 */ subu $t3, $t3, $t2
/* 0C8438 800C7838 000B5900 */ sll $t3, $t3, 4
/* 0C843C 800C783C 016A5823 */ subu $t3, $t3, $t2
/* 0C8440 800C7840 000B5880 */ sll $t3, $t3, 2
/* 0C8444 800C7844 016A5823 */ subu $t3, $t3, $t2
/* 0C8448 800C7848 000B58C0 */ sll $t3, $t3, 3
/* 0C844C 800C784C 004B1021 */ addu $v0, $v0, $t3
/* 0C8450 800C7850 84426994 */ lh $v0, %lo(gPlayers+0x4)($v0)
/* 0C8454 800C7854 1440000D */ bnez $v0, .L800C788C
/* 0C8458 800C7858 28410004 */ slti $at, $v0, 4
/* 0C845C 800C785C 0C0325F1 */ jal func_800C97C4
/* 0C8460 800C7860 01402025 */ move $a0, $t2
/* 0C8464 800C7864 240C0002 */ li $t4, 2
/* 0C8468 800C7868 3C01800F */ lui $at, %hi(D_800EA0F0) # $at, 0x800f
/* 0C846C 800C786C A02CA0F0 */ sb $t4, %lo(D_800EA0F0)($at)
/* 0C8470 800C7870 0C0326A2 */ jal func_800C9A88
/* 0C8474 800C7874 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8478 800C7878 2404000D */ li $a0, 13
/* 0C847C 800C787C 0C032905 */ jal func_800CA414
/* 0C8480 800C7880 24050010 */ li $a1, 16
/* 0C8484 800C7884 10000070 */ b .L800C7A48
/* 0C8488 800C7888 8FCD0034 */ lw $t5, 0x34($fp)
.L800C788C:
/* 0C848C 800C788C 1020000D */ beqz $at, .L800C78C4
/* 0C8490 800C7890 3C04C160 */ lui $a0, (0xC1606400 >> 16) # lui $a0, 0xc160
/* 0C8494 800C7894 0C0325F1 */ jal func_800C97C4
/* 0C8498 800C7898 93C40043 */ lbu $a0, 0x43($fp)
/* 0C849C 800C789C 240D0002 */ li $t5, 2
/* 0C84A0 800C78A0 3C01800F */ lui $at, %hi(D_800EA0F0) # $at, 0x800f
/* 0C84A4 800C78A4 A02DA0F0 */ sb $t5, %lo(D_800EA0F0)($at)
/* 0C84A8 800C78A8 0C0326A2 */ jal func_800C9A88
/* 0C84AC 800C78AC 93C40043 */ lbu $a0, 0x43($fp)
/* 0C84B0 800C78B0 2404000E */ li $a0, 14
/* 0C84B4 800C78B4 0C032905 */ jal func_800CA414
/* 0C84B8 800C78B8 24050010 */ li $a1, 16
/* 0C84BC 800C78BC 10000062 */ b .L800C7A48
/* 0C84C0 800C78C0 8FCD0034 */ lw $t5, 0x34($fp)
.L800C78C4:
/* 0C84C4 800C78C4 0C030D12 */ jal func_800C3448
/* 0C84C8 800C78C8 34846400 */ ori $a0, (0xC1606400 & 0xFFFF) # ori $a0, $a0, 0x6400
/* 0C84CC 800C78CC 2404000F */ li $a0, 15
/* 0C84D0 800C78D0 0C032905 */ jal func_800CA414
/* 0C84D4 800C78D4 24050018 */ li $a1, 24
/* 0C84D8 800C78D8 1000005B */ b .L800C7A48
/* 0C84DC 800C78DC 8FCD0034 */ lw $t5, 0x34($fp)
/* 0C84E0 800C78E0 8FCF0030 */ lw $t7, 0x30($fp)
.L800C78E4:
/* 0C84E4 800C78E4 3C051900 */ lui $a1, (0x1900F103 >> 16) # lui $a1, 0x1900
/* 0C84E8 800C78E8 34A5F103 */ ori $a1, (0x1900F103 & 0xFFFF) # ori $a1, $a1, 0xf103
/* 0C84EC 800C78EC A1EE0000 */ sb $t6, ($t7)
/* 0C84F0 800C78F0 0C032418 */ jal func_800C9060
/* 0C84F4 800C78F4 93C40043 */ lbu $a0, 0x43($fp)
/* 0C84F8 800C78F8 93D80043 */ lbu $t8, 0x43($fp)
/* 0C84FC 800C78FC 3C02800F */ lui $v0, %hi(gPlayers+0x4)
/* 0C8500 800C7900 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C8504 800C7904 0018C8C0 */ sll $t9, $t8, 3
/* 0C8508 800C7908 0338C823 */ subu $t9, $t9, $t8
/* 0C850C 800C790C 0019C900 */ sll $t9, $t9, 4
/* 0C8510 800C7910 0338C823 */ subu $t9, $t9, $t8
/* 0C8514 800C7914 0019C880 */ sll $t9, $t9, 2
/* 0C8518 800C7918 0338C823 */ subu $t9, $t9, $t8
/* 0C851C 800C791C 0019C8C0 */ sll $t9, $t9, 3
/* 0C8520 800C7920 00591021 */ addu $v0, $v0, $t9
/* 0C8524 800C7924 84426994 */ lh $v0, %lo(gPlayers+0x4)($v0)
/* 0C8528 800C7928 14400013 */ bnez $v0, .L800C7978
/* 0C852C 800C792C 28410004 */ slti $at, $v0, 4
/* 0C8530 800C7930 0C030D12 */ jal func_800C3448
/* 0C8534 800C7934 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8538 800C7938 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C853C 800C793C 0C030D12 */ jal func_800C3448
/* 0C8540 800C7940 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8544 800C7944 0C0325F1 */ jal func_800C97C4
/* 0C8548 800C7948 93C40043 */ lbu $a0, 0x43($fp)
/* 0C854C 800C794C 24080002 */ li $t0, 2
/* 0C8550 800C7950 3C01800F */ lui $at, %hi(D_800EA0F0) # $at, 0x800f
/* 0C8554 800C7954 A028A0F0 */ sb $t0, %lo(D_800EA0F0)($at)
/* 0C8558 800C7958 0C0326A2 */ jal func_800C9A88
/* 0C855C 800C795C 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8560 800C7960 2404000D */ li $a0, 13
/* 0C8564 800C7964 0C032905 */ jal func_800CA414
/* 0C8568 800C7968 24050010 */ li $a1, 16
/* 0C856C 800C796C 3C02800F */ lui $v0, %hi(D_800EA104) # $v0, 0x800f
/* 0C8570 800C7970 1000002B */ b .L800C7A20
/* 0C8574 800C7974 9042A104 */ lbu $v0, %lo(D_800EA104)($v0)
.L800C7978:
/* 0C8578 800C7978 10200018 */ beqz $at, .L800C79DC
/* 0C857C 800C797C 3C02800F */ lui $v0, %hi(D_800EA104)
/* 0C8580 800C7980 3C09800F */ lui $t1, %hi(D_800EA104) # $t1, 0x800f
/* 0C8584 800C7984 9129A104 */ lbu $t1, %lo(D_800EA104)($t1)
/* 0C8588 800C7988 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C858C 800C798C 15200006 */ bnez $t1, .L800C79A8
/* 0C8590 800C7990 00000000 */ nop
/* 0C8594 800C7994 0C030D12 */ jal func_800C3448
/* 0C8598 800C7998 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C859C 800C799C 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C85A0 800C79A0 0C030D12 */ jal func_800C3448
/* 0C85A4 800C79A4 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
.L800C79A8:
/* 0C85A8 800C79A8 0C0325F1 */ jal func_800C97C4
/* 0C85AC 800C79AC 93C40043 */ lbu $a0, 0x43($fp)
/* 0C85B0 800C79B0 240B0002 */ li $t3, 2
/* 0C85B4 800C79B4 3C01800F */ lui $at, %hi(D_800EA0F0) # $at, 0x800f
/* 0C85B8 800C79B8 A02BA0F0 */ sb $t3, %lo(D_800EA0F0)($at)
/* 0C85BC 800C79BC 0C0326A2 */ jal func_800C9A88
/* 0C85C0 800C79C0 93C40043 */ lbu $a0, 0x43($fp)
/* 0C85C4 800C79C4 2404000E */ li $a0, 14
/* 0C85C8 800C79C8 0C032905 */ jal func_800CA414
/* 0C85CC 800C79CC 24050010 */ li $a1, 16
/* 0C85D0 800C79D0 3C02800F */ lui $v0, %hi(D_800EA104) # $v0, 0x800f
/* 0C85D4 800C79D4 10000012 */ b .L800C7A20
/* 0C85D8 800C79D8 9042A104 */ lbu $v0, %lo(D_800EA104)($v0)
.L800C79DC:
/* 0C85DC 800C79DC 9042A104 */ lbu $v0, %lo(D_800EA104)($v0)
/* 0C85E0 800C79E0 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C85E4 800C79E4 1440000E */ bnez $v0, .L800C7A20
/* 0C85E8 800C79E8 00000000 */ nop
/* 0C85EC 800C79EC 0C030D12 */ jal func_800C3448
/* 0C85F0 800C79F0 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C85F4 800C79F4 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C85F8 800C79F8 0C030D12 */ jal func_800C3448
/* 0C85FC 800C79FC 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8600 800C7A00 3C04C160 */ lui $a0, (0xC16000FF >> 16) # lui $a0, 0xc160
/* 0C8604 800C7A04 0C030D12 */ jal func_800C3448
/* 0C8608 800C7A08 34846400 */ ori $a0, (0xC1606400 & 0xFFFF) # ori $a0, $a0, 0x6400
/* 0C860C 800C7A0C 2404000F */ li $a0, 15
/* 0C8610 800C7A10 0C032905 */ jal func_800CA414
/* 0C8614 800C7A14 24050018 */ li $a1, 24
/* 0C8618 800C7A18 3C02800F */ lui $v0, %hi(D_800EA104) # $v0, 0x800f
/* 0C861C 800C7A1C 9042A104 */ lbu $v0, %lo(D_800EA104)($v0)
.L800C7A20:
/* 0C8620 800C7A20 14400006 */ bnez $v0, .L800C7A3C
/* 0C8624 800C7A24 00000000 */ nop
/* 0C8628 800C7A28 8FCA0030 */ lw $t2, 0x30($fp)
/* 0C862C 800C7A2C 24010001 */ li $at, 1
/* 0C8630 800C7A30 914C0000 */ lbu $t4, ($t2)
/* 0C8634 800C7A34 51810004 */ beql $t4, $at, .L800C7A48
/* 0C8638 800C7A38 8FCD0034 */ lw $t5, 0x34($fp)
.L800C7A3C:
/* 0C863C 800C7A3C 0C03149E */ jal func_800C5278
/* 0C8640 800C7A40 24040005 */ li $a0, 5
/* 0C8644 800C7A44 8FCD0034 */ lw $t5, 0x34($fp)
.L800C7A48:
/* 0C8648 800C7A48 1000014B */ b .L800C7F78
/* 0C864C 800C7A4C 8DA30000 */ lw $v1, ($t5)
.L800C7A50:
/* 0C8650 800C7A50 0C030D12 */ jal func_800C3448
/* 0C8654 800C7A54 348400FF */ ori $a0, (0xC16000FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8658 800C7A58 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C865C 800C7A5C 0C030D12 */ jal func_800C3448
/* 0C8660 800C7A60 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8664 800C7A64 0C0325F1 */ jal func_800C97C4
/* 0C8668 800C7A68 93C40043 */ lbu $a0, 0x43($fp)
/* 0C866C 800C7A6C 240E0002 */ li $t6, 2
/* 0C8670 800C7A70 3C01800F */ lui $at, %hi(D_800EA0F0) # $at, 0x800f
/* 0C8674 800C7A74 A02EA0F0 */ sb $t6, %lo(D_800EA0F0)($at)
/* 0C8678 800C7A78 0C0326A2 */ jal func_800C9A88
/* 0C867C 800C7A7C 00002025 */ move $a0, $zero
/* 0C8680 800C7A80 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8684 800C7A84 3C01800F */ lui $at, %hi(D_800EA0EC)
/* 0C8688 800C7A88 240F0002 */ li $t7, 2
/* 0C868C 800C7A8C 3C051900 */ lui $a1, (0x1900F103 >> 16) # lui $a1, 0x1900
/* 0C8690 800C7A90 00240821 */ addu $at, $at, $a0
/* 0C8694 800C7A94 A02FA0EC */ sb $t7, %lo(D_800EA0EC)($at)
/* 0C8698 800C7A98 0C032418 */ jal func_800C9060
/* 0C869C 800C7A9C 34A5F103 */ ori $a1, (0x1900F103 & 0xFFFF) # ori $a1, $a1, 0xf103
/* 0C86A0 800C7AA0 3C198016 */ lui $t9, %hi(D_801657E5) # $t9, 0x8016
/* 0C86A4 800C7AA4 833957E5 */ lb $t9, %lo(D_801657E5)($t9)
/* 0C86A8 800C7AA8 24010001 */ li $at, 1
/* 0C86AC 800C7AAC 2404000D */ li $a0, 13
/* 0C86B0 800C7AB0 17210005 */ bne $t9, $at, .L800C7AC8
/* 0C86B4 800C7AB4 3C088019 */ lui $t0, %hi(D_8018ED90) # $t0, 0x8019
/* 0C86B8 800C7AB8 0C032905 */ jal func_800CA414
/* 0C86BC 800C7ABC 24050010 */ li $a1, 16
/* 0C86C0 800C7AC0 1000000D */ b .L800C7AF8
/* 0C86C4 800C7AC4 8FC90034 */ lw $t1, 0x34($fp)
.L800C7AC8:
/* 0C86C8 800C7AC8 9108ED90 */ lbu $t0, %lo(D_8018ED90)($t0)
/* 0C86CC 800C7ACC 24010001 */ li $at, 1
/* 0C86D0 800C7AD0 24050010 */ li $a1, 16
/* 0C86D4 800C7AD4 15010005 */ bne $t0, $at, .L800C7AEC
/* 0C86D8 800C7AD8 3C040164 */ lui $a0, (0x01640010 >> 16) # lui $a0, 0x164
/* 0C86DC 800C7ADC 0C032905 */ jal func_800CA414
/* 0C86E0 800C7AE0 2404000E */ li $a0, 14
/* 0C86E4 800C7AE4 10000004 */ b .L800C7AF8
/* 0C86E8 800C7AE8 8FC90034 */ lw $t1, 0x34($fp)
.L800C7AEC:
/* 0C86EC 800C7AEC 0C030D12 */ jal func_800C3448
/* 0C86F0 800C7AF0 34840010 */ ori $a0, (0x01640010 & 0xFFFF) # ori $a0, $a0, 0x10
/* 0C86F4 800C7AF4 8FC90034 */ lw $t1, 0x34($fp)
.L800C7AF8:
/* 0C86F8 800C7AF8 1000011F */ b .L800C7F78
/* 0C86FC 800C7AFC 8D230000 */ lw $v1, ($t1)
.L800C7B00:
/* 0C8700 800C7B00 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8704 800C7B04 256BA0EC */ addiu $t3, $t3, %lo(D_800EA0EC)
/* 0C8708 800C7B08 240A0002 */ li $t2, 2
/* 0C870C 800C7B0C 008B1021 */ addu $v0, $a0, $t3
/* 0C8710 800C7B10 A04A0000 */ sb $t2, ($v0)
/* 0C8714 800C7B14 3C051900 */ lui $a1, (0x1900F103 >> 16) # lui $a1, 0x1900
/* 0C8718 800C7B18 34A5F103 */ ori $a1, (0x1900F103 & 0xFFFF) # ori $a1, $a1, 0xf103
/* 0C871C 800C7B1C 0C032418 */ jal func_800C9060
/* 0C8720 800C7B20 AFC20030 */ sw $v0, 0x30($fp)
/* 0C8724 800C7B24 3C02800F */ lui $v0, %hi(D_800EA1C0) # $v0, 0x800f
/* 0C8728 800C7B28 9042A1C0 */ lbu $v0, %lo(D_800EA1C0)($v0)
/* 0C872C 800C7B2C 24010001 */ li $at, 1
/* 0C8730 800C7B30 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C8734 800C7B34 10410007 */ beq $v0, $at, .L800C7B54
/* 0C8738 800C7B38 24010002 */ li $at, 2
/* 0C873C 800C7B3C 10410016 */ beq $v0, $at, .L800C7B98
/* 0C8740 800C7B40 24010003 */ li $at, 3
/* 0C8744 800C7B44 10410041 */ beq $v0, $at, .L800C7C4C
/* 0C8748 800C7B48 00000000 */ nop
/* 0C874C 800C7B4C 1000007D */ b .L800C7D44
/* 0C8750 800C7B50 8FCF0034 */ lw $t7, 0x34($fp)
.L800C7B54:
/* 0C8754 800C7B54 0C030D12 */ jal func_800C3448
/* 0C8758 800C7B58 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C875C 800C7B5C 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C8760 800C7B60 0C030D12 */ jal func_800C3448
/* 0C8764 800C7B64 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8768 800C7B68 0C0325F1 */ jal func_800C97C4
/* 0C876C 800C7B6C 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8770 800C7B70 240C0002 */ li $t4, 2
/* 0C8774 800C7B74 3C01800F */ lui $at, %hi(D_800EA0F0) # $at, 0x800f
/* 0C8778 800C7B78 A02CA0F0 */ sb $t4, %lo(D_800EA0F0)($at)
/* 0C877C 800C7B7C 0C0326A2 */ jal func_800C9A88
/* 0C8780 800C7B80 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8784 800C7B84 2404000D */ li $a0, 13
/* 0C8788 800C7B88 0C032905 */ jal func_800CA414
/* 0C878C 800C7B8C 24050017 */ li $a1, 23
/* 0C8790 800C7B90 1000006C */ b .L800C7D44
/* 0C8794 800C7B94 8FCF0034 */ lw $t7, 0x34($fp)
.L800C7B98:
/* 0C8798 800C7B98 3C02800F */ lui $v0, %hi(D_800EA104) # $v0, 0x800f
/* 0C879C 800C7B9C 9042A104 */ lbu $v0, %lo(D_800EA104)($v0)
/* 0C87A0 800C7BA0 54400014 */ bnel $v0, $zero, .L800C7BF4
/* 0C87A4 800C7BA4 24010001 */ li $at, 1
/* 0C87A8 800C7BA8 8FCD0030 */ lw $t5, 0x30($fp)
/* 0C87AC 800C7BAC 24010001 */ li $at, 1
/* 0C87B0 800C7BB0 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C87B4 800C7BB4 91AE0000 */ lbu $t6, ($t5)
/* 0C87B8 800C7BB8 55C1000E */ bnel $t6, $at, .L800C7BF4
/* 0C87BC 800C7BBC 24010001 */ li $at, 1
/* 0C87C0 800C7BC0 0C030D12 */ jal func_800C3448
/* 0C87C4 800C7BC4 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C87C8 800C7BC8 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C87CC 800C7BCC 0C030D12 */ jal func_800C3448
/* 0C87D0 800C7BD0 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C87D4 800C7BD4 2404000D */ li $a0, 13
/* 0C87D8 800C7BD8 0C032905 */ jal func_800CA414
/* 0C87DC 800C7BDC 24050017 */ li $a1, 23
/* 0C87E0 800C7BE0 240F0001 */ li $t7, 1
/* 0C87E4 800C7BE4 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C87E8 800C7BE8 10000055 */ b .L800C7D40
/* 0C87EC 800C7BEC A02FA104 */ sb $t7, %lo(D_800EA104)($at)
/* 0C87F0 800C7BF0 24010001 */ li $at, 1
.L800C7BF4:
/* 0C87F4 800C7BF4 54410053 */ bnel $v0, $at, .L800C7D44
/* 0C87F8 800C7BF8 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C87FC 800C7BFC 8FD80030 */ lw $t8, 0x30($fp)
/* 0C8800 800C7C00 24010001 */ li $at, 1
/* 0C8804 800C7C04 93190000 */ lbu $t9, ($t8)
/* 0C8808 800C7C08 5721004E */ bnel $t9, $at, .L800C7D44
/* 0C880C 800C7C0C 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8810 800C7C10 0C03149E */ jal func_800C5278
/* 0C8814 800C7C14 24040005 */ li $a0, 5
/* 0C8818 800C7C18 0C030D42 */ jal func_800C3508
/* 0C881C 800C7C1C 24040001 */ li $a0, 1
/* 0C8820 800C7C20 2401000D */ li $at, 13
/* 0C8824 800C7C24 10410005 */ beq $v0, $at, .L800C7C3C
/* 0C8828 800C7C28 2404000E */ li $a0, 14
/* 0C882C 800C7C2C 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C8830 800C7C30 A020A104 */ sb $zero, %lo(D_800EA104)($at)
/* 0C8834 800C7C34 0C032905 */ jal func_800CA414
/* 0C8838 800C7C38 24050017 */ li $a1, 23
.L800C7C3C:
/* 0C883C 800C7C3C 24080002 */ li $t0, 2
/* 0C8840 800C7C40 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C8844 800C7C44 1000003E */ b .L800C7D40
/* 0C8848 800C7C48 A028A104 */ sb $t0, %lo(D_800EA104)($at)
.L800C7C4C:
/* 0C884C 800C7C4C 3C02800F */ lui $v0, %hi(D_800EA104) # $v0, 0x800f
/* 0C8850 800C7C50 9042A104 */ lbu $v0, %lo(D_800EA104)($v0)
/* 0C8854 800C7C54 54400013 */ bnel $v0, $zero, .L800C7CA4
/* 0C8858 800C7C58 24010001 */ li $at, 1
/* 0C885C 800C7C5C 8FC30030 */ lw $v1, 0x30($fp)
/* 0C8860 800C7C60 24010001 */ li $at, 1
/* 0C8864 800C7C64 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C8868 800C7C68 90690000 */ lbu $t1, ($v1)
/* 0C886C 800C7C6C 5521000D */ bnel $t1, $at, .L800C7CA4
/* 0C8870 800C7C70 24010001 */ li $at, 1
/* 0C8874 800C7C74 0C030D12 */ jal func_800C3448
/* 0C8878 800C7C78 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C887C 800C7C7C 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C8880 800C7C80 0C030D12 */ jal func_800C3448
/* 0C8884 800C7C84 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8888 800C7C88 0C0323BE */ jal func_800C8EF8
/* 0C888C 800C7C8C 2404000D */ li $a0, 13
/* 0C8890 800C7C90 240B0001 */ li $t3, 1
/* 0C8894 800C7C94 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C8898 800C7C98 10000029 */ b .L800C7D40
/* 0C889C 800C7C9C A02BA104 */ sb $t3, %lo(D_800EA104)($at)
/* 0C88A0 800C7CA0 24010001 */ li $at, 1
.L800C7CA4:
/* 0C88A4 800C7CA4 14410011 */ bne $v0, $at, .L800C7CEC
/* 0C88A8 800C7CA8 8FC30030 */ lw $v1, 0x30($fp)
/* 0C88AC 800C7CAC 906A0000 */ lbu $t2, ($v1)
/* 0C88B0 800C7CB0 24010001 */ li $at, 1
/* 0C88B4 800C7CB4 5541000E */ bnel $t2, $at, .L800C7CF0
/* 0C88B8 800C7CB8 24010002 */ li $at, 2
/* 0C88BC 800C7CBC 0C030D42 */ jal func_800C3508
/* 0C88C0 800C7CC0 24040001 */ li $a0, 1
/* 0C88C4 800C7CC4 2401000D */ li $at, 13
/* 0C88C8 800C7CC8 10410004 */ beq $v0, $at, .L800C7CDC
/* 0C88CC 800C7CCC 2404000E */ li $a0, 14
/* 0C88D0 800C7CD0 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C88D4 800C7CD4 0C0323BE */ jal func_800C8EF8
/* 0C88D8 800C7CD8 A020A104 */ sb $zero, %lo(D_800EA104)($at)
.L800C7CDC:
/* 0C88DC 800C7CDC 240C0002 */ li $t4, 2
/* 0C88E0 800C7CE0 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C88E4 800C7CE4 10000016 */ b .L800C7D40
/* 0C88E8 800C7CE8 A02CA104 */ sb $t4, %lo(D_800EA104)($at)
.L800C7CEC:
/* 0C88EC 800C7CEC 24010002 */ li $at, 2
.L800C7CF0:
/* 0C88F0 800C7CF0 54410014 */ bnel $v0, $at, .L800C7D44
/* 0C88F4 800C7CF4 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C88F8 800C7CF8 906D0000 */ lbu $t5, ($v1)
/* 0C88FC 800C7CFC 24010001 */ li $at, 1
/* 0C8900 800C7D00 55A10010 */ bnel $t5, $at, .L800C7D44
/* 0C8904 800C7D04 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8908 800C7D08 0C03149E */ jal func_800C5278
/* 0C890C 800C7D0C 24040005 */ li $a0, 5
/* 0C8910 800C7D10 0C030D42 */ jal func_800C3508
/* 0C8914 800C7D14 24040001 */ li $a0, 1
/* 0C8918 800C7D18 2401000E */ li $at, 14
/* 0C891C 800C7D1C 10410005 */ beq $v0, $at, .L800C7D34
/* 0C8920 800C7D20 2404000E */ li $a0, 14
/* 0C8924 800C7D24 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C8928 800C7D28 A020A104 */ sb $zero, %lo(D_800EA104)($at)
/* 0C892C 800C7D2C 0C032905 */ jal func_800CA414
/* 0C8930 800C7D30 24050017 */ li $a1, 23
.L800C7D34:
/* 0C8934 800C7D34 240E0003 */ li $t6, 3
/* 0C8938 800C7D38 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f
/* 0C893C 800C7D3C A02EA104 */ sb $t6, %lo(D_800EA104)($at)
.L800C7D40:
/* 0C8940 800C7D40 8FCF0034 */ lw $t7, 0x34($fp)
.L800C7D44:
/* 0C8944 800C7D44 1000008C */ b .L800C7F78
/* 0C8948 800C7D48 8DE30000 */ lw $v1, ($t7)
.L800C7D4C:
/* 0C894C 800C7D4C 3C02800F */ lui $v0, %hi(D_800EA1C0) # $v0, 0x800f
/* 0C8950 800C7D50 9042A1C0 */ lbu $v0, %lo(D_800EA1C0)($v0)
/* 0C8954 800C7D54 24010002 */ li $at, 2
/* 0C8958 800C7D58 3C041001 */ lui $a0, (0x100100FF >> 16) # lui $a0, 0x1001
/* 0C895C 800C7D5C 10470007 */ beq $v0, $a3, .L800C7D7C
/* 0C8960 800C7D60 00000000 */ nop
/* 0C8964 800C7D64 1041002A */ beq $v0, $at, .L800C7E10
/* 0C8968 800C7D68 24010003 */ li $at, 3
/* 0C896C 800C7D6C 10410053 */ beq $v0, $at, .L800C7EBC
/* 0C8970 800C7D70 3C19800F */ lui $t9, %hi(D_800EA0EC)
/* 0C8974 800C7D74 1000007F */ b .L800C7F74
/* 0C8978 800C7D78 8FCF0034 */ lw $t7, 0x34($fp)
.L800C7D7C:
/* 0C897C 800C7D7C 0C030D12 */ jal func_800C3448
/* 0C8980 800C7D80 348400FF */ ori $a0, (0x100100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8984 800C7D84 3C041101 */ lui $a0, (0x110100FF >> 16) # lui $a0, 0x1101
/* 0C8988 800C7D88 0C030D12 */ jal func_800C3448
/* 0C898C 800C7D8C 348400FF */ ori $a0, (0x110100FF & 0xFFFF) # ori $a0, $a0, 0xff
/* 0C8990 800C7D90 0C03149E */ jal func_800C5278
/* 0C8994 800C7D94 24040005 */ li $a0, 5
/* 0C8998 800C7D98 3C050100 */ lui $a1, (0x0100F926 >> 16) # lui $a1, 0x100
/* 0C899C 800C7D9C 34A5F926 */ ori $a1, (0x0100F926 & 0xFFFF) # ori $a1, $a1, 0xf926
/* 0C89A0 800C7DA0 0C032406 */ jal func_800C9018
/* 0C89A4 800C7DA4 93C40043 */ lbu $a0, 0x43($fp)
/* 0C89A8 800C7DA8 0C0323BE */ jal func_800C8EF8
/* 0C89AC 800C7DAC 24040017 */ li $a0, 23
/* 0C89B0 800C7DB0 3C19800E */ lui $t9, %hi(gPlayerWinningIndex) # $t9, 0x800e
/* 0C89B4 800C7DB4 8F39C5E8 */ lw $t9, %lo(gPlayerWinningIndex)($t9)
/* 0C89B8 800C7DB8 93C40043 */ lbu $a0, 0x43($fp)
/* 0C89BC 800C7DBC 3C05800F */ lui $a1, %hi(gPlayers+0x254)
/* 0C89C0 800C7DC0 001940C0 */ sll $t0, $t9, 3
/* 0C89C4 800C7DC4 01194023 */ subu $t0, $t0, $t9
/* 0C89C8 800C7DC8 00084100 */ sll $t0, $t0, 4
/* 0C89CC 800C7DCC 01194023 */ subu $t0, $t0, $t9
/* 0C89D0 800C7DD0 00084080 */ sll $t0, $t0, 2
/* 0C89D4 800C7DD4 01194023 */ subu $t0, $t0, $t9
/* 0C89D8 800C7DD8 000840C0 */ sll $t0, $t0, 3
/* 0C89DC 800C7DDC 3C01800F */ lui $at, %hi(D_800EA0EC)
/* 0C89E0 800C7DE0 00A82821 */ addu $a1, $a1, $t0
/* 0C89E4 800C7DE4 94A56BE4 */ lhu $a1, %lo(gPlayers+0x254)($a1)
/* 0C89E8 800C7DE8 24180002 */ li $t8, 2
/* 0C89EC 800C7DEC 00240821 */ addu $at, $at, $a0
/* 0C89F0 800C7DF0 A038A0EC */ sb $t8, %lo(D_800EA0EC)($at)
/* 0C89F4 800C7DF4 3C012900 */ lui $at, (0x2900800D >> 16) # lui $at, 0x2900
/* 0C89F8 800C7DF8 3421800D */ ori $at, (0x2900800D & 0xFFFF) # ori $at, $at, 0x800d
/* 0C89FC 800C7DFC 00054900 */ sll $t1, $a1, 4
/* 0C8A00 800C7E00 0C03243D */ jal func_800C90F4
/* 0C8A04 800C7E04 01212821 */ addu $a1, $t1, $at
/* 0C8A08 800C7E08 1000005A */ b .L800C7F74
/* 0C8A0C 800C7E0C 8FCF0034 */ lw $t7, 0x34($fp)
.L800C7E10:
/* 0C8A10 800C7E10 3C02800F */ lui $v0, %hi(D_800EA0EC) # $v0, 0x800f
/* 0C8A14 800C7E14 2442A0EC */ addiu $v0, %lo(D_800EA0EC) # addiu $v0, $v0, -0x5f14
/* 0C8A18 800C7E18 904B0000 */ lbu $t3, ($v0)
/* 0C8A1C 800C7E1C 54EB0055 */ bnel $a3, $t3, .L800C7F74
/* 0C8A20 800C7E20 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8A24 800C7E24 904A0001 */ lbu $t2, 1($v0)
/* 0C8A28 800C7E28 54EA0052 */ bnel $a3, $t2, .L800C7F74
/* 0C8A2C 800C7E2C 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8A30 800C7E30 904C0002 */ lbu $t4, 2($v0)
/* 0C8A34 800C7E34 54EC004F */ bnel $a3, $t4, .L800C7F74
/* 0C8A38 800C7E38 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8A3C 800C7E3C 0C03149E */ jal func_800C5278
/* 0C8A40 800C7E40 24040005 */ li $a0, 5
/* 0C8A44 800C7E44 3C050100 */ lui $a1, (0x01008026 >> 16) # lui $a1, 0x100
/* 0C8A48 800C7E48 34A58026 */ ori $a1, (0x01008026 & 0xFFFF) # ori $a1, $a1, 0x8026
/* 0C8A4C 800C7E4C 0C032406 */ jal func_800C9018
/* 0C8A50 800C7E50 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8A54 800C7E54 0C0323BE */ jal func_800C8EF8
/* 0C8A58 800C7E58 24040017 */ li $a0, 23
/* 0C8A5C 800C7E5C 3C0E800E */ lui $t6, %hi(gPlayerWinningIndex) # $t6, 0x800e
/* 0C8A60 800C7E60 8DCEC5E8 */ lw $t6, %lo(gPlayerWinningIndex)($t6)
/* 0C8A64 800C7E64 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8A68 800C7E68 3C05800F */ lui $a1, %hi(gPlayers+0x254)
/* 0C8A6C 800C7E6C 000E78C0 */ sll $t7, $t6, 3
/* 0C8A70 800C7E70 01EE7823 */ subu $t7, $t7, $t6
/* 0C8A74 800C7E74 000F7900 */ sll $t7, $t7, 4
/* 0C8A78 800C7E78 01EE7823 */ subu $t7, $t7, $t6
/* 0C8A7C 800C7E7C 000F7880 */ sll $t7, $t7, 2
/* 0C8A80 800C7E80 01EE7823 */ subu $t7, $t7, $t6
/* 0C8A84 800C7E84 000F78C0 */ sll $t7, $t7, 3
/* 0C8A88 800C7E88 3C01800F */ lui $at, %hi(D_800EA0EC)
/* 0C8A8C 800C7E8C 00AF2821 */ addu $a1, $a1, $t7
/* 0C8A90 800C7E90 94A56BE4 */ lhu $a1, %lo(gPlayers+0x254)($a1)
/* 0C8A94 800C7E94 240D0002 */ li $t5, 2
/* 0C8A98 800C7E98 00240821 */ addu $at, $at, $a0
/* 0C8A9C 800C7E9C A02DA0EC */ sb $t5, %lo(D_800EA0EC)($at)
/* 0C8AA0 800C7EA0 3C012900 */ lui $at, (0x2900800D >> 16) # lui $at, 0x2900
/* 0C8AA4 800C7EA4 3421800D */ ori $at, (0x2900800D & 0xFFFF) # ori $at, $at, 0x800d
/* 0C8AA8 800C7EA8 0005C100 */ sll $t8, $a1, 4
/* 0C8AAC 800C7EAC 0C03243D */ jal func_800C90F4
/* 0C8AB0 800C7EB0 03012821 */ addu $a1, $t8, $at
/* 0C8AB4 800C7EB4 1000002F */ b .L800C7F74
/* 0C8AB8 800C7EB8 8FCF0034 */ lw $t7, 0x34($fp)
.L800C7EBC:
/* 0C8ABC 800C7EBC 9339A0EC */ lbu $t9, %lo(D_800EA0EC)($t9)
/* 0C8AC0 800C7EC0 3C08800F */ lui $t0, %hi(D_800EA0ED) # $t0, 0x800f
/* 0C8AC4 800C7EC4 54F9002B */ bnel $a3, $t9, .L800C7F74
/* 0C8AC8 800C7EC8 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8ACC 800C7ECC 9108A0ED */ lbu $t0, %lo(D_800EA0ED)($t0)
/* 0C8AD0 800C7ED0 3C09800F */ lui $t1, %hi(D_800EA0EE) # $t1, 0x800f
/* 0C8AD4 800C7ED4 54E80027 */ bnel $a3, $t0, .L800C7F74
/* 0C8AD8 800C7ED8 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8ADC 800C7EDC 9129A0EE */ lbu $t1, %lo(D_800EA0EE)($t1)
/* 0C8AE0 800C7EE0 3C0B800F */ lui $t3, %hi(D_800EA0EF) # $t3, 0x800f
/* 0C8AE4 800C7EE4 54E90023 */ bnel $a3, $t1, .L800C7F74
/* 0C8AE8 800C7EE8 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8AEC 800C7EEC 916BA0EF */ lbu $t3, %lo(D_800EA0EF)($t3)
/* 0C8AF0 800C7EF0 54EB0020 */ bnel $a3, $t3, .L800C7F74
/* 0C8AF4 800C7EF4 8FCF0034 */ lw $t7, 0x34($fp)
/* 0C8AF8 800C7EF8 0C03149E */ jal func_800C5278
/* 0C8AFC 800C7EFC 24040005 */ li $a0, 5
/* 0C8B00 800C7F00 3C050100 */ lui $a1, (0x01008026 >> 16) # lui $a1, 0x100
/* 0C8B04 800C7F04 34A58026 */ ori $a1, (0x01008026 & 0xFFFF) # ori $a1, $a1, 0x8026
/* 0C8B08 800C7F08 0C032406 */ jal func_800C9018
/* 0C8B0C 800C7F0C 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8B10 800C7F10 0C0323BE */ jal func_800C8EF8
/* 0C8B14 800C7F14 24040017 */ li $a0, 23
/* 0C8B18 800C7F18 3C0C800E */ lui $t4, %hi(gPlayerWinningIndex) # $t4, 0x800e
/* 0C8B1C 800C7F1C 8D8CC5E8 */ lw $t4, %lo(gPlayerWinningIndex)($t4)
/* 0C8B20 800C7F20 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8B24 800C7F24 3C05800F */ lui $a1, %hi(gPlayers+0x254)
/* 0C8B28 800C7F28 000C68C0 */ sll $t5, $t4, 3
/* 0C8B2C 800C7F2C 01AC6823 */ subu $t5, $t5, $t4
/* 0C8B30 800C7F30 000D6900 */ sll $t5, $t5, 4
/* 0C8B34 800C7F34 01AC6823 */ subu $t5, $t5, $t4
/* 0C8B38 800C7F38 000D6880 */ sll $t5, $t5, 2
/* 0C8B3C 800C7F3C 01AC6823 */ subu $t5, $t5, $t4
/* 0C8B40 800C7F40 000D68C0 */ sll $t5, $t5, 3
/* 0C8B44 800C7F44 3C01800F */ lui $at, %hi(D_800EA0EC)
/* 0C8B48 800C7F48 00AD2821 */ addu $a1, $a1, $t5
/* 0C8B4C 800C7F4C 94A56BE4 */ lhu $a1, %lo(gPlayers+0x254)($a1)
/* 0C8B50 800C7F50 240A0002 */ li $t2, 2
/* 0C8B54 800C7F54 00240821 */ addu $at, $at, $a0
/* 0C8B58 800C7F58 A02AA0EC */ sb $t2, %lo(D_800EA0EC)($at)
/* 0C8B5C 800C7F5C 3C012900 */ lui $at, (0x2900800D >> 16) # lui $at, 0x2900
/* 0C8B60 800C7F60 3421800D */ ori $at, (0x2900800D & 0xFFFF) # ori $at, $at, 0x800d
/* 0C8B64 800C7F64 00057100 */ sll $t6, $a1, 4
/* 0C8B68 800C7F68 0C03243D */ jal func_800C90F4
/* 0C8B6C 800C7F6C 01C12821 */ addu $a1, $t6, $at
/* 0C8B70 800C7F70 8FCF0034 */ lw $t7, 0x34($fp)
.L800C7F74:
/* 0C8B74 800C7F74 8DE30000 */ lw $v1, ($t7)
.L800C7F78:
/* 0C8B78 800C7F78 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 0C8B7C 800C7F7C 2401001E */ li $at, 30
/* 0C8B80 800C7F80 93C40043 */ lbu $a0, 0x43($fp)
/* 0C8B84 800C7F84 24070001 */ li $a3, 1
/* 0C8B88 800C7F88 14610093 */ bne $v1, $at, .L800C81D8
/* 0C8B8C 800C7F8C 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 0C8B90 800C7F90 1040000B */ beqz $v0, .L800C7FC0
/* 0C8B94 800C7F94 0004C0C0 */ sll $t8, $a0, 3
/* 0C8B98 800C7F98 10470059 */ beq $v0, $a3, .L800C8100
/* 0C8B9C 800C7F9C 3C0B8016 */ lui $t3, %hi(D_801657E5) # $t3, 0x8016
/* 0C8BA0 800C7FA0 24010002 */ li $at, 2
/* 0C8BA4 800C7FA4 1041003A */ beq $v0, $at, .L800C8090
/* 0C8BA8 800C7FA8 000478C0 */ sll $t7, $a0, 3
/* 0C8BAC 800C7FAC 24010003 */ li $at, 3
/* 0C8BB0 800C7FB0 10410089 */ beq $v0, $at, .L800C81D8
/* 0C8BB4 800C7FB4 00000000 */ nop
/* 0C8BB8 800C7FB8 10000087 */ b .L800C81D8
/* 0C8BBC 800C7FBC 00000000 */ nop
.L800C7FC0:
/* 0C8BC0 800C7FC0 0304C023 */ subu $t8, $t8, $a0
/* 0C8BC4 800C7FC4 0018C100 */ sll $t8, $t8, 4
/* 0C8BC8 800C7FC8 0304C023 */ subu $t8, $t8, $a0
/* 0C8BCC 800C7FCC 0018C080 */ sll $t8, $t8, 2
/* 0C8BD0 800C7FD0 0304C023 */ subu $t8, $t8, $a0
/* 0C8BD4 800C7FD4 3C19800F */ lui $t9, %hi(gPlayers) # $t9, 0x800f
/* 0C8BD8 800C7FD8 27396990 */ addiu $t9, %lo(gPlayers) # addiu $t9, $t9, 0x6990
/* 0C8BDC 800C7FDC 0018C0C0 */ sll $t8, $t8, 3
/* 0C8BE0 800C7FE0 03191821 */ addu $v1, $t8, $t9
/* 0C8BE4 800C7FE4 84620004 */ lh $v0, 4($v1)
/* 0C8BE8 800C7FE8 3C08800F */ lui $t0, %hi(D_800EA0EC) # $t0, 0x800f
/* 0C8BEC 800C7FEC 2508A0EC */ addiu $t0, %lo(D_800EA0EC) # addiu $t0, $t0, -0x5f14
/* 0C8BF0 800C7FF0 1440000C */ bnez $v0, .L800C8024
/* 0C8BF4 800C7FF4 00883021 */ addu $a2, $a0, $t0
/* 0C8BF8 800C7FF8 94650254 */ lhu $a1, 0x254($v1)
/* 0C8BFC 800C7FFC 24090002 */ li $t1, 2
/* 0C8C00 800C8000 3C012900 */ lui $at, (0x29008007 >> 16) # lui $at, 0x2900
/* 0C8C04 800C8004 A0C90000 */ sb $t1, ($a2)
/* 0C8C08 800C8008 34218007 */ ori $at, (0x29008007 & 0xFFFF) # ori $at, $at, 0x8007
/* 0C8C0C 800C800C 00055900 */ sll $t3, $a1, 4
/* 0C8C10 800C8010 01612821 */ addu $a1, $t3, $at
/* 0C8C14 800C8014 0C03243D */ jal func_800C90F4
/* 0C8C18 800C8018 A3C40043 */ sb $a0, 0x43($fp)
/* 0C8C1C 800C801C 10000017 */ b .L800C807C
/* 0C8C20 800C8020 00000000 */ nop
.L800C8024:
/* 0C8C24 800C8024 28410004 */ slti $at, $v0, 4
/* 0C8C28 800C8028 1020000C */ beqz $at, .L800C805C
/* 0C8C2C 800C802C 240D0002 */ li $t5, 2
/* 0C8C30 800C8030 94650254 */ lhu $a1, 0x254($v1)
/* 0C8C34 800C8034 240A0002 */ li $t2, 2
/* 0C8C38 800C8038 3C012900 */ lui $at, (0x2900800D >> 16) # lui $at, 0x2900
/* 0C8C3C 800C803C A0CA0000 */ sb $t2, ($a2)
/* 0C8C40 800C8040 3421800D */ ori $at, (0x2900800D & 0xFFFF) # ori $at, $at, 0x800d
/* 0C8C44 800C8044 00056100 */ sll $t4, $a1, 4
/* 0C8C48 800C8048 01812821 */ addu $a1, $t4, $at
/* 0C8C4C 800C804C 0C03243D */ jal func_800C90F4
/* 0C8C50 800C8050 A3C40043 */ sb $a0, 0x43($fp)
/* 0C8C54 800C8054 10000009 */ b .L800C807C
/* 0C8C58 800C8058 00000000 */ nop
.L800C805C:
/* 0C8C5C 800C805C 94650254 */ lhu $a1, 0x254($v1)
/* 0C8C60 800C8060 3C012900 */ lui $at, (0x29008003 >> 16) # lui $at, 0x2900
/* 0C8C64 800C8064 A0CD0000 */ sb $t5, ($a2)
/* 0C8C68 800C8068 34218003 */ ori $at, (0x29008003 & 0xFFFF) # ori $at, $at, 0x8003
/* 0C8C6C 800C806C 00057100 */ sll $t6, $a1, 4
/* 0C8C70 800C8070 01C12821 */ addu $a1, $t6, $at
/* 0C8C74 800C8074 0C03243D */ jal func_800C90F4
/* 0C8C78 800C8078 A3C40043 */ sb $a0, 0x43($fp)
.L800C807C:
/* 0C8C7C 800C807C 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 0C8C80 800C8080 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 0C8C84 800C8084 24070001 */ li $a3, 1
/* 0C8C88 800C8088 10000053 */ b .L800C81D8
/* 0C8C8C 800C808C 93C40043 */ lbu $a0, 0x43($fp)
.L800C8090:
/* 0C8C90 800C8090 01E47823 */ subu $t7, $t7, $a0
/* 0C8C94 800C8094 000F7900 */ sll $t7, $t7, 4
/* 0C8C98 800C8098 01E47823 */ subu $t7, $t7, $a0
/* 0C8C9C 800C809C 000F7880 */ sll $t7, $t7, 2
/* 0C8CA0 800C80A0 01E47823 */ subu $t7, $t7, $a0
/* 0C8CA4 800C80A4 3C18800F */ lui $t8, %hi(gPlayers) # $t8, 0x800f
/* 0C8CA8 800C80A8 27186990 */ addiu $t8, %lo(gPlayers) # addiu $t8, $t8, 0x6990
/* 0C8CAC 800C80AC 000F78C0 */ sll $t7, $t7, 3
/* 0C8CB0 800C80B0 01F81821 */ addu $v1, $t7, $t8
/* 0C8CB4 800C80B4 A3C40043 */ sb $a0, 0x43($fp)
/* 0C8CB8 800C80B8 84790004 */ lh $t9, 4($v1)
/* 0C8CBC 800C80BC 3C01800F */ lui $at, %hi(D_800EA0EC)
/* 0C8CC0 800C80C0 00240821 */ addu $at, $at, $a0
/* 0C8CC4 800C80C4 1720000C */ bnez $t9, .L800C80F8
/* 0C8CC8 800C80C8 24080002 */ li $t0, 2
/* 0C8CCC 800C80CC A028A0EC */ sb $t0, %lo(D_800EA0EC)($at)
/* 0C8CD0 800C80D0 94650254 */ lhu $a1, 0x254($v1)
/* 0C8CD4 800C80D4 3C012900 */ lui $at, (0x2900800D >> 16) # lui $at, 0x2900
/* 0C8CD8 800C80D8 3421800D */ ori $at, (0x2900800D & 0xFFFF) # ori $at, $at, 0x800d
/* 0C8CDC 800C80DC 00054900 */ sll $t1, $a1, 4
/* 0C8CE0 800C80E0 01212821 */ addu $a1, $t1, $at
/* 0C8CE4 800C80E4 0C03243D */ jal func_800C90F4
/* 0C8CE8 800C80E8 A3C40043 */ sb $a0, 0x43($fp)
/* 0C8CEC 800C80EC 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 0C8CF0 800C80F0 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 0C8CF4 800C80F4 24070001 */ li $a3, 1
.L800C80F8:
/* 0C8CF8 800C80F8 10000037 */ b .L800C81D8
/* 0C8CFC 800C80FC 93C40043 */ lbu $a0, 0x43($fp)
.L800C8100:
/* 0C8D00 800C8100 816B57E5 */ lb $t3, %lo(D_801657E5)($t3)
/* 0C8D04 800C8104 240A0002 */ li $t2, 2
/* 0C8D08 800C8108 3C01800F */ lui $at, %hi(D_800EA0EC)
/* 0C8D0C 800C810C 14EB0017 */ bne $a3, $t3, .L800C816C
/* 0C8D10 800C8110 3C0E8019 */ lui $t6, %hi(D_8018ED90) # $t6, 0x8019
/* 0C8D14 800C8114 000460C0 */ sll $t4, $a0, 3
/* 0C8D18 800C8118 01846023 */ subu $t4, $t4, $a0
/* 0C8D1C 800C811C 000C6100 */ sll $t4, $t4, 4
/* 0C8D20 800C8120 01846023 */ subu $t4, $t4, $a0
/* 0C8D24 800C8124 000C6080 */ sll $t4, $t4, 2
/* 0C8D28 800C8128 01846023 */ subu $t4, $t4, $a0
/* 0C8D2C 800C812C 000C60C0 */ sll $t4, $t4, 3
/* 0C8D30 800C8130 3C05800F */ lui $a1, %hi(gPlayers+0x254)
/* 0C8D34 800C8134 00AC2821 */ addu $a1, $a1, $t4
/* 0C8D38 800C8138 94A56BE4 */ lhu $a1, %lo(gPlayers+0x254)($a1)
/* 0C8D3C 800C813C 00240821 */ addu $at, $at, $a0
/* 0C8D40 800C8140 A02AA0EC */ sb $t2, %lo(D_800EA0EC)($at)
/* 0C8D44 800C8144 3C012900 */ lui $at, (0x29008007 >> 16) # lui $at, 0x2900
/* 0C8D48 800C8148 34218007 */ ori $at, (0x29008007 & 0xFFFF) # ori $at, $at, 0x8007
/* 0C8D4C 800C814C 00056900 */ sll $t5, $a1, 4
/* 0C8D50 800C8150 01A12821 */ addu $a1, $t5, $at
/* 0C8D54 800C8154 0C03243D */ jal func_800C90F4
/* 0C8D58 800C8158 A3C40043 */ sb $a0, 0x43($fp)
/* 0C8D5C 800C815C 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 0C8D60 800C8160 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 0C8D64 800C8164 1000001B */ b .L800C81D4
/* 0C8D68 800C8168 24070001 */ li $a3, 1
.L800C816C:
/* 0C8D6C 800C816C A3C40043 */ sb $a0, 0x43($fp)
/* 0C8D70 800C8170 91CEED90 */ lbu $t6, %lo(D_8018ED90)($t6)
/* 0C8D74 800C8174 3C01800F */ lui $at, %hi(D_800EA0EC)
/* 0C8D78 800C8178 00240821 */ addu $at, $at, $a0
/* 0C8D7C 800C817C 14EE0015 */ bne $a3, $t6, .L800C81D4
/* 0C8D80 800C8180 240F0002 */ li $t7, 2
/* 0C8D84 800C8184 0004C0C0 */ sll $t8, $a0, 3
/* 0C8D88 800C8188 0304C023 */ subu $t8, $t8, $a0
/* 0C8D8C 800C818C 0018C100 */ sll $t8, $t8, 4
/* 0C8D90 800C8190 0304C023 */ subu $t8, $t8, $a0
/* 0C8D94 800C8194 0018C080 */ sll $t8, $t8, 2
/* 0C8D98 800C8198 0304C023 */ subu $t8, $t8, $a0
/* 0C8D9C 800C819C 0018C0C0 */ sll $t8, $t8, 3
/* 0C8DA0 800C81A0 3C05800F */ lui $a1, %hi(gPlayers+0x254)
/* 0C8DA4 800C81A4 00B82821 */ addu $a1, $a1, $t8
/* 0C8DA8 800C81A8 94A56BE4 */ lhu $a1, %lo(gPlayers+0x254)($a1)
/* 0C8DAC 800C81AC A02FA0EC */ sb $t7, %lo(D_800EA0EC)($at)
/* 0C8DB0 800C81B0 3C012900 */ lui $at, (0x2900800D >> 16) # lui $at, 0x2900
/* 0C8DB4 800C81B4 3421800D */ ori $at, (0x2900800D & 0xFFFF) # ori $at, $at, 0x800d
/* 0C8DB8 800C81B8 0005C900 */ sll $t9, $a1, 4
/* 0C8DBC 800C81BC 03212821 */ addu $a1, $t9, $at
/* 0C8DC0 800C81C0 0C03243D */ jal func_800C90F4
/* 0C8DC4 800C81C4 A3C40043 */ sb $a0, 0x43($fp)
/* 0C8DC8 800C81C8 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 0C8DCC 800C81CC 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 0C8DD0 800C81D0 24070001 */ li $a3, 1
.L800C81D4:
/* 0C8DD4 800C81D4 93C40043 */ lbu $a0, 0x43($fp)
.L800C81D8:
/* 0C8DD8 800C81D8 1040000A */ beqz $v0, .L800C8204
/* 0C8DDC 800C81DC 000440C0 */ sll $t0, $a0, 3
/* 0C8DE0 800C81E0 10470078 */ beq $v0, $a3, .L800C83C4
/* 0C8DE4 800C81E4 24010002 */ li $at, 2
/* 0C8DE8 800C81E8 1041004D */ beq $v0, $at, .L800C8320
/* 0C8DEC 800C81EC 3C0E800F */ lui $t6, %hi(D_800EA1C0) # $t6, 0x800f
/* 0C8DF0 800C81F0 24010003 */ li $at, 3
/* 0C8DF4 800C81F4 50410089 */ beql $v0, $at, .L800C841C
/* 0C8DF8 800C81F8 8FC90034 */ lw $t1, 0x34($fp)
/* 0C8DFC 800C81FC 1000009B */ b .L800C846C
/* 0C8E00 800C8200 8FDF002C */ lw $ra, 0x2c($fp)
.L800C8204:
/* 0C8E04 800C8204 01044023 */ subu $t0, $t0, $a0
/* 0C8E08 800C8208 00084100 */ sll $t0, $t0, 4
/* 0C8E0C 800C820C 01044023 */ subu $t0, $t0, $a0
/* 0C8E10 800C8210 00084080 */ sll $t0, $t0, 2
/* 0C8E14 800C8214 01044023 */ subu $t0, $t0, $a0
/* 0C8E18 800C8218 000840C0 */ sll $t0, $t0, 3
/* 0C8E1C 800C821C 3C02800F */ lui $v0, %hi(gPlayers+0x4)
/* 0C8E20 800C8220 00481021 */ addu $v0, $v0, $t0
/* 0C8E24 800C8224 84426994 */ lh $v0, %lo(gPlayers+0x4)($v0)
/* 0C8E28 800C8228 8FC90034 */ lw $t1, 0x34($fp)
/* 0C8E2C 800C822C 14400014 */ bnez $v0, .L800C8280
/* 0C8E30 800C8230 8D230000 */ lw $v1, ($t1)
/* 0C8E34 800C8234 2861015F */ slti $at, $v1, 0x15f
/* 0C8E38 800C8238 14200007 */ bnez $at, .L800C8258
/* 0C8E3C 800C823C 2401015F */ li $at, 351
/* 0C8E40 800C8240 5461008A */ bnel $v1, $at, .L800C846C
/* 0C8E44 800C8244 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C8E48 800C8248 0C032743 */ jal func_800C9D0C
/* 0C8E4C 800C824C 00000000 */ nop
/* 0C8E50 800C8250 10000086 */ b .L800C846C
/* 0C8E54 800C8254 8FDF002C */ lw $ra, 0x2c($fp)
.L800C8258:
/* 0C8E58 800C8258 44832000 */ mtc1 $v1, $f4
/* 0C8E5C 800C825C 3C0143C8 */ li $at, 0x43C80000 # 400.000000
/* 0C8E60 800C8260 44814000 */ mtc1 $at, $f8
/* 0C8E64 800C8264 468021A0 */ cvt.s.w $f6, $f4
/* 0C8E68 800C8268 8FCB0038 */ lw $t3, 0x38($fp)
/* 0C8E6C 800C826C 3C01800F */ lui $at, %hi(D_800EA130)
/* 0C8E70 800C8270 002B0821 */ addu $at, $at, $t3
/* 0C8E74 800C8274 46083283 */ div.s $f10, $f6, $f8
/* 0C8E78 800C8278 1000007B */ b .L800C8468
/* 0C8E7C 800C827C E42AA130 */ swc1 $f10, %lo(D_800EA130)($at)
.L800C8280:
/* 0C8E80 800C8280 28410004 */ slti $at, $v0, 4
/* 0C8E84 800C8284 10200013 */ beqz $at, .L800C82D4
/* 0C8E88 800C8288 2861015F */ slti $at, $v1, 0x15f
/* 0C8E8C 800C828C 14200007 */ bnez $at, .L800C82AC
/* 0C8E90 800C8290 2401015F */ li $at, 351
/* 0C8E94 800C8294 54610075 */ bnel $v1, $at, .L800C846C
/* 0C8E98 800C8298 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C8E9C 800C829C 0C032743 */ jal func_800C9D0C
/* 0C8EA0 800C82A0 00000000 */ nop
/* 0C8EA4 800C82A4 10000071 */ b .L800C846C
/* 0C8EA8 800C82A8 8FDF002C */ lw $ra, 0x2c($fp)
.L800C82AC:
/* 0C8EAC 800C82AC 44838000 */ mtc1 $v1, $f16
/* 0C8EB0 800C82B0 3C0143C8 */ li $at, 0x43C80000 # 400.000000
/* 0C8EB4 800C82B4 44812000 */ mtc1 $at, $f4
/* 0C8EB8 800C82B8 468084A0 */ cvt.s.w $f18, $f16
/* 0C8EBC 800C82BC 8FCA0038 */ lw $t2, 0x38($fp)
/* 0C8EC0 800C82C0 3C01800F */ lui $at, %hi(D_800EA130)
/* 0C8EC4 800C82C4 002A0821 */ addu $at, $at, $t2
/* 0C8EC8 800C82C8 46049183 */ div.s $f6, $f18, $f4
/* 0C8ECC 800C82CC 10000066 */ b .L800C8468
/* 0C8ED0 800C82D0 E426A130 */ swc1 $f6, %lo(D_800EA130)($at)
.L800C82D4:
/* 0C8ED4 800C82D4 2861012D */ slti $at, $v1, 0x12d
/* 0C8ED8 800C82D8 14200007 */ bnez $at, .L800C82F8
/* 0C8EDC 800C82DC 2401012D */ li $at, 301
/* 0C8EE0 800C82E0 54610062 */ bnel $v1, $at, .L800C846C
/* 0C8EE4 800C82E4 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C8EE8 800C82E8 0C0325F1 */ jal func_800C97C4
/* 0C8EEC 800C82EC 00000000 */ nop
/* 0C8EF0 800C82F0 1000005E */ b .L800C846C
/* 0C8EF4 800C82F4 8FDF002C */ lw $ra, 0x2c($fp)
.L800C82F8:
/* 0C8EF8 800C82F8 44834000 */ mtc1 $v1, $f8
/* 0C8EFC 800C82FC 3C0143A5 */ li $at, 0x43A50000 # 330.000000
/* 0C8F00 800C8300 44818000 */ mtc1 $at, $f16
/* 0C8F04 800C8304 468042A0 */ cvt.s.w $f10, $f8
/* 0C8F08 800C8308 8FCC0038 */ lw $t4, 0x38($fp)
/* 0C8F0C 800C830C 3C01800F */ lui $at, %hi(D_800EA130)
/* 0C8F10 800C8310 002C0821 */ addu $at, $at, $t4
/* 0C8F14 800C8314 46105483 */ div.s $f18, $f10, $f16
/* 0C8F18 800C8318 10000053 */ b .L800C8468
/* 0C8F1C 800C831C E432A130 */ swc1 $f18, %lo(D_800EA130)($at)
.L800C8320:
/* 0C8F20 800C8320 91CEA1C0 */ lbu $t6, %lo(D_800EA1C0)($t6)
/* 0C8F24 800C8324 8FCD0034 */ lw $t5, 0x34($fp)
/* 0C8F28 800C8328 14EE0014 */ bne $a3, $t6, .L800C837C
/* 0C8F2C 800C832C 8DA30000 */ lw $v1, ($t5)
/* 0C8F30 800C8330 28610065 */ slti $at, $v1, 0x65
/* 0C8F34 800C8334 14200007 */ bnez $at, .L800C8354
/* 0C8F38 800C8338 24010065 */ li $at, 101
/* 0C8F3C 800C833C 54610022 */ bnel $v1, $at, .L800C83C8
/* 0C8F40 800C8340 8FD90034 */ lw $t9, 0x34($fp)
/* 0C8F44 800C8344 0C032743 */ jal func_800C9D0C
/* 0C8F48 800C8348 00000000 */ nop
/* 0C8F4C 800C834C 1000001E */ b .L800C83C8
/* 0C8F50 800C8350 8FD90034 */ lw $t9, 0x34($fp)
.L800C8354:
/* 0C8F54 800C8354 44832000 */ mtc1 $v1, $f4
/* 0C8F58 800C8358 3C0142F0 */ li $at, 0x42F00000 # 120.000000
/* 0C8F5C 800C835C 44814000 */ mtc1 $at, $f8
/* 0C8F60 800C8360 468021A0 */ cvt.s.w $f6, $f4
/* 0C8F64 800C8364 8FCF0038 */ lw $t7, 0x38($fp)
/* 0C8F68 800C8368 3C01800F */ lui $at, %hi(D_800EA130)
/* 0C8F6C 800C836C 002F0821 */ addu $at, $at, $t7
/* 0C8F70 800C8370 46083283 */ div.s $f10, $f6, $f8
/* 0C8F74 800C8374 10000013 */ b .L800C83C4
/* 0C8F78 800C8378 E42AA130 */ swc1 $f10, %lo(D_800EA130)($at)
.L800C837C:
/* 0C8F7C 800C837C 28610065 */ slti $at, $v1, 0x65
/* 0C8F80 800C8380 14200007 */ bnez $at, .L800C83A0
/* 0C8F84 800C8384 24010065 */ li $at, 101
/* 0C8F88 800C8388 5461000F */ bnel $v1, $at, .L800C83C8
/* 0C8F8C 800C838C 8FD90034 */ lw $t9, 0x34($fp)
/* 0C8F90 800C8390 0C0325F1 */ jal func_800C97C4
/* 0C8F94 800C8394 00000000 */ nop
/* 0C8F98 800C8398 1000000B */ b .L800C83C8
/* 0C8F9C 800C839C 8FD90034 */ lw $t9, 0x34($fp)
.L800C83A0:
/* 0C8FA0 800C83A0 44838000 */ mtc1 $v1, $f16
/* 0C8FA4 800C83A4 3C0142F0 */ li $at, 0x42F00000 # 120.000000
/* 0C8FA8 800C83A8 44812000 */ mtc1 $at, $f4
/* 0C8FAC 800C83AC 468084A0 */ cvt.s.w $f18, $f16
/* 0C8FB0 800C83B0 8FD80038 */ lw $t8, 0x38($fp)
/* 0C8FB4 800C83B4 3C01800F */ lui $at, %hi(D_800EA130)
/* 0C8FB8 800C83B8 00380821 */ addu $at, $at, $t8
/* 0C8FBC 800C83BC 46049183 */ div.s $f6, $f18, $f4
/* 0C8FC0 800C83C0 E426A130 */ swc1 $f6, %lo(D_800EA130)($at)
.L800C83C4:
/* 0C8FC4 800C83C4 8FD90034 */ lw $t9, 0x34($fp)
.L800C83C8:
/* 0C8FC8 800C83C8 8F230000 */ lw $v1, ($t9)
/* 0C8FCC 800C83CC 2861012D */ slti $at, $v1, 0x12d
/* 0C8FD0 800C83D0 14200007 */ bnez $at, .L800C83F0
/* 0C8FD4 800C83D4 2401012D */ li $at, 301
/* 0C8FD8 800C83D8 54610024 */ bnel $v1, $at, .L800C846C
/* 0C8FDC 800C83DC 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C8FE0 800C83E0 0C032743 */ jal func_800C9D0C
/* 0C8FE4 800C83E4 00002025 */ move $a0, $zero
/* 0C8FE8 800C83E8 10000020 */ b .L800C846C
/* 0C8FEC 800C83EC 8FDF002C */ lw $ra, 0x2c($fp)
.L800C83F0:
/* 0C8FF0 800C83F0 44834000 */ mtc1 $v1, $f8
/* 0C8FF4 800C83F4 3C0143AF */ li $at, 0x43AF0000 # 350.000000
/* 0C8FF8 800C83F8 44818000 */ mtc1 $at, $f16
/* 0C8FFC 800C83FC 468042A0 */ cvt.s.w $f10, $f8
/* 0C9000 800C8400 8FC80038 */ lw $t0, 0x38($fp)
/* 0C9004 800C8404 3C01800F */ lui $at, %hi(D_800EA130)
/* 0C9008 800C8408 00280821 */ addu $at, $at, $t0
/* 0C900C 800C840C 46105483 */ div.s $f18, $f10, $f16
/* 0C9010 800C8410 10000015 */ b .L800C8468
/* 0C9014 800C8414 E432A130 */ swc1 $f18, %lo(D_800EA130)($at)
/* 0C9018 800C8418 8FC90034 */ lw $t1, 0x34($fp)
.L800C841C:
/* 0C901C 800C841C 8D230000 */ lw $v1, ($t1)
/* 0C9020 800C8420 28610065 */ slti $at, $v1, 0x65
/* 0C9024 800C8424 14200007 */ bnez $at, .L800C8444
/* 0C9028 800C8428 24010065 */ li $at, 101
/* 0C902C 800C842C 5461000F */ bnel $v1, $at, .L800C846C
/* 0C9030 800C8430 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C9034 800C8434 0C0325F1 */ jal func_800C97C4
/* 0C9038 800C8438 00000000 */ nop
/* 0C903C 800C843C 1000000B */ b .L800C846C
/* 0C9040 800C8440 8FDF002C */ lw $ra, 0x2c($fp)
.L800C8444:
/* 0C9044 800C8444 44832000 */ mtc1 $v1, $f4
/* 0C9048 800C8448 3C0142F0 */ li $at, 0x42F00000 # 120.000000
/* 0C904C 800C844C 44814000 */ mtc1 $at, $f8
/* 0C9050 800C8450 468021A0 */ cvt.s.w $f6, $f4
/* 0C9054 800C8454 8FCB0038 */ lw $t3, 0x38($fp)
/* 0C9058 800C8458 3C01800F */ lui $at, %hi(D_800EA130)
/* 0C905C 800C845C 002B0821 */ addu $at, $at, $t3
/* 0C9060 800C8460 46083283 */ div.s $f10, $f6, $f8
/* 0C9064 800C8464 E42AA130 */ swc1 $f10, %lo(D_800EA130)($at)
.L800C8468:
/* 0C9068 800C8468 8FDF002C */ lw $ra, 0x2c($fp)
.L800C846C:
/* 0C906C 800C846C 03C0E825 */ move $sp, $fp
/* 0C9070 800C8470 8FDE0028 */ lw $fp, 0x28($fp)
/* 0C9074 800C8474 03E00008 */ jr $ra
/* 0C9078 800C8478 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -142,7 +142,7 @@ glabel audio_init
/* 0BCEB0 800BC2B0 3C01803B */ lui $at, %hi(gSampleDmaNumListItems) # $at, 0x803b
/* 0BCEB4 800BC2B4 3C04800F */ lui $a0, %hi(gAudioInitPoolSize) # $a0, 0x800f
/* 0BCEB8 800BC2B8 AC206E58 */ sw $zero, %lo(gSampleDmaNumListItems)($at)
/* 0BCEBC 800BC2BC 0C02E43C */ jal func_800B90F0
/* 0BCEBC 800BC2BC 0C02E43C */ jal sound_init_main_pools
/* 0BCEC0 800BC2C0 8C84A5D4 */ lw $a0, %lo(gAudioInitPoolSize)($a0)
/* 0BCEC4 800BC2C4 3C06803B */ lui $a2, %hi(gAiBuffers) # $a2, 0x803b
/* 0BCEC8 800BC2C8 3C14803B */ lui $s4, %hi(gAudioInitPool) # $s4, 0x803b

View File

@ -1,422 +0,0 @@
.include "macros.inc"
.section .data
glabel D_800E9A40
.asciiz "Audio:Track:Warning: No Free Notetrack\n"
.balign 4
glabel D_800E9A68
.asciiz "SUBTRACK DIM\n"
.balign 4
glabel D_800E9A78
.asciiz "Audio:Track: Warning :SUBTRACK had been stolen by other Group.\n"
.balign 4
glabel D_800E9AB8
.asciiz "SEQID %d,BANKID %d\n"
.balign 4
glabel D_800E9ACC
.asciiz "ERR:SUBTRACK %d NOT ALLOCATED\n"
.balign 4
glabel D_800E9AEC
.asciiz "Error:Same List Add\n"
.balign 4
glabel D_800E9B04
.asciiz "Macro Level Over Error!\n"
.balign 4
glabel D_800E9B20
.asciiz "Macro Level Over Error!\n"
.balign 4
glabel D_800E9B3C
.asciiz "WARNING: NPRG: cannot change %d\n"
.balign 4
glabel D_800E9B60
.asciiz "Audio:Track:NOTE:UNDEFINED NOTE COM. %x\n"
.balign 4
glabel D_800E9B8C
.asciiz "Audio: Note:Velocity Error %d\n"
.balign 4
glabel D_800E9BAC
.asciiz "Error: Subtrack no prg.\n"
.balign 4
glabel D_800E9BC8
.asciiz "ERR %x\n"
.balign 4
glabel D_800E9BD0
.asciiz "Error: Your assignchannel is stolen.\n"
.balign 4
glabel D_800E9BF8
.asciiz "Audio:Track :Call Macro Level Over Error!\n"
.balign 4
glabel D_800E9C24
.asciiz "Audio:Track :Loops Macro Level Over Error!\n"
.balign 4
glabel D_800E9C50
.asciiz "SUB:ERR:BANK %d NOT CACHED.\n"
.balign 4
glabel D_800E9C70
.asciiz "SUB:ERR:BANK %d NOT CACHED.\n"
.balign 4
glabel D_800E9C90
.asciiz "Audio:Track: CTBLCALL Macro Level Over Error!\n"
.balign 4
glabel D_800E9CC0
.asciiz "[%2x] \n"
.balign 4
glabel D_800E9CC8
.asciiz "Err :Sub %x ,address %x:Undefined SubTrack Function %x"
.balign 4
glabel D_800E9D00
.asciiz "Disappear Sequence or Bank %d\n"
.balign 4
glabel D_800E9D20
.asciiz "Macro Level Over Error!\n"
.balign 4
glabel D_800E9D3C
.asciiz "Macro Level Over Error!\n"
.balign 4
glabel D_800E9D58
.asciiz "Group:Undefine upper C0h command (%x)\n"
.balign 4
glabel D_800E9D80
.asciiz "Group:Undefined Command\n"
.balign 4
.balign 0x10
glabel D_800E9DA0
.byte 0x00
.balign 4
# TODO: unused?
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9DB4
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9DC4
.float 1.0, 1.0, 1.0, 1.0
glabel D_800E9DD4
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9DE4
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9DF4
.float 0.0, 0.0, 0.0, 0.0
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9E14
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9E24
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9E34
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9E54
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9E64
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9E74
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9E84
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9E94
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9EA4
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_800E9EB4
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9EC4
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9ED4
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9EE4
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9EF4
.float 1.0, 1.0, 1.0, 1.0
glabel D_800E9F04
.float 1.0, 1.0, 1.0, 1.0
glabel D_800E9F14
.float 1.0, 1.0, 1.0, 1.0
glabel D_800E9F24
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
glabel D_800E9F2C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
glabel D_800E9F34
.float 0.0, 0.0, 0.0, 0.0
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9F54
.float 0.0, 0.0, 0.0, 0.0
.float 0.0, 0.0, 0.0, 0.0
glabel D_800E9F74
.byte 0x00, 0x00, 0x00, 0x00
glabel D_800E9F78
.byte 0x00, 0x00, 0x00, 0x00
glabel D_800E9F7C
.float 0.0, 0.0, 0.0
.float 1.0
.float 1.0
.byte 0x00
.balign 4
.float 3800.0, 3.4, 0.4
.float -1.0, 0.4, 1100.0
.float 630.0, 3600.0, 1.0
.float 0.0, 0.0, 0.0
.float 1.0
.float 1.0
.byte 0x00
.balign 4
.float 3800.0, 3.4, 0.4
.float -1.0, 0.4, 1100.0
.float 630.0, 3600.0, 1.0
.float 0.0, 0.0, 0.0
.float 1.0
.float 1.0
.byte 0x00
.balign 4
.float 3800.0, 3.4, 0.4
.float -1.0, 0.4, 1100.0
.float 630.0, 3600.0, 1.0
.float 0.0, 0.0, 0.0
.float 1.0
.float 1.0
.byte 0x00
.balign 4
.float 3800.0, 3.4, 0.4
.float -1.0, 0.4, 1100.0
.float 630.0, 3600.0, 1.0
.macro Entry800EA06C f0, f1, f2, b0
.float \f0, \f1, \f2
.byte \b0, 0x00, 0x00, 0x00
.endm
glabel D_800EA06C
Entry800EA06C 0.0, 1.0, 1.0, 0x0
Entry800EA06C 0.0, 1.0, 1.0, 0x0
Entry800EA06C 0.0, 1.0, 1.0, 0x0
Entry800EA06C 0.0, 1.0, 1.0, 0x0
Entry800EA06C 0.0, 1.0, 1.0, 0x0
Entry800EA06C 0.0, 1.0, 1.0, 0x0
Entry800EA06C 0.0, 1.0, 1.0, 0x0
Entry800EA06C 0.0, 1.0, 1.0, 0x0
glabel D_800EA0EC
.byte 0x00
glabel D_800EA0ED
.byte 0x00
glabel D_800EA0EE
.byte 0x00
glabel D_800EA0EF
.byte 0x00
glabel D_800EA0F0
.byte 0x00, 0x00, 0x00, 0x00
glabel D_800EA0F4
.byte 0x00, 0x00, 0x00, 0x00
.word 0x00000000, 0x00000000, 0x3f800000
glabel D_800EA104
.word 0x00000000
glabel D_800EA108
.word 0x00000000
glabel D_800EA10C
.word 0x00000000
glabel D_800EA110
.float 0.0, 0.0, 0.0, 0.0
glabel D_800EA120
.float 0.0, 0.0, 0.0, 0.0
glabel D_800EA130
.float 0.0, 0.0, 0.0, 0.0
.float 0.0, 0.0, 0.0, 0.0
glabel D_800EA150
.float 1.4
glabel D_800EA154
.byte 0x02, 0x02, 0x58, 0x5a, 0x03, 0x30, 0x58, 0x30
glabel D_800EA15C
.word 0x00000000
glabel D_800EA160
.word 0x00000000
glabel D_800EA164
.word 0x00000000
glabel D_800EA168
.word 0x00000000
glabel D_800EA16C
.word 0x00000000
glabel D_800EA170
.word 0x00000000
glabel D_800EA174
.word 0x00000000
glabel D_800EA178
.word 0x3f800000
glabel D_800EA17C
.word 0x3f59999a
glabel D_800EA180
.word 0x00000000
glabel D_800EA184
.word 0x00000000
glabel D_800EA188
.byte 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x06, 0x02, 0x02, 0x02, 0x02, 0x01, 0x08, 0x02, 0x02, 0x00
.byte 0x01, 0x01, 0x08, 0x02, 0x02, 0x00, 0x01, 0x01
glabel D_800EA1A0
.byte 0x04, 0x01, 0x01, 0x02, 0x02, 0x01, 0x03, 0x01
.byte 0x01, 0x02, 0x02, 0x01, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01
glabel sSoundRequestCount
.word 0x00000000
glabel sNumProcessedSoundRequests
.word 0x00000000
glabel D_800EA1C0
.word 0x00000000
glabel D_800EA1C4
.word 0x00000000
glabel D_800EA1C8
.word 0x00000000, 0x00000000, 0x00000000
glabel D_800EA1D4
.word 0x3f800000, 0x00000000
glabel D_800EA1DC
.word 0x00000000, 0x00000000
glabel D_800EA1E4
.word 0x00000000
glabel D_800EA1E8
.word 0x00000000
glabel D_800EA1EC
.word 0x00000000
glabel D_800EA1F0
.byte 0x00, 0x01, 0x02, 0x03
glabel D_800EA1F4
.byte 0x00, 0x00, 0x00, 0x00
.asciiz "Error : Queue is not empty ( %x ) \n"
.balign 4
.asciiz "specchg error\n"
.balign 4
.asciiz "***** CAM MAX %d *****\n"
.balign 4
glabel D_800EA244
.byte 0x00
.byte 0x00, 0x00, 0x00
.asciiz "entryout !!! %d\n"
.balign 4
.asciiz "AFTER GOAL VOICE FLAME %d\n"
.balign 4
.asciiz "*** Pause On ***\n"
.balign 4
.asciiz "*** Pause Off ***\n"
.balign 4
.asciiz "CALLED!! Na_ChangeSoundMode player %d\n"
.balign 4
.asciiz "CALLED!! Na_ChangeSoundMode spec %d\n"
.balign 4
.asciiz "Interfaced Spec Change player %d\n"
.balign 4
.asciiz "Interfaced Spec Change spec %d\n"
.balign 4
.word 0xff000000, 0xff000000, 0x00000000
.asciiz "FX MIX %d\n"
.balign 4
.asciiz "************** Seq Fadeout ***************\n"
.balign 4
.asciiz "SEQ FADE OUT TIME %d\n"
.balign 4

View File

@ -234,7 +234,8 @@ SECTIONS
BUILD_DIR/src/debug/debug.o(.data);
BUILD_DIR/src/os/sprintf.o(.data);
#endif
BUILD_DIR/data/data_0DD0A0_2_1_1.o(.data);
BUILD_DIR/src/audio/seqplayer.o(.data);
BUILD_DIR/src/audio/external.o(.data);
BUILD_DIR/src/audio/port_eu.o(.data);
BUILD_DIR/src/audio/audio_session_presets.o(.data);
BUILD_DIR/src/os/osInitialize.o(.data*);
@ -319,7 +320,6 @@ SECTIONS
BUILD_DIR/src/os/sprintf.o(.bss);
#endif
BUILD_DIR/src/audio/external.o(.bss);
BUILD_DIR/asm/bss_main_audio.o(.bss);
BUILD_DIR/src/audio/port_eu.o(.bss);
BUILD_DIR/src/os/osInitialize.o(.bss);
BUILD_DIR/src/os/osCreateViManager.o(.bss);

View File

@ -33,55 +33,200 @@ struct Unk_8018FC20 sSoundRequests[0x100];
struct Unk_80191420 sSoundBanks[SOUND_BANK_COUNT][20];
u8 sSoundBankUsedListBack[SOUND_BANK_COUNT];
u8 sSoundBankFreeListFront[SOUND_BANK_COUNT];
extern u8 sNumSoundsInBank[SOUND_BANK_COUNT];
extern u8 sSoundBankDisabled[];
extern u8 D_801930D0[];
extern u8 D_80192C38;
// Warning: D_801930D0 appears to be an array of struct.
// D_80193318 has been treated as a fake pr in the assembly.
// This may not be correct.
/** Could not figure out these structs.
u8 D_80192AB8[384]; // probably wrong.
struct UnkStruct_80192C38 {
u8 unk0;
//u8 unk1[3];
u8 sSoundBankDisabled[16];
};
struct UnkStruct_80192C38 D_80192C38;
//u8 D_80192C38;
//s32 a;
//u8 sSoundBankDisabled[15]; // 0x80192C3C
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
} UnkStruct_80192C48; // size 0x10
UnkStruct_80192C48 D_80192C48;
typedef struct {
u8 unk0[9];
} UnkStruct_80192CA8; // size 0xA
UnkStruct_80192CA8 D_80192CA8[3];
u8 D_80192CC6[10]; // unconfirmed
u8 sNumSoundsInBank[SOUND_BANK_COUNT];
struct_D_80192AB8_entry D_80192AB8[SOUND_BANK_COUNT][8];
u8 D_80192C38;
u8 sSoundBankDisabled[SOUND_BANK_COUNT];
f32 D_80192C48[SOUND_BANK_COUNT][4];
u8 D_80192CA8[3][10];
u8 D_80192CC6[3];
u32 D_80192CD0[256];
struct_D_801930D0_entry D_801930D0[3];
typedef struct {
u8 unk0[0x24C];
} UnkStruct_801930D0;
u8 D_800E9DA0 = 0;
UNUSED s32 D_800E9DA4[] = { 0, 0, 0, 0 };
s32 D_800E9DB4[] = { 0, 0, 0, 0 };
f32 D_800E9DC4[] = { 1.0f, 1.0f, 1.0f, 1.0f };
f32 D_800E9DD4[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800E9DE4[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800E9DF4[] = {
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f
};
s32 D_800E9E14[] = { 0, 0, 0, 0 };
s32 D_800E9E24[] = { 0, 0, 0, 0 };
s32 D_800E9E34[] = {
0, 0, 0, 0,
0, 0, 0, 0
};
f32 D_800E9E54[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800E9E64[] = { 0.0f, 0.0f, 0.0f, 0.0f };
s32 D_800E9E74[] = { 0, 0, 0, 0 };
s32 D_800E9E84[] = { 0, 0, 0, 0 };
u32 D_800E9E94[] = { 0, 0, 0, 0 };
s32 D_800E9EA4[] = { 0, 0, 0, 0 };
f32 D_800E9EB4[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800E9EC4[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800E9ED4[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800E9EE4[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800E9EF4[] = { 1.0f, 1.0f, 1.0f, 1.0f };
f32 D_800E9F04[] = { 1.0f, 1.0f, 1.0f, 1.0f };
f32 D_800E9F14[] = { 1.0f, 1.0f, 1.0f, 1.0f };
u8 D_800E9F24[] = {
0, 0, 0, 0,
0, 0, 0, 0
};
u8 D_800E9F2C[] = {
0, 0, 0, 0,
0, 0, 0, 0
};
f32 D_800E9F34[] = {
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f
};
f32 D_800E9F54[] = {
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f
};
u8 D_800E9F74[] = { 0, 0, 0, 0 };
u8 D_800E9F78[] = { 0, 0, 0, 0 };
struct Unk_800E9F7C D_800E9F7C[] = {
{
{ 0.0f, 0.0f, 0.0f },
1.0f, 1.0f,
0,
3800.0f, 3.4f, 0.4f,
-1.0f, 0.4f, 1100.0f,
630.0f, 3600.0f, 1.0f
},
{
{ 0.0f, 0.0f, 0.0f },
1.0f, 1.0f,
0,
3800.0f, 3.4f, 0.4f,
-1.0f, 0.4f, 1100.0f,
630.0f, 3600.0f, 1.0f
},
{
{ 0.0f, 0.0f, 0.0f },
1.0f, 1.0f,
0,
3800.0f, 3.4f, 0.4f,
-1.0f, 0.4f, 1100.0f,
630.0f, 3600.0f, 1.0f
},
{
{ 0.0f, 0.0f, 0.0f },
1.0f, 1.0f,
0,
3800.0f, 3.4f, 0.4f,
-1.0f, 0.4f, 1100.0f,
630.0f, 3600.0f, 1.0f
}
};
struct Unk_800EA06C D_800EA06C[] = {
{
{ 0.0f, 1.0f, 1.0f },
0
},
{
{ 0.0f, 1.0f, 1.0f },
0
},
{
{ 0.0f, 1.0f, 1.0f },
0
},
{
{ 0.0f, 1.0f, 1.0f },
0
},
{
{ 0.0f, 1.0f, 1.0f },
0
},
{
{ 0.0f, 1.0f, 1.0f },
0
},
{
{ 0.0f, 1.0f, 1.0f },
0
},
{
{ 0.0f, 1.0f, 1.0f },
0
}
};
u8 D_800EA0EC[] = { 0, 0, 0, 0 };
u8 D_800EA0F0 = 0;
u8 D_800EA0F4 = 0;
UNUSED Vec3f D_800EA0F8 = { 0.0f, 0.0f, 1.0f };
u8 D_800EA104 = 0;
u8 D_800EA108 = 0;
u8 D_800EA10C[] = { 0, 0, 0, 0 };
f32 D_800EA110[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800EA120[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 D_800EA130[] = {
0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f
};
f32 D_800EA150 = 1.4f;
u8 D_800EA154[] = { 2, 2, 88, 90, 3, 48, 88, 48 };
u16 D_800EA15C = 0;
u16 D_800EA160 = 0;
u8 D_800EA164 = 0;
s8 D_800EA168 = 0;
s8 D_800EA16C = 0;
u8 D_800EA170[] = { 0, 0, 0, 0 };
u16 D_800EA174 = 0;
f32 D_800EA178 = 1.0f;
f32 D_800EA17C = 0.85f;
u16 D_800EA180 = 0;
u16 D_800EA184 = 0;
u8 D_800EA188[][6] = {
{ 4, 2, 2, 2, 2, 1 },
{ 6, 2, 2, 2, 2, 1 },
{ 8, 2, 2, 0, 1, 1 },
{ 8, 2, 2, 0, 1, 1 }
};
u8 D_800EA1A0[][6] = {
{ 4, 1, 1, 2, 2, 1 },
{ 3, 1, 1, 2, 2, 1 },
{ 3, 1, 1, 0, 1, 1 },
{ 3, 1, 1, 0, 1, 1 }
};
u8 sSoundRequestCount = 0;
u8 sNumProcessedSoundRequests = 0;
u8 D_800EA1C0 = 0;
u16 D_800EA1C4 = 0;
Vec3f D_800EA1C8 = { 0.0f, 0.0f, 0.0f };
f32 D_800EA1D4 = 1.0f;
u32 external_unused_u32_0 = 0x00000000;
u8 D_800EA1DC = 0;
u32 external_unused_u32_1 = 0x00000000;
u8 D_800EA1E4 = 0;
u8 D_800EA1E8 = 0;
u8 D_800EA1EC = 0;
u8 D_800EA1F0[] = { 0, 1, 2, 3 };
u8 D_800EA1F4[] = { 0, 0, 0, 0 };
UnkStruct_801930D0 D_801930D0[3];
//UnkStruct_801930D0 D_80193318[2]; // Likely fake var. Probably apart of 801930D0.
*/
char external_unused_string00[] = "Error : Queue is not empty ( %x ) \n";
char external_unused_string01[] = "specchg error\n";
char external_unused_string02[] = "***** CAM MAX %d *****\n";
u8 D_800EA244 = 0;
char external_unused_string03[] = "entryout !!! %d\n";
char external_unused_string04[] = "AFTER GOAL VOICE FLAME %d\n";
char external_unused_string05[] = "*** Pause On ***\n";
char external_unused_string06[] = "*** Pause Off ***\n";
char external_unused_string07[] = "CALLED!! Na_ChangeSoundMode player %d\n";
char external_unused_string08[] = "CALLED!! Na_ChangeSoundMode spec %d\n";
char external_unused_string09[] = "Interfaced Spec Change player %d\n";
char external_unused_string10[] = "Interfaced Spec Change spec %d\n";
UNUSED u32 external_unused_u32s[]= { 0xff000000, 0xff000000, 0x00000000 };
char external_unused_string11[] = "FX MIX %d\n";
char external_unused_string12[] = "************** Seq Fadeout ***************\n";
char external_unused_string13[] = "SEQ FADE OUT TIME %d\n";
// Requires void in the argument list to match properly.
void func_800C13F0(void) {
@ -1599,8 +1744,8 @@ extern u16 D_800EA1C4;
void func_800C40F0(u8 arg0) {
D_800EA1C4 &= ((1 << (arg0)) ^ (u16) -1);
if (!D_800EA1C4) {
D_801930D0[18] = 1;
D_801930D0[16] = 0x7F;
D_801930D0[0].some_innards[18] = 1;
D_801930D0[0].some_innards[16] = 0x7F;
}
}
@ -2813,19 +2958,19 @@ void func_800C683C(u8 arg0) {
D_800E9E94[arg0] = 0x0100F908;
break;
case 18:
play_sound(0x0100F81DU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F81DU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F81D;
break;
case 19:
play_sound(0x0100F822U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F822U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F822;
break;
case 1:
play_sound(0x0100F009U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F009U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F009;
break;
case 2:
play_sound(0x0100F40AU, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F40AU, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F40A;
break;
case 17:
@ -2833,93 +2978,93 @@ void func_800C683C(u8 arg0) {
D_800E9E94[arg0] = 0x0100F01E;
break;
case 15:
play_sound(0x0100F01FU, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F01FU, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F01F;
break;
case 16:
play_sound(0x0100F021U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F021U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F021;
break;
case 20:
play_sound(0x0100F027U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F027U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F027;
break;
case 25:
play_sound(0x0100F020U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F020U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F020;
break;
case 26:
play_sound(0x0100F023U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F023U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F023;
break;
case 27:
play_sound(0x01008046U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x01008046U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x01008046;
break;
case 28:
play_sound(0x0100F025U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F025U, D_800E9F7C[arg0].pos, arg0, &D_800E9F14[arg0], &D_800EA1D4, (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F025;
break;
case 4:
play_sound(0x0100F00BU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F00BU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F00B;
break;
case 5:
play_sound(0x0100F00CU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F00CU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F00C;
break;
case 6:
play_sound(0x0100F00DU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F00DU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F00D;
break;
case 7:
play_sound(0x0100F00EU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F00EU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F00E;
break;
case 8:
play_sound(0x0100F00FU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F00FU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F00F;
break;
case 9:
play_sound(0x0100F010U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F010U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F010;
break;
case 10:
case 14:
play_sound(0x0100F011U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F011U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F011;
break;
case 11:
play_sound(0x0100F012U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F012U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F012;
break;
case 12:
play_sound(0x0100F013U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F013U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F013;
break;
case 29:
play_sound(0x0100F048U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F048U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F048;
break;
case 30:
play_sound(0x0100F049U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F049U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F049;
break;
case 31:
play_sound(0x0100F04AU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F04AU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F04A;
break;
case 13:
case 22:
play_sound(0x0100F029U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F029U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F029;
break;
case 23:
play_sound(0x0100F02AU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F02AU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F02A;
break;
case 24:
play_sound(0x0100F02BU, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x0100F02BU, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800E9EF4[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
D_800E9E94[arg0] = 0x0100F02B;
break;
default:
@ -3133,84 +3278,31 @@ void func_800C70A8(u8 playerId) {
}
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-09-2023
extern s8 D_801657E5;
s32 D_800E9E74[4] = { 0, 0, 0, 0 };
static ? D_800E9E94; /* unable to generate initializer */
static s32 D_800E9EA4[4] = { 0, 0, 0, 0 };
struct Unk_800E9F7C D_800E9F7C[4]; /* unable to generate initializer */
u8 D_800EA0EC[1] = { 0 };
static u8 D_800EA0ED = 0;
static u8 D_800EA0EE = 0;
static u8 D_800EA0EF = 0;
u8 D_800EA0F0 = 0;
u8 D_800EA104 = 0;
static ? D_800EA130; /* unable to generate initializer */
u8 D_800EA1C0 = 0;
void func_800C76C0(u8 playerId) {
s32 sp38;
s32 *sp34;
u8 *sp30;
Player *temp_v1;
Player *temp_v1_2;
f32 *var_at;
f32 var_f10;
s16 temp_v0_2;
s16 temp_v0_3;
s16 temp_v0_6;
s16 temp_v0_7;
s32 *temp_t0;
s32 temp_t1;
s32 temp_v0_5;
s32 temp_v1_3;
s32 temp_v1_4;
s32 temp_v1_5;
s32 temp_v1_6;
s32 var_v1;
u8 *temp_a2;
u8 *temp_v0;
u8 *temp_v0_4;
u8 temp_t6;
u8 var_v0;
temp_t6 = playerId & 0xFF;
temp_t0 = &D_800E9EA4[temp_t6];
sp34 = temp_t0;
sp38 = temp_t6 * 4;
var_v1 = *temp_t0;
if (var_v1 != 0) {
temp_t1 = var_v1 + 1;
if (var_v1 < 0x2BC) {
*temp_t0 = temp_t1;
var_v1 = temp_t1;
if (D_800E9EA4[playerId] != 0) {
if (D_800E9EA4[playerId] < 0x2BC) {
D_800E9EA4[playerId]++;
}
playerId = temp_t6;
if (var_v1 == 2) {
playerId = temp_t6;
func_800C9018(temp_t6, 0x0100FA28);
if (D_800E9EA4[playerId] == 2) {
func_800C9018(playerId, 0x0100FA28);
func_800C9018(playerId, 0x0100FF2C);
func_800C9018(playerId, 0x0100FA4C);
func_800C5578(D_800E9F7C[playerId].pos, *(&D_800E9E94 + sp38));
*(D_800E9E74 + sp38) = 0;
func_800C5578(D_800E9F7C[playerId].pos, D_800E9E94[playerId]);
D_800E9E74[playerId] = 0;
switch (gModeSelection) { /* irregular */
case 0:
temp_v0 = &D_800EA0EC[playerId];
*temp_v0 = 2;
sp30 = temp_v0;
D_800EA0EC[playerId] = 2;
func_800C9060(playerId, 0x1900F103U);
if (D_800EA1C0 == 0) {
func_800C3448(0x100100FF);
func_800C3448(0x110100FF);
func_800C5278(5U);
temp_v0_2 = *(&gPlayers->currentRank + (playerId * 0xDD8));
if (temp_v0_2 == 0) {
if (gPlayers[playerId].currentRank == 0) {
func_800C97C4(playerId);
D_800EA0F0 = 2;
func_800C9A88(playerId);
func_800CA414(0x000DU, 0x0010U);
} else if (temp_v0_2 < 4) {
} else if (gPlayers[playerId].currentRank < 4) {
func_800C97C4(playerId);
D_800EA0F0 = 2;
func_800C9A88(playerId);
@ -3220,19 +3312,16 @@ void func_800C76C0(u8 playerId) {
func_800CA414(0x000FU, 0x0018U);
}
} else {
*sp30 = 2;
D_800EA0EC[playerId] = 2;
func_800C9060(playerId, 0x1900F103U);
temp_v0_3 = *(&gPlayers->currentRank + (playerId * 0xDD8));
if (temp_v0_3 == 0) {
if (gPlayers[playerId].currentRank == 0) {
func_800C3448(0x100100FF);
func_800C3448(0x110100FF);
func_800C97C4(playerId);
D_800EA0F0 = 2;
func_800C9A88(playerId);
func_800CA414(0x000DU, 0x0010U);
goto block_23;
}
if (temp_v0_3 < 4) {
} else if (gPlayers[playerId].currentRank < 4) {
if (D_800EA104 == 0) {
func_800C3448(0x100100FF);
func_800C3448(0x110100FF);
@ -3241,22 +3330,16 @@ void func_800C76C0(u8 playerId) {
D_800EA0F0 = 2;
func_800C9A88(playerId);
func_800CA414(0x000EU, 0x0010U);
goto block_23;
}
var_v0 = D_800EA104;
if (var_v0 == 0) {
} else if (D_800EA104 == 0) {
func_800C3448(0x100100FF);
func_800C3448(0x110100FF);
func_800C3448(-0x3E9F9C00);
func_800CA414(0x000FU, 0x0018U);
block_23:
var_v0 = D_800EA104;
}
if ((var_v0 != 0) || (*sp30 != 1)) {
if ((D_800EA104 != 0) || (D_800EA0EC[playerId] != 1)) {
func_800C5278(5U);
}
}
var_v1 = *sp34;
break;
case 1:
func_800C3448(0x100100FF);
@ -3273,12 +3356,9 @@ block_23:
} else {
func_800C3448(0x01640010);
}
var_v1 = *sp34;
break;
case 2:
temp_v0_4 = &D_800EA0EC[playerId];
*temp_v0_4 = 2;
sp30 = temp_v0_4;
D_800EA0EC[playerId] = 2;
func_800C9060(playerId, 0x1900F103U);
switch (D_800EA1C0) { /* switch 1; irregular */
case 1: /* switch 1 */
@ -3290,12 +3370,12 @@ block_23:
func_800CA414(0x000DU, 0x0017U);
break;
case 2: /* switch 1 */
if ((D_800EA104 == 0) && (*sp30 == 1)) {
if ((D_800EA104 == 0) && (D_800EA0EC[playerId] == 1)) {
func_800C3448(0x100100FF);
func_800C3448(0x110100FF);
func_800CA414(0x000DU, 0x0017U);
D_800EA104 = 1;
} else if ((D_800EA104 == 1) && (*sp30 == 1)) {
} else if ((D_800EA104 == 1) && (D_800EA0EC[playerId] == 1)) {
func_800C5278(5U);
if (func_800C3508(1) != 0x000D) {
D_800EA104 = 0;
@ -3305,18 +3385,18 @@ block_23:
}
break;
case 3: /* switch 1 */
if ((D_800EA104 == 0) && (*sp30 == 1)) {
if ((D_800EA104 == 0) && (D_800EA0EC[playerId] == 1)) {
func_800C3448(0x100100FF);
func_800C3448(0x110100FF);
func_800C8EF8(0x000DU);
D_800EA104 = 1;
} else if ((D_800EA104 == 1) && (*sp30 == 1)) {
} else if ((D_800EA104 == 1) && (D_800EA0EC[playerId] == 1)) {
if (func_800C3508(1) != 0x000D) {
D_800EA104 = 0;
func_800C8EF8(0x000EU);
}
D_800EA104 = 2;
} else if ((D_800EA104 == 2) && (*sp30 == 1)) {
} else if ((D_800EA104 == 2) && (D_800EA0EC[playerId] == 1)) {
func_800C5278(5U);
if (func_800C3508(1) != 0x000E) {
D_800EA104 = 0;
@ -3326,9 +3406,6 @@ block_23:
}
break;
}
default:
block_76:
var_v1 = *sp34;
break;
case 3:
switch (D_800EA1C0) { /* switch 2; irregular */
@ -3339,153 +3416,129 @@ block_76:
func_800C9018(playerId, 0x0100F926);
func_800C8EF8(0x0017U);
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (*(&gPlayers->characterId + (gPlayerWinningIndex * 0xDD8)) * 0x10) + 0x2900800D);
func_800C90F4(playerId, (gPlayers[gPlayerWinningIndex].characterId * 0x10) + 0x2900800D);
break;
case 2: /* switch 2 */
if ((D_800EA0EC->unk0 == 1) && (D_800EA0EC->unk1 == 1) && (D_800EA0EC->unk2 == 1)) {
if ((D_800EA0EC[0] == 1) && (D_800EA0EC[1] == 1) && (D_800EA0EC[2] == 1)) {
func_800C5278(5U);
func_800C9018(playerId, 0x01008026);
func_800C8EF8(0x0017U);
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (*(&gPlayers->characterId + (gPlayerWinningIndex * 0xDD8)) * 0x10) + 0x2900800D);
func_800C90F4(playerId, (gPlayers[gPlayerWinningIndex].characterId * 0x10) + 0x2900800D);
}
break;
case 3: /* switch 2 */
if ((D_800EA0EC->unk0 == 1) && (D_800EA0ED == 1) && (D_800EA0EE == 1) && (D_800EA0EF == 1)) {
if ((D_800EA0EC[0] == 1) && (D_800EA0EC[1] == 1) && (D_800EA0EC[2] == 1) && (D_800EA0EC[3] == 1)) {
func_800C5278(5U);
func_800C9018(playerId, 0x01008026);
func_800C8EF8(0x0017U);
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (*(&gPlayers->characterId + (gPlayerWinningIndex * 0xDD8)) * 0x10) + 0x2900800D);
func_800C90F4(playerId, (gPlayers[gPlayerWinningIndex].characterId * 0x10) + 0x2900800D);
}
break;
}
goto block_76;
break;
default:
break;
}
}
temp_v0_5 = gModeSelection;
if (var_v1 == 0x0000001E) {
switch (temp_v0_5) { /* switch 3; irregular */
if (D_800E9EA4[playerId] == 0x0000001E) {
switch (gModeSelection) { /* switch 3; irregular */
case 3: /* switch 3 */
break;
case 0: /* switch 3 */
temp_v1 = &gPlayers[playerId];
temp_v0_6 = temp_v1->currentRank;
temp_a2 = &D_800EA0EC[playerId];
if (temp_v0_6 == 0) {
*temp_a2 = 2;
func_800C90F4(playerId, (temp_v1->characterId * 0x10) + 0x29008007);
} else if (temp_v0_6 < 4) {
*temp_a2 = 2;
func_800C90F4(playerId, (temp_v1->characterId * 0x10) + 0x2900800D);
if (gPlayers[playerId].currentRank == 0) {
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (gPlayers[playerId].characterId * 0x10) + 0x29008007);
} else if (gPlayers[playerId].currentRank < 4) {
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (gPlayers[playerId].characterId * 0x10) + 0x2900800D);
} else {
*temp_a2 = 2;
func_800C90F4(playerId, (temp_v1->characterId * 0x10) + 0x29008003);
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (gPlayers[playerId].characterId * 0x10) + 0x29008003);
}
break;
case 2: /* switch 3 */
temp_v1_2 = &gPlayers[playerId];
if (temp_v1_2->currentRank == 0) {
if (gPlayers[playerId].currentRank == 0) {
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (temp_v1_2->characterId * 0x10) + 0x2900800D);
func_800C90F4(playerId, (gPlayers[playerId].characterId * 0x10) + 0x2900800D);
}
break;
case 1: /* switch 3 */
if (D_801657E5 == 1) {
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (*(&gPlayers->characterId + (playerId * 0xDD8)) * 0x10) + 0x29008007);
func_800C90F4(playerId, (gPlayers[playerId].characterId * 0x10) + 0x29008007);
} else if (D_8018ED90 == (u8) 1) {
D_800EA0EC[playerId] = 2;
func_800C90F4(playerId, (*(&gPlayers->characterId + (playerId * 0xDD8)) * 0x10) + 0x2900800D);
func_800C90F4(playerId, (gPlayers[playerId].characterId * 0x10) + 0x2900800D);
}
break;
}
}
switch (temp_v0_5) { /* switch 4; irregular */
switch (gModeSelection) { /* switch 4; irregular */
case 0: /* switch 4 */
temp_v0_7 = *(&gPlayers->currentRank + (playerId * 0xDD8));
temp_v1_3 = *sp34;
if (temp_v0_7 == 0) {
if (temp_v1_3 >= 0x15F) {
if (temp_v1_3 == 0x0000015F) {
if (gPlayers[playerId].currentRank == 0) {
if (D_800E9EA4[playerId] >= 0x15F) {
if (D_800E9EA4[playerId] == 0x0000015F) {
func_800C9D0C(playerId);
return;
}
} else {
var_at = &D_800EA130 + sp38;
var_f10 = (f32) temp_v1_3 / 400.0f;
block_134:
*var_at = var_f10;
D_800EA130[playerId] = (f32) D_800E9EA4[playerId] / 400.0f;
}
} else if (temp_v0_7 < 4) {
if (temp_v1_3 >= 0x15F) {
if (temp_v1_3 == 0x0000015F) {
} else if (gPlayers[playerId].currentRank < 4) {
if (D_800E9EA4[playerId] >= 0x15F) {
if (D_800E9EA4[playerId] == 0x0000015F) {
func_800C9D0C(playerId);
return;
}
} else {
*(&D_800EA130 + sp38) = (f32) temp_v1_3 / 400.0f;
return;
D_800EA130[playerId] = (f32) D_800E9EA4[playerId] / 400.0f;
}
} else if (temp_v1_3 >= 0x12D) {
if (temp_v1_3 == 0x0000012D) {
} else if (D_800E9EA4[playerId] >= 0x12D) {
if (D_800E9EA4[playerId] == 0x0000012D) {
func_800C97C4(playerId);
return;
}
} else {
*(&D_800EA130 + sp38) = (f32) temp_v1_3 / 330.0f;
return;
D_800EA130[playerId] = (f32) D_800E9EA4[playerId] / 330.0f;
}
break;
case 2: /* switch 4 */
temp_v1_4 = *sp34;
if (D_800EA1C0 == (u8) 1) {
if (temp_v1_4 >= 0x65) {
if (temp_v1_4 == 0x00000065) {
if (D_800E9EA4[playerId] >= 0x65) {
if (D_800E9EA4[playerId] == 0x00000065) {
func_800C9D0C(playerId);
}
} else {
*(&D_800EA130 + sp38) = (f32) temp_v1_4 / 120.0f;
D_800EA130[playerId] = (f32) D_800E9EA4[playerId] / 120.0f;
}
} else if (temp_v1_4 >= 0x65) {
if (temp_v1_4 == 0x00000065) {
} else if (D_800E9EA4[playerId] >= 0x65) {
if (D_800E9EA4[playerId] == 0x00000065) {
func_800C97C4(playerId);
}
} else {
*(&D_800EA130 + sp38) = (f32) temp_v1_4 / 120.0f;
D_800EA130[playerId] = (f32) D_800E9EA4[playerId] / 120.0f;
}
/* fallthrough */
case 1: /* switch 4 */
temp_v1_5 = *sp34;
if (temp_v1_5 >= 0x12D) {
if (temp_v1_5 == 0x0000012D) {
if (D_800E9EA4[playerId] >= 0x12D) {
if (D_800E9EA4[playerId] == 0x0000012D) {
func_800C9D0C(0U);
return;
}
} else {
*(&D_800EA130 + sp38) = (f32) temp_v1_5 / 350.0f;
return;
D_800EA130[playerId] = (f32) D_800E9EA4[playerId] / 350.0f;
}
break;
case 3: /* switch 4 */
temp_v1_6 = *sp34;
if (temp_v1_6 >= 0x65) {
if (temp_v1_6 == 0x00000065) {
if (D_800E9EA4[playerId] >= 0x65) {
if (D_800E9EA4[playerId] == 0x00000065) {
func_800C97C4(playerId);
return;
}
} else {
var_at = &D_800EA130 + sp38;
var_f10 = (f32) temp_v1_6 / 120.0f;
goto block_134;
D_800EA130[playerId] = (f32) D_800E9EA4[playerId] / 120.0f;
}
break;
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C76C0.s")
#endif
void func_800C847C(u8 playerId) {
if ((gPlayers[playerId].unk_0DE & 1) == 1) {
@ -3508,7 +3561,7 @@ void func_800C847C(u8 playerId) {
|| (gCurrentCourseId == COURSE_SHERBET_LAND)
|| (gCurrentCourseId == COURSE_DK_JUNGLE)
|| (gCurrentCourseId == COURSE_BIG_DONUT)) && (D_800EA0EC[playerId] == 0)) {
play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008005, D_800E9F7C[playerId].pos, playerId, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008005, D_800E9F7C[playerId].pos, playerId, &D_800EA1D4, &D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
}
}
} else {
@ -3518,7 +3571,7 @@ void func_800C847C(u8 playerId) {
func_800C94A4(playerId);
D_800E9F74[playerId] = 0;
if ((gCurrentCourseId == COURSE_KOOPA_BEACH) && (D_800EA0EC[playerId] == 0)) {
play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008008, D_800E9F7C[playerId].pos, playerId, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008008, D_800E9F7C[playerId].pos, playerId, &D_800EA1D4, &D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
}
}
}
@ -3686,7 +3739,7 @@ void play_sound2(s32 soundBits) {
if ((soundBits == SOUND_ACTION_REV_ENGINE_2) && (gCurrentCourseId == COURSE_DK_JUNGLE)) {
soundBits = 0x49008028;
}
play_sound(soundBits, D_800EA1C8, 4, D_800EA1D4, D_800EA1D4, &D_800EA1DC);
play_sound(soundBits, D_800EA1C8, 4, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
}
void func_800C8EAC(u16 arg0) {
@ -3709,7 +3762,7 @@ void func_800C8F80(u8 arg0, u32 arg1) {
case 2:
D_800EA0EC[arg0] = 1;
case 0:
play_sound(arg1, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, D_800EA1D4, &D_800EA1DC);
play_sound(arg1, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
break;
}
}
@ -3726,7 +3779,7 @@ void func_800C9060(u8 arg0, u32 arg1) {
case 2:
D_800EA0EC[arg0] = 1;
case 0:
play_sound(arg1, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, D_800EA1D4, &D_800E9F7C[arg0].unk_14);
play_sound(arg1, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA1D4, &D_800E9F7C[arg0].unk_14);
break;
}
}
@ -3742,9 +3795,9 @@ void func_800C90F4(u8 playerId, u32 arg1) {
D_800EA180 = 1;
}
if (((gPlayers[playerId].effects & 0x40000000) == 0x40000000) && ((s32) D_800E9F2C[playerId] >= 0x1F)) {
play_sound(arg1, D_800E9F7C[playerId].pos, playerId, &D_800EA150, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
play_sound(arg1, D_800E9F7C[playerId].pos, playerId, &D_800EA150, &D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
} else {
play_sound(arg1, D_800E9F7C[playerId].pos, playerId, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
play_sound(arg1, D_800E9F7C[playerId].pos, playerId, &D_800EA1D4, &D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
}
break;
default:
@ -3769,9 +3822,9 @@ void func_800C92CC(u8 playerId, u32 soundBits) {
if (temp_v0 != NULL) {
temp_v0->unk34 = 170.0f;
if (((gPlayers[playerId].effects & 0x40000000) == 0x40000000) && ((s32) D_800E9F2C[playerId] >= 0x1F)) {
play_sound((gPlayers[playerId].characterId * 0x10) + soundBits, temp_v0->unk18, var_s0, &D_800EA150, D_800EA1D4, &D_800EA06C[playerId].unk0C);
play_sound((gPlayers[playerId].characterId * 0x10) + soundBits, temp_v0->unk18, var_s0, &D_800EA150, &D_800EA1D4, &D_800EA06C[playerId].unk0C);
} else {
play_sound((gPlayers[playerId].characterId * 0x10) + soundBits, temp_v0->unk18, var_s0, &temp_v0->unk2C, D_800EA1D4, &D_800EA06C[playerId].unk0C);
play_sound((gPlayers[playerId].characterId * 0x10) + soundBits, temp_v0->unk18, var_s0, &temp_v0->unk2C, &D_800EA1D4, &D_800EA06C[playerId].unk0C);
}
}
}
@ -3886,7 +3939,7 @@ void func_800C98B8(Vec3f position, Vec3f velocity, u32 soundBits) {
temp_v0 = func_800C1C88(0U, position, velocity, D_800EA1C8, (u8) var_s0, soundBits);
if (temp_v0 != 0) {
temp_v0->unk34 = 170.0f;
play_sound(soundBits, temp_v0->unk18, var_s0, &temp_v0->unk2C, D_800EA1D4, &D_800EA1DC);
play_sound(soundBits, temp_v0->unk18, var_s0, &temp_v0->unk2C, &D_800EA1D4, &D_800EA1DC);
}
}
}
@ -3976,7 +4029,7 @@ void func_800C9D80(Vec3f position, Vec3f velocity, u32 soundBits) {
if (soundBits == 0x5103700B) {
play_sound(soundBits, temp_v0->unk18, var_s0, &D_800EA178, &D_800EA17C, &D_800EA1DC);
} else {
play_sound(soundBits, temp_v0->unk18, var_s0, &temp_v0->unk2C, D_800EA1D4, &D_800EA1DC);
play_sound(soundBits, temp_v0->unk18, var_s0, &temp_v0->unk2C, &D_800EA1D4, &D_800EA1DC);
}
}
}
@ -4142,7 +4195,7 @@ void func_800CA49C(u8 arg0) {
void func_800CA59C(u8 playerId) {
if ((D_800EA0EC[playerId] == 0) && (D_800EA108 == 0)) {
play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008001, D_800E9F7C[playerId].pos, playerId, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008001, D_800E9F7C[playerId].pos, playerId, &D_800EA1D4, &D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14);
D_800EA164 = 1;
if ((s32) D_800EA1C0 >= 2) {
func_800C8F80(playerId, 0x0100FF2C);
@ -4166,12 +4219,10 @@ void func_800CA59C(u8 playerId) {
}
}
extern void func_800C3608(s32, s32); /* extern */
void func_800CA730(u8 arg0) {
if (D_800EA0EC[arg0] == 0) {
if ((D_800EA108 == 0) && (D_800EA10C[arg0] != 0)) {
play_sound(gPlayers[arg0].characterId * 0x10 + 0x29008008, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, D_800EA1D4, (u8*) &D_800E9F7C[arg0].unk_14);
play_sound(gPlayers[arg0].characterId * 0x10 + 0x29008008, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA1D4, (u8*) &D_800E9F7C[arg0].unk_14);
if (D_800EA10C[arg0] != 0) {
if ((s32) D_800EA1C0 >= 2) {
func_800C9018(arg0, 0x0100FF2C);
@ -4216,7 +4267,7 @@ void func_800CA984(u8 arg0) {
for (i = 0; i < D_800EA1C0 + 1; i++) {
temp_v0_2 = func_800C1C88(arg0, &gPlayers[arg0].pos, D_800EA1C8, &gPlayers[arg0].unk_098, (u8) i, 0x31029008U);
if (temp_v0_2) {
play_sound(0x31029008U, temp_v0_2->unk18, i, D_800EA1D4, D_800EA1D4, &D_800EA1DC);
play_sound(0x31029008U, temp_v0_2->unk18, i, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
}
}
}
@ -4240,7 +4291,7 @@ void func_800CAB4C(u8 arg0) {
case 0:
func_800C36C4(0, 1U, 0x55U, 5);
func_800C9060(arg0, 0x1900F013U);
play_sound(0x5101C00CU, D_800EA1C8, 0U, D_800EA1D4, D_800EA1D4, &D_800EA1DC);
play_sound(0x5101C00CU, D_800EA1C8, 0U, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
break;
default:
break;
@ -4259,10 +4310,10 @@ void func_800CAC08() {
void func_800CAC60(UNUSED s32 arg0) {
if ((D_800EA108 == 0) && (D_800EA0F0 == 0)) {
play_sound(SOUND_ACTION_EXPLOSION_2, D_800EA1C8, 0U, D_800EA1D4, D_800EA1D4, &D_800EA1DC);
play_sound(SOUND_ACTION_EXPLOSION_2, D_800EA1C8, 0U, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
if ((D_800EA10C[0] != 1) && (D_800EA10C[1] != 1)) {
func_800C36C4(0, 1, 0x37U, 5);
play_sound(SOUND_ITEM_THUNDERBOLT, D_800EA1C8, 0U, D_800EA1D4, D_800EA1D4, &D_800EA1DC);
play_sound(SOUND_ITEM_THUNDERBOLT, D_800EA1C8, 0U, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
D_800EA168 = 1;
}
}
@ -4299,7 +4350,7 @@ void func_800CADD0(u8 arg0, f32 arg1) {
var_f12 = 0.0f;
}
D_800EA110[arg0] = var_f12;
play_sound(0x1900A209U, D_800E9F7C[arg0].pos, arg0, D_800EA1D4, &D_800EA110[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
play_sound(0x1900A209U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA110[arg0], (u8 *) &D_800E9F7C[arg0].unk_14);
break;
default:
break;

View File

@ -124,6 +124,17 @@ struct Unk_800EA06C {
/* 0x0D */ // u8 compilerPadding0[3];
};
typedef struct {
/* 0x00 */ s32 unk_0;
/* 0x04 */ s32 unk_4;
} struct_D_80192AB8_entry; // size = 0x8
typedef struct {
// This will need lots of expanding/documenting
// Its 147 words of space being used
u8 some_innards[0x24C];
} struct_D_801930D0_entry; // size = 0x24C
void func_800C94A4(u8);
void func_800CADD0(u8, f32);
void func_800C13F0(void);
@ -145,6 +156,7 @@ void func_800C3724(void);
void func_800C3448(u32);
void func_800C3478(void);
u16 func_800C3508(s32);
void func_800C3608(s32, s32);
u8 func_800C357C(s32);
void func_800C35E8(u8);
void func_800C36C4(s32, u32, u8, s8);
@ -244,6 +256,9 @@ void func_800CB14C(void);
void func_800CB2C4(void);
void func_800CBC24(void);
// This is some from other file, its definitely not part of audio's data/bss
extern s8 D_801657E5;
// Based on SM64, this should be part of data.c's BSS section. Somehow.
extern s32 gAudioErrorFlags;
@ -261,13 +276,18 @@ extern struct Unk_80191420 sSoundBanks[SOUND_BANK_COUNT][20];
extern u8 sSoundBankUsedListBack[SOUND_BANK_COUNT];
extern u8 sSoundBankFreeListFront[SOUND_BANK_COUNT];
extern u8 sNumSoundsInBank[SOUND_BANK_COUNT];
extern struct_D_80192AB8_entry D_80192AB8[SOUND_BANK_COUNT][8];
extern u8 D_80192C38;
extern u8 sSoundBankDisabled[SOUND_BANK_COUNT];
extern f32 D_80192C48[SOUND_BANK_COUNT][4];
extern u8 D_80192CA8[3][10];
extern u8 D_80192CC6[3];
extern u32 D_80192CD0[256];
extern struct_D_801930D0_entry D_801930D0[3];
extern u8 sNumProcessedSoundRequests;
extern u8 sSoundRequestCount;
extern struct Unk_8018FC20 sSoundRequests[0x100];
extern u8 D_80192CC6[];
extern u32 D_80192CD0[];
// Data entries
extern u8 D_800E9DA0;
extern f32 D_800E9DC4[4];// = { 1.0f, 1.0f, 1.0f, 1.0f };
@ -293,7 +313,7 @@ extern f32 D_800E9F14[4];// = { 1.0f, 1.0f, 1.0f, 1.0f }; /* const */
extern u8 D_800E9F24[8];// = { 0, 0, 0, 0, 0, 0, 0, 0 };
extern u8 D_800E9F2C[8];// = { 0, 0, 0, 0, 0, 0, 0, 0 };
extern f32 D_800E9F34[8];// = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; /* const */
extern f32 D_800E9F54[4];// = { 1.0f, 1.0f, 1.0f, 1.0f }; /* const */
extern f32 D_800E9F54[8];// = { 1.0f, 1.0f, 1.0f, 1.0f }; /* const */
extern u8 D_800E9F74[4];
extern u8 D_800E9F78[4];
extern struct Unk_800E9F7C D_800E9F7C[4];
@ -307,7 +327,7 @@ extern u8 D_800EA108;// = 0;
extern u8 D_800EA10C[];
extern f32 D_800EA110[4];// = { 0.0f, 0.0f, 0.0f, 0.0f };
extern f32 D_800EA120[4];
extern f32 D_800EA130[4];
extern f32 D_800EA130[8];
extern f32 D_800EA150;// = 1.4f;
extern u8 D_800EA154[];
extern u16 D_800EA15C;
@ -324,7 +344,7 @@ extern u8 D_800EA1C0;// = 0;
// Most similar to gGlobalSoundSource from SM64, but I don't know if its really
// a sound source, its usage makes it look like a 0'd Vec3f for general usage
extern Vec3f D_800EA1C8;// = {0.0f, 0.0f, 0.0f}
extern Vec3f D_800EA1D4;
extern f32 D_800EA1D4;
extern u8 D_800EA1DC;// = 0;
extern u8 D_800EA1E4;
extern u8 D_800EA1E8;

View File

@ -192,7 +192,7 @@ void func_800B90E0(struct SoundAllocPool *pool) {
}
// inspired by sound_init_main_pools in sm64
void func_800B90F0(s32 arg0) {
void sound_init_main_pools(s32 arg0) {
sound_alloc_pool_init(&gAudioInitPool, &D_803B71B0, arg0);
sound_alloc_pool_init(&gAudioSessionPool, D_803B71B0 + arg0, gAudioHeapSize - arg0);
}

View File

@ -100,7 +100,7 @@ void sound_alloc_pool_init(struct SoundAllocPool *pool, void *memAddr, u32 size)
void persistent_pool_clear(struct PersistentPool *persistent);
void temporary_pool_clear(struct TemporaryPool *temporary);
void func_800B90E0(struct SoundAllocPool *pool);
void func_800B90F0(s32);
void sound_init_main_pools(s32);
void func_800B914C(struct PoolSplit*);
void seq_and_bank_pool_init(struct PoolSplit2 *a);
void persistent_pools_init(struct PoolSplit *a);

View File

@ -10,6 +10,41 @@
#include "audio/playback.h"
#include "audio/external.h"
/**
* Given that (almost) all of these are format strings, it is highly likely
* that they are meant to be used in some sort of printf variant. But I don't
* care to try and figure out which function gets which string(s)
* So I've place them all here instead.
* This means some printf stubs have been commented out to avoid duplication
* of some strings (i.e seqplayer_unused_string00)
**/
char seqplayer_unused_string00[] = "Audio:Track:Warning: No Free Notetrack\n";
char seqplayer_unused_string01[] = "SUBTRACK DIM\n";
char seqplayer_unused_string02[] = "Audio:Track: Warning :SUBTRACK had been stolen by other Group.\n";
char seqplayer_unused_string03[] = "SEQID %d,BANKID %d\n";
char seqplayer_unused_string04[] = "ERR:SUBTRACK %d NOT ALLOCATED\n";
char seqplayer_unused_string05[] = "Error:Same List Add\n";
char seqplayer_unused_string06[] = "Macro Level Over Error!\n";
char seqplayer_unused_string07[] = "Macro Level Over Error!\n";
char seqplayer_unused_string08[] = "WARNING: NPRG: cannot change %d\n";
char seqplayer_unused_string09[] = "Audio:Track:NOTE:UNDEFINED NOTE COM. %x\n";
char seqplayer_unused_string10[] = "Audio: Note:Velocity Error %d\n";
char seqplayer_unused_string11[] = "Error: Subtrack no prg.\n";
char seqplayer_unused_string12[] = "ERR %x\n";
char seqplayer_unused_string13[] = "Error: Your assignchannel is stolen.\n";
char seqplayer_unused_string14[] = "Audio:Track :Call Macro Level Over Error!\n";
char seqplayer_unused_string15[] = "Audio:Track :Loops Macro Level Over Error!\n";
char seqplayer_unused_string16[] = "SUB:ERR:BANK %d NOT CACHED.\n";
char seqplayer_unused_string17[] = "SUB:ERR:BANK %d NOT CACHED.\n";
char seqplayer_unused_string18[] = "Audio:Track: CTBLCALL Macro Level Over Error!\n";
char seqplayer_unused_string19[] = "[%2x] \n";
char seqplayer_unused_string20[] = "Err :Sub %x ,address %x:Undefined SubTrack Function %x";
char seqplayer_unused_string21[] = "Disappear Sequence or Bank %d\n";
char seqplayer_unused_string22[] = "Macro Level Over Error!\n";
char seqplayer_unused_string23[] = "Macro Level Over Error!\n";
char seqplayer_unused_string24[] = "Group:Undefine upper C0h command (%x)\n";
char seqplayer_unused_string25[] = "Group:Undefined Command\n";
// sequence_channel_init
void sequence_channel_init(struct SequenceChannel *seqChannel) {
s32 i;
@ -145,7 +180,7 @@ void sequence_player_init_channels(struct SequencePlayer *seqPlayer, u16 channel
}
seqChannel = allocate_sequence_channel();
if (IS_SEQUENCE_CHANNEL_VALID(seqChannel) == FALSE) {
eu_stubbed_printf_0("Audio:Track:Warning: No Free Notetrack\n");
//eu_stubbed_printf_0("Audio:Track:Warning: No Free Notetrack\n");
gAudioErrorFlags = i + 0x10000;
seqPlayer->channels[i] = seqChannel;
} else {
@ -165,7 +200,7 @@ void sequence_player_disable_channels(struct SequencePlayer *seqPlayer, u16 chan
struct SequenceChannel *seqChannel;
s32 i;
eu_stubbed_printf_0("SUBTRACK DIM\n");
//eu_stubbed_printf_0("SUBTRACK DIM\n");
for (i = 0; i < CHANNELS_MAX; i++) {
if (channelBits & 1) {
seqChannel = seqPlayer->channels[i];
@ -175,7 +210,7 @@ void sequence_player_disable_channels(struct SequencePlayer *seqPlayer, u16 chan
seqChannel->seqPlayer = NULL;
}
else {
stubbed_printf("Audio:Track: Warning SUBTRACK PARENT CHANGED\n");
//stubbed_printf("Audio:Track: Warning SUBTRACK PARENT CHANGED\n");
}
seqPlayer->channels[i] = &gSequenceChannelNone;
}
@ -188,8 +223,8 @@ void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex,
struct SequenceChannel *seqChannel = seqPlayer->channels[channelIndex];
s32 i;
if (IS_SEQUENCE_CHANNEL_VALID(seqChannel) == FALSE) {
stubbed_printf("SEQID %d,BANKID %d\n", seqPlayer->seqId, seqPlayer->defaultBank[0]);
stubbed_printf("ERR:SUBTRACK %d NOT ALLOCATED\n", channelIndex);
//stubbed_printf("SEQID %d,BANKID %d\n", seqPlayer->seqId, seqPlayer->defaultBank[0]);
//stubbed_printf("ERR:SUBTRACK %d NOT ALLOCATED\n", channelIndex);
} else {
seqChannel->enabled = TRUE;
seqChannel->finished = FALSE;
@ -230,7 +265,7 @@ void sequence_player_disable(struct SequencePlayer *seqPlayer) {
void audio_list_push_back(struct AudioListItem *list, struct AudioListItem *item) {
if (item->prev != NULL) {
eu_stubbed_printf_0("Error:Same List Add\n");
//eu_stubbed_printf_0("Error:Same List Add\n");
} else {
list->prev->next = item;
item->prev = list->prev;
@ -1447,7 +1482,7 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) {
break;
default:
eu_stubbed_printf_1("Group:Undefine upper C0h command (%x)\n", cmd);
//eu_stubbed_printf_1("Group:Undefine upper C0h command (%x)\n", cmd);
break;
}
} else {
@ -1481,7 +1516,7 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer) {
break;
default:
eu_stubbed_printf_0("Group:Undefined Command\n");
//eu_stubbed_printf_0("Group:Undefined Command\n");
break;
}
}