diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-10-15 17:56:52 -0500 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-10-15 17:56:52 -0500 |
commit | 4d967dd694f106674982867263dfa5bbc16fe010 (patch) | |
tree | 71edcd1531076af68da21682eff73c353886e1b4 | |
parent | 6c9dd59b5691cd7d5a19c740e8d22779e6a101aa (diff) |
decomp some quick funcs
-rw-r--r-- | asm/code_80118A4.s | 137 | ||||
-rw-r--r-- | src/code_80118A4.c | 59 | ||||
-rw-r--r-- | src/code_80118A4_1.c | 54 |
3 files changed, 107 insertions, 143 deletions
diff --git a/asm/code_80118A4.s b/asm/code_80118A4.s index 309f837..a5f7e3e 100644 --- a/asm/code_80118A4.s +++ b/asm/code_80118A4.s @@ -5,93 +5,7 @@ .text - thumb_func_start sub_80119D4 -sub_80119D4: - push {r4,lr} - adds r2, r0, 0 - ldr r4, _080119FC - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _080119F6 - ldr r1, _08011A00 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x80 - lsls r1, 1 - bl sub_800C074 - movs r0, 0x4 - strh r0, [r4] -_080119F6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080119FC: .4byte gUnknown_202DE20 -_08011A00: .4byte gUnknown_80D4144 - thumb_func_end sub_80119D4 - - thumb_func_start sub_8011A04 -sub_8011A04: - push {lr} - ldr r1, _08011A24 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - bgt _08011A1E - movs r0, 0x3 - strh r0, [r1] - ldr r0, _08011A28 - movs r1, 0x80 - lsls r1, 1 - bl sub_800C074 -_08011A1E: - pop {r0} - bx r0 - .align 2, 0 -_08011A24: .4byte gUnknown_202DE22 -_08011A28: .4byte 0x00000131 - thumb_func_end sub_8011A04 - - thumb_func_start sub_8011A2C -sub_8011A2C: - ldr r1, _08011A34 - str r0, [r1] - bx lr - .align 2, 0 -_08011A34: .4byte gUnknown_202DE1C - thumb_func_end sub_8011A2C - - thumb_func_start NDS_DebugInit -NDS_DebugInit: - push {lr} - bl nullsub_26 - bl nullsub_27 - bl nullsub_29 - bl nullsub_30 - bl nullsub_31 - bl nullsub_32 - bl nullsub_28 - ldr r1, _08011A60 - movs r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08011A60: .4byte gUnknown_203B14C - thumb_func_end NDS_DebugInit - - thumb_func_start nullsub_25 -nullsub_25: - bx lr - thumb_func_end nullsub_25 - - thumb_func_start nullsub_26 -nullsub_26: - bx lr - thumb_func_end nullsub_26 - + @ Unused thumb_func_start PrintFuncFileLineOrNotEntry PrintFuncFileLineOrNotEntry: push {r4,lr} @@ -143,6 +57,7 @@ PrintFuncFileLine: _08011AC4: .4byte gUnknown_80D41C4 thumb_func_end PrintFuncFileLine + @ Unused thumb_func_start PrintMessageWithFuncFileLine PrintMessageWithFuncFileLine: push {r2,r3} @@ -172,52 +87,4 @@ PrintMessageWithFuncFileLine: _08011AFC: .4byte gUnknown_80D41EC thumb_func_end PrintMessageWithFuncFileLine - thumb_func_start nullsub_199 -nullsub_199: - bx lr - thumb_func_end nullsub_199 - - thumb_func_start nullsub_27 -nullsub_27: - bx lr - thumb_func_end nullsub_27 - - thumb_func_start sub_8011B08 -sub_8011B08: - ldr r1, _08011B10 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_08011B10: .4byte gUnknown_203B150 - thumb_func_end sub_8011B08 - - thumb_func_start sub_8011B14 -sub_8011B14: - ldr r1, _08011B1C - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08011B1C: .4byte gUnknown_203B150 - thumb_func_end sub_8011B14 - - thumb_func_start sub_8011B20 -sub_8011B20: - push {lr} - ldr r1, _08011B38 - movs r2, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _08011B2E - movs r2, 0x1 -_08011B2E: - strb r2, [r1] - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_08011B38: .4byte gUnknown_203B150 - thumb_func_end sub_8011B20 - .align 2,0 @ Don't pad with nop 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) +{ +} diff --git a/src/code_80118A4_1.c b/src/code_80118A4_1.c index 9d6bc5e..c2fa641 100644 --- a/src/code_80118A4_1.c +++ b/src/code_80118A4_1.c @@ -2,6 +2,60 @@ extern u8 gUnknown_203B150; +void nullsub_199(void) +{ +} + +void nullsub_27(void) +{ +} + +void sub_8011B08(void) +{ + gUnknown_203B150 = 1; +} + +void sub_8011B14(void) +{ + gUnknown_203B150 = 0; +} + +#ifndef NONMATCHING +NAKED +#endif +u8 sub_8011B20(void) +{ +#ifdef NONMATCHING + // TODO figure out why I mix up my mv/ldr for these kinds of comparisons + u8 temp; + if(gUnknown_203B150 == 0) + { + temp = 1; + } + else + { + temp = 0; + } + gUnknown_203B150 = temp; + return gUnknown_203B150; +#else + asm_unified("\tpush {lr}\n" + "\tldr r1, _08011B38\n" + "\tmovs r2, 0\n" + "\tldrb r0, [r1]\n" + "\tcmp r0, 0\n" + "\tbne _08011B2E\n" + "\tmovs r2, 0x1\n" +"_08011B2E:\n" + "\tstrb r2, [r1]\n" + "\tldrb r0, [r1]\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.align 2, 0\n" +"_08011B38: .4byte gUnknown_203B150"); +#endif +} + // unused u8 sub_8011B3C(void) { |