More work in menu.c

This commit is contained in:
David Benepe
2021-08-06 16:33:15 -05:00
parent 4775f99984
commit 60db686950
14 changed files with 665 additions and 330 deletions
+10 -10
View File
@@ -32,10 +32,10 @@ You are not required to install a binutils package, but it does speed up the ini
**a.** Use the `-jN` argument to use `N` number of threads to speed up building. For example, if you have a system with 4 cores / 4 threads, you should do `make -j4`.
## Modding
If you are modifying the code in the repo, then you should add `NON_MATCHING=1` to the make command.
If you are modifying the code in the repo, then you should add `NON_MATCHING=1` to the make command.
Example: `make NON_MATCHING=1 -j4`
The `NON_MATCHING` define will include the functions that don't exactly match one-to-one, but should be no different functionality-wise. If you do notice any bugs that occur in a `NON_MATCHING` build that are not in the vanilla game, then please file an issue describing the bug. It would be helpful if you can track down which function is causing the bug, but that is not required.
## Style Guide
@@ -113,14 +113,14 @@ s32 is_drumstick_unlocked(void) {
}
```
As of July 30th 2021, this is our current score:
As of August 6th 2021, this is our current score:
```
=======================================================
ADVENTURE ONE (ASM -> C Decompilation)
------------------- 12.14% Complete -------------------
# Decompiled functions: 830
# GLOBAL_ASM remaining: 938
# NON_MATCHING functions: 58
------------------- 13.16% Complete -------------------
# Decompiled functions: 852
# GLOBAL_ASM remaining: 918
# NON_MATCHING functions: 76
--------------------- Game Status ---------------------
Balloons: 8/47, Keys: 1/4, Trophies: 0/5
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
@@ -130,7 +130,7 @@ As of July 30th 2021, this is our current score:
ADVENTURE TWO (Cleanup & Documentation)
------------------- 0.75% Complete -------------------
# Documented functions: 61
# Undocumented remaining: 1707
# Undocumented remaining: 1709
--------------------- Game Status ---------------------
Balloons: 0/47, Keys: 0/4, Trophies: 0/5
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
@@ -147,7 +147,7 @@ As of July 30th 2021, this is our current score:
What should be focused on.
* Decompiling the asm files into matching c files.
* Decompiling the non-matching asm files into matching C functions.
* Documenting variables & functions
### Minor
-74
View File
@@ -1,74 +0,0 @@
glabel menu_boot_init
/* 0890F4 800884F4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0890F8 800884F8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0890FC 800884FC 3C04800E */ lui $a0, %hi(D_800DF77C) # $a0, 0x800e
/* 089100 80088500 0C030076 */ jal func_800C01D8
/* 089104 80088504 2484F77C */ addiu $a0, %lo(D_800DF77C) # addiu $a0, $a0, -0x884
/* 089108 80088508 00002025 */ move $a0, $zero
/* 08910C 8008850C 00002825 */ move $a1, $zero
/* 089110 80088510 0C01DECD */ jal func_80077B34
/* 089114 80088514 00003025 */ move $a2, $zero
/* 089118 80088518 3C04800E */ lui $a0, %hi(D_800DF7C4) # $a0, 0x800e
/* 08911C 8008851C 0C02719D */ jal func_8009C674
/* 089120 80088520 2484F7C4 */ addiu $a0, %lo(D_800DF7C4) # addiu $a0, $a0, -0x83c
/* 089124 80088524 3C0E800E */ lui $t6, %hi(D_800DF7C4) # $t6, 0x800e
/* 089128 80088528 85CEF7C4 */ lh $t6, %lo(D_800DF7C4)($t6)
/* 08912C 8008852C 3C048012 */ lui $a0, %hi(D_80126550) # $a0, 0x8012
/* 089130 80088530 24846550 */ addiu $a0, %lo(D_80126550) # addiu $a0, $a0, 0x6550
/* 089134 80088534 3C08800E */ lui $t0, %hi(D_800DF7C4+2) # $t0, 0x800e
/* 089138 80088538 000E7880 */ sll $t7, $t6, 2
/* 08913C 8008853C 8508F7C6 */ lh $t0, %lo(D_800DF7C4+2)($t0)
/* 089140 80088540 008FC021 */ addu $t8, $a0, $t7
/* 089144 80088544 8F190000 */ lw $t9, ($t8)
/* 089148 80088548 3C01800E */ lui $at, %hi(D_800DF7DC) # $at, 0x800e
/* 08914C 8008854C 3C0C800E */ lui $t4, %hi(D_800DF7C4+4) # $t4, 0x800e
/* 089150 80088550 00084880 */ sll $t1, $t0, 2
/* 089154 80088554 858CF7C8 */ lh $t4, %lo(D_800DF7C4+4)($t4)
/* 089158 80088558 00895021 */ addu $t2, $a0, $t1
/* 08915C 8008855C AC39F7DC */ sw $t9, %lo(D_800DF7DC)($at)
/* 089160 80088560 8D4B0000 */ lw $t3, ($t2)
/* 089164 80088564 3C01800E */ lui $at, %hi(D_800DF7DC+16) # $at, 0x800e
/* 089168 80088568 000C6880 */ sll $t5, $t4, 2
/* 08916C 8008856C 008D7021 */ addu $t6, $a0, $t5
/* 089170 80088570 AC2BF7E4 */ sw $t3, %lo(D_800DF7DC+8)($at)
/* 089174 80088574 8DCF0000 */ lw $t7, ($t6)
# The extra lui is here.
/* 089178 80088578 3C03800E */ lui $v1, %hi(D_800DF7DC+24) # $v1, 0x800e
/* 08917C 8008857C 3C02800E */ lui $v0, %hi(D_800DF7C4+6) # $v0, 0x800e
/* 089180 80088580 3C05800E */ lui $a1, %hi(D_800DF7C4+22) # $a1, 0x800e
/* 089184 80088584 24A5F7DA */ addiu $a1, %lo(D_800DF7C4+22) # addiu $a1, $a1, -0x826
/* 089188 80088588 2442F7CA */ addiu $v0, %lo(D_800DF7C4+6) # addiu $v0, $v0, -0x836
/* 08918C 8008858C 2463F7F4 */ addiu $v1, %lo(D_800DF7DC+24) # addiu $v1, $v1, -0x80c
/* 089190 80088590 AC2FF7EC */ sw $t7, %lo(D_800DF7DC+16)($at)
.L80088594:
/* 089194 80088594 84580000 */ lh $t8, ($v0)
/* 089198 80088598 844A0002 */ lh $t2, 2($v0)
/* 08919C 8008859C 0018C880 */ sll $t9, $t8, 2
/* 0891A0 800885A0 00994021 */ addu $t0, $a0, $t9
/* 0891A4 800885A4 8D090000 */ lw $t1, ($t0)
/* 0891A8 800885A8 84480006 */ lh $t0, 6($v0)
/* 0891AC 800885AC 844E0004 */ lh $t6, 4($v0)
/* 0891B0 800885B0 000A5880 */ sll $t3, $t2, 2
/* 0891B4 800885B4 AC690000 */ sw $t1, ($v1)
/* 0891B8 800885B8 008B6021 */ addu $t4, $a0, $t3
/* 0891BC 800885BC 00084880 */ sll $t1, $t0, 2
/* 0891C0 800885C0 000E7880 */ sll $t7, $t6, 2
/* 0891C4 800885C4 8D8D0000 */ lw $t5, ($t4)
/* 0891C8 800885C8 008FC021 */ addu $t8, $a0, $t7
/* 0891CC 800885CC 00895021 */ addu $t2, $a0, $t1
/* 0891D0 800885D0 8D4B0000 */ lw $t3, ($t2)
/* 0891D4 800885D4 8F190000 */ lw $t9, ($t8)
/* 0891D8 800885D8 24420008 */ addiu $v0, $v0, 8
/* 0891DC 800885DC 24630020 */ addiu $v1, $v1, 0x20
/* 0891E0 800885E0 AC6DFFE8 */ sw $t5, -0x18($v1)
/* 0891E4 800885E4 AC6BFFF8 */ sw $t3, -8($v1)
/* 0891E8 800885E8 1445FFEA */ bne $v0, $a1, .L80088594
/* 0891EC 800885EC AC79FFF0 */ sw $t9, -0x10($v1)
/* 0891F0 800885F0 3C018012 */ lui $at, %hi(D_80126C20) # $at, 0x8012
/* 0891F4 800885F4 8FBF0014 */ lw $ra, 0x14($sp)
/* 0891F8 800885F8 AC206C20 */ sw $zero, %lo(D_80126C20)($at)
/* 0891FC 800885FC 3C018012 */ lui $at, %hi(D_80126C18) # $at, 0x8012
/* 089200 80088600 AC206C18 */ sw $zero, %lo(D_80126C18)($at)
/* 089204 80088604 03E00008 */ jr $ra
/* 089208 80088608 27BD0018 */ addiu $sp, $sp, 0x18
@@ -1,4 +1,4 @@
glabel func_8008AD44
glabel calculate_and_display_rom_checksum
/* 08B944 8008AD44 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 08B948 8008AD48 3C0E800E */ lui $t6, %hi(D_800E1E18) # $t6, 0x800e
/* 08B94C 8008AD4C 8DCE1E18 */ lw $t6, %lo(D_800E1E18)($t6)
-86
View File
@@ -1,86 +0,0 @@
glabel func_8009B1E4
/* 09BDE4 8009B1E4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 09BDE8 8009B1E8 8FAE0028 */ lw $t6, 0x28($sp)
/* 09BDEC 8009B1EC AFBF0014 */ sw $ra, 0x14($sp)
/* 09BDF0 8009B1F0 29C10100 */ slti $at, $t6, 0x100
/* 09BDF4 8009B1F4 AFA40018 */ sw $a0, 0x18($sp)
/* 09BDF8 8009B1F8 AFA5001C */ sw $a1, 0x1c($sp)
/* 09BDFC 8009B1FC AFA60020 */ sw $a2, 0x20($sp)
/* 09BE00 8009B200 14200003 */ bnez $at, .L8009B210
/* 09BE04 8009B204 AFA70024 */ sw $a3, 0x24($sp)
/* 09BE08 8009B208 240A00FF */ li $t2, 255
/* 09BE0C 8009B20C AFAA0028 */ sw $t2, 0x28($sp)
.L8009B210:
/* 09BE10 8009B210 8FAA0028 */ lw $t2, 0x28($sp)
/* 09BE14 8009B214 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012
/* 09BE18 8009B218 05410002 */ bgez $t2, .L8009B224
/* 09BE1C 8009B21C 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0
/* 09BE20 8009B220 00005025 */ move $t2, $zero
.L8009B224:
/* 09BE24 8009B224 8C820000 */ lw $v0, ($a0)
/* 09BE28 8009B228 3C19800E */ lui $t9, %hi(D_800E1780) # $t9, 0x800e
/* 09BE2C 8009B22C 244F0008 */ addiu $t7, $v0, 8
/* 09BE30 8009B230 AC8F0000 */ sw $t7, ($a0)
/* 09BE34 8009B234 27391780 */ addiu $t9, %lo(D_800E1780) # addiu $t9, $t9, 0x1780
/* 09BE38 8009B238 3C180600 */ lui $t8, 0x600
/* 09BE3C 8009B23C AC580000 */ sw $t8, ($v0)
/* 09BE40 8009B240 AC590004 */ sw $t9, 4($v0)
/* 09BE44 8009B244 8C820000 */ lw $v0, ($a0)
/* 09BE48 8009B248 3C0BFA00 */ lui $t3, 0xfa00
/* 09BE4C 8009B24C 244C0008 */ addiu $t4, $v0, 8
/* 09BE50 8009B250 AC8C0000 */ sw $t4, ($a0)
/* 09BE54 8009B254 314D00FF */ andi $t5, $t2, 0xff
/* 09BE58 8009B258 AC4D0004 */ sw $t5, 4($v0)
/* 09BE5C 8009B25C AC4B0000 */ sw $t3, ($v0)
/* 09BE60 8009B260 8C820000 */ lw $v0, ($a0)
/* 09BE64 8009B264 3C18FFFD */ lui $t8, (0xFFFDF6FB >> 16) # lui $t8, 0xfffd
/* 09BE68 8009B268 244E0008 */ addiu $t6, $v0, 8
/* 09BE6C 8009B26C AC8E0000 */ sw $t6, ($a0)
/* 09BE70 8009B270 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff
/* 09BE74 8009B274 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff
/* 09BE78 8009B278 3718F6FB */ ori $t8, (0xFFFDF6FB & 0xFFFF) # ori $t8, $t8, 0xf6fb
/* 09BE7C 8009B27C AC580004 */ sw $t8, 4($v0)
/* 09BE80 8009B280 AC4F0000 */ sw $t7, ($v0)
/* 09BE84 8009B284 8FAC0018 */ lw $t4, 0x18($sp)
/* 09BE88 8009B288 8FAD0020 */ lw $t5, 0x20($sp)
/* 09BE8C 8009B28C 8C820000 */ lw $v0, ($a0)
/* 09BE90 8009B290 018D7021 */ addu $t6, $t4, $t5
/* 09BE94 8009B294 8FAD0024 */ lw $t5, 0x24($sp)
/* 09BE98 8009B298 8FAC001C */ lw $t4, 0x1c($sp)
/* 09BE9C 8009B29C 31CF03FF */ andi $t7, $t6, 0x3ff
/* 09BEA0 8009B2A0 000FC380 */ sll $t8, $t7, 0xe
/* 09BEA4 8009B2A4 24590008 */ addiu $t9, $v0, 8
/* 09BEA8 8009B2A8 AC990000 */ sw $t9, ($a0)
/* 09BEAC 8009B2AC 3C01F600 */ lui $at, 0xf600
/* 09BEB0 8009B2B0 018D7021 */ addu $t6, $t4, $t5
/* 09BEB4 8009B2B4 31CF03FF */ andi $t7, $t6, 0x3ff
/* 09BEB8 8009B2B8 0301C825 */ or $t9, $t8, $at
/* 09BEBC 8009B2BC 000FC080 */ sll $t8, $t7, 2
/* 09BEC0 8009B2C0 03386025 */ or $t4, $t9, $t8
/* 09BEC4 8009B2C4 AC4C0000 */ sw $t4, ($v0)
/* 09BEC8 8009B2C8 8FB9001C */ lw $t9, 0x1c($sp)
/* 09BECC 8009B2CC 8FAD0018 */ lw $t5, 0x18($sp)
/* 09BED0 8009B2D0 333803FF */ andi $t8, $t9, 0x3ff
/* 09BED4 8009B2D4 31AE03FF */ andi $t6, $t5, 0x3ff
/* 09BED8 8009B2D8 000E7B80 */ sll $t7, $t6, 0xe
/* 09BEDC 8009B2DC 00186080 */ sll $t4, $t8, 2
/* 09BEE0 8009B2E0 01EC6825 */ or $t5, $t7, $t4
/* 09BEE4 8009B2E4 AC4D0004 */ sw $t5, 4($v0)
/* 09BEE8 8009B2E8 8C820000 */ lw $v0, ($a0)
/* 09BEEC 8009B2EC 3C19E700 */ lui $t9, 0xe700
/* 09BEF0 8009B2F0 244E0008 */ addiu $t6, $v0, 8
/* 09BEF4 8009B2F4 AC8E0000 */ sw $t6, ($a0)
/* 09BEF8 8009B2F8 AC400004 */ sw $zero, 4($v0)
/* 09BEFC 8009B2FC AC590000 */ sw $t9, ($v0)
/* 09BF00 8009B300 8C820000 */ lw $v0, ($a0)
/* 09BF04 8009B304 240FFFFF */ li $t7, -1
/* 09BF08 8009B308 24580008 */ addiu $t8, $v0, 8
/* 09BF0C 8009B30C AC980000 */ sw $t8, ($a0)
/* 09BF10 8009B310 AC4F0004 */ sw $t7, 4($v0)
/* 09BF14 8009B314 0C01ECF4 */ jal func_8007B3D0
/* 09BF18 8009B318 AC4B0000 */ sw $t3, ($v0)
/* 09BF1C 8009B31C 8FBF0014 */ lw $ra, 0x14($sp)
/* 09BF20 8009B320 27BD0018 */ addiu $sp, $sp, 0x18
/* 09BF24 8009B324 03E00008 */ jr $ra
/* 09BF28 8009B328 00000000 */ nop
@@ -218,7 +218,7 @@ glabel menu_audio_options_loop
/* 085B84 80084F84 24020100 */ li $v0, 256
/* 085B88 80084F88 AC620000 */ sw $v0, ($v1)
.L80084F8C:
/* 085B8C 80084F8C 0C000C58 */ jal sfxSetVolumeSlider
/* 085B8C 80084F8C 0C000C58 */ jal set_sfx_volume_slider
/* 085B90 80084F90 00402025 */ move $a0, $v0
/* 085B94 80084F94 1000005A */ b .L80085100
/* 085B98 80084F98 00000000 */ nop
@@ -242,9 +242,9 @@ glabel menu_audio_options_loop
/* 085BD8 80084FD8 24020100 */ li $v0, 256
/* 085BDC 80084FDC AC620000 */ sw $v0, ($v1)
.L80084FE0:
/* 085BE0 80084FE0 0C00068F */ jal musicSetVolSlider
/* 085BE0 80084FE0 0C00068F */ jal set_music_volume_slider
/* 085BE4 80084FE4 00402025 */ move $a0, $v0
/* 085BE8 80084FE8 0C000572 */ jal musicIsPlaying
/* 085BE8 80084FE8 0C000572 */ jal music_is_playing
/* 085BEC 80084FEC 00000000 */ nop
/* 085BF0 80084FF0 14400043 */ bnez $v0, .L80085100
/* 085BF4 80084FF4 3C0D8012 */ lui $t5, %hi(D_801263D8) # $t5, 0x8012
@@ -48,7 +48,7 @@ glabel menu_magic_codes_loop
/* 08A980 80089D80 28410014 */ slti $at, $v0, 0x14
/* 08A984 80089D84 10200006 */ beqz $at, .L80089DA0
/* 08A988 80089D88 00000000 */ nop
/* 08A98C 80089D8C 0C0225A9 */ jal func_800896A4
/* 08A98C 80089D8C 0C0225A9 */ jal render_magic_codes_ui
/* 08A990 80089D90 AFA70044 */ sw $a3, 0x44($sp)
/* 08A994 80089D94 3C0B8012 */ lui $t3, %hi(D_801263D8) # $t3, 0x8012
/* 08A998 80089D98 8FA70044 */ lw $a3, 0x44($sp)
@@ -69,7 +69,7 @@ glabel menu_track_select_loop
/* 08FF30 8008F330 0C0243B6 */ jal func_80090ED8
/* 08FF34 8008F334 00000000 */ nop
/* 08FF38 8008F338 8FA40020 */ lw $a0, 0x20($sp)
/* 08FF3C 8008F33C 0C0243CC */ jal func_80090F30
/* 08FF3C 8008F33C 0C0243CC */ jal render_track_select_setup_ui
/* 08FF40 8008F340 00000000 */ nop
/* 08FF44 8008F344 8FA40020 */ lw $a0, 0x20($sp)
/* 08FF48 8008F348 0C024862 */ jal func_80092188
@@ -1,4 +1,4 @@
glabel func_800896A4
glabel render_magic_codes_ui
/* 08A2A4 800896A4 27BDFF80 */ addiu $sp, $sp, -0x80
/* 08A2A8 800896A8 AFBF0044 */ sw $ra, 0x44($sp)
/* 08A2AC 800896AC AFA40080 */ sw $a0, 0x80($sp)
@@ -410,7 +410,7 @@ glabel func_800896A4
/* 08A894 80089C94 000268C0 */ sll $t5, $v0, 3
/* 08A898 80089C98 05A10004 */ bgez $t5, .L80089CAC
/* 08A89C 80089C9C 8FBF0044 */ lw $ra, 0x44($sp)
/* 08A8A0 80089CA0 0C022B51 */ jal func_8008AD44
/* 08A8A0 80089CA0 0C022B51 */ jal calculate_and_display_rom_checksum
/* 08A8A4 80089CA4 00000000 */ nop
/* 08A8A8 80089CA8 8FBF0044 */ lw $ra, 0x44($sp)
.L80089CAC:
@@ -3,7 +3,7 @@ glabel D_800E84F0
.float 1.2
.text
glabel func_80090F30
glabel render_track_select_setup_ui
/* 091B30 80090F30 27BDFF68 */ addiu $sp, $sp, -0x98
/* 091B34 80090F34 AFBF0054 */ sw $ra, 0x54($sp)
/* 091B38 80090F38 AFBE0050 */ sw $fp, 0x50($sp)
@@ -125,7 +125,7 @@ glabel func_800A277C
/* 0A34EC 800A28EC 8FA900A8 */ lw $t1, 0xa8($sp)
/* 0A34F0 800A28F0 14400006 */ bnez $v0, .L800A290C
/* 0A34F4 800A28F4 240E0010 */ li $t6, 16
/* 0A34F8 800A28F8 0C000572 */ jal musicIsPlaying
/* 0A34F8 800A28F8 0C000572 */ jal music_is_playing
/* 0A34FC 800A28FC AFA900A8 */ sw $t1, 0xa8($sp)
/* 0A3500 800A2900 8FA900A8 */ lw $t1, 0xa8($sp)
/* 0A3504 800A2904 14400003 */ bnez $v0, .L800A2914
+2 -2
View File
@@ -561,7 +561,7 @@ s16 musicGetTempo(void) {
return D_80115D30;
}
u8 musicIsPlaying(void) {
u8 music_is_playing(void) {
return (alCSPGetState(gMusicPlayer) == AL_PLAYING);
}
@@ -687,7 +687,7 @@ void set_relative_volume_for_music(u8 vol){
alCSPSetVol(gMusicPlayer, (s16)((s32)(D_800DC66C*normalized_vol)>>8));
}
void musicSetVolSlider(u32 slider_val){
void set_music_volume_slider(u32 slider_val){
f32 normalized_vol;
slider_val = (slider_val < 0x101)?slider_val:256;
+635 -134
View File
File diff suppressed because it is too large Load Diff
+7 -13
View File
@@ -271,7 +271,7 @@ extern s32 gShowControllerPakMenu;
extern s32 gActiveMagicCodes;
extern s32 gUnlockedMagicCodes;
extern s32 gMagicCodeMenuStrings[5];
extern char *gMagicCodeMenuStrings[5];
extern u8 D_800DFDB4[10][2];
@@ -376,9 +376,9 @@ extern s16 D_800E06C4[8];
extern s16 D_800E06D4[8];
extern u16 D_800E06E4[14];
extern s16 D_800E06E4[14];
extern u16 D_800E0700[8];
extern s16 D_800E0700[8];
extern s16 D_800E0710[16];
@@ -410,16 +410,6 @@ extern s16 D_800E0990[8];
extern s16 D_800E09A0[8];
// Not sure about typing with these.
extern s32 D_800E09B0[5];
extern s32 D_800E09C4[5];
extern s32 D_800E09D8[5];
extern s32 D_800E09EC[3];
extern s32 D_800E09F8[3];
extern s32 D_800E0A04[3];
extern s32 D_800E0A10;
extern s32 D_800E0A14[4];
extern s16 D_800E0A24[14];
extern s16 D_800E0A40[8];
@@ -589,4 +579,8 @@ extern s16 D_800E1E2C[10];
extern s16 D_800E1E40[10];
typedef struct unk80126460 {
MenuElement elem[2];
} unk80126460;
#endif
+1 -1
View File
@@ -158,7 +158,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80002E38.s")
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80003008.s")
GLOBAL_ASM("asm/non_matchings/unknown_003260/func_80003040.s")
void sfxSetVolumeSlider(u32 arg0) {
void set_sfx_volume_slider(u32 arg0) {
if (arg0 > 256) {
arg0 = 256;
}