From 58d3f26f47cdb9bfa8c9910ee57a44973058b523 Mon Sep 17 00:00:00 2001 From: VDavid003 Date: Thu, 9 Nov 2023 00:00:29 +0100 Subject: [PATCH] Match some D_8018E7AC related functions in code_80091750.c (#492) --- .../code_80091750/func_80093E60.s | 46 ---- .../code_80091750/func_8009CBE4.s | 136 ------------ .../code_80091750/func_8009E020.s | 30 --- .../code_80091750/func_8009E088.s | 30 --- include/types.h | 7 + src/code_80091750.c | 210 ++++++------------ 6 files changed, 79 insertions(+), 380 deletions(-) delete mode 100644 asm/non_matchings/code_80091750/func_80093E60.s delete mode 100644 asm/non_matchings/code_80091750/func_8009CBE4.s delete mode 100644 asm/non_matchings/code_80091750/func_8009E020.s delete mode 100644 asm/non_matchings/code_80091750/func_8009E088.s diff --git a/asm/non_matchings/code_80091750/func_80093E60.s b/asm/non_matchings/code_80091750/func_80093E60.s deleted file mode 100644 index d2f88757f..000000000 --- a/asm/non_matchings/code_80091750/func_80093E60.s +++ /dev/null @@ -1,46 +0,0 @@ -glabel func_80093E60 -/* 094A60 80093E60 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 094A64 80093E64 AFBF0014 */ sw $ra, 0x14($sp) -/* 094A68 80093E68 0C0A9EDC */ jal get_next_available_memory_addr -/* 094A6C 80093E6C 24042800 */ li $a0, 10240 -/* 094A70 80093E70 3C018019 */ lui $at, %hi(D_8018D9B4) # $at, 0x8019 -/* 094A74 80093E74 3C040001 */ lui $a0, (0x000124F8 >> 16) # lui $a0, 1 -/* 094A78 80093E78 AC22D9B4 */ sw $v0, %lo(D_8018D9B4)($at) -/* 094A7C 80093E7C 0C0A9EDC */ jal get_next_available_memory_addr -/* 094A80 80093E80 348424F8 */ ori $a0, (0x000124F8 & 0xFFFF) # ori $a0, $a0, 0x24f8 -/* 094A84 80093E84 3C018019 */ lui $at, %hi(D_8018D9B0) # $at, 0x8019 -/* 094A88 80093E88 AC22D9B0 */ sw $v0, %lo(D_8018D9B0)($at) -/* 094A8C 80093E8C 0C0A9EDC */ jal get_next_available_memory_addr -/* 094A90 80093E90 24041000 */ li $a0, 4096 -/* 094A94 80093E94 3C018019 */ lui $at, %hi(D_8018D9B8) # $at, 0x8019 -/* 094A98 80093E98 AC22D9B8 */ sw $v0, %lo(D_8018D9B8)($at) -/* 094A9C 80093E9C 0C0A9EDC */ jal get_next_available_memory_addr -/* 094AA0 80093EA0 24040004 */ li $a0, 4 -/* 094AA4 80093EA4 3C018019 */ lui $at, %hi(D_8018D9BC) # $at, 0x8019 -/* 094AA8 80093EA8 AC22D9BC */ sw $v0, %lo(D_8018D9BC)($at) -/* 094AAC 80093EAC 3C028019 */ lui $v0, %hi(D_8018E7B1) # $v0, 0x8019 -/* 094AB0 80093EB0 3C038019 */ lui $v1, %hi(D_8018E7AC) # $v1, 0x8019 -/* 094AB4 80093EB4 2463E7AC */ addiu $v1, %lo(D_8018E7AC) # addiu $v1, $v1, -0x1854 -/* 094AB8 80093EB8 2442E7B1 */ addiu $v0, %lo(D_8018E7B1) # addiu $v0, $v0, -0x184f -.L80093EBC: -/* 094ABC 80093EBC 24630001 */ addiu $v1, $v1, 1 -/* 094AC0 80093EC0 0062082B */ sltu $at, $v1, $v0 -/* 094AC4 80093EC4 1420FFFD */ bnez $at, .L80093EBC -/* 094AC8 80093EC8 A060FFFF */ sb $zero, -1($v1) -/* 094ACC 80093ECC 3C018019 */ lui $at, %hi(D_8018E838) # $at, 0x8019 -/* 094AD0 80093ED0 A020E839 */ sb $zero, %lo(D_8018E838+0x1)($at) -/* 094AD4 80093ED4 A020E83A */ sb $zero, %lo(D_8018E838+0x2)($at) -/* 094AD8 80093ED8 A020E83B */ sb $zero, %lo(D_8018E838+0x3)($at) -/* 094ADC 80093EDC 0C026444 */ jal func_80099110 -/* 094AE0 80093EE0 A020E838 */ sb $zero, %lo(D_8018E838)($at) -/* 094AE4 80093EE4 0C0268D1 */ jal func_8009A344 -/* 094AE8 80093EE8 00000000 */ nop -/* 094AEC 80093EEC 0C027988 */ jal func_8009E620 -/* 094AF0 80093EF0 00000000 */ nop -/* 094AF4 80093EF4 0C024896 */ jal func_80092258 -/* 094AF8 80093EF8 00000000 */ nop -/* 094AFC 80093EFC 8FBF0014 */ lw $ra, 0x14($sp) -/* 094B00 80093F00 3C018019 */ lui $at, %hi(D_8018ED91) # $at, 0x8019 -/* 094B04 80093F04 A020ED91 */ sb $zero, %lo(D_8018ED91)($at) -/* 094B08 80093F08 03E00008 */ jr $ra -/* 094B0C 80093F0C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/code_80091750/func_8009CBE4.s b/asm/non_matchings/code_80091750/func_8009CBE4.s deleted file mode 100644 index 4cac21fcb..000000000 --- a/asm/non_matchings/code_80091750/func_8009CBE4.s +++ /dev/null @@ -1,136 +0,0 @@ -glabel func_8009CBE4 -/* 09D7E4 8009CBE4 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e -/* 09D7E8 8009CBE8 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) -/* 09D7EC 8009CBEC 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 09D7F0 8009CBF0 AFB00030 */ sw $s0, 0x30($sp) -/* 09D7F4 8009CBF4 00808025 */ move $s0, $a0 -/* 09D7F8 8009CBF8 AFBF0034 */ sw $ra, 0x34($sp) -/* 09D7FC 8009CBFC AFA5006C */ sw $a1, 0x6c($sp) -/* 09D800 8009CC00 10400003 */ beqz $v0, .L8009CC10 -/* 09D804 8009CC04 AFA60070 */ sw $a2, 0x70($sp) -/* 09D808 8009CC08 24010001 */ li $at, 1 -/* 09D80C 8009CC0C 1441000C */ bne $v0, $at, .L8009CC40 -.L8009CC10: -/* 09D810 8009CC10 001010C0 */ sll $v0, $s0, 3 -/* 09D814 8009CC14 3C0E8019 */ lui $t6, %hi(D_8018E7E8) # $t6, 0x8019 -/* 09D818 8009CC18 3C0F8019 */ lui $t7, %hi(D_8018E810) # $t7, 0x8019 -/* 09D81C 8009CC1C 25CEE7E8 */ addiu $t6, %lo(D_8018E7E8) # addiu $t6, $t6, -0x1818 -/* 09D820 8009CC20 25EFE810 */ addiu $t7, %lo(D_8018E810) # addiu $t7, $t7, -0x17f0 -/* 09D824 8009CC24 004E1821 */ addu $v1, $v0, $t6 -/* 09D828 8009CC28 004F2021 */ addu $a0, $v0, $t7 -/* 09D82C 8009CC2C 846A0000 */ lh $t2, ($v1) -/* 09D830 8009CC30 846B0002 */ lh $t3, 2($v1) -/* 09D834 8009CC34 848D0000 */ lh $t5, ($a0) -/* 09D838 8009CC38 10000017 */ b .L8009CC98 -/* 09D83C 8009CC3C 849F0002 */ lh $ra, 2($a0) -.L8009CC40: -/* 09D840 8009CC40 2A010004 */ slti $at, $s0, 4 -/* 09D844 8009CC44 1420000C */ bnez $at, .L8009CC78 -/* 09D848 8009CC48 001010C0 */ sll $v0, $s0, 3 -/* 09D84C 8009CC4C 3C188019 */ lui $t8, %hi(D_8018E7E8) # $t8, 0x8019 -/* 09D850 8009CC50 3C198019 */ lui $t9, %hi(D_8018E810) # $t9, 0x8019 -/* 09D854 8009CC54 2718E7E8 */ addiu $t8, %lo(D_8018E7E8) # addiu $t8, $t8, -0x1818 -/* 09D858 8009CC58 2739E810 */ addiu $t9, %lo(D_8018E810) # addiu $t9, $t9, -0x17f0 -/* 09D85C 8009CC5C 00581821 */ addu $v1, $v0, $t8 -/* 09D860 8009CC60 00592021 */ addu $a0, $v0, $t9 -/* 09D864 8009CC64 846A0000 */ lh $t2, ($v1) -/* 09D868 8009CC68 846B0002 */ lh $t3, 2($v1) -/* 09D86C 8009CC6C 848D0000 */ lh $t5, ($a0) -/* 09D870 8009CC70 10000009 */ b .L8009CC98 -/* 09D874 8009CC74 849F0002 */ lh $ra, 2($a0) -.L8009CC78: -/* 09D878 8009CC78 3C0F8016 */ lui $t7, %hi(D_8015F480) # $t7, 0x8016 -/* 09D87C 8009CC7C 25EFF480 */ addiu $t7, %lo(D_8015F480) # addiu $t7, $t7, -0xb80 -/* 09D880 8009CC80 00107180 */ sll $t6, $s0, 6 -/* 09D884 8009CC84 01CF1021 */ addu $v0, $t6, $t7 -/* 09D888 8009CC88 844A0030 */ lh $t2, 0x30($v0) -/* 09D88C 8009CC8C 844B0032 */ lh $t3, 0x32($v0) -/* 09D890 8009CC90 844D002C */ lh $t5, 0x2c($v0) -/* 09D894 8009CC94 845F002E */ lh $ra, 0x2e($v0) -.L8009CC98: -/* 09D898 8009CC98 8FB90070 */ lw $t9, 0x70($sp) -/* 09D89C 8009CC9C 3C0F800E */ lui $t7, %hi(D_800E7AE8) # $t7, 0x800e -/* 09D8A0 8009CCA0 25EF7AE8 */ addiu $t7, %lo(D_800E7AE8) # addiu $t7, $t7, 0x7ae8 -/* 09D8A4 8009CCA4 001970C0 */ sll $t6, $t9, 3 -/* 09D8A8 8009CCA8 01CF1021 */ addu $v0, $t6, $t7 -/* 09D8AC 8009CCAC 94590002 */ lhu $t9, 2($v0) -/* 09D8B0 8009CCB0 944E0004 */ lhu $t6, 4($v0) -/* 09D8B4 8009CCB4 3C0F8019 */ lui $t7, %hi(D_8018E7D0) # $t7, 0x8019 -/* 09D8B8 8009CCB8 00104880 */ sll $t1, $s0, 2 -/* 09D8BC 8009CCBC 25EFE7D0 */ addiu $t7, %lo(D_8018E7D0) # addiu $t7, $t7, -0x1830 -/* 09D8C0 8009CCC0 AFB90018 */ sw $t9, 0x18($sp) -/* 09D8C4 8009CCC4 012F6021 */ addu $t4, $t1, $t7 -/* 09D8C8 8009CCC8 AFAE001C */ sw $t6, 0x1c($sp) -/* 09D8CC 8009CCCC 8D8E0000 */ lw $t6, ($t4) -/* 09D8D0 8009CCD0 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015 -/* 09D8D4 8009CCD4 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0) -/* 09D8D8 8009CCD8 05A10003 */ bgez $t5, .L8009CCE8 -/* 09D8DC 8009CCDC 000D1843 */ sra $v1, $t5, 1 -/* 09D8E0 8009CCE0 25A10001 */ addiu $at, $t5, 1 -/* 09D8E4 8009CCE4 00011843 */ sra $v1, $at, 1 -.L8009CCE8: -/* 09D8E8 8009CCE8 000E7A00 */ sll $t7, $t6, 8 -/* 09D8EC 8009CCEC 01EE7823 */ subu $t7, $t7, $t6 -/* 09D8F0 8009CCF0 01432823 */ subu $a1, $t2, $v1 -/* 09D8F4 8009CCF4 07E10003 */ bgez $ra, .L8009CD04 -/* 09D8F8 8009CCF8 001F4043 */ sra $t0, $ra, 1 -/* 09D8FC 8009CCFC 27E10001 */ addiu $at, $ra, 1 -/* 09D900 8009CD00 00014043 */ sra $t0, $at, 1 -.L8009CD04: -/* 09D904 8009CD04 010BC021 */ addu $t8, $t0, $t3 -/* 09D908 8009CD08 AFB80010 */ sw $t8, 0x10($sp) -/* 09D90C 8009CD0C 94580000 */ lhu $t8, ($v0) -/* 09D910 8009CD10 01683023 */ subu $a2, $t3, $t0 -/* 09D914 8009CD14 006A3821 */ addu $a3, $v1, $t2 -/* 09D918 8009CD18 AFB80014 */ sw $t8, 0x14($sp) -/* 09D91C 8009CD1C 3C188019 */ lui $t8, %hi(D_8018E7B8) # $t8, 0x8019 -/* 09D920 8009CD20 2718E7B8 */ addiu $t8, %lo(D_8018E7B8) # addiu $t8, $t8, -0x1848 -/* 09D924 8009CD24 0138C821 */ addu $t9, $t1, $t8 -/* 09D928 8009CD28 AFB9003C */ sw $t9, 0x3c($sp) -/* 09D92C 8009CD2C 0320C025 */ move $t8, $t9 -/* 09D930 8009CD30 8F390000 */ lw $t9, ($t9) -/* 09D934 8009CD34 241800FF */ li $t8, 255 -/* 09D938 8009CD38 AFAC0040 */ sw $t4, 0x40($sp) -/* 09D93C 8009CD3C 01F9001B */ divu $zero, $t7, $t9 -/* 09D940 8009CD40 00007012 */ mflo $t6 -/* 09D944 8009CD44 030E7823 */ subu $t7, $t8, $t6 -/* 09D948 8009CD48 17200002 */ bnez $t9, .L8009CD54 -/* 09D94C 8009CD4C 00000000 */ nop -/* 09D950 8009CD50 0007000D */ break 7 -.L8009CD54: -/* 09D954 8009CD54 AFAF0020 */ sw $t7, 0x20($sp) -/* 09D958 8009CD58 0C02637E */ jal draw_box -/* 09D95C 8009CD5C 00000000 */ nop -/* 09D960 8009CD60 8FB9006C */ lw $t9, 0x6c($sp) -/* 09D964 8009CD64 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015 -/* 09D968 8009CD68 AC220298 */ sw $v0, %lo(gDisplayListHead)($at) -/* 09D96C 8009CD6C 17200016 */ bnez $t9, .L8009CDC8 -/* 09D970 8009CD70 8FAC0040 */ lw $t4, 0x40($sp) -/* 09D974 8009CD74 8D980000 */ lw $t8, ($t4) -/* 09D978 8009CD78 8FB9003C */ lw $t9, 0x3c($sp) -/* 09D97C 8009CD7C 270E0001 */ addiu $t6, $t8, 1 -/* 09D980 8009CD80 AD8E0000 */ sw $t6, ($t4) -/* 09D984 8009CD84 8F380000 */ lw $t8, ($t9) -/* 09D988 8009CD88 01D8082B */ sltu $at, $t6, $t8 -/* 09D98C 8009CD8C 1420000E */ bnez $at, .L8009CDC8 -/* 09D990 8009CD90 3C0E800E */ lui $t6, %hi(gGamestate) # $t6, 0x800e -/* 09D994 8009CD94 8DCEC50C */ lw $t6, %lo(gGamestate)($t6) -/* 09D998 8009CD98 24010004 */ li $at, 4 -/* 09D99C 8009CD9C 24190006 */ li $t9, 6 -/* 09D9A0 8009CDA0 15C10004 */ bne $t6, $at, .L8009CDB4 -/* 09D9A4 8009CDA4 3C018019 */ lui $at, %hi(D_8018E7AC) -/* 09D9A8 8009CDA8 00300821 */ addu $at, $at, $s0 -/* 09D9AC 8009CDAC 10000006 */ b .L8009CDC8 -/* 09D9B0 8009CDB0 A039E7AC */ sb $t9, %lo(D_8018E7AC)($at) -.L8009CDB4: -/* 09D9B4 8009CDB4 3C018019 */ lui $at, %hi(D_8018E7AC) -/* 09D9B8 8009CDB8 00300821 */ addu $at, $at, $s0 -/* 09D9BC 8009CDBC A020E7AC */ sb $zero, %lo(D_8018E7AC)($at) -/* 09D9C0 8009CDC0 3C018019 */ lui $at, %hi(D_8018EE0C) # $at, 0x8019 -/* 09D9C4 8009CDC4 A020EE0C */ sb $zero, %lo(D_8018EE0C)($at) -.L8009CDC8: -/* 09D9C8 8009CDC8 8FBF0034 */ lw $ra, 0x34($sp) -/* 09D9CC 8009CDCC 8FB00030 */ lw $s0, 0x30($sp) -/* 09D9D0 8009CDD0 27BD0068 */ addiu $sp, $sp, 0x68 -/* 09D9D4 8009CDD4 03E00008 */ jr $ra -/* 09D9D8 8009CDD8 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/func_8009E020.s b/asm/non_matchings/code_80091750/func_8009E020.s deleted file mode 100644 index 43e189c57..000000000 --- a/asm/non_matchings/code_80091750/func_8009E020.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_8009E020 -/* 09EC20 8009E020 14A00002 */ bnez $a1, .L8009E02C -/* 09EC24 8009E024 3C0E8019 */ lui $t6, %hi(D_8018E7AC) # $t6, 0x8019 -/* 09EC28 8009E028 24050001 */ li $a1, 1 -.L8009E02C: -/* 09EC2C 8009E02C 25CEE7AC */ addiu $t6, %lo(D_8018E7AC) # addiu $t6, $t6, -0x1854 -/* 09EC30 8009E030 008E1821 */ addu $v1, $a0, $t6 -/* 09EC34 8009E034 80620000 */ lb $v0, ($v1) -/* 09EC38 8009E038 24070001 */ li $a3, 1 -/* 09EC3C 8009E03C 24010006 */ li $at, 6 -/* 09EC40 8009E040 1047000F */ beq $v0, $a3, .L8009E080 -/* 09EC44 8009E044 00000000 */ nop -/* 09EC48 8009E048 1041000D */ beq $v0, $at, .L8009E080 -/* 09EC4C 8009E04C 3C0F8019 */ lui $t7, %hi(D_8018E7B8) # $t7, 0x8019 -/* 09EC50 8009E050 00041080 */ sll $v0, $a0, 2 -/* 09EC54 8009E054 25EFE7B8 */ addiu $t7, %lo(D_8018E7B8) # addiu $t7, $t7, -0x1848 -/* 09EC58 8009E058 004F3021 */ addu $a2, $v0, $t7 -/* 09EC5C 8009E05C 2CA10100 */ sltiu $at, $a1, 0x100 -/* 09EC60 8009E060 A0670000 */ sb $a3, ($v1) -/* 09EC64 8009E064 14200003 */ bnez $at, .L8009E074 -/* 09EC68 8009E068 ACC50000 */ sw $a1, ($a2) -/* 09EC6C 8009E06C 241800FF */ li $t8, 255 -/* 09EC70 8009E070 ACD80000 */ sw $t8, ($a2) -.L8009E074: -/* 09EC74 8009E074 3C018019 */ lui $at, %hi(D_8018E7D0) -/* 09EC78 8009E078 00220821 */ addu $at, $at, $v0 -/* 09EC7C 8009E07C AC20E7D0 */ sw $zero, %lo(D_8018E7D0)($at) -.L8009E080: -/* 09EC80 8009E080 03E00008 */ jr $ra -/* 09EC84 8009E084 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/func_8009E088.s b/asm/non_matchings/code_80091750/func_8009E088.s deleted file mode 100644 index d7e1be0c8..000000000 --- a/asm/non_matchings/code_80091750/func_8009E088.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_8009E088 -/* 09EC88 8009E088 14A00002 */ bnez $a1, .L8009E094 -/* 09EC8C 8009E08C 3C0E8019 */ lui $t6, %hi(D_8018E7AC) # $t6, 0x8019 -/* 09EC90 8009E090 24050001 */ li $a1, 1 -.L8009E094: -/* 09EC94 8009E094 25CEE7AC */ addiu $t6, %lo(D_8018E7AC) # addiu $t6, $t6, -0x1854 -/* 09EC98 8009E098 008E1821 */ addu $v1, $a0, $t6 -/* 09EC9C 8009E09C 80620000 */ lb $v0, ($v1) -/* 09ECA0 8009E0A0 24070002 */ li $a3, 2 -/* 09ECA4 8009E0A4 24010005 */ li $at, 5 -/* 09ECA8 8009E0A8 1047000F */ beq $v0, $a3, .L8009E0E8 -/* 09ECAC 8009E0AC 00000000 */ nop -/* 09ECB0 8009E0B0 1041000D */ beq $v0, $at, .L8009E0E8 -/* 09ECB4 8009E0B4 3C0F8019 */ lui $t7, %hi(D_8018E7B8) # $t7, 0x8019 -/* 09ECB8 8009E0B8 00041080 */ sll $v0, $a0, 2 -/* 09ECBC 8009E0BC 25EFE7B8 */ addiu $t7, %lo(D_8018E7B8) # addiu $t7, $t7, -0x1848 -/* 09ECC0 8009E0C0 004F3021 */ addu $a2, $v0, $t7 -/* 09ECC4 8009E0C4 2CA10100 */ sltiu $at, $a1, 0x100 -/* 09ECC8 8009E0C8 A0670000 */ sb $a3, ($v1) -/* 09ECCC 8009E0CC 14200003 */ bnez $at, .L8009E0DC -/* 09ECD0 8009E0D0 ACC50000 */ sw $a1, ($a2) -/* 09ECD4 8009E0D4 241800FF */ li $t8, 255 -/* 09ECD8 8009E0D8 ACD80000 */ sw $t8, ($a2) -.L8009E0DC: -/* 09ECDC 8009E0DC 3C018019 */ lui $at, %hi(D_8018E7D0) -/* 09ECE0 8009E0E0 00220821 */ addu $at, $at, $v0 -/* 09ECE4 8009E0E4 AC20E7D0 */ sw $zero, %lo(D_8018E7D0)($at) -.L8009E0E8: -/* 09ECE8 8009E0E8 03E00008 */ jr $ra -/* 09ECEC 8009E0EC 00000000 */ nop diff --git a/include/types.h b/include/types.h index 9ebb96e84..31b62f077 100644 --- a/include/types.h +++ b/include/types.h @@ -109,4 +109,11 @@ struct UnkStruct_800DDB68 { s32 *D_800ED620; s32 *D_800ED628; s32 *D_800ED630; s32 *D_800ED638; }; +struct UnkStruct_8018E7E8 { + s16 x; + s16 y; + s16 unk1; + s16 unk2; +}; + #endif /* TYPES_H */ diff --git a/src/code_80091750.c b/src/code_80091750.c index 2652b0509..bbf29a5b2 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -2469,38 +2469,28 @@ void func_80093E40(void) { func_80093C98(1); } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern void *D_8018D9B4; -extern void *D_8018D9B8; -extern ? D_8018E7AC; -extern ? D_8018E7B1; - void func_80093E60(void) { - ? *var_v1; + s32 i; D_8018D9B4 = get_next_available_memory_addr(0x00002800U); D_8018D9B0 = get_next_available_memory_addr(0x000124F8U); D_8018D9B8 = get_next_available_memory_addr(0x00001000U); D_8018D9BC = get_next_available_memory_addr(4U); - var_v1 = &D_8018E7AC; - do { - var_v1 += 1; - var_v1->unk-1 = 0; - } while ((u32) var_v1 < (u32) &D_8018E7B1); - *D_8018E838 = 0; - *D_8018E838 = 0; - *D_8018E838 = 0; - *D_8018E838 = 0; + + for (i = 0; i < 5; i++) { + D_8018E7AC[i] = 0; + } + + for (i = 0; i < 4; i++) { + D_8018E838[i] = 0; + } + func_80099110(); func_8009A344(); func_8009E620(); func_80092258(); D_8018ED91 = 0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_80093E60.s") -#endif void func_80093F10(void) { gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880)); @@ -6320,82 +6310,58 @@ void func_8009CA6C(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009CA6C.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern ? D_8018E7AC; -extern ? D_8018E7B8; -extern ? D_8018E7D0; -extern ? D_8018E7E8; -extern ? D_8018E810; +extern u32 D_8018E7D0[]; +extern struct UnkStruct_8018E7E8 D_8018E7E8[]; +extern struct UnkStruct_8018E7E8 D_8018E810[]; void func_8009CBE4(s32 arg0, s32 arg1, s32 arg2) { - u32 *sp40; - u32 *sp3C; - RGBA16 *temp_v0_4; - s16 var_ra; - s16 var_t2; - s16 var_t3; - s16 var_t5; - s32 temp_t0; - s32 temp_t1; - s32 temp_v0; - s32 temp_v0_2; - s32 temp_v1_3; - struct UnkStruct_800DC5EC *temp_v0_3; - u32 *temp_t4; - u32 *temp_t9; - u32 temp_t6; - void *temp_a0; - void *temp_a0_2; - void *temp_v1; - void *temp_v1_2; + RGBA16* color; + s16 x, y, w, h; + s32 pad[3]; + struct UnkStruct_800DC5EC* unk; + struct UnkStruct_8018E7E8 *size, *start; if ((gModeSelection == 0) || (gModeSelection == 1)) { - temp_v0 = arg0 * 8; - temp_v1 = temp_v0 + &D_8018E7E8; - temp_a0 = temp_v0 + &D_8018E810; - var_t2 = temp_v1->unk0; - var_t3 = temp_v1->unk2; - var_t5 = temp_a0->unk0; - var_ra = temp_a0->unk2; + start = &(D_8018E7E8[arg0]); + size = &(D_8018E810[arg0]); + x = start->x; + y = start->y; + w = size->x; + h = size->y; + } else if (arg0 >= 4) { + start = &(D_8018E7E8[arg0]); + size = &(D_8018E810[arg0]); + x = start->x; + y = start->y; + w = size->x; + h = size->y; } else { - temp_v0_2 = arg0 * 8; - if (arg0 >= 4) { - temp_v1_2 = temp_v0_2 + &D_8018E7E8; - temp_a0_2 = temp_v0_2 + &D_8018E810; - var_t2 = temp_v1_2->unk0; - var_t3 = temp_v1_2->unk2; - var_t5 = temp_a0_2->unk0; - var_ra = temp_a0_2->unk2; - } else { - temp_v0_3 = &D_8015F480[arg0]; - var_t2 = temp_v0_3->screenStartX; - var_t3 = temp_v0_3->screenStartY; - var_t5 = temp_v0_3->screenWidth; - var_ra = temp_v0_3->screenHeight; - } + unk = &D_8015F480[arg0]; + x = unk->screenStartX; + y = unk->screenStartY; + w = unk->screenWidth; + h = unk->screenHeight; } - temp_v0_4 = &D_800E7AE8[arg2]; - temp_t1 = arg0 * 4; - temp_t4 = temp_t1 + &D_8018E7D0; - temp_v1_3 = var_t5 / 2; - temp_t0 = var_ra / 2; - temp_t9 = temp_t1 + &D_8018E7B8; - sp3C = temp_t9; - sp40 = temp_t4; - gDisplayListHead = draw_box(gDisplayListHead, var_t2 - temp_v1_3, var_t3 - temp_t0, temp_v1_3 + var_t2, temp_t0 + var_t3, (s32) temp_v0_4->red, (s32) temp_v0_4->green, (s32) temp_v0_4->blue, 0xFF - ((u32) (*temp_t4 * 0xFF) / (u32) *temp_t9)); - if ((arg1 == 0) && (temp_t6 = *temp_t4 + 1, *temp_t4 = temp_t6, ((temp_t6 < (u32) *sp3C) == 0))) { + color = &D_800E7AE8[arg2]; + gDisplayListHead = draw_box(gDisplayListHead, + x - (w / 2), + y - (h / 2), + (w / 2) + x, + (h / 2) + y, + color->red, + color->green, + color->blue, + 0xFF - (D_8018E7D0[arg0] * 0xFF / D_8018E7B8[arg0])); + + if ((arg1 == 0) && (D_8018E7D0[arg0] += 1, (D_8018E7D0[arg0] >= D_8018E7B8[arg0]))) { if (gGamestate == 4) { - *(&D_8018E7AC + arg0) = 6; + D_8018E7AC[arg0] = 6; return; } - *(&D_8018E7AC + arg0) = 0; + D_8018E7AC[arg0] = 0; D_8018EE0C = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009CBE4.s") -#endif void func_8009CDDC(s32 arg0, s32 arg1) { func_8009CBE4(arg0, arg1, 0); @@ -7061,73 +7027,41 @@ void func_8009E000(s32 arg0) { func_8009DF8C(arg0, 7); } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern ? D_8018E7AC; -extern ? D_8018E7B8; -extern ? D_8018E7D0; - void func_8009E020(s32 arg0, s32 arg1) { - s32 *temp_a2; - s32 temp_v0_2; - s32 var_a1; - s8 *temp_v1; - s8 temp_v0; + s32 temp; - var_a1 = arg1; - if (var_a1 == 0) { - var_a1 = 1; + if (arg1 == 0) { + arg1 = 1; } - temp_v1 = arg0 + &D_8018E7AC; - temp_v0 = *temp_v1; - if ((temp_v0 != 1) && (temp_v0 != 6)) { - temp_v0_2 = arg0 * 4; - temp_a2 = temp_v0_2 + &D_8018E7B8; - *temp_v1 = 1; - *temp_a2 = var_a1; - if ((u32) var_a1 >= 0x100U) { - *temp_a2 = 0x000000FF; + + temp = D_8018E7AC[arg0]; + if ((temp != 1) && (temp != 6)) { + D_8018E7AC[arg0] = 1; + D_8018E7B8[arg0] = arg1; + if ((u32) arg1 >= 0x100U) { + D_8018E7B8[arg0] = 0xFF; } - *(&D_8018E7D0 + temp_v0_2) = 0; + D_8018E7D0[arg0] = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009E020.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern ? D_8018E7AC; -extern ? D_8018E7B8; -extern ? D_8018E7D0; void func_8009E088(s32 arg0, s32 arg1) { - s32 *temp_a2; - s32 temp_v0_2; - s32 var_a1; - s8 *temp_v1; - s8 temp_v0; + s32 temp; - var_a1 = arg1; - if (var_a1 == 0) { - var_a1 = 1; + if (arg1 == 0) { + arg1 = 1; } - temp_v1 = arg0 + &D_8018E7AC; - temp_v0 = *temp_v1; - if ((temp_v0 != 2) && (temp_v0 != 5)) { - temp_v0_2 = arg0 * 4; - temp_a2 = temp_v0_2 + &D_8018E7B8; - *temp_v1 = 2; - *temp_a2 = var_a1; - if ((u32) var_a1 >= 0x100U) { - *temp_a2 = 0x000000FF; + + temp = D_8018E7AC[arg0]; + if ((temp != 2) && (temp != 5)) { + D_8018E7AC[arg0] = 2; + D_8018E7B8[arg0] = arg1; + if ((u32) arg1 >= 0x100U) { + D_8018E7B8[arg0] = 0xFF; } - *(&D_8018E7D0 + temp_v0_2) = 0; + D_8018E7D0[arg0] = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009E088.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023