Identified some variables related to sound mode (#90)

* Identified some variables related to sound mode

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
Tyler McGavran 2021-12-12 01:14:25 -05:00 committed by GitHub
parent 5fd2f225c1
commit d324dd7f3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 158 additions and 144 deletions

View File

@ -1943,7 +1943,7 @@ glabel D_8018ED12
glabel D_8018ED13
.skip 1
glabel D_8018ED14
glabel gSaveDataSoundMode
.skip 2
glabel D_8018ED16
@ -1967,7 +1967,7 @@ glabel D_8018ED8A
glabel D_8018ED8B
.skip 1
glabel D_8018ED8C
glabel gSaveDataSoundModeBackup
.skip 2
glabel D_8018ED8E
@ -2087,7 +2087,7 @@ glabel gPlayerCountSelection2 # 0x8018EDF0
glabel D_8018EDF1
.skip 1
glabel D_8018EDF2
glabel gSoundMode
.skip 1
glabel D_8018EDF3

View File

@ -166,13 +166,13 @@ glabel L8009568C
/* 0963C8 800957C8 24040050 */ li $a0, 80
/* 0963CC 800957CC 0C015DE9 */ jal debug_print_str2
/* 0963D0 800957D0 2405008C */ li $a1, 140
/* 0963D4 800957D4 3C0E8019 */ lui $t6, %hi(D_8018EDF2) # $t6, 0x8019
/* 0963D8 800957D8 91CEEDF2 */ lbu $t6, %lo(D_8018EDF2)($t6)
/* 0963DC 800957DC 3C06800E */ lui $a2, %hi(D_800E7700)
/* 0963D4 800957D4 3C0E8019 */ lui $t6, %hi(gSoundMode) # $t6, 0x8019
/* 0963D8 800957D8 91CEEDF2 */ lbu $t6, %lo(gSoundMode)($t6)
/* 0963DC 800957DC 3C06800E */ lui $a2, %hi(gDebugSoundModeNames)
/* 0963E0 800957E0 240400AA */ li $a0, 170
/* 0963E4 800957E4 000E7880 */ sll $t7, $t6, 2
/* 0963E8 800957E8 00CF3021 */ addu $a2, $a2, $t7
/* 0963EC 800957EC 8CC67700 */ lw $a2, %lo(D_800E7700)($a2)
/* 0963EC 800957EC 8CC67700 */ lw $a2, %lo(gDebugSoundModeNames)($a2)
/* 0963F0 800957F0 0C015DE9 */ jal debug_print_str2
/* 0963F4 800957F4 2405008C */ li $a1, 140
/* 0963F8 800957F8 3C188019 */ lui $t8, %hi(D_8018EDEF) # $t8, 0x8019

View File

@ -1,6 +1,6 @@
glabel func_8009CE1C
/* 09DA1C 8009CE1C 3C0E8019 */ lui $t6, %hi(D_8018EDF2) # $t6, 0x8019
/* 09DA20 8009CE20 91CEEDF2 */ lbu $t6, %lo(D_8018EDF2)($t6)
/* 09DA1C 8009CE1C 3C0E8019 */ lui $t6, %hi(gSoundMode) # $t6, 0x8019
/* 09DA20 8009CE20 91CEEDF2 */ lbu $t6, %lo(gSoundMode)($t6)
/* 09DA24 8009CE24 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 09DA28 8009CE28 24010003 */ li $at, 3
/* 09DA2C 8009CE2C 11C10009 */ beq $t6, $at, .L8009CE54

View File

@ -1003,8 +1003,8 @@ glabel L8009F430
/* 0A00F8 8009F4F8 10000035 */ b .L8009F5D0
/* 0A00FC 8009F4FC A0400084 */ sb $zero, 0x84($v0)
glabel L8009F500
/* 0A0100 8009F500 3C188019 */ lui $t8, %hi(D_8018EDF2) # $t8, 0x8019
/* 0A0104 8009F504 9318EDF2 */ lbu $t8, %lo(D_8018EDF2)($t8)
/* 0A0100 8009F500 3C188019 */ lui $t8, %hi(gSoundMode) # $t8, 0x8019
/* 0A0104 8009F504 9318EDF2 */ lbu $t8, %lo(gSoundMode)($t8)
/* 0A0108 8009F508 10000031 */ b .L8009F5D0
/* 0A010C 8009F50C AFF80004 */ sw $t8, 4($ra)
glabel L8009F510

View File

@ -77,13 +77,13 @@ glabel L800A2054
/* 0A2CD0 800A20D0 26100023 */ addiu $s0, $s0, 0x23
/* 0A2CD4 800A20D4 0C024C36 */ jal set_text_color
/* 0A2CD8 800A20D8 24040001 */ li $a0, 1
/* 0A2CDC 800A20DC 3C088019 */ lui $t0, %hi(D_8018EDF2) # $t0, 0x8019
/* 0A2CE0 800A20E0 9108EDF2 */ lbu $t0, %lo(D_8018EDF2)($t0)
/* 0A2CE4 800A20E4 3C06800E */ lui $a2, %hi(D_800E7710)
/* 0A2CDC 800A20DC 3C088019 */ lui $t0, %hi(gSoundMode) # $t0, 0x8019
/* 0A2CE0 800A20E0 9108EDF2 */ lbu $t0, %lo(gSoundMode)($t0)
/* 0A2CE4 800A20E4 3C06800E */ lui $a2, %hi(gSoundModeNames)
/* 0A2CE8 800A20E8 240400E6 */ li $a0, 230
/* 0A2CEC 800A20EC 00084880 */ sll $t1, $t0, 2
/* 0A2CF0 800A20F0 00C93021 */ addu $a2, $a2, $t1
/* 0A2CF4 800A20F4 8CC67710 */ lw $a2, %lo(D_800E7710)($a2)
/* 0A2CF4 800A20F4 8CC67710 */ lw $a2, %lo(gSoundModeNames)($a2)
/* 0A2CF8 800A20F8 24050078 */ li $a1, 120
/* 0A2CFC 800A20FC 00003825 */ move $a3, $zero
/* 0A2D00 800A2100 E7B60010 */ swc1 $f22, 0x10($sp)

View File

@ -117,23 +117,23 @@ glabel L800B05E0
.L800B06F8:
/* 0B12F8 800B06F8 8FAE002C */ lw $t6, 0x2c($sp)
.L800B06FC:
/* 0B12FC 800B06FC 3C038019 */ lui $v1, %hi(D_8018EDF2) # $v1, 0x8019
/* 0B1300 800B0700 2463EDF2 */ addiu $v1, %lo(D_8018EDF2) # addiu $v1, $v1, -0x120e
/* 0B12FC 800B06FC 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019
/* 0B1300 800B0700 2463EDF2 */ addiu $v1, %lo(gSoundMode) # addiu $v1, $v1, -0x120e
/* 0B1304 800B0704 11C00014 */ beqz $t6, .L800B0758
/* 0B1308 800B0708 00000000 */ nop
/* 0B130C 800B070C 90620000 */ lbu $v0, ($v1)
/* 0B1310 800B0710 8D0F0004 */ lw $t7, 4($t0)
/* 0B1314 800B0714 3C018019 */ lui $at, %hi(D_8018ED14) # $at, 0x8019
/* 0B1314 800B0714 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019
/* 0B1318 800B0718 11E2000F */ beq $t7, $v0, .L800B0758
/* 0B131C 800B071C 00000000 */ nop
/* 0B1320 800B0720 A022ED14 */ sb $v0, %lo(D_8018ED14)($at)
/* 0B1320 800B0720 A022ED14 */ sb $v0, %lo(gSaveDataSoundMode)($at)
/* 0B1324 800B0724 AFA50020 */ sw $a1, 0x20($sp)
/* 0B1328 800B0728 0C02D19C */ jal func_800B4670
/* 0B132C 800B072C AFA80038 */ sw $t0, 0x38($sp)
/* 0B1330 800B0730 0C02D652 */ jal func_800B5948
/* 0B1334 800B0734 00000000 */ nop
/* 0B1338 800B0738 3C038019 */ lui $v1, %hi(D_8018EDF2) # $v1, 0x8019
/* 0B133C 800B073C 2463EDF2 */ addiu $v1, %lo(D_8018EDF2) # addiu $v1, $v1, -0x120e
/* 0B1338 800B0738 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019
/* 0B133C 800B073C 2463EDF2 */ addiu $v1, %lo(gSoundMode) # addiu $v1, $v1, -0x120e
/* 0B1340 800B0740 8FA80038 */ lw $t0, 0x38($sp)
/* 0B1344 800B0744 90780000 */ lbu $t8, ($v1)
/* 0B1348 800B0748 8FA50020 */ lw $a1, 0x20($sp)
@ -141,30 +141,30 @@ glabel L800B05E0
/* 0B1350 800B0750 2529EDEC */ addiu $t1, %lo(D_8018EDEC) # addiu $t1, $t1, -0x1214
/* 0B1354 800B0754 AD180004 */ sw $t8, 4($t0)
.L800B0758:
/* 0B1358 800B0758 3C038019 */ lui $v1, %hi(D_8018EDF2) # $v1, 0x8019
/* 0B1358 800B0758 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019
/* 0B135C 800B075C 30B94000 */ andi $t9, $a1, 0x4000
/* 0B1360 800B0760 13200019 */ beqz $t9, .L800B07C8
/* 0B1364 800B0764 2463EDF2 */ addiu $v1, %lo(D_8018EDF2) # addiu $v1, $v1, -0x120e
/* 0B1364 800B0764 2463EDF2 */ addiu $v1, %lo(gSoundMode) # addiu $v1, $v1, -0x120e
/* 0B1368 800B0768 0C0278A0 */ jal func_8009E280
/* 0B136C 800B076C AFA80038 */ sw $t0, 0x38($sp)
/* 0B1370 800B0770 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B1374 800B0774 0C032384 */ jal play_sound2
/* 0B1378 800B0778 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B137C 800B077C 8FA80038 */ lw $t0, 0x38($sp)
/* 0B1380 800B0780 3C038019 */ lui $v1, %hi(D_8018EDF2) # $v1, 0x8019
/* 0B1384 800B0784 2463EDF2 */ addiu $v1, %lo(D_8018EDF2) # addiu $v1, $v1, -0x120e
/* 0B1380 800B0780 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019
/* 0B1384 800B0784 2463EDF2 */ addiu $v1, %lo(gSoundMode) # addiu $v1, $v1, -0x120e
/* 0B1388 800B0788 90620000 */ lbu $v0, ($v1)
/* 0B138C 800B078C 8D0A0004 */ lw $t2, 4($t0)
/* 0B1390 800B0790 3C018019 */ lui $at, %hi(D_8018ED14) # $at, 0x8019
/* 0B1390 800B0790 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019
/* 0B1394 800B0794 51420303 */ beql $t2, $v0, .L800B13A4
/* 0B1398 800B0798 8FBF001C */ lw $ra, 0x1c($sp)
/* 0B139C 800B079C A022ED14 */ sb $v0, %lo(D_8018ED14)($at)
/* 0B139C 800B079C A022ED14 */ sb $v0, %lo(gSaveDataSoundMode)($at)
/* 0B13A0 800B07A0 0C02D19C */ jal func_800B4670
/* 0B13A4 800B07A4 AFA80038 */ sw $t0, 0x38($sp)
/* 0B13A8 800B07A8 0C02D652 */ jal func_800B5948
/* 0B13AC 800B07AC 00000000 */ nop
/* 0B13B0 800B07B0 3C038019 */ lui $v1, %hi(D_8018EDF2) # $v1, 0x8019
/* 0B13B4 800B07B4 2463EDF2 */ addiu $v1, %lo(D_8018EDF2) # addiu $v1, $v1, -0x120e
/* 0B13B0 800B07B0 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019
/* 0B13B4 800B07B4 2463EDF2 */ addiu $v1, %lo(gSoundMode) # addiu $v1, $v1, -0x120e
/* 0B13B8 800B07B8 8FA80038 */ lw $t0, 0x38($sp)
/* 0B13BC 800B07BC 906B0000 */ lbu $t3, ($v1)
/* 0B13C0 800B07C0 100002F7 */ b .L800B13A0
@ -204,8 +204,8 @@ glabel L800B05E0
.L800B0838:
/* 0B1438 800B0838 0C02D12F */ jal func_800B44BC
/* 0B143C 800B083C 00000000 */ nop
/* 0B1440 800B0840 3C038019 */ lui $v1, %hi(D_8018EDF2) # $v1, 0x8019
/* 0B1444 800B0844 2463EDF2 */ addiu $v1, %lo(D_8018EDF2) # addiu $v1, $v1, -0x120e
/* 0B1440 800B0840 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019
/* 0B1444 800B0844 2463EDF2 */ addiu $v1, %lo(gSoundMode) # addiu $v1, $v1, -0x120e
/* 0B1448 800B0848 90620000 */ lbu $v0, ($v1)
/* 0B144C 800B084C 24010001 */ li $at, 1
/* 0B1450 800B0850 3C044900 */ lui $a0, 0x4900

View File

@ -275,8 +275,8 @@ glabel L800B2414
/* 0B30D8 800B24D8 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0)
glabel L800B24DC
/* 0B30DC 800B24DC 97A3002E */ lhu $v1, 0x2e($sp)
/* 0B30E0 800B24E0 3C108019 */ lui $s0, %hi(D_8018EDF2) # $s0, 0x8019
/* 0B30E4 800B24E4 2610EDF2 */ addiu $s0, %lo(D_8018EDF2) # addiu $s0, $s0, -0x120e
/* 0B30E0 800B24E0 3C108019 */ lui $s0, %hi(gSoundMode) # $s0, 0x8019
/* 0B30E4 800B24E4 2610EDF2 */ addiu $s0, %lo(gSoundMode) # addiu $s0, $s0, -0x120e
/* 0B30E8 800B24E8 30690100 */ andi $t1, $v1, 0x100
/* 0B30EC 800B24EC 11200018 */ beqz $t1, .L800B2550
/* 0B30F0 800B24F0 00000000 */ nop
@ -298,17 +298,17 @@ glabel L800B24DC
/* 0B312C 800B252C 0C02D12F */ jal func_800B44BC
/* 0B3130 800B2530 00000000 */ nop
/* 0B3134 800B2534 920D0000 */ lbu $t5, ($s0)
/* 0B3138 800B2538 3C018019 */ lui $at, %hi(D_8018ED14) # $at, 0x8019
/* 0B3138 800B2538 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019
/* 0B313C 800B253C 0C02D19C */ jal func_800B4670
/* 0B3140 800B2540 A02DED14 */ sb $t5, %lo(D_8018ED14)($at)
/* 0B3140 800B2540 A02DED14 */ sb $t5, %lo(gSaveDataSoundMode)($at)
/* 0B3144 800B2544 0C02D652 */ jal func_800B5948
/* 0B3148 800B2548 00000000 */ nop
/* 0B314C 800B254C 8FA30024 */ lw $v1, 0x24($sp)
.L800B2550:
/* 0B3150 800B2550 3C108019 */ lui $s0, %hi(D_8018EDF2) # $s0, 0x8019
/* 0B3150 800B2550 3C108019 */ lui $s0, %hi(gSoundMode) # $s0, 0x8019
/* 0B3154 800B2554 306E0200 */ andi $t6, $v1, 0x200
/* 0B3158 800B2558 11C00015 */ beqz $t6, .L800B25B0
/* 0B315C 800B255C 2610EDF2 */ addiu $s0, %lo(D_8018EDF2) # addiu $s0, $s0, -0x120e
/* 0B315C 800B255C 2610EDF2 */ addiu $s0, %lo(gSoundMode) # addiu $s0, $s0, -0x120e
/* 0B3160 800B2560 92020000 */ lbu $v0, ($s0)
/* 0B3164 800B2564 24010002 */ li $at, 2
/* 0B3168 800B2568 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
@ -326,9 +326,9 @@ glabel L800B24DC
/* 0B3194 800B2594 0C02D12F */ jal func_800B44BC
/* 0B3198 800B2598 00000000 */ nop
/* 0B319C 800B259C 92080000 */ lbu $t0, ($s0)
/* 0B31A0 800B25A0 3C018019 */ lui $at, %hi(D_8018ED14) # $at, 0x8019
/* 0B31A0 800B25A0 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019
/* 0B31A4 800B25A4 0C02D19C */ jal func_800B4670
/* 0B31A8 800B25A8 A028ED14 */ sb $t0, %lo(D_8018ED14)($at)
/* 0B31A8 800B25A8 A028ED14 */ sb $t0, %lo(gSaveDataSoundMode)($at)
/* 0B31AC 800B25AC 8FA30024 */ lw $v1, 0x24($sp)
.L800B25B0:
/* 0B31B0 800B25B0 30690800 */ andi $t1, $v1, 0x800

View File

@ -5,9 +5,9 @@ glabel func_800B44BC
/* 0B50C8 800B44C8 25CE2BE4 */ addiu $t6, %lo(D_800F2BE4) # addiu $t6, $t6, 0x2be4
/* 0B50CC 800B44CC 8DC10000 */ lw $at, ($t6)
/* 0B50D0 800B44D0 27A50020 */ addiu $a1, $sp, 0x20
/* 0B50D4 800B44D4 3C038019 */ lui $v1, %hi(D_8018EDF2) # $v1, 0x8019
/* 0B50D4 800B44D4 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019
/* 0B50D8 800B44D8 ACA10000 */ sw $at, ($a1)
/* 0B50DC 800B44DC 9063EDF2 */ lbu $v1, %lo(D_8018EDF2)($v1)
/* 0B50DC 800B44DC 9063EDF2 */ lbu $v1, %lo(gSoundMode)($v1)
/* 0B50E0 800B44E0 24010001 */ li $at, 1
/* 0B50E4 800B44E4 10600004 */ beqz $v1, .L800B44F8
/* 0B50E8 800B44E8 00601025 */ move $v0, $v1

View File

@ -7,13 +7,13 @@ glabel func_800B4820
/* 0B5434 800B4834 A020ED12 */ sb $zero, %lo(D_8018ED12)($at)
/* 0B5438 800B4838 3C018019 */ lui $at, %hi(D_8018ED13) # $at, 0x8019
/* 0B543C 800B483C A020ED13 */ sb $zero, %lo(D_8018ED13)($at)
/* 0B5440 800B4840 3C018019 */ lui $at, %hi(D_8018ED14) # $at, 0x8019
/* 0B5440 800B4840 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019
/* 0B5444 800B4844 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0B5448 800B4848 A020ED14 */ sb $zero, %lo(D_8018ED14)($at)
/* 0B5448 800B4848 A020ED14 */ sb $zero, %lo(gSaveDataSoundMode)($at)
/* 0B544C 800B484C AFBF0014 */ sw $ra, 0x14($sp)
/* 0B5450 800B4850 3C018019 */ lui $at, %hi(D_8018EDF2) # $at, 0x8019
/* 0B5450 800B4850 3C018019 */ lui $at, %hi(gSoundMode) # $at, 0x8019
/* 0B5454 800B4854 0C02D12F */ jal func_800B44BC
/* 0B5458 800B4858 A020EDF2 */ sb $zero, %lo(D_8018EDF2)($at)
/* 0B5458 800B4858 A020EDF2 */ sb $zero, %lo(gSoundMode)($at)
/* 0B545C 800B485C 0C02D19C */ jal func_800B4670
/* 0B5460 800B4860 00000000 */ nop
/* 0B5464 800B4864 8FBF0014 */ lw $ra, 0x14($sp)

View File

@ -20,10 +20,10 @@ glabel func_800B4A10
/* 0B5654 800B4A54 00000000 */ nop
/* 0B5658 800B4A58 0C02D32D */ jal func_800B4CB4
/* 0B565C 800B4A5C 00000000 */ nop
/* 0B5660 800B4A60 3C0E8019 */ lui $t6, %hi(D_8018ED14) # $t6, 0x8019
/* 0B5664 800B4A64 91CEED14 */ lbu $t6, %lo(D_8018ED14)($t6)
/* 0B5668 800B4A68 3C028019 */ lui $v0, %hi(D_8018EDF2) # $v0, 0x8019
/* 0B566C 800B4A6C 2442EDF2 */ addiu $v0, %lo(D_8018EDF2) # addiu $v0, $v0, -0x120e
/* 0B5660 800B4A60 3C0E8019 */ lui $t6, %hi(gSaveDataSoundMode) # $t6, 0x8019
/* 0B5664 800B4A64 91CEED14 */ lbu $t6, %lo(gSaveDataSoundMode)($t6)
/* 0B5668 800B4A68 3C028019 */ lui $v0, %hi(gSoundMode) # $v0, 0x8019
/* 0B566C 800B4A6C 2442EDF2 */ addiu $v0, %lo(gSoundMode) # addiu $v0, $v0, -0x120e
/* 0B5670 800B4A70 31CF00FF */ andi $t7, $t6, 0xff
/* 0B5674 800B4A74 29E10004 */ slti $at, $t7, 4
/* 0B5678 800B4A78 14200003 */ bnez $at, .L800B4A88

View File

@ -34,12 +34,12 @@ glabel func_800B4CB4
/* 0B5930 800B4D30 A028ED12 */ sb $t0, %lo(D_8018ED12)($at)
/* 0B5934 800B4D34 9129ED8B */ lbu $t1, %lo(D_8018ED8B)($t1)
/* 0B5938 800B4D38 3C018019 */ lui $at, %hi(D_8018ED13) # $at, 0x8019
/* 0B593C 800B4D3C 3C0A8019 */ lui $t2, %hi(D_8018ED8C) # $t2, 0x8019
/* 0B593C 800B4D3C 3C0A8019 */ lui $t2, %hi(gSaveDataSoundModeBackup) # $t2, 0x8019
/* 0B5940 800B4D40 A029ED13 */ sb $t1, %lo(D_8018ED13)($at)
/* 0B5944 800B4D44 914AED8C */ lbu $t2, %lo(D_8018ED8C)($t2)
/* 0B5948 800B4D48 3C018019 */ lui $at, %hi(D_8018ED14) # $at, 0x8019
/* 0B5944 800B4D44 914AED8C */ lbu $t2, %lo(gSaveDataSoundModeBackup)($t2)
/* 0B5948 800B4D48 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019
/* 0B594C 800B4D4C 0C02D67D */ jal func_800B59F4
/* 0B5950 800B4D50 A02AED14 */ sb $t2, %lo(D_8018ED14)($at)
/* 0B5950 800B4D50 A02AED14 */ sb $t2, %lo(gSaveDataSoundMode)($at)
/* 0B5954 800B4D54 3C018019 */ lui $at, %hi(D_8018ED16) # $at, 0x8019
/* 0B5958 800B4D58 0C02D6AB */ jal func_800B5AAC
/* 0B595C 800B4D5C A022ED16 */ sb $v0, %lo(D_8018ED16)($at)

View File

@ -14,14 +14,14 @@ glabel func_800B5948
/* 0B6578 800B5978 A038ED8A */ sb $t8, %lo(D_8018ED8A)($at)
/* 0B657C 800B597C 9339ED13 */ lbu $t9, %lo(D_8018ED13)($t9)
/* 0B6580 800B5980 3C018019 */ lui $at, %hi(D_8018ED8B) # $at, 0x8019
/* 0B6584 800B5984 3C088019 */ lui $t0, %hi(D_8018ED14) # $t0, 0x8019
/* 0B6584 800B5984 3C088019 */ lui $t0, %hi(gSaveDataSoundMode) # $t0, 0x8019
/* 0B6588 800B5988 A039ED8B */ sb $t9, %lo(D_8018ED8B)($at)
/* 0B658C 800B598C 9108ED14 */ lbu $t0, %lo(D_8018ED14)($t0)
/* 0B658C 800B598C 9108ED14 */ lbu $t0, %lo(gSaveDataSoundMode)($t0)
/* 0B6590 800B5990 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0B6594 800B5994 AFBF0014 */ sw $ra, 0x14($sp)
/* 0B6598 800B5998 3C018019 */ lui $at, %hi(D_8018ED8C) # $at, 0x8019
/* 0B6598 800B5998 3C018019 */ lui $at, %hi(gSaveDataSoundModeBackup) # $at, 0x8019
/* 0B659C 800B599C 0C02D67D */ jal func_800B59F4
/* 0B65A0 800B59A0 A028ED8C */ sb $t0, %lo(D_8018ED8C)($at)
/* 0B65A0 800B59A0 A028ED8C */ sb $t0, %lo(gSaveDataSoundModeBackup)($at)
/* 0B65A4 800B59A4 3C018019 */ lui $at, %hi(D_8018ED8E) # $at, 0x8019
/* 0B65A8 800B59A8 0C02D6AB */ jal func_800B5AAC
/* 0B65AC 800B59AC A022ED8E */ sb $v0, %lo(D_8018ED8E)($at)

View File

@ -1775,10 +1775,10 @@ glabel D_800E76EC
.word D_800EFE50, D_800EFE54, D_800EFE60, D_800EFE6C
.word D_800EFE78
glabel D_800E7700
glabel gDebugSoundModeNames
.word D_800EFE84, D_800EFE8C, D_800EFE98, D_800EFE9C
glabel D_800E7710
glabel gSoundModeNames
.word D_800EFEA8, D_800EFEB0, D_800EFEBC, D_800EFEC0
glabel D_800E7720

View File

@ -337,17 +337,21 @@ typedef struct {
// 1st place is 3 points, 2nd is 2, etc.
// Lowest dibit is the Mushroom Cup, 2nd dibit is the Flower Cup, etc
u8 grandPrixPoints[4];
u8 soundMode;
// Its unknown what these bytes are used for
// They appear related to the Grand Prix points in some capacity but I can't figure out how
u8 unknownBytes1[4];
u8 unknownBytes[3];
// For some reason there's 2 entries covering 4 cups
// Instead of 4 entries, one per cup. Or even just one big entry for all 4 cups
// Its also unknown why these are here when they're identical to the values found
// in allCourseTimeTrialRecords
OnlyBestTimeTrialRecords onlyBestTimeTrialRecords[2];
// Its unknown what these bytes are used for, they appear to be identical to
// grandPrixPoints and unknownBytes1
u8 unknownBytes2[8];
// Its unknown why these last bytes exist as they appear to be copies of
// of their non-Backup counterparts.
// They could be some form of data coherency. If these don't match the non-Backup
// versions that may indicate corrupt save data?
u8 grandPrixPointsBackup[4];
u8 soundModeBackup;
u8 unknownBytesBackup[3];
} SaveData; // size = 0x200
typedef struct {

View File

@ -95,4 +95,16 @@
#define TEXT_BLUE_GREEN_RED_CYCLE_1 4
#define TEXT_BLUE_GREEN_RED_CYCLE_2 5
/**
* Sound mode options
* Option 2 appears to be unused, as such its probably not
* a valid option
**/
#define SOUND_STEREO 0
#define SOUND_HEADPHONES 1
#define SOUND_UNUSED 2
#define SOUND_MONO 3
#define NUM_SOUND_MODES 4
#endif // DEFINES_H

View File

@ -2,24 +2,32 @@
#define _VARIABLES_H_
#include "global.h"
#include "defines.h"
extern s32 gCCSelection;
extern s8 gCourseSelection;
extern s16 gCurrentCourseId;
extern s8 gCupSelection;
extern s8 gHumanPlayerCount;
extern f32 gKartFrictionTable[];
extern f32 gKartBoundingBoxTable[];
extern f32 gKartGravityTable[];
extern s8 gGPOverallRanks[8];
extern s32 gModeSelection;
extern s32 gPlayerCountSelection1;
extern s32 gCCSelection;
extern s8 gCourseSelection;
extern char *gCupNames[]; // D_800E7500
extern s8 gCupSelection;
extern s16 gCurrentCourseId;
extern char *gDebugSoundModeNames[NUM_SOUND_MODES]; // D_800E7700
extern s16 gGPCurrentRacePlayerIdByRank[8]; // D_80164360
extern s8 gHumanPlayerCount;
extern f32 gKartFrictionTable[];
extern f32 gKartBoundingBoxTable[];
extern f32 gKartGravityTable[];
extern s8 gGPOverallRanks[8];
extern s32 gModeSelection;
extern s32 gPlayerCountSelection1;
extern u8 gSaveDataSoundMode; // D_8018ED14
extern u8 gSaveDataSoundModeBackup; // D_8018ED8C
extern u8 gSoundMode; // D_8018EDF2
extern char *gSoundModeNames[NUM_SOUND_MODES]; // D_800E7710
// Indexed by Player ID. Track time in seconds since player has last crossed the finish line
extern f32 gTimePlayerLastTouchedFinishLine[8]; // D_8015F898
extern f32 gTimePlayerLastTouchedFinishLine[8]; // D_8015F898
// Indexed by Player ID. Tracks the percentage of the track has been completed
extern f32 gTrackCompletionPercentByPlayerId[8]; // D_801644D0
extern f32 gTrackCompletionPercentByPlayerId[8]; // D_801644D0
// Indexed by Rank. Tracks the percentage of the track has been completed
extern f32 gTrackCompletionPercentByRank[8]; // D_80162FD8
extern f32 gTrackCompletionPercentByRank[8]; // D_80162FD8
extern struct_D_802874D8 D_802874D8;
extern s16 D_801650D0[4][8];

View File

@ -2148,7 +2148,7 @@ static ? D_020076E0; /* unable to generate initia
static ? D_800E7614; /* unable to generate initializer; const */
static ? D_800E7688; /* unable to generate initializer; const */
static ? D_800E76EC; /* unable to generate initializer; const */
static ? D_800E7700; /* unable to generate initializer; const */
static ? gDebugSoundModeNames; /* unable to generate initializer; const */
s16 gCurrentCourseId; /* unable to generate initializer */
void func_80095574(void) {
@ -2213,7 +2213,7 @@ void func_80095574(void) {
debug_print_str2(0x50, 0x82, "player");
debug_print_str2(0xAA, 0x82, *(&D_800E7688 + (D_800E86A8 * 4)));
debug_print_str2(0x50, 0x8C, "sound mode");
debug_print_str2(0xAA, 0x8C, *(&D_800E7700 + (D_8018EDF2 * 4)));
debug_print_str2(0xAA, 0x8C, gDebugSoundModeNames[gSoundMode]);
if (D_8018EDEF == 7) {
debug_print_str2(0x50, 0x96, "push b to get all goldcup");
}
@ -6456,10 +6456,10 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009CDFC.s")
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_800C3448(?); // extern
extern u8 D_8018EDF2;
extern u8 gSoundMode;
void func_8009CE1C(void) {
if ((D_8018EDF2 != 3) && (gPlayerCountSelection1 >= 2)) {
if ((gSoundMode != 3) && (gPlayerCountSelection1 >= 2)) {
func_800C3448(0xE0000002);
}
}
@ -8358,7 +8358,7 @@ block_63:
D_8018EE10.unk84 = 0;
return;
case 0xF0: /* switch 2 */
phi_ra->unk4 = D_8018EDF2;
phi_ra->unk4 = gSoundMode;
return;
case 0xF1: /* switch 2 */
func_800996BC(segmented_to_virtual(&D_02004638, arg3), 0);
@ -9946,7 +9946,7 @@ Gfx *draw_box(Gfx *, ?, ?, ?, s32, s32, s32, s32, s32); /* extern */
? set_text_color(s32); /* extern */
extern ? D_8018EE10;
static ? D_800E75C4; /* unable to generate initializer; const */
static ? D_800E7710; /* unable to generate initializer; const */
static ? gSoundModeNames; /* unable to generate initializer; const */
static ? *D_800E7840[2] = { "quit", "erase" }; /* const */
static ? *D_800E7868[4] = {
"RETURN TO GAME SELECT",
@ -10076,7 +10076,7 @@ void func_800A1FB0(void *arg0) {
phi_s0 += 0x23;
} while (temp_s2 != 4);
set_text_color(TEXT_GREEN);
draw_text(0xE6, 0x78, *(&D_800E7710 + (D_8018EDF2 * 4)), 0, 1.0f, 1.0f);
draw_text(0xE6, 0x78, gSoundModeNames[gSoundMode], 0, 1.0f, 1.0f);
block_98:
phi_v1_4 = D_8018EDEC;
break;

View File

@ -607,14 +607,13 @@ void func_800B053C(void *arg0, u16 arg1) {
}
}
if (sp2C != 0) {
temp_v0_2 = D_8018EDF2;
if (temp_t0->unk4 != temp_v0_2) {
D_8018ED14 = temp_v0_2;
if (temp_t0->unk4 != gSoundMode) {
gSaveDataSoundMode = gSoundMode;
sp20 = phi_a1;
sp38 = temp_t0;
func_800B4670();
func_800B5948();
temp_t0->unk4 = D_8018EDF2;
temp_t0->unk4 = gSoundMode;
phi_t1 = &D_8018EDEC;
}
}
@ -622,13 +621,12 @@ void func_800B053C(void *arg0, u16 arg1) {
sp38 = temp_t0;
func_8009E280();
play_sound2(0x49008002);
temp_v0_3 = D_8018EDF2;
if (temp_t0->unk4 != temp_v0_3) {
D_8018ED14 = temp_v0_3;
if (temp_t0->unk4 != gSoundMode) {
gSaveDataSoundMode = gSoundMode;
sp38 = temp_t0;
func_800B4670();
func_800B5948();
temp_t0->unk4 = D_8018EDF2;
temp_t0->unk4 = gSoundMode;
return;
}
/* Duplicate return node #166. Try simplifying control flow for better match */
@ -716,29 +714,28 @@ void func_800B053C(void *arg0, u16 arg1) {
play_sound2(0x4900FF07);
return;
}
temp_v0_7 = D_8018EDF2;
if (temp_v0_7 < 3) {
D_8018EDF2 = temp_v0_7 + 1;
if (gSoundMode < SOUND_MONO) {
gSoundMode += 1;
} else {
D_8018EDF2 = 0;
gSoundMode = SOUND_STEREO;
}
if (D_8018EDF2 == 2) {
D_8018EDF2 = 3;
if (gSoundMode == SOUND_UNUSED) {
gSoundMode = SOUND_MONO;
}
func_800B44BC();
temp_v0_8 = D_8018EDF2;
if (temp_v0_8 != 0) {
if (temp_v0_8 != 1) {
if (temp_v0_8 != 3) {
return;
}
switch(gSoundMode){
case SOUND_STEREO:
play_sound2(0x49008024);
break;
case SOUND_HEADPHONES:
play_sound2(0x49008025);
break;
case SOUND_MONO:
play_sound2(0x49008029);
return;
}
play_sound2(0x49008025);
return;
break;
default:
break;
}
play_sound2(0x49008024);
return;
}
func_8009E280();
@ -1768,33 +1765,29 @@ void func_800B20F4(void *arg0, s32 arg1) {
break;
case 6:
if ((sp2E & 0x100) != 0) {
temp_v0_7 = D_8018EDF2;
temp_t2_2 = temp_v0_7 + 1;
if (temp_v0_7 < 3) {
D_8018EDF2 = temp_t2_2;
if ((temp_t2_2 & 0xFF) == 2) {
D_8018EDF2 = 3;
if (gSoundMode < SOUND_MONO) {
gSoundMode += 1;
if ((gSoundMode & 0xFF) == SOUND_UNUSED) {
gSoundMode = SOUND_MONO;
}
sp24 = sp2E;
play_sound2(0x49008000);
func_800B44BC();
D_8018ED14 = D_8018EDF2;
gSaveDataSoundMode = gSoundMode;
func_800B4670();
func_800B5948();
}
}
if ((sp2E & 0x200) != 0) {
temp_v0_8 = D_8018EDF2;
temp_t7 = temp_v0_8 - 1;
if (temp_v0_8 > 0) {
D_8018EDF2 = temp_t7;
if ((temp_t7 & 0xFF) == 2) {
D_8018EDF2 = 1;
if (gSoundMode > SOUND_STEREO) {
gSoundMode -= 1;
if ((gSoundMode & 0xFF) == SOUND_UNUSED) {
gSoundMode = SOUND_HEADPHONES;
}
sp24 = sp2E;
play_sound2(0x49008000);
func_800B44BC();
D_8018ED14 = D_8018EDF2;
gSaveDataSoundMode = gSoundMode;
func_800B4670();
}
}
@ -2809,15 +2802,13 @@ GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B44AC.s")
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_800C3448(s32, s32 *); // extern
extern s32 D_800F2BE4;
extern u8 D_8018EDF2;
extern u8 gSoundMode;
void func_800B44BC(void) {
s32 sp20;
u8 temp_v1;
sp20 = D_800F2BE4;
temp_v1 = D_8018EDF2;
if ((temp_v1 == 0) || (temp_v1 == 1) || (temp_v1 == 3)) {
if ((gSoundMode == SOUND_STEREO) || (gSoundMode == SOUND_HEADPHONES) || (gSoundMode == SOUND_MONO)) {
func_800C3448(*(&sp20 + temp_v1) | 0xE0000000, &sp20);
}
}
@ -2963,16 +2954,16 @@ extern s8 D_8018ED10;
extern s8 D_8018ED11;
extern s8 D_8018ED12;
extern s8 D_8018ED13;
extern s8 D_8018ED14;
extern s8 D_8018EDF2;
extern s8 gSaveDataSoundMode;
extern s8 gSoundMode;
void func_800B4820(void) {
D_8018ED10 = 0;
D_8018ED11 = 0;
D_8018ED12 = 0;
D_8018ED13 = 0;
D_8018ED14 = 0;
D_8018EDF2 = 0;
gSaveDataSoundMode = SOUND_STEREO;
gSoundMode = SOUND_STEREO;
func_800B44BC();
func_800B4670();
}
@ -3047,8 +3038,8 @@ GLOBAL_ASM("asm/non_matchings/code_800AF9B0/func_800B49E4.s")
? func_800B4A9C(s32); // extern
? func_800B4CB4(); // extern
extern u8 D_8018EB90;
extern u8 D_8018ED14;
extern u8 D_8018EDF2;
extern u8 gSaveDataSoundMode;
extern u8 gSoundMode;
extern OSMesgQueue gSIEventMesgQueue;
void func_800B4A10(void) {
@ -3064,10 +3055,9 @@ void func_800B4A10(void) {
phi_s0 = temp_s0;
} while (temp_s0 != 0x10);
func_800B4CB4();
temp_t6 = D_8018ED14;
D_8018EDF2 = temp_t6;
if ((temp_t6 & 0xFF) >= 4) {
D_8018EDF2 = 3;
gSoundMode = gSaveDataSoundMode;
if ((gSaveDataSoundMode & 0xFF) >= NUM_SOUND_OPTIONS) {
gSoundMode = SOUND_MONO;
}
}
#else
@ -3166,14 +3156,14 @@ extern u8 D_8018ED10;
extern u8 D_8018ED11;
extern u8 D_8018ED12;
extern u8 D_8018ED13;
extern u8 D_8018ED14;
extern u8 gSaveDataSoundMode;
extern u8 D_8018ED16;
extern u8 D_8018ED17;
extern u8 D_8018ED88;
extern u8 D_8018ED89;
extern u8 D_8018ED8A;
extern u8 D_8018ED8B;
extern u8 D_8018ED8C;
extern u8 gSaveDataSoundModeBackup;
extern OSMesgQueue gSIEventMesgQueue;
void func_800B4CB4(void) {
@ -3184,7 +3174,7 @@ void func_800B4CB4(void) {
D_8018ED11 = D_8018ED89;
D_8018ED12 = D_8018ED8A;
D_8018ED13 = D_8018ED8B;
D_8018ED14 = D_8018ED8C;
gSaveDataSoundMode = gSaveDataSoundModeBackup;
D_8018ED16 = func_800B59F4();
D_8018ED17 = func_800B5AAC();
osEepromLongWrite(&gSIEventMesgQueue, ((&D_8018ED10 - &D_8018EB90) >> 3) & 0xFF, &D_8018ED10, 8);
@ -3750,12 +3740,12 @@ extern u8 D_8018ED10;
extern u8 D_8018ED11;
extern u8 D_8018ED12;
extern u8 D_8018ED13;
extern u8 D_8018ED14;
extern u8 gSaveDataSoundMode;
extern u8 D_8018ED88;
extern u8 D_8018ED89;
extern u8 D_8018ED8A;
extern u8 D_8018ED8B;
extern u8 D_8018ED8C;
extern u8 gSaveDataSoundModeBackup;
extern s8 D_8018ED8E;
extern s8 D_8018ED8F;
extern OSMesgQueue gSIEventMesgQueue;
@ -3765,7 +3755,7 @@ void func_800B5948(void) {
D_8018ED89 = D_8018ED11;
D_8018ED8A = D_8018ED12;
D_8018ED8B = D_8018ED13;
D_8018ED8C = D_8018ED14;
gSaveDataSoundModeBackup = gSaveDataSoundMode;
D_8018ED8E = func_800B59F4();
D_8018ED8F = func_800B5AAC();
osEepromLongWrite(&gSIEventMesgQueue, ((&D_8018ED88 - &D_8018EB90) >> 3) & 0xFF, &D_8018ED88, 8);