From 753e1ab2282544387e4a71f4e1ea178364924d00 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 30 Jan 2021 19:00:49 +1000 Subject: [PATCH] Decompile argSetString --- src/gvars/gvars.c | 31 +------------------------------ src/include/gvars/gvars.h | 2 +- src/include/lib/lib_12dc0.h | 2 +- src/lib/lib_12dc0.c | 33 +++++++++++---------------------- src/lib/main.c | 8 ++++---- 5 files changed, 18 insertions(+), 58 deletions(-) diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 18308de69..fb9e39140 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -11847,36 +11847,7 @@ u32 var80099870 = 0; u32 var80099874 = 0; u32 var80099878 = 0; u32 var8009987c = 0; -u32 var80099880 = 0; -u32 var80099884 = 0; -u32 var80099888 = 0; -u32 var8009988c = 0; -u32 var80099890 = 0; -u32 var80099894 = 0; -u32 var80099898 = 0; -u32 var8009989c = 0; -u32 var800998a0 = 0; -u32 var800998a4 = 0; -u32 var800998a8 = 0; -u32 var800998ac = 0; -u32 var800998b0 = 0; -u32 var800998b4 = 0; -u32 var800998b8 = 0; -u32 var800998bc = 0; -u32 var800998c0 = 0; -u32 var800998c4 = 0; -u32 var800998c8 = 0; -u32 var800998cc = 0; -u32 var800998d0 = 0; -u32 var800998d4 = 0; -u32 var800998d8 = 0; -u32 var800998dc = 0; -u32 var800998e0 = 0; -u32 var800998e4 = 0; -u32 var800998e8 = 0; -u32 var800998ec = 0; -u32 var800998f0 = 0; -u32 var800998f4 = 0; +char g_ArgString[120] = {0}; u32 var800998f8 = 0; u32 var800998fc = 0; u32 var80099900 = 0; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 1f48fd77e..7de63433b 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -417,7 +417,7 @@ extern u32 var80099474; extern u32 var80099478; extern u32 var80099484; extern u32 var8009985c; -extern u32 var80099880; +extern char g_ArgString[120]; extern u32 var800998f8; extern u32 var80099900; extern u32 var80099a00; diff --git a/src/include/lib/lib_12dc0.h b/src/include/lib/lib_12dc0.h index f83bba74d..dcade7974 100644 --- a/src/include/lib/lib_12dc0.h +++ b/src/include/lib/lib_12dc0.h @@ -6,7 +6,7 @@ void rngSetSeed(u32 amount); u32 func00012e1c(u64 *value); char *argParseString(char *str); -void func00012efc(char *string); +void argSetString(char *string); s32 func00012f30(void); char *argFindByPrefix(s32 occurrence, char *string); void argGetLevel(s32 *stagenum); diff --git a/src/lib/lib_12dc0.c b/src/lib/lib_12dc0.c index 4245f5b0b..a7b16b1cc 100644 --- a/src/lib/lib_12dc0.c +++ b/src/lib/lib_12dc0.c @@ -123,22 +123,11 @@ char *argParseString(char *str) return str; } -GLOBAL_ASM( -glabel func00012efc -/* 12efc: 27bdffe8 */ addiu $sp,$sp,-24 -/* 12f00: 00802825 */ or $a1,$a0,$zero -/* 12f04: afbf0014 */ sw $ra,0x14($sp) -/* 12f08: 3c04800a */ lui $a0,%hi(var80099880) -/* 12f0c: 0c004c4c */ jal strcpy -/* 12f10: 24849880 */ addiu $a0,$a0,%lo(var80099880) -/* 12f14: 3c04800a */ lui $a0,%hi(var80099880) -/* 12f18: 0c004b98 */ jal argParseString -/* 12f1c: 24849880 */ addiu $a0,$a0,%lo(var80099880) -/* 12f20: 8fbf0014 */ lw $ra,0x14($sp) -/* 12f24: 27bd0018 */ addiu $sp,$sp,0x18 -/* 12f28: 03e00008 */ jr $ra -/* 12f2c: 00000000 */ nop -); +void argSetString(char *string) +{ + strcpy(g_ArgString, string); + argParseString(g_ArgString); +} const char var70053ff4[] = "-d"; const char var70053ff8[] = "-s"; @@ -156,14 +145,14 @@ glabel func00012f30 /* 12f4c: 0c00be82 */ jal func0002fa08 /* 12f50: 3631ff00 */ ori $s1,$s1,0xff00 /* 12f54: 10400004 */ beqz $v0,.L00012f68 -/* 12f58: 3c10800a */ lui $s0,%hi(var80099880) -/* 12f5c: 3c01800a */ lui $at,%hi(var80099880) +/* 12f58: 3c10800a */ lui $s0,%hi(g_ArgString) +/* 12f5c: 3c01800a */ lui $at,%hi(g_ArgString) /* 12f60: 1000000a */ b .L00012f8c -/* 12f64: ac209880 */ sw $zero,%lo(var80099880)($at) +/* 12f64: ac209880 */ sw $zero,%lo(g_ArgString)($at) .L00012f68: /* 12f68: 3c12800a */ lui $s2,%hi(var800998f8) /* 12f6c: 265298f8 */ addiu $s2,$s2,%lo(var800998f8) -/* 12f70: 26109880 */ addiu $s0,$s0,%lo(var80099880) +/* 12f70: 26109880 */ addiu $s0,$s0,%lo(g_ArgString) .L00012f74: /* 12f74: 02202025 */ or $a0,$s1,$zero /* 12f78: 0c013994 */ jal osPiReadIo @@ -172,9 +161,9 @@ glabel func00012f30 /* 12f84: 1612fffb */ bne $s0,$s2,.L00012f74 /* 12f88: 26310004 */ addiu $s1,$s1,0x4 .L00012f8c: -/* 12f8c: 3c04800a */ lui $a0,%hi(var80099880) +/* 12f8c: 3c04800a */ lui $a0,%hi(g_ArgString) /* 12f90: 0c004b98 */ jal argParseString -/* 12f94: 24849880 */ addiu $a0,$a0,%lo(var80099880) +/* 12f94: 24849880 */ addiu $a0,$a0,%lo(g_ArgString) /* 12f98: 3c057005 */ lui $a1,%hi(var70053ff4) /* 12f9c: 24a53ff4 */ addiu $a1,$a1,%lo(var70053ff4) /* 12fa0: 0c004c04 */ jal argFindByPrefix diff --git a/src/lib/main.c b/src/lib/main.c index 52643bb59..586053055 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -495,7 +495,7 @@ glabel mainInit /* d970: 8d8cd9b0 */ lw $t4,%lo(var8005d9b0)($t4) /* d974: 11800003 */ beqz $t4,.L0000d984 /* d978: 3c047005 */ lui $a0,%hi(var70053aa0) -/* d97c: 0c004bbf */ jal func00012efc +/* d97c: 0c004bbf */ jal argSetString /* d980: 24843aa0 */ addiu $a0,$a0,%lo(var70053aa0) .L0000d984: /* d984: 3c04800b */ lui $a0,%hi(_gvarsSegmentEnd) @@ -753,7 +753,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // func0f175f90(); // // if (var8005d9b0) { -// func00012efc(" -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"); +// argSetString(" -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"); // } // // uVar2 = osVirtualToPhysical(&_gvarsSegmentEnd) | 0x80000000; @@ -919,7 +919,7 @@ void mainLoop(void) } } - func00012efc(g_StageAllocations4Mb[index].string); + argSetString(g_StageAllocations4Mb[index].string); } else { // 8MB if (g_StageNum < STAGE_TITLE && getNumPlayers() >= 2) { @@ -950,7 +950,7 @@ void mainLoop(void) } } - func00012efc(g_StageAllocations8Mb[index].string); + argSetString(g_StageAllocations8Mb[index].string); } }