summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf3
-rw-r--r--arm9/modules/21/asm/mod21_02254854_asm.s81
-rw-r--r--arm9/modules/21/include/mod21_02254854.h2
-rw-r--r--arm9/modules/21/src/mod21_02254854.c (renamed from arm9/modules/21/src/mod21_02254854_src.c)48
4 files changed, 48 insertions, 86 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index e0073d87..d77a4c21 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -663,8 +663,7 @@ Overlay MODULE_21
{
##Pokétch Clock##
After MODULE_20
- Object mod21_02254854_src.o
- Object mod21_02254854_asm.o
+ Object mod21_02254854.o
Object mod21_02254A6C.o
}
diff --git a/arm9/modules/21/asm/mod21_02254854_asm.s b/arm9/modules/21/asm/mod21_02254854_asm.s
deleted file mode 100644
index 344d0d64..00000000
--- a/arm9/modules/21/asm/mod21_02254854_asm.s
+++ /dev/null
@@ -1,81 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
- .balign 4, 0
-
- .extern MOD21_02254990
-
- thumb_func_start MOD21_022549E4
-MOD21_022549E4: ; 0x022549E4
- push {r4, lr}
- add r4, r0, #0
- ldrb r1, [r4, #2]
- cmp r1, #0
- beq _022549F8
- mov r1, #2
- bl MOD21_02254990
- mov r0, #0
- pop {r4, pc}
-_022549F8:
- ldrb r0, [r4, #6]
- cmp r0, #0
- beq _02254A0A
- mov r0, #0
- strb r0, [r4, #6]
- ldr r0, [r4, #0x24]
- mov r1, #2
- bl MOD21_02254B10
-_02254A0A:
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl MOD21_02254B34
- cmp r0, #0
- beq _02254A32
- ldr r0, [r4, #0x18]
- strb r0, [r4, #5]
- add r0, r4, #0
- add r0, #0x14
- bl GF_RTC_CopyTime
- ldrb r1, [r4, #5]
- ldr r0, [r4, #0x18]
- cmp r1, r0
- beq _02254A32
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl MOD21_02254B10
-_02254A32:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
- thumb_func_end MOD21_022549E4
-
- thumb_func_start MOD21_02254A38
-MOD21_02254A38: ; 0x02254A38
- push {r4, lr}
- add r4, r0, #0
- ldrb r0, [r4, #1]
- cmp r0, #0
- beq _02254A48
- cmp r0, #1
- beq _02254A58
- b _02254A66
-_02254A48:
- ldr r0, [r4, #0x24]
- mov r1, #3
- bl MOD21_02254B10
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- b _02254A66
-_02254A58:
- ldr r0, [r4, #0x24]
- bl MOD21_02254B40
- cmp r0, #0
- beq _02254A66
- mov r0, #1
- pop {r4, pc}
-_02254A66:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
- thumb_func_end MOD21_02254A38
diff --git a/arm9/modules/21/include/mod21_02254854.h b/arm9/modules/21/include/mod21_02254854.h
index e6b6c3cf..b501962e 100644
--- a/arm9/modules/21/include/mod21_02254854.h
+++ b/arm9/modules/21/include/mod21_02254854.h
@@ -23,5 +23,7 @@ void MOD21_0225496C(UnkStruct02254854 *param0);
void MOD21_02254974(u32 param0, u32 param1, u32 param2, UnkStruct02254854 * param3);
void MOD21_02254990(UnkStruct02254854 * param0, u8 param1);
BOOL MOD21_022549A4(UnkStruct02254854 * param0);
+BOOL MOD21_022549E4(UnkStruct02254854 * param0);
+BOOL MOD21_02254A38(UnkStruct02254854 * param0);
#endif //POKEDIAMOND_MOD21_02254854_H
diff --git a/arm9/modules/21/src/mod21_02254854_src.c b/arm9/modules/21/src/mod21_02254854.c
index db8769af..44c97b8e 100644
--- a/arm9/modules/21/src/mod21_02254854_src.c
+++ b/arm9/modules/21/src/mod21_02254854.c
@@ -10,15 +10,13 @@ extern BOOL MOD21_02254A6C(u32 *param0, u32 *param1);
extern BOOL MOD20_02254130(void *param0, BOOL param1, void *param2, UnkStruct02254854 *param3, u32 param4);
extern void MOD20_02252C14(u32 param0, BOOL param1);
-extern BOOL MOD21_022549E4(UnkStruct02254854 *);
-extern BOOL MOD21_02254A38(UnkStruct02254854 *);
-
extern void MOD21_02254B04(u32 param0);
extern void MOD20_02254198(BOOL param0);
extern void MOD20_022529A0(u32 param0);
extern void MOD21_02254B10(u32 param0, u32 param1);
extern BOOL MOD21_02254B34(u32 param0, u32 param1);
+extern BOOL MOD21_02254B40(u32 param0);
extern void MOD20_0225298C(u32 param0);
extern void Poketch_InitApp(void *func1, void *func2);
@@ -160,3 +158,47 @@ THUMB_FUNC BOOL MOD21_022549A4(UnkStruct02254854 * param0)
}
return FALSE;
}
+
+THUMB_FUNC BOOL MOD21_022549E4(UnkStruct02254854 * param0)
+{
+ if (param0->bytearray[2])
+ {
+ MOD21_02254990(param0, 2);
+ return FALSE;
+ }
+ if (param0->bytearray[6])
+ {
+ param0->bytearray[6] = 0;
+ MOD21_02254B10(param0->Unk24, 2);
+ }
+ if (MOD21_02254B34(param0->Unk24, 1))
+ {
+ param0->bytearray[5] = (u8)param0->Unk14[1];
+ GF_RTC_CopyTime(param0->Unk14);
+ if (param0->bytearray[5] != param0->Unk14[1])
+ {
+ MOD21_02254B10(param0->Unk24, 1);
+ }
+ }
+ return FALSE;
+}
+
+THUMB_FUNC BOOL MOD21_02254A38(UnkStruct02254854 * param0)
+{
+ switch (param0->bytearray[1])
+ {
+ case 0:
+ MOD21_02254B10(param0->Unk24, 3);
+ param0->bytearray[1]++;
+ break;
+ case 1:
+ if (MOD21_02254B40(param0->Unk24))
+ {
+ return TRUE;
+ }
+ break;
+ default:
+ break;
+ }
+ return FALSE;
+}