summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2018-01-21 17:12:02 -0500
committerscnorton <scnorton@biociphers.org>2018-01-21 17:12:02 -0500
commit8bff04787167a733caa74c0b22dcd332b391f54d (patch)
treebedf2ab185df6c345732f693a22e95e58d54cca4
parent91c6c244007944ffcd5da2e42b1a5221b0ce2074 (diff)
through sub_80063D8
-rw-r--r--asm/text.s123
-rw-r--r--include/code_800B540.h6
-rw-r--r--src/text.c72
3 files changed, 77 insertions, 124 deletions
diff --git a/asm/text.s b/asm/text.s
index f1235bb..d914098 100644
--- a/asm/text.s
+++ b/asm/text.s
@@ -5,129 +5,6 @@
.text
- thumb_func_start xxx_update_some_bg_tiles
-xxx_update_some_bg_tiles:
- push {r4,r5,lr}
- adds r1, r0, 0
- ldr r0, _08006360
- ldr r5, [r0]
- ldr r4, _08006364
- str r1, [r0]
- cmp r1, 0
- beq _08006354
- cmp r1, 0x2
- bne _0800636C
-_08006354:
- movs r0, 0x2
- bl sub_800CDA8
- ldr r2, _08006368
- b _08006374
- .align 2, 0
-_08006360: .4byte gUnknown_20274B0
-_08006364: .4byte 0x06004f40
-_08006368: .4byte gUnknown_80B87C4
-_0800636C:
- movs r0, 0x1
- bl sub_800CDA8
- ldr r2, _080063A4
-_08006374:
- ldr r1, _080063A8
- ldr r0, _080063AC
- str r0, [r1]
- ldm r2!, {r0}
- stm r4!, {r0}
- ldm r2!, {r0}
- stm r4!, {r0}
- ldm r2!, {r0}
- stm r4!, {r0}
- ldm r2!, {r0}
- stm r4!, {r0}
- ldm r2!, {r0}
- stm r4!, {r0}
- ldm r2!, {r0}
- stm r4!, {r0}
- ldm r2!, {r0}
- stm r4!, {r0}
- ldr r0, [r2]
- str r0, [r4]
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080063A4: .4byte gUnknown_80B87E4
-_080063A8: .4byte gUnknown_202B030
-_080063AC: .4byte 0x88888888
- thumb_func_end xxx_update_some_bg_tiles
-
- thumb_func_start sub_80063B0
-sub_80063B0:
- ldr r0, _080063B8
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080063B8: .4byte gUnknown_20274B0
- thumb_func_end sub_80063B0
-
- thumb_func_start sub_80063BC
-sub_80063BC:
- ldr r1, _080063C8
- ldrb r2, [r1]
- strb r0, [r1]
- adds r0, r2, 0
- bx lr
- .align 2, 0
-_080063C8: .4byte gUnknown_202B034
- thumb_func_end sub_80063BC
-
- thumb_func_start sub_80063CC
-sub_80063CC:
- ldr r1, _080063D4
- str r0, [r1]
- bx lr
- .align 2, 0
-_080063D4: .4byte gUnknown_20274AC
- thumb_func_end sub_80063CC
-
- thumb_func_start sub_80063D8
-sub_80063D8:
- push {lr}
- adds r1, r0, 0
- cmp r1, 0
- bne _080063F0
- ldr r0, _080063E8
- ldr r0, [r0]
- ldr r2, _080063EC
- b _08006410
- .align 2, 0
-_080063E8: .4byte gUnknown_20274B0
-_080063EC: .4byte 0x88888888
-_080063F0:
- movs r0, 0xF
- ands r0, r1
- lsls r2, r0, 4
- orrs r2, r0
- lsls r1, r0, 8
- orrs r2, r1
- lsls r1, r0, 12
- orrs r2, r1
- lsls r1, r0, 16
- orrs r2, r1
- lsls r1, r0, 20
- orrs r2, r1
- lsls r1, r0, 24
- orrs r2, r1
- lsls r0, 28
- orrs r2, r0
-_08006410:
- ldr r0, _08006418
- str r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08006418: .4byte gUnknown_202B030
- thumb_func_end sub_80063D8
-
thumb_func_start sub_800641C
sub_800641C:
push {lr}
diff --git a/include/code_800B540.h b/include/code_800B540.h
new file mode 100644
index 0000000..050998e
--- /dev/null
+++ b/include/code_800B540.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_code_800B540_H
+#define GUARD_code_800B540_H
+
+void sub_800CDA8(int a0);
+
+#endif //GUARD_code_800B540_H
diff --git a/src/text.c b/src/text.c
index 929d8b1..3d60416 100644
--- a/src/text.c
+++ b/src/text.c
@@ -6,6 +6,7 @@
#include "global.h"
#include "file_system.h"
#include "code_800558C.h"
+#include "code_800B540.h"
struct UnkTextStruct1 {
u8 fill00[4];
@@ -21,6 +22,7 @@ EWRAM_DATA u8 *gUnknown_2027490[2];
EWRAM_DATA u16 gUnknown_2027498;
EWRAM_DATA u8 gUnknown_20274A5;
EWRAM_DATA u32 gUnknown_20274AC;
+EWRAM_DATA vu32 gUnknown_20274B0;
EWRAM_DATA struct OpenedFile *gUnknown_202AFB4[2];
EWRAM_DATA u32 gUnknown_202B020;
EWRAM_DATA u32 gUnknown_202B024;
@@ -29,11 +31,13 @@ EWRAM_DATA u32 gUnknown_202B030;
EWRAM_DATA u8 gUnknown_202B034;
EWRAM_DATA u16 gUnknown_202B038[2][32][32];
-void xxx_update_some_bg_tiles(int a0);
+u32 xxx_update_some_bg_tiles(u32 a0);
extern const char gUnknown_80B87B4[];
extern const char gUnknown_80B87BC[];
extern const struct FileArchive gUnknown_8300500;
+extern const u32 gUnknown_80B87C4[8];
+extern const u32 gUnknown_80B87E4[8];
void sub_8006218(void)
{
@@ -73,3 +77,69 @@ void sub_8006218(void)
gUnknown_202B024 = 20;
xxx_update_some_bg_tiles(0);
}
+
+u32 xxx_update_some_bg_tiles(u32 a0)
+{
+ u32 r5 = gUnknown_20274B0;
+ u32 *r4 = (u32 *)(VRAM + 0x4f40);
+ const u32 *r2;
+ gUnknown_20274B0 = a0;
+ if (a0 == 0 || a0 == 2)
+ {
+ sub_800CDA8(2);
+ r2 = gUnknown_80B87C4;
+ }
+ else
+ {
+ sub_800CDA8(1);
+ r2 = gUnknown_80B87E4;
+ }
+ gUnknown_202B030 = 0x88888888;
+ *r4++ = *r2++;
+ *r4++ = *r2++;
+ *r4++ = *r2++;
+ *r4++ = *r2++;
+ *r4++ = *r2++;
+ *r4++ = *r2++;
+ *r4++ = *r2++;
+ *r4++ = *r2++;
+ return r5;
+}
+
+u32 sub_80063B0(void)
+{
+ return gUnknown_20274B0;
+}
+
+u8 sub_80063BC(u8 a0)
+{
+ u8 retval = gUnknown_202B034;
+ gUnknown_202B034 = a0;
+ return retval;
+}
+
+void sub_80063CC(u32 a0)
+{
+ gUnknown_20274AC = a0;
+}
+
+void sub_80063D8(int a0)
+{
+ u32 retval;
+ if (a0 == 0)
+ {
+ gUnknown_20274B0;
+ retval = 0x88888888;
+ }
+ else
+ {
+ retval = (a0 & 0xf) | ((a0 & 0xf) << 4);
+ retval |= ((a0 & 0xf) << 8);
+ retval |= ((a0 & 0xf) << 12);
+ retval |= ((a0 & 0xf) << 16);
+ retval |= ((a0 & 0xf) << 20);
+ retval |= ((a0 & 0xf) << 24);
+ retval |= ((a0 & 0xf) << 28);
+ }
+ gUnknown_202B030 = retval;
+}