summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira Akashi <rubenru09@aol.com>2021-05-23 11:06:21 +0100
committerGitHub <noreply@github.com>2021-05-23 11:06:21 +0100
commit652faf4b05e3aebebf7a258bfb98aef0be01dba2 (patch)
treec7b0bfe32a272d3d901c003a897ee5bb9fbc164f
parenta7794a82a376150ef63562465a71fc161d67e7fa (diff)
parent452a77b6be0a8ecaab453eed4a9031b7b19b3815 (diff)
Merge pull request #383 from remicalixte/unk_0200BA78
decompile unk_0200BA78.s
-rw-r--r--arm9/asm/unk_0200BA78.s86
-rw-r--r--arm9/src/unk_0200BA78.c36
-rw-r--r--include/unk_0200BA78.h19
3 files changed, 55 insertions, 86 deletions
diff --git a/arm9/asm/unk_0200BA78.s b/arm9/asm/unk_0200BA78.s
deleted file mode 100644
index fccd5c4c..00000000
--- a/arm9/asm/unk_0200BA78.s
+++ /dev/null
@@ -1,86 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_0200BA78
-FUN_0200BA78: ; 0x0200BA78
- push {r3-r6, lr}
- sub sp, #0xc
- add r4, r2, #0x0
- ldr r2, [sp, #0x2c]
- add r6, r3, #0x0
- str r2, [sp, #0x0]
- ldr r2, [sp, #0x24]
- ldr r3, [sp, #0x28]
- add r5, r0, #0x0
- bl FUN_0200B9A8
- ldr r0, [sp, #0x24]
- ldr r3, [sp, #0x20]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x28]
- add r1, r4, #0x0
- add r0, #0x10
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x2c]
- add r2, r6, #0x0
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- bl FUN_0200B9EC
- add sp, #0xc
- pop {r3-r6, pc}
-
- thumb_func_start FUN_0200BAAC
-FUN_0200BAAC: ; 0x0200BAAC
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r4, r2, #0x0
- ldr r2, [r7, #0x28]
- ldr r6, [sp, #0x18]
- lsl r0, r2, #0x4
- orr r0, r2
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x0]
- add r0, r7, #0x0
- add r2, r3, #0x0
- add r0, #0x8
- add r3, r4, #0x0
- bl ConvertUIntToDecimalString
- ldrh r1, [r7, #0x8]
- ldr r0, _0200BB10 ; =0x0000FFFF
- cmp r1, r0
- beq _0200BB0C
- add r4, r7, #0x0
- mov r5, #0x0
-_0200BAD8:
- ldrh r2, [r4, #0x8]
- cmp r2, #0xa2
- blo _0200BAF6
- cmp r2, #0xab
- bhi _0200BAF6
- ldr r0, [r7, #0x4]
- sub r2, #0xa2
- ldr r1, [r0, #0x14]
- lsl r0, r2, #0x5
- add r0, r1, r0
- add r1, r6, r5
- mov r2, #0x20
- bl MIi_CpuCopy32
- b _0200BB00
-_0200BAF6:
- ldr r1, [sp, #0x0]
- add r0, r6, r5
- mov r2, #0x20
- bl MI_CpuFill8
-_0200BB00:
- add r4, r4, #0x2
- ldrh r1, [r4, #0x8]
- ldr r0, _0200BB10 ; =0x0000FFFF
- add r5, #0x20
- cmp r1, r0
- bne _0200BAD8
-_0200BB0C:
- pop {r3-r7, pc}
- nop
-_0200BB10: .word 0x0000FFFF
diff --git a/arm9/src/unk_0200BA78.c b/arm9/src/unk_0200BA78.c
new file mode 100644
index 00000000..d98b5374
--- /dev/null
+++ b/arm9/src/unk_0200BA78.c
@@ -0,0 +1,36 @@
+#include "global.h"
+#include "unk_0200BA78.h"
+#include "script_buffers.h"
+
+THUMB_FUNC void FUN_0200BA78(struct UnkStruct_0200B870 *param0,
+ int param1,
+ u32 value,
+ u32 n,
+ enum PrintingMode mode,
+ struct Window *window,
+ int x,
+ int y)
+{
+ FUN_0200B9A8(param0, param1, window, x, y);
+ FUN_0200B9EC(param0, value, n, mode, window, x + 16, y);
+}
+
+THUMB_FUNC void FUN_0200BAAC(
+ struct UnkStruct_0200B870 *param0, u32 value, u32 n, enum PrintingMode mode, void *dest)
+{
+ u8 st0 = (u8)((param0->unk_28 << 4) | param0->unk_28);
+ ConvertUIntToDecimalString(param0->data, value, mode, n);
+
+ for (int i = 0; param0->data[i] != 0xffff; i++)
+ {
+ if (param0->data[i] >= 0xa2 && param0->data[i] <= 0xab)
+ {
+ MIi_CpuCopy32(
+ &param0->unk_4->unk_14[(param0->data[i] - 0xa2) << 5], dest + i * 0x20, 0x20);
+ }
+ else
+ {
+ MI_CpuFill8(dest + i * 0x20, st0, 0x20);
+ }
+ }
+}
diff --git a/include/unk_0200BA78.h b/include/unk_0200BA78.h
new file mode 100644
index 00000000..2efe233e
--- /dev/null
+++ b/include/unk_0200BA78.h
@@ -0,0 +1,19 @@
+#ifndef POKEDIAMOND_UNK_0200BA78_H
+#define POKEDIAMOND_UNK_0200BA78_H
+
+#include "global.h"
+#include "script_buffers.h"
+
+void FUN_0200BA78(struct UnkStruct_0200B870 *param0,
+ int param1,
+ u32 value,
+ u32 n,
+ enum PrintingMode mode,
+ struct Window *window,
+ int x,
+ int y);
+
+void FUN_0200BAAC(
+ struct UnkStruct_0200B870 *param0, u32 value, u32 n, enum PrintingMode mode, void *dest);
+
+#endif // POKEDIAMOND_UNK_0200BA78_H