From d2279294209edd9ec92e601ccb86388ff9283dbb Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 19 Sep 2020 23:28:48 -0500 Subject: more datadumping and some decomp work --- src/code_80118A4.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/code_80118A4.c (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c new file mode 100644 index 0000000..34569d0 --- /dev/null +++ b/src/code_80118A4.c @@ -0,0 +1,13 @@ +#include "global.h" + +extern void sub_8011924(void); +extern void sub_801199C(u16 r0); +extern void sub_800BFD0(u8 r0); +extern void sub_800C3F8(u16 r0, u8 r1); + +void sub_80118A4(void) +{ + sub_8011924(); + sub_801199C(0x3e6); + sub_801199C(0x3e5); +} -- cgit v1.2.3 From f3845bdeddd7fce3eab967922b664c540736c829 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Mon, 21 Sep 2020 00:28:50 -0500 Subject: more decomping of funcs --- src/code_80118A4.c | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index 34569d0..3881ba8 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -1,9 +1,15 @@ #include "global.h" -extern void sub_8011924(void); +void sub_8011924(void); + +extern void sub_800BDFC(u16 r0); +extern void sub_800BE8C(u16 r0, u16 r1); +extern void sub_800BF48(u16 r0); +extern void sub_800BF80(void); +extern void sub_800BFD0(u16 r0); +extern void sub_800C3F8(u16 r0, u16 r1); extern void sub_801199C(u16 r0); -extern void sub_800BFD0(u8 r0); -extern void sub_800C3F8(u16 r0, u8 r1); +extern void sub_800C068(u16 r0); void sub_80118A4(void) { @@ -11,3 +17,35 @@ void sub_80118A4(void) sub_801199C(0x3e6); sub_801199C(0x3e5); } + +void sub_80118C4(u16 r0) +{ + sub_800BFD0(r0); + sub_800C3F8(0x3e6, r0); + sub_800C3F8(0x3e5, r0); +} + +void sub_80118F0(u16 r0) +{ + sub_800BDFC(r0); +} + +void sub_8011900(u16 r0, u16 r1) +{ + sub_800BE8C(r0, r1); +} + +void sub_8011914(u16 r0) +{ + sub_800BF48(r0); +} + +void sub_8011924() +{ + sub_800BF80(); +} + +void sub_8011930(u16 r0) +{ + sub_800BFD0(r0); +} -- cgit v1.2.3 From 70c644dfdd82dd31038faf1e2ca37b833ee8c328 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Thu, 1 Oct 2020 01:40:05 -0500 Subject: actually add both files --- src/code_80118A4.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 98 insertions(+), 1 deletion(-) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index 3881ba8..2ed0e9e 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -9,7 +9,19 @@ extern void sub_800BF80(void); extern void sub_800BFD0(u16 r0); extern void sub_800C3F8(u16 r0, u16 r1); extern void sub_801199C(u16 r0); -extern void sub_800C068(u16 r0); +extern u16 sub_800C068(); +extern void sub_800C074(u16 r0, u16 r1); +extern void sub_800C298(u16 r0); +extern u8 sub_800C5D0(u16 r0); + +struct UnkStructType +{ + /* 0x0 */ s16 unk0; + +}; + +extern u16 gUnknown_80D4144[]; +extern struct UnkStructType gUnknown_202DE20; void sub_80118A4(void) { @@ -49,3 +61,88 @@ void sub_8011930(u16 r0) { sub_800BFD0(r0); } + +// TODO fix this nonmatching +#ifndef NONMATCHING +NAKED +#endif +u32 sub_8011940(u16 r0) +{ +#ifdef NONMATCHING + u32 temp; + temp = sub_800C068(); + + if(r0 == 0x3e7) + { + temp ^= r0; + // TODO this OR/NEG apparently is close + temp |= -temp; + return temp >> 31; + } + + if(temp != r0) + return 0; + else + return 1; +#else + asm_unified("\tpush {r4,lr}\n" + "\tlsls r0, 16\n" + "\tlsrs r4, r0, 16\n" + "\tbl sub_800C068\n" + "\tlsls r0, 16\n" + "\tlsrs r1, r0, 16\n" + "\tldr r0, _08011960\n" + "\tcmp r4, r0\n" + "\tbne _08011964\n" + "\teors r1, r4\n" + "\tnegs r0, r1\n" + "\torrs r0, r1\n" + "\tlsrs r0, 31\n" + "\tb _0801196C\n" + "\t.align 2,0\n" + "_08011960: .4byte 0x000003e7\n" + "_08011964:\n" + "\tmovs r0, 0\n" + "\tcmp r1, r4\n" + "\tbne _0801196C\n" + "\tmovs r0, 0x1\n" + "_0801196C:\n" + "\tpop {r4}\n" + "\tpop {r1}\n" + "\tbx r1"); +#endif +} + +void sub_8011974(u16 r0, u16 r1) +{ + sub_800C074(r0, r1); +} + +void sub_8011988(u16 r0) +{ + sub_800C074(r0, 0x80 << 1); +} + +void sub_801199C(u16 r0) +{ + sub_800C298(r0); +} + +void sub_80119AC(u16 r0, u16 r1) +{ + sub_800C3F8(r0, r1); +} + +u8 sub_80119C0(u16 r0) +{ + return sub_800C5D0(r0); +} + +// TODO pretty close except r4's where should be r2's +//void sub_80119D4(u32 r0) +//{ +// if(gUnknown_202DE20.unk0 > 0) +// return; +// sub_800C074(gUnknown_80D4144[r0], 0x80 << 1); +// gUnknown_80D4144[r0] = 0x4; +//} -- cgit v1.2.3 From 4d967dd694f106674982867263dfa5bbc16fe010 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Thu, 15 Oct 2020 17:56:52 -0500 Subject: decomp some quick funcs --- src/code_80118A4.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 8 deletions(-) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index 2ed0e9e..85782d7 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -1,6 +1,7 @@ #include "global.h" void sub_8011924(void); +void nullsub_26(void); extern void sub_800BDFC(u16 r0); extern void sub_800BE8C(u16 r0, u16 r1); @@ -14,6 +15,13 @@ extern void sub_800C074(u16 r0, u16 r1); extern void sub_800C298(u16 r0); extern u8 sub_800C5D0(u16 r0); +extern void nullsub_27(void); +extern void nullsub_29(void); +extern void nullsub_30(void); +extern void nullsub_31(void); +extern void nullsub_32(void); +extern void nullsub_28(void); + struct UnkStructType { /* 0x0 */ s16 unk0; @@ -22,6 +30,9 @@ struct UnkStructType extern u16 gUnknown_80D4144[]; extern struct UnkStructType gUnknown_202DE20; +extern struct UnkStructType gUnknown_202DE22; +extern u32 gUnknown_202DE1C; +extern u32 gUnknown_203B14C; void sub_80118A4(void) { @@ -138,11 +149,43 @@ u8 sub_80119C0(u16 r0) return sub_800C5D0(r0); } -// TODO pretty close except r4's where should be r2's -//void sub_80119D4(u32 r0) -//{ -// if(gUnknown_202DE20.unk0 > 0) -// return; -// sub_800C074(gUnknown_80D4144[r0], 0x80 << 1); -// gUnknown_80D4144[r0] = 0x4; -//} +void sub_80119D4(u32 r0) +{ + if(gUnknown_202DE20.unk0 > 0) + return; + sub_800C074(gUnknown_80D4144[r0], 0x80 << 1); + gUnknown_202DE20.unk0 = 4; +} + +void sub_8011A04(void) +{ + if(gUnknown_202DE22.unk0 > 0) + return; + gUnknown_202DE22.unk0 = 3; + sub_800C074(0x131, 0x80 << 1); +} + +void sub_8011A2C(u32 r0) +{ + gUnknown_202DE1C = r0; +} + +void NDS_DebugInit(void) +{ + nullsub_26(); + nullsub_27(); + nullsub_29(); + nullsub_30(); + nullsub_31(); + nullsub_32(); + nullsub_28(); + gUnknown_203B14C = 1; // Maybe a flag saying Debug is on? +} + +void nullsub_25(void) +{ +} + +void nullsub_26(void) +{ +} -- cgit v1.2.3 From 184d3819ab381c54821b157770d015c0dce8d82a Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Tue, 20 Oct 2020 18:05:01 -0500 Subject: more decomping of funcs --- src/code_80118A4.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index 85782d7..c809bdb 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -3,6 +3,7 @@ void sub_8011924(void); void nullsub_26(void); +extern u8 sub_80023E4(u8); extern void sub_800BDFC(u16 r0); extern void sub_800BE8C(u16 r0, u16 r1); extern void sub_800BF48(u16 r0); @@ -13,7 +14,9 @@ extern void sub_801199C(u16 r0); extern u16 sub_800C068(); extern void sub_800C074(u16 r0, u16 r1); extern void sub_800C298(u16 r0); +extern void sub_800C93C(); extern u8 sub_800C5D0(u16 r0); +extern void sub_800C9CC(); extern void nullsub_27(void); extern void nullsub_29(void); @@ -31,9 +34,98 @@ struct UnkStructType extern u16 gUnknown_80D4144[]; extern struct UnkStructType gUnknown_202DE20; extern struct UnkStructType gUnknown_202DE22; +extern struct UnkStructType gUnknown_202DE24; extern u32 gUnknown_202DE1C; extern u32 gUnknown_203B14C; +void sub_8011760(void) +{ + if(sub_80023E4(0xD) != 0) + { + sub_800BDFC(0x13); + return; + } + if(sub_80023E4(0xC) != 0) + { + sub_800BDFC(0x7); + } +} + +void sub_801178C(void) +{ + if(sub_80023E4(0xD) != 0) + { + sub_800BDFC(0x13); + return; + } + sub_800BDFC(0x7); +} + +void sub_80117AC(void) +{ + if(sub_80023E4(0xD) == 0) + { + sub_800BFD0(0x1E); + } +} + +void sub_80117C4(void) +{ + sub_800BFD0(0x1E); +} + +void sub_80117D0(void) +{ + sub_800C074(0x97 << 1, 0x80 << 1); +} + +void sub_80117E4(void) +{ + sub_800C074(0x12f, 0x80 << 1); +} + +void sub_80117F8(void) +{ + sub_800C074(0x12d, 0x80 << 1); +} + +void sub_801180C(void) +{ + gUnknown_202DE1C = 0; + gUnknown_202DE20.unk0 = 0; + gUnknown_202DE22.unk0 = 0; + gUnknown_202DE24.unk0 = 0; +} + +void sub_8011830(void) +{ + sub_800C93C(); + gUnknown_202DE20.unk0 = 0; + gUnknown_202DE22.unk0 = 0; + gUnknown_202DE24.unk0 = 0; +} + +void sub_8011854(void) +{ + sub_800C9CC(); +} + +void sub_8011860(void) +{ + if(gUnknown_202DE20.unk0 > 0) + { + gUnknown_202DE20.unk0--; + } + if(gUnknown_202DE22.unk0 > 0) + { + gUnknown_202DE22.unk0--; + } + if(gUnknown_202DE24.unk0 > 0) + { + gUnknown_202DE24.unk0--; + } +} + void sub_80118A4(void) { sub_8011924(); -- cgit v1.2.3 From 22f19f8d55bdc749775438b34cdaa209d07bd8c1 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sun, 1 Nov 2020 12:27:21 -0600 Subject: more work on funcs --- src/code_80118A4.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index c809bdb..aedcb2e 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -25,18 +25,31 @@ extern void nullsub_31(void); extern void nullsub_32(void); extern void nullsub_28(void); +extern int sprintf(char *, const char *, ...); + struct UnkStructType { /* 0x0 */ s16 unk0; }; + +struct unkFileStruct +{ + u32 unk0; + u32 unk4; + u32 unk8; +}; + + extern u16 gUnknown_80D4144[]; extern struct UnkStructType gUnknown_202DE20; extern struct UnkStructType gUnknown_202DE22; extern struct UnkStructType gUnknown_202DE24; extern u32 gUnknown_202DE1C; extern u32 gUnknown_203B14C; +extern const char gNotEntryText; +extern const char gUnknown_80D418C; void sub_8011760(void) { @@ -281,3 +294,52 @@ void nullsub_25(void) void nullsub_26(void) { } + +#ifndef NONMATCHING +NAKED +#endif +// Unused +void PrintFuncFileLineOrNotEntry(char * r0, struct unkFileStruct *r1) +{ +#ifdef NONMATCHING + u32 temp; + if(r1 != 0) + { + // TODO fix regswap here.. otherwise looks good + temp = r1->unk4; + sprintf(r0, &gUnknown_80D418C, r1->unk8, r1->unk0, temp); + } + else + { + sprintf(r0, &gNotEntryText); + } +#else + asm_unified("\tpush {r4,lr}\n" + "\tsub sp, 0x4\n" + "\tadds r4, r0, 0\n" + "\tadds r0, r1, 0\n" + "\tcmp r0, 0\n" + "\tbeq _08011A90\n" + "\tldr r1, _08011A8C\n" + "\tldr r2, [r0, 0x8]\n" + "\tldr r3, [r0]\n" + "\tldr r0, [r0, 0x4]\n" + "\tstr r0, [sp]\n" + "\tadds r0, r4, 0\n" + "\tbl sprintf\n" + "\tb _08011A98\n" + "\t.align 2, 0\n" +"_08011A8C: .4byte gUnknown_80D418C\n" +"_08011A90:\n" + "\tldr r1, _08011AA0\n" + "\tadds r0, r4, 0\n" + "\tbl sprintf\n" +"_08011A98:\n" + "\tadd sp, 0x4\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_08011AA0: .4byte gNotEntryText"); +#endif +} -- cgit v1.2.3 From 1b46057bb8a3e8e04484c14eebf26f2f7126b940 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Tue, 17 Nov 2020 22:57:16 -0600 Subject: doc a music function --- src/code_80118A4.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index aedcb2e..eca4558 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -5,7 +5,7 @@ void nullsub_26(void); extern u8 sub_80023E4(u8); extern void sub_800BDFC(u16 r0); -extern void sub_800BE8C(u16 r0, u16 r1); +extern void FadeInNewBGM(u16 r0, u16 r1); extern void sub_800BF48(u16 r0); extern void sub_800BF80(void); extern void sub_800BFD0(u16 r0); @@ -158,9 +158,9 @@ void sub_80118F0(u16 r0) sub_800BDFC(r0); } -void sub_8011900(u16 r0, u16 r1) +void sub_8011900(u16 songIndex, u16 speed) { - sub_800BE8C(r0, r1); + FadeInNewBGM(songIndex, speed); } void sub_8011914(u16 r0) -- cgit v1.2.3 From fc7f14ab66ff8e23cd758a9435f8ac48e99ae75f Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sun, 22 Nov 2020 17:37:48 -0600 Subject: random assortment of decomp work and fix of nonmatchings --- src/code_80118A4.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index eca4558..3229ea5 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -50,6 +50,7 @@ extern u32 gUnknown_202DE1C; extern u32 gUnknown_203B14C; extern const char gNotEntryText; extern const char gUnknown_80D418C; +extern char gUnknown_80D41C4; void sub_8011760(void) { @@ -343,3 +344,20 @@ void PrintFuncFileLineOrNotEntry(char * r0, struct unkFileStruct *r1) "_08011AA0: .4byte gNotEntryText"); #endif } + +void PrintFuncFileLine(char *r0, struct unkFileStruct *r1, u32 r2) +{ + volatile u32 temp; + volatile u32 temp2; + u32 r3; + u32 r4; + char *preload; + + preload = &gUnknown_80D41C4; + r3 = r1->unk8; + r4 = r1->unk0; + temp = r4; + temp2 = r1->unk4; + + sprintf(r0, preload, r2, r3); +} -- cgit v1.2.3 From a4fdac9553403f4ed7e56a598d5ecd5a6936edf5 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Wed, 2 Dec 2020 15:13:09 -0600 Subject: slight cleanup Found a few things when I attempted to decompile GameLoop. --- src/code_80118A4.c | 49 +++++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index 3229ea5..c8ba82b 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -27,13 +27,6 @@ extern void nullsub_28(void); extern int sprintf(char *, const char *, ...); -struct UnkStructType -{ - /* 0x0 */ s16 unk0; - -}; - - struct unkFileStruct { u32 unk0; @@ -43,9 +36,9 @@ struct unkFileStruct extern u16 gUnknown_80D4144[]; -extern struct UnkStructType gUnknown_202DE20; -extern struct UnkStructType gUnknown_202DE22; -extern struct UnkStructType gUnknown_202DE24; +extern s16 gUnknown_202DE20; +extern s16 gUnknown_202DE22; +extern s16 gUnknown_202DE24; extern u32 gUnknown_202DE1C; extern u32 gUnknown_203B14C; extern const char gNotEntryText; @@ -61,7 +54,7 @@ void sub_8011760(void) } if(sub_80023E4(0xC) != 0) { - sub_800BDFC(0x7); + sub_800BDFC(0x7); // Pokemon Square Theme } } @@ -72,7 +65,7 @@ void sub_801178C(void) sub_800BDFC(0x13); return; } - sub_800BDFC(0x7); + sub_800BDFC(0x7); // Pokemon Square Theme } void sub_80117AC(void) @@ -106,17 +99,17 @@ void sub_80117F8(void) void sub_801180C(void) { gUnknown_202DE1C = 0; - gUnknown_202DE20.unk0 = 0; - gUnknown_202DE22.unk0 = 0; - gUnknown_202DE24.unk0 = 0; + gUnknown_202DE20 = 0; + gUnknown_202DE22 = 0; + gUnknown_202DE24 = 0; } void sub_8011830(void) { sub_800C93C(); - gUnknown_202DE20.unk0 = 0; - gUnknown_202DE22.unk0 = 0; - gUnknown_202DE24.unk0 = 0; + gUnknown_202DE20 = 0; + gUnknown_202DE22 = 0; + gUnknown_202DE24 = 0; } void sub_8011854(void) @@ -126,17 +119,17 @@ void sub_8011854(void) void sub_8011860(void) { - if(gUnknown_202DE20.unk0 > 0) + if(gUnknown_202DE20 > 0) { - gUnknown_202DE20.unk0--; + gUnknown_202DE20--; } - if(gUnknown_202DE22.unk0 > 0) + if(gUnknown_202DE22 > 0) { - gUnknown_202DE22.unk0--; + gUnknown_202DE22--; } - if(gUnknown_202DE24.unk0 > 0) + if(gUnknown_202DE24 > 0) { - gUnknown_202DE24.unk0--; + gUnknown_202DE24--; } } @@ -257,17 +250,17 @@ u8 sub_80119C0(u16 r0) void sub_80119D4(u32 r0) { - if(gUnknown_202DE20.unk0 > 0) + if(gUnknown_202DE20 > 0) return; sub_800C074(gUnknown_80D4144[r0], 0x80 << 1); - gUnknown_202DE20.unk0 = 4; + gUnknown_202DE20 = 4; } void sub_8011A04(void) { - if(gUnknown_202DE22.unk0 > 0) + if(gUnknown_202DE22 > 0) return; - gUnknown_202DE22.unk0 = 3; + gUnknown_202DE22 = 3; sub_800C074(0x131, 0x80 << 1); } -- cgit v1.2.3 From 2c64b5692f3df0c46cfa1610a51cd7de7a0017fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Na=C5=9Bciszewski?= Date: Sun, 13 Dec 2020 19:50:37 +0100 Subject: Fix a lot of nonmatchings, some were plain wrong code --- src/code_80118A4.c | 123 +++++++++-------------------------------------------- 1 file changed, 19 insertions(+), 104 deletions(-) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index c8ba82b..c05a8db 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -27,11 +27,11 @@ extern void nullsub_28(void); extern int sprintf(char *, const char *, ...); -struct unkFileStruct +struct DebugLocation { - u32 unk0; - u32 unk4; - u32 unk8; + char *file; + u32 line; + char *func; }; @@ -41,9 +41,9 @@ extern s16 gUnknown_202DE22; extern s16 gUnknown_202DE24; extern u32 gUnknown_202DE1C; extern u32 gUnknown_203B14C; -extern const char gNotEntryText; -extern const char gUnknown_80D418C; -extern char gUnknown_80D41C4; +extern const char gNotEntryText[]; +extern const char gUnknown_80D418C[]; +extern const char gUnknown_80D41C4[]; void sub_8011760(void) { @@ -172,55 +172,18 @@ void sub_8011930(u16 r0) sub_800BFD0(r0); } -// TODO fix this nonmatching -#ifndef NONMATCHING -NAKED -#endif u32 sub_8011940(u16 r0) { -#ifdef NONMATCHING u32 temp; temp = sub_800C068(); - if(r0 == 0x3e7) + if(r0 == 999) { - temp ^= r0; - // TODO this OR/NEG apparently is close - temp |= -temp; - return temp >> 31; + temp ^= 999; + return (-temp | temp) >> 31; } - if(temp != r0) - return 0; - else - return 1; -#else - asm_unified("\tpush {r4,lr}\n" - "\tlsls r0, 16\n" - "\tlsrs r4, r0, 16\n" - "\tbl sub_800C068\n" - "\tlsls r0, 16\n" - "\tlsrs r1, r0, 16\n" - "\tldr r0, _08011960\n" - "\tcmp r4, r0\n" - "\tbne _08011964\n" - "\teors r1, r4\n" - "\tnegs r0, r1\n" - "\torrs r0, r1\n" - "\tlsrs r0, 31\n" - "\tb _0801196C\n" - "\t.align 2,0\n" - "_08011960: .4byte 0x000003e7\n" - "_08011964:\n" - "\tmovs r0, 0\n" - "\tcmp r1, r4\n" - "\tbne _0801196C\n" - "\tmovs r0, 0x1\n" - "_0801196C:\n" - "\tpop {r4}\n" - "\tpop {r1}\n" - "\tbx r1"); -#endif + return temp == r0; } void sub_8011974(u16 r0, u16 r1) @@ -289,68 +252,20 @@ void nullsub_26(void) { } -#ifndef NONMATCHING -NAKED -#endif // Unused -void PrintFuncFileLineOrNotEntry(char * r0, struct unkFileStruct *r1) +void PrintFuncFileLineOrNotEntry(char * r0, struct DebugLocation *r1) { -#ifdef NONMATCHING - u32 temp; if(r1 != 0) { - // TODO fix regswap here.. otherwise looks good - temp = r1->unk4; - sprintf(r0, &gUnknown_80D418C, r1->unk8, r1->unk0, temp); + sprintf(r0, gUnknown_80D418C, r1->func, r1->file, r1->line); } else { - sprintf(r0, &gNotEntryText); + sprintf(r0, gNotEntryText); } -#else - asm_unified("\tpush {r4,lr}\n" - "\tsub sp, 0x4\n" - "\tadds r4, r0, 0\n" - "\tadds r0, r1, 0\n" - "\tcmp r0, 0\n" - "\tbeq _08011A90\n" - "\tldr r1, _08011A8C\n" - "\tldr r2, [r0, 0x8]\n" - "\tldr r3, [r0]\n" - "\tldr r0, [r0, 0x4]\n" - "\tstr r0, [sp]\n" - "\tadds r0, r4, 0\n" - "\tbl sprintf\n" - "\tb _08011A98\n" - "\t.align 2, 0\n" -"_08011A8C: .4byte gUnknown_80D418C\n" -"_08011A90:\n" - "\tldr r1, _08011AA0\n" - "\tadds r0, r4, 0\n" - "\tbl sprintf\n" -"_08011A98:\n" - "\tadd sp, 0x4\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_08011AA0: .4byte gNotEntryText"); -#endif -} - -void PrintFuncFileLine(char *r0, struct unkFileStruct *r1, u32 r2) -{ - volatile u32 temp; - volatile u32 temp2; - u32 r3; - u32 r4; - char *preload; - - preload = &gUnknown_80D41C4; - r3 = r1->unk8; - r4 = r1->unk0; - temp = r4; - temp2 = r1->unk4; - - sprintf(r0, preload, r2, r3); +} + +void PrintFuncFileLine(char *buf, struct DebugLocation *loc, char* prefix) +{ + sprintf(buf, gUnknown_80D41C4, prefix, loc->func, loc->file, loc->line); } -- cgit v1.2.3 From b02a392e94e05d98a6c8fa2b20bdca99861c7df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Na=C5=9Bciszewski?= Date: Sun, 13 Dec 2020 20:30:30 +0100 Subject: Make sub_8011940 more comprehensible --- src/code_80118A4.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/code_80118A4.c') diff --git a/src/code_80118A4.c b/src/code_80118A4.c index c05a8db..73cb8b2 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -178,10 +178,7 @@ u32 sub_8011940(u16 r0) temp = sub_800C068(); if(r0 == 999) - { - temp ^= 999; - return (-temp | temp) >> 31; - } + return temp != 999; return temp == r0; } -- cgit v1.2.3