Update some attempts (#595)

* Update some attempts

* Matched a func
This commit is contained in:
Tyler McGavran
2024-04-19 22:06:26 -04:00
committed by GitHub
parent 3f9d113722
commit d65aa8729d
6 changed files with 409 additions and 751 deletions
-73
View File
@@ -1,73 +0,0 @@
glabel func_800C1C88
/* 0C2888 800C1C88 3C098019 */ lui $t1, %hi(D_8018FB90) # $t1, 0x8019
/* 0C288C 800C1C8C 2529FB90 */ addiu $t1, %lo(D_8018FB90) # addiu $t1, $t1, -0x470
/* 0C2890 800C1C90 91220000 */ lbu $v0, ($t1)
/* 0C2894 800C1C94 240A003C */ li $t2, 60
/* 0C2898 800C1C98 3C088019 */ lui $t0, %hi(D_8018EFD8) # $t0, 0x8019
/* 0C289C 800C1C9C 004A0019 */ multu $v0, $t2
/* 0C28A0 800C1CA0 2508EFD8 */ addiu $t0, %lo(D_8018EFD8) # addiu $t0, $t0, -0x1028
/* 0C28A4 800C1CA4 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 0C28A8 800C1CA8 AFA40010 */ sw $a0, 0x10($sp)
/* 0C28AC 800C1CAC 240100FF */ li $at, 255
/* 0C28B0 800C1CB0 03A06825 */ move $t5, $sp
/* 0C28B4 800C1CB4 AFA50014 */ sw $a1, 0x14($sp)
/* 0C28B8 800C1CB8 AFA60018 */ sw $a2, 0x18($sp)
/* 0C28BC 800C1CBC 304400FF */ andi $a0, $v0, 0xff
/* 0C28C0 800C1CC0 00007012 */ mflo $t6
/* 0C28C4 800C1CC4 010E1821 */ addu $v1, $t0, $t6
/* 0C28C8 800C1CC8 906F002A */ lbu $t7, 0x2a($v1)
/* 0C28CC 800C1CCC 51E10032 */ beql $t7, $at, .L800C1D98
/* 0C28D0 800C1CD0 00001025 */ move $v0, $zero
/* 0C28D4 800C1CD4 008A0019 */ multu $a0, $t2
/* 0C28D8 800C1CD8 3C0B8019 */ lui $t3, %hi(D_8018FB91) # $t3, 0x8019
/* 0C28DC 800C1CDC 256BFB91 */ addiu $t3, %lo(D_8018FB91) # addiu $t3, $t3, -0x46f
/* 0C28E0 800C1CE0 91660000 */ lbu $a2, ($t3)
/* 0C28E4 800C1CE4 240C00FF */ li $t4, 255
/* 0C28E8 800C1CE8 44802000 */ mtc1 $zero, $f4
/* 0C28EC 800C1CEC 0000C012 */ mflo $t8
/* 0C28F0 800C1CF0 01182821 */ addu $a1, $t0, $t8
/* 0C28F4 800C1CF4 A0A60029 */ sb $a2, 0x29($a1)
/* 0C28F8 800C1CF8 00CA0019 */ multu $a2, $t2
/* 0C28FC 800C1CFC 0000C812 */ mflo $t9
/* 0C2900 800C1D00 01197021 */ addu $t6, $t0, $t9
/* 0C2904 800C1D04 A1C2002A */ sb $v0, 0x2a($t6)
/* 0C2908 800C1D08 906F002A */ lbu $t7, 0x2a($v1)
/* 0C290C 800C1D0C A1620000 */ sb $v0, ($t3)
/* 0C2910 800C1D10 00A01025 */ move $v0, $a1
/* 0C2914 800C1D14 31F800FF */ andi $t8, $t7, 0xff
/* 0C2918 800C1D18 030A0019 */ multu $t8, $t2
/* 0C291C 800C1D1C A12F0000 */ sb $t7, ($t1)
/* 0C2920 800C1D20 0000C812 */ mflo $t9
/* 0C2924 800C1D24 01197021 */ addu $t6, $t0, $t9
/* 0C2928 800C1D28 A1CC0029 */ sb $t4, 0x29($t6)
/* 0C292C 800C1D2C 8FB80014 */ lw $t8, 0x14($sp)
/* 0C2930 800C1D30 8FAF0014 */ lw $t7, 0x14($sp)
/* 0C2934 800C1D34 8FAE0014 */ lw $t6, 0x14($sp)
/* 0C2938 800C1D38 27190004 */ addiu $t9, $t8, 4
/* 0C293C 800C1D3C ACB90004 */ sw $t9, 4($a1)
/* 0C2940 800C1D40 ACAF0000 */ sw $t7, ($a1)
/* 0C2944 800C1D44 8FB90018 */ lw $t9, 0x18($sp)
/* 0C2948 800C1D48 25CF0008 */ addiu $t7, $t6, 8
/* 0C294C 800C1D4C 8FB80018 */ lw $t8, 0x18($sp)
/* 0C2950 800C1D50 ACAF0008 */ sw $t7, 8($a1)
/* 0C2954 800C1D54 8FAF0018 */ lw $t7, 0x18($sp)
/* 0C2958 800C1D58 272E0004 */ addiu $t6, $t9, 4
/* 0C295C 800C1D5C ACB8000C */ sw $t8, 0xc($a1)
/* 0C2960 800C1D60 ACAE0010 */ sw $t6, 0x10($a1)
/* 0C2964 800C1D64 25F80008 */ addiu $t8, $t7, 8
/* 0C2968 800C1D68 93B90023 */ lbu $t9, 0x23($sp)
/* 0C296C 800C1D6C 93AE0013 */ lbu $t6, 0x13($sp)
/* 0C2970 800C1D70 8FAF0024 */ lw $t7, 0x24($sp)
/* 0C2974 800C1D74 A0AC002A */ sb $t4, 0x2a($a1)
/* 0C2978 800C1D78 ACB80014 */ sw $t8, 0x14($a1)
/* 0C297C 800C1D7C ACA70024 */ sw $a3, 0x24($a1)
/* 0C2980 800C1D80 E4A4001C */ swc1 $f4, 0x1c($a1)
/* 0C2984 800C1D84 A0B90028 */ sb $t9, 0x28($a1)
/* 0C2988 800C1D88 A0AE0030 */ sb $t6, 0x30($a1)
/* 0C298C 800C1D8C 10000002 */ b .L800C1D98
/* 0C2990 800C1D90 ACAF0038 */ sw $t7, 0x38($a1)
/* 0C2994 800C1D94 00001025 */ move $v0, $zero
.L800C1D98:
/* 0C2998 800C1D98 01A0E825 */ move $sp, $t5
/* 0C299C 800C1D9C 03E00008 */ jr $ra
/* 0C29A0 800C1DA0 25BD0010 */ addiu $sp, $t5, 0x10
+354 -628
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -52,7 +52,7 @@ struct Sound {
/* 0x09 */ // u8 compilerPadding0[3];
/* 0x0C */ f32 *unk0C;
/* 0x10 */ f32 *unk10;
/* 0x14 */ u8 *unk14;
/* 0x14 */ s8 *unk14;
}; // size = 0x18
struct Unk_800E9F7C {
@@ -150,12 +150,12 @@ typedef struct {
/* 0x011 */ u8 unk_011;
/* 0x012 */ u8 unk_012;
/* 0x013 */ u8 unk_013;
/* 0x014 */ s32 unk_014;
/* 0x014 */ u32 unk_014;
/* 0x018 */ u16 unk_018;
/* 0x01A */ u16 unk_01A;
/* 0x01C */ s32 unk_01C;
/* 0x020 */ s32 unk_020;
/* 0x024 */ s32 unk_024;
/* 0x01C */ f32 unk_01C;
/* 0x020 */ f32 unk_020;
/* 0x024 */ f32 unk_024;
/* 0x028 */ u16 unk_028;
/* 0x02A */ u16 unk_02A;
/* 0x02C */ u32 unk_02C[5]; // Array size guessed
@@ -229,7 +229,7 @@ void func_800C3F70(void);
void func_800C400C(void);
void func_800C4084(u16);
void func_800C40F0(u8);
void play_sound(u32, Vec3f*, u8, f32*, f32*, u8*);
void play_sound(u32, Vec3f*, u8, f32*, f32*, s8*);
void func_800C41CC(u8, struct SoundCharacteristics*);
void func_800C4398(void);
void delete_sound_from_bank(u8, u8);
+46 -36
View File
@@ -41,7 +41,7 @@ u16 *D_8018D9B0;
u8 *D_8018D9B4;
u8 *D_8018D9B8;
u8 *D_8018D9BC;
struct_8018EE10_entry_cont *D_8018D9C0;
void *D_8018D9C0;
/**
* List of bytes indexed by character ID
* Indicates number of Grand Prix points that character
@@ -4086,6 +4086,7 @@ void *segmented_to_virtual_dupe_2(const void *addr) {
}
#ifdef NON_MATCHING
// https://decomp.me/scratch/NAZ12
// Register allocation nonsense
void func_80099184(MkTexture *arg0) {
u16 var_a1_2;
@@ -4121,8 +4122,10 @@ void func_80099184(MkTexture *arg0) {
dma_copy_base_729a30(var_s1->textureData, var_s1->height * var_s1->width * 2, &D_8018D9B0[gD_8018E118TotalSize]);
}
D_8018E118[gNumD_8018E118Entries].textureData = var_s1->textureData;
D_8018E118[gNumD_8018E118Entries].offset = gD_8018E118TotalSize;
thing = &D_8018E118[gNumD_8018E118Entries];
thing->textureData = var_s1->textureData;
thing = &D_8018E118[gNumD_8018E118Entries];
thing->offset = gD_8018E118TotalSize;
gD_8018E118TotalSize += (var_s1->height * var_s1->width);
gNumD_8018E118Entries += 1;
@@ -4136,6 +4139,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099184.s")
#endif
#ifdef NON_MATCHING
// https://decomp.me/scratch/O2tkD
// Register allocation nonsense
void func_80099394(MkTexture *arg0) {
UNUSED u16 var_a1_2;
@@ -4178,6 +4182,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099394.s")
#ifdef NON_MATCHING
// Register allocation nonsense
// https://decomp.me/scratch/Wv2MX
void func_8009952C(MkTexture *arg0) {
UNUSED u16 var_a1_2;
s32 var_v0;
@@ -4222,6 +4227,7 @@ void func_8009969C(MkTexture *arg0) {
#ifdef NON_MATCHING
// Register allocation nonsense
// https://decomp.me/scratch/hwAAp
void func_800996BC(MkTexture *arg0, s32 arg1) {
u16 var_a1_2;
s32 var_v0;
@@ -7391,8 +7397,7 @@ void func_800A1F30(UNUSED struct_8018D9E0_entry *unused) {
}
#ifdef NON_MATCHING
// Lots and lots of register allocation differences
// No idea what the source of it is, permuter isn't having any luck either
// Register allocation stuff, minor stack diffs
void func_800A1FB0(struct_8018D9E0_entry *arg0) {
Unk_D_800E70A0 spE0;
UNUSED s32 stackPadding0;
@@ -7421,12 +7426,12 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
case 0x16: /* switch 1 */
case 0x17: /* switch 1 */
case 0x18: /* switch 1 */
for (var_s2 = 0; var_s2 < 4; var_s2++) {
set_text_color_rainbow_if_selected(D_8018EDEC - 0x15, var_s2, TEXT_YELLOW);
func_80093324(0x00000032, 0x55 + (0x23 * var_s2), D_800E7868[var_s2], 0, 0.9f, 1.0f);
if (var_s2 == (D_8018EDEC - 0x15)) {
for (stackPadding0 = 0; stackPadding0 < 4; stackPadding0++) {
func_80092224(D_8018EDEC - 0x15, stackPadding0, 3);
func_80093324(0x00000032, 0x55 + (0x23 * stackPadding0), D_800E7868[stackPadding0], 0, 0.9f, 1.0f);
if (stackPadding0 == (D_8018EDEC - 0x15)) {
spE0.column = 0x0032;
spE0.row = 0x55 + (0x23 * var_s2);
spE0.row = 0x55 + (0x23 * stackPadding0);
}
}
set_text_color(1);
@@ -7435,22 +7440,22 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
case 0x1E: /* switch 1 */
case 0x1F: /* switch 1 */
set_text_color(3);
for (var_s2 = 0; var_s2 < 3; var_s2++) {
func_80093324(0x00000028, 0x55 + (0x14 * var_s2), D_800E7878[var_s2], 0, 1.0f, 1.0f);
for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) {
func_80093324(0x00000028, 0x55 + (0x14 * stackPadding0), D_800E7878[stackPadding0], 0, 1.0f, 1.0f);
}
for (var_s2 = 0; var_s2 < 2; var_s2++) {
set_text_color_rainbow_if_selected(D_8018EDEC - 0x1E, var_s2, TEXT_GREEN);
func_80093324(0x00000084, 0x96 + (0x19 * var_s2), D_800E7840[var_s2], 0, 1.0f, 1.0f);
if (var_s2 == (D_8018EDEC - 0x1E)) {
for (stackPadding0 = 0; stackPadding0 < 2; stackPadding0++) {
func_80092224(D_8018EDEC - 0x1E, stackPadding0, 1);
func_80093324(0x00000084, 0x96 + (0x19 * stackPadding0), D_800E7840[stackPadding0], 0, 1.0f, 1.0f);
if (stackPadding0 == (D_8018EDEC - 0x1E)) {
spE0.column = 0x0084;
spE0.row = 0x96 + (0x19 * var_s2);
spE0.row = 0x96 + (0x19 * stackPadding0);
}
}
break;
case 0x20: /* switch 1 */
set_text_color(3);
for (var_s2 = 0; var_s2 < 3; var_s2++) {
func_80093324(0x00000032, 0x55 + (0x14 * var_s2), D_800E7884[var_s2], 0, 1.0f, 1.0f);
for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) {
func_80093324(0x00000032, 0x55 + (0x14 * stackPadding0), D_800E7884[stackPadding0], 0, 1.0f, 1.0f);
}
break;
case 0x2A: /* switch 1 */
@@ -7459,8 +7464,8 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
case 0x2D: /* switch 1 */
set_text_color(2);
var_s1 = D_8018EDEC - 0x2A;
for (var_s2 = 0; var_s2 < 3; var_s2++) {
func_80093324(0x00000032, 0x55 + (0x14 * var_s2), D_800E78D0[(var_s1 * 3) + var_s2], 0, 0.9f, 0.9f);
for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) {
func_80093324(0x00000032, 0x55 + (0x14 * stackPadding0), D_800E78D0[(var_s1 * 3) + stackPadding0], 0, 0.9f, 0.9f);
}
break;
case 0x34: /* switch 1 */
@@ -7469,23 +7474,23 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
case 0x37: /* switch 1 */
set_text_color(2);
var_s1 = D_8018EDEC - 0x34;
for (var_s2 = 0; var_s2 < 4; var_s2++) {
func_80093324(0x00000023, 0x55 + (0x14 * var_s2), D_800E7890[(var_s1 * 4) + var_s2], 0, 0.8f, 0.8f);
for (stackPadding0 = 0; stackPadding0 < 4; stackPadding0++) {
func_80093324(0x00000023, 0x55 + (0x14 * stackPadding0), D_800E7890[(var_s1 * 4) + stackPadding0], 0, 0.8f, 0.8f);
}
break;
case 0x41: /* switch 1 */
case 0x42: /* switch 1 */
set_text_color(2);
var_s1 = D_8018EDEC - 0x41;
for (var_s2 = 0; var_s2 < 3; var_s2++) {
func_80093324(0x00000041, 0x55 + (0x14 * var_s2), D_800E7900[(var_s1 * 3) + var_s2], 0, 0.9f, 0.9f);
for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) {
func_80093324(0x00000041, 0x55 + (0x14 * stackPadding0), D_800E7900[(var_s1 * 3) + stackPadding0], 0, 0.9f, 0.9f);
}
break;
case 0x46: /* switch 1 */
case 0x47: /* switch 1 */
set_text_color(3);
for (var_s2 = 0; var_s2 < 3; var_s2++) {
func_80093324(0x00000050, 0x55 + (0x14 * var_s2), D_800E7A48[var_s2], 0, 1.0f, 1.0f);
for (stackPadding0 = 0; stackPadding0 < 3; stackPadding0++) {
func_80093324(0x00000050, 0x55 + (0x14 * stackPadding0), D_800E7A48[stackPadding0], 0, 1.0f, 1.0f);
}
break;
case 0x28: /* switch 1 */
@@ -7529,7 +7534,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_s1 == 0) {
var_v1 = &D_8018EE10[var_s2];
} else {
var_v1 = (struct_8018EE10_entry *) &D_8018D9C0[var_s2];
var_v1 = &((struct_8018EE10_entry*)D_8018D9C0)[var_s2];
}
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
@@ -7565,7 +7570,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_s1 == 0) {
var_v1 = &D_8018EE10[var_s2];
} else {
var_v1 = (struct_8018EE10_entry *) &D_8018D9C0[var_s2];
var_v1 = &((struct_8018EE10_entry*)D_8018D9C0)[var_s2];
}
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
@@ -7574,6 +7579,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
}
}
}
// Register allocation diffs here
for (var_s2 = 0; var_s2 < 2; var_s2++) {
if (var_s2 == (D_8018EDEC - 0x38)) {
spE0.column = 0x6E + (0x32 * var_s2);
@@ -7586,16 +7592,16 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
case 0x3A: /* switch 1 */
case 0x3B: /* switch 1 */
case 0x3C: /* switch 1 */
temp_v0 = (D_8018EDEC - 0x3A) / 2;
var_s5 = (D_8018EDEC - 0x3A) / 2;
set_text_color(2);
draw_text(0x000000A0, 0x00000055, D_800E7938[temp_v0], 0, 1.0f, 1.0f);
draw_text(0x000000A0, 0x00000055, D_800E7938[var_s5], 0, 1.0f, 1.0f);
for (var_s1 = 0; var_s1 < 2; var_s1++) {
set_text_color(3);
draw_text(0x5C + (0x82 * var_s1), 0x0000007D, D_800E7918[var_s1], 0, 0.75f, 0.75f);
for (var_s2 = 0; var_s2 < 2; var_s2++) {
if (var_s1 == 0) {
if (var_s2 == arg0->unk1C) {
if (temp_v0 == 0) {
if (var_s5 == 0) {
set_text_color(2);
} else {
set_text_color(gGlobalTimer % 3);
@@ -7613,7 +7619,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_s1 == 0) {
var_v1 = &D_8018EE10[var_s2];
} else {
var_v1 = (struct_8018EE10_entry *) &D_8018D9C0[var_s2];
var_v1 = &((struct_8018EE10_entry*)D_8018D9C0)[var_s2];
}
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
@@ -8115,7 +8121,6 @@ void func_800A474C(s32 recordType, s32 column, s32 row) {
char sp38[3];
struct_8018D9E0_entry *temp_v0;
s32 sp30;
if (gGamestate == 4) {
sp30 = 0;
} else {
@@ -8144,10 +8149,14 @@ void func_800A474C(s32 recordType, s32 column, s32 row) {
} else {
textColor = TEXT_YELLOW;
}
} else if (temp_v0->unk20 != 0) {
textColor = gGlobalTimer % 3;
} else {
// huh?
textColor = TEXT_YELLOW;
if (temp_v0->unk20 != 0) {
textColor = gGlobalTimer;
textColor %= 3;
} else {
}
}
} else {
textColor = TEXT_YELLOW;
@@ -8157,6 +8166,7 @@ void func_800A474C(s32 recordType, s32 column, s32 row) {
get_time_record_minutes(temp_t0, sp38);
func_800939C8(column + 0x27, row, sp38, 0, 0.65f, 0.65f);
func_80093324(column + 0x32, row, "'", 0, 0.65f, 0.65f);
if (!textColor) {}
get_time_record_seconds(temp_t0, sp38);
func_800939C8(column + 0x3B, row, sp38, 0, 0.65f, 0.65f);
func_80093324(column + 0x46, row, "\"", 0, 0.65f, 0.65f);
+1 -6
View File
@@ -400,11 +400,6 @@ void func_800AF740(struct_8018D9E0_entry*);
void rmonPrintf(const char *, ...);
void tkmk00decode(u8*, u8*, u8*, s32);
typedef struct struct_8018EE10_entry_cont {
struct_8018EE10_entry arr[1];
} struct_8018EE10_entry_cont;
/* File specific defines */
#define D_8018D9E0_SIZE 0x20
@@ -426,7 +421,7 @@ extern u16 *D_8018D9B0;
extern u8 *D_8018D9B4;
extern u8 *D_8018D9B8;
extern u8 *D_8018D9BC;
extern struct_8018EE10_entry_cont *D_8018D9C0;
extern void *D_8018D9C0;
extern s8 gGPPointsByCharacterId[8];
extern s8 gCharacterIdByGPOverallRank[];
extern s8 D_8018D9D8;
+2 -2
View File
@@ -925,7 +925,7 @@ s32 func_800B65F4(s32 arg0, s32 arg1) {
}
writeStatus = osPfsReadWriteFile(&gControllerPak2FileHandle, gControllerPak2FileNote, 0U, (arg0 * 0x3C00) + 0x100, 0x00003C00, (u8 *) D_800DC714);
if (writeStatus == 0) {
temp_s3 = &D_8018D9C0->arr[arg0];
temp_s3 = &((struct_8018EE10_entry*)D_8018D9C0)[arg0];
for (i = 0; i < 0x3C; i++) {
if (temp_s3->unk_07[i] != func_800B60E8(i)) {
temp_s3->ghostDataSaved = 0;
@@ -986,7 +986,7 @@ u8 func_800B68F4(s32 arg0) {
s32 i;
checksum = 0;
for (i = 0; i < 0x43; i++) {
u8 *addr = (u8 *) (&D_8018D9C0[arg0]);
u8 *addr = &((u8*)D_8018D9C0)[arg0];
checksum += addr[i] * multiplier + i;
}
return checksum;