From 9d717596e138c8e24aca0be9b963c6dd22a3716e Mon Sep 17 00:00:00 2001 From: GliMusings Date: Wed, 23 Jun 2021 18:05:55 -0500 Subject: Starting unk_0201C6B4 --- arm9/src/unk_0201C6B4.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 arm9/src/unk_0201C6B4.c (limited to 'arm9/src') diff --git a/arm9/src/unk_0201C6B4.c b/arm9/src/unk_0201C6B4.c new file mode 100644 index 00000000..95a301d6 --- /dev/null +++ b/arm9/src/unk_0201C6B4.c @@ -0,0 +1,75 @@ +#include "global.h" +#include "proto.h" +#include "unk_0201C6B4.h" + +THUMB_FUNC u32 FUN_0201C6B4(s8 * r0) +{ + u32 r2 = 0; + while(r0[r2] != 0) + { + r2++; + } + return r2; +} + +THUMB_FUNC s8 * FUN_0201C6C8(s8 * r0, s8 * r1, s8 r2) +{ + for(u8 r3 = 0; r3 < 256; r3++) + { + r1[r3] = r0[r3]; + if(r2 == r0[r3] || r0[r3] != 0) + { + r1[r3] = 0; + if(r2 == 13 | r0[r3 + 1] == 10) + { + return r0 + r3 + 1; + } + return r0 + r3 + 2; + } + } + return NULL; +} + +THUMB_FUNC s32 FUN_0201C70C(s8 * r4) +{ + u32 r5 = 1; + s32 r6 = 0; + for(u32 r3 = FUN_0201C6B4(r4) - 1; r3 >= 0; r3--) + { + if(r4[r3] < 48 || r4[r3] > 57) + { + if(r3 == 0) + { + return 0; + } + if(r4[r3] == 45) + { + r6 = r6 * -1; + } + } + else + { + r6 += ((r4[r3] - 48) * r5); + } + r5 = r5 * 10; + } + return r6; +} + +THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4) +{ + for(u32 r2 = 0; r2 < 4; r2++) + { + r5[r2 << 2] = 0; + } + u32 r0 = FUN_0201C6B4(r4); + for(u32 r2 = 0; r2 < r0; r2++) + { + r5[r2] = r4[r2]; + } +} + +THUMB_FUNC BOOL FUN_0201C78C(u32 r0) +{ + return r0 > 289; +} \ No newline at end of file -- cgit v1.2.3 From 7897c7e2946a008098d9e1cc7209bcfd00e43d8a Mon Sep 17 00:00:00 2001 From: GliMusings Date: Fri, 25 Jun 2021 21:17:19 -0500 Subject: Not yet matching, 3 registers rotated in FUN_0201C70C --- arm9/src/unk_0201C6B4.c | 60 ++++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 28 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/unk_0201C6B4.c b/arm9/src/unk_0201C6B4.c index 95a301d6..673866f2 100644 --- a/arm9/src/unk_0201C6B4.c +++ b/arm9/src/unk_0201C6B4.c @@ -1,10 +1,9 @@ #include "global.h" -#include "proto.h" #include "unk_0201C6B4.h" -THUMB_FUNC u32 FUN_0201C6B4(s8 * r0) +THUMB_FUNC int FUN_0201C6B4(s8 * r0) { - u32 r2 = 0; + int r2 = 0; while(r0[r2] != 0) { r2++; @@ -14,56 +13,61 @@ THUMB_FUNC u32 FUN_0201C6B4(s8 * r0) THUMB_FUNC s8 * FUN_0201C6C8(s8 * r0, s8 * r1, s8 r2) { - for(u8 r3 = 0; r3 < 256; r3++) - { + for(int r3 = 0; r3 < 256; r3++) // _0201C6FE jumps to conditional + { // _0201C6D0 r1[r3] = r0[r3]; - if(r2 == r0[r3] || r0[r3] != 0) - { + if(r2 == r0[r3] || r0[r3] == 0) + { // _0201C6DE r1[r3] = 0; - if(r2 == 13 | r0[r3 + 1] == 10) - { - return r0 + r3 + 1; - } - return r0 + r3 + 2; + if(r2 == 13 && r0[r3 + 1] == 10) + { // _0201C6F6 + return (s8 *)((s32)(r0) + (r3 + 2)); + } // _0201C6DE + 44 + return (s8 *)((s32)(r0) + (r3 + 1)); } } return NULL; } -THUMB_FUNC s32 FUN_0201C70C(s8 * r4) +THUMB_FUNC int FUN_0201C70C(s8 * r4) { + s32 unk0 = FUN_0201C6B4(r4); u32 r5 = 1; s32 r6 = 0; - for(u32 r3 = FUN_0201C6B4(r4) - 1; r3 >= 0; r3--) + unk0--; + for(s32 r3 = unk0; r3 >= 0; r3--) { - if(r4[r3] < 48 || r4[r3] > 57) + if(r4[r3] >= 0x30 && r4[r3] <= 0x39) + { + r6 += ((r4[r3] - 0x30) * r5); + } + else { if(r3 == 0) { - return 0; + if(r4[r3] == 0x2d) + { + r6 *= -1; + } } - if(r4[r3] == 45) + else { - r6 = r6 * -1; + return -1; } } - else - { - r6 += ((r4[r3] - 48) * r5); - } - r5 = r5 * 10; + r5 *= 10; } return r6; } THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4) { - for(u32 r2 = 0; r2 < 4; r2++) + for(u8 r2 = 0; r2 < 4; r2++) { - r5[r2 << 2] = 0; + ((s32*)(r5))[r2] = 0; } - u32 r0 = FUN_0201C6B4(r4); - for(u32 r2 = 0; r2 < r0; r2++) + u8 r0 = (u8)(FUN_0201C6B4(r4)); + for(u8 r2 = 0; r2 < r0; r2++) { r5[r2] = r4[r2]; } @@ -71,5 +75,5 @@ THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4) THUMB_FUNC BOOL FUN_0201C78C(u32 r0) { - return r0 > 289; + return r0 < 289; } \ No newline at end of file -- cgit v1.2.3 From f97bb6e31678d2455999873e14c5a60530f74adb Mon Sep 17 00:00:00 2001 From: GliMusings Date: Fri, 25 Jun 2021 23:40:07 -0500 Subject: OK --- arm9/src/unk_0201C6B4.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/unk_0201C6B4.c b/arm9/src/unk_0201C6B4.c index 673866f2..45001877 100644 --- a/arm9/src/unk_0201C6B4.c +++ b/arm9/src/unk_0201C6B4.c @@ -1,9 +1,9 @@ #include "global.h" #include "unk_0201C6B4.h" -THUMB_FUNC int FUN_0201C6B4(s8 * r0) +THUMB_FUNC s32 FUN_0201C6B4(s8 * r0) { - int r2 = 0; + s32 r2 = 0; while(r0[r2] != 0) { r2++; @@ -13,29 +13,29 @@ THUMB_FUNC int FUN_0201C6B4(s8 * r0) THUMB_FUNC s8 * FUN_0201C6C8(s8 * r0, s8 * r1, s8 r2) { - for(int r3 = 0; r3 < 256; r3++) // _0201C6FE jumps to conditional - { // _0201C6D0 + for(int r3 = 0; r3 < 256; r3++) + { r1[r3] = r0[r3]; if(r2 == r0[r3] || r0[r3] == 0) - { // _0201C6DE + { r1[r3] = 0; if(r2 == 13 && r0[r3 + 1] == 10) - { // _0201C6F6 + { return (s8 *)((s32)(r0) + (r3 + 2)); - } // _0201C6DE + 44 + } return (s8 *)((s32)(r0) + (r3 + 1)); } } return NULL; } -THUMB_FUNC int FUN_0201C70C(s8 * r4) +THUMB_FUNC s32 FUN_0201C70C(s8 * r4) { s32 unk0 = FUN_0201C6B4(r4); - u32 r5 = 1; + s32 r3; + s32 r5 = 1; s32 r6 = 0; - unk0--; - for(s32 r3 = unk0; r3 >= 0; r3--) + for(r3 = unk0 - 1; r3 >= 0; r3--) { if(r4[r3] >= 0x30 && r4[r3] <= 0x39) { -- cgit v1.2.3 From 8d466f9e243e6c5616d298f20aed3011905174e5 Mon Sep 17 00:00:00 2001 From: GliMusings Date: Fri, 25 Jun 2021 23:56:40 -0500 Subject: make pretty --- arm9/src/unk_0201C6B4.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/unk_0201C6B4.c b/arm9/src/unk_0201C6B4.c index 45001877..d251639d 100644 --- a/arm9/src/unk_0201C6B4.c +++ b/arm9/src/unk_0201C6B4.c @@ -13,17 +13,17 @@ THUMB_FUNC s32 FUN_0201C6B4(s8 * r0) THUMB_FUNC s8 * FUN_0201C6C8(s8 * r0, s8 * r1, s8 r2) { - for(int r3 = 0; r3 < 256; r3++) + for(int r3 = 0; r3 < 0x100; r3++) { r1[r3] = r0[r3]; if(r2 == r0[r3] || r0[r3] == 0) { r1[r3] = 0; - if(r2 == 13 && r0[r3 + 1] == 10) + if(r2 == 0xd && r0[r3 + 1] == 0xa) { - return (s8 *)((s32)(r0) + (r3 + 2)); + return &r0[r3 + 2]; } - return (s8 *)((s32)(r0) + (r3 + 1)); + return &r0[r3 + 1]; } } return NULL; @@ -39,7 +39,7 @@ THUMB_FUNC s32 FUN_0201C70C(s8 * r4) { if(r4[r3] >= 0x30 && r4[r3] <= 0x39) { - r6 += ((r4[r3] - 0x30) * r5); + r6 += (r4[r3] - 0x30) * r5; } else { @@ -55,7 +55,7 @@ THUMB_FUNC s32 FUN_0201C70C(s8 * r4) return -1; } } - r5 *= 10; + r5 *= 0xa; } return r6; } @@ -64,7 +64,8 @@ THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4) { for(u8 r2 = 0; r2 < 4; r2++) { - ((s32*)(r5))[r2] = 0; + s32 * unk5 = (s32 *)r5; + unk5[r2] = 0; } u8 r0 = (u8)(FUN_0201C6B4(r4)); for(u8 r2 = 0; r2 < r0; r2++) @@ -75,5 +76,5 @@ THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4) THUMB_FUNC BOOL FUN_0201C78C(u32 r0) { - return r0 < 289; + return r0 < 0x121; } \ No newline at end of file -- cgit v1.2.3 From a1b1d3b47fb5b2fbdedd164bcdf5844fab6f9d3a Mon Sep 17 00:00:00 2001 From: GliMusings Date: Sat, 26 Jun 2021 00:05:23 -0500 Subject: Forget newlines --- arm9/src/unk_0201C6B4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arm9/src') diff --git a/arm9/src/unk_0201C6B4.c b/arm9/src/unk_0201C6B4.c index d251639d..151a9cd6 100644 --- a/arm9/src/unk_0201C6B4.c +++ b/arm9/src/unk_0201C6B4.c @@ -77,4 +77,4 @@ THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4) THUMB_FUNC BOOL FUN_0201C78C(u32 r0) { return r0 < 0x121; -} \ No newline at end of file +} -- cgit v1.2.3