summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiegoisawesome <Diegoisawesome@users.noreply.github.com>2017-11-28 10:11:49 -0600
committerGitHub <noreply@github.com>2017-11-28 10:11:49 -0600
commit54da96309186b98263b4434911e1c5b8d4b4e3ec (patch)
treee3782330dfc77e0a9431cd0c5ecca1ff1f7fb54d
parentde00b4aeecc8b81cb18e0d3930699caad3fa2336 (diff)
parentb9d08ed83b13c875610bd80f17e7275252785654 (diff)
Merge pull request #122 from PikalaxALT/unk_81BAD84
Unk 81 bad84
-rw-r--r--asm/unk_81BAD84.s57
-rw-r--r--data/unk_81BAD84.s7
-rw-r--r--include/graphics.h18
-rw-r--r--ld_script.txt4
-rw-r--r--src/unk_81BAD84.c47
5 files changed, 67 insertions, 66 deletions
diff --git a/asm/unk_81BAD84.s b/asm/unk_81BAD84.s
deleted file mode 100644
index 2a95feed4..000000000
--- a/asm/unk_81BAD84.s
+++ /dev/null
@@ -1,57 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81BAD84
-sub_81BAD84: @ 81BAD84
- push {r4-r6,lr}
- movs r6, 0x80
- lsls r6, 19
- movs r2, 0
- strh r2, [r6]
- ldr r1, =0x04000010
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- adds r1, 0x3E
- strh r2, [r1]
- ldr r5, =gUnknown_08617128
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- adds r0, r5, 0x4
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, =0x0600f800
- bl LZ77UnCompVram
- adds r5, 0x8
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0xA0
- lsls r1, 19
- movs r4, 0x80
- lsls r4, 1
- adds r2, r4, 0
- bl CpuSet
- ldr r1, =0x04000008
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- strh r4, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BAD84
-
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/unk_81BAD84.s b/data/unk_81BAD84.s
deleted file mode 100644
index de88365ac..000000000
--- a/data/unk_81BAD84.s
+++ /dev/null
@@ -1,7 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_08617128:: @ 8617128
- .incbin "baserom.gba", 0x617128, 0x48
diff --git a/include/graphics.h b/include/graphics.h
index c50fdef3f..4c5a0952b 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -91,5 +91,23 @@ extern const u8 gUnknown_08DB9F08[];
extern const u8 gUnknown_08DB9FFC[];
extern const u8 gUnknown_08DBA020[];
extern const u8 gUnknown_08DBA12C[];
+extern const u8 gUnknown_08DD87C0[];
+extern const u8 gUnknown_08DD8EE0[];
+extern const u16 gUnknown_08DD8780[];
+extern const u8 gUnknown_08DD90E0[];
+extern const u8 gUnknown_08DD9718[];
+extern const u16 gUnknown_08DD9080[];
+extern const u8 gUnknown_08DD98B4[];
+extern const u8 gUnknown_08DD9E58[];
+extern const u16 gUnknown_08DD9874[];
+extern const u8 gUnknown_08DDA02C[];
+extern const u8 gUnknown_08DDA63C[];
+extern const u16 gUnknown_08DD9FEC[];
+extern const u8 gUnknown_08DDA840[];
+extern const u8 gUnknown_08DDAE40[];
+extern const u16 gUnknown_08DDA800[];
+extern const u8 gUnknown_08DDB020[];
+extern const u8 gUnknown_08DDB2C4[];
+extern const u16 gUnknown_08DDAFE0[];
#endif //GUARD_GRAPHICS_H
diff --git a/ld_script.txt b/ld_script.txt
index d6dd9341b..cf7b38ec1 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -248,7 +248,7 @@ SECTIONS {
asm/battle_tent.o(.text);
src/unk_text_util_2.o(.text);
src/multiboot.o(.text);
- asm/unk_81BAD84.o(.text);
+ src/unk_81BAD84.o(.text);
src/battle_controller_player_partner.o(.text);
asm/fldeff_groundshake.o(.text);
asm/fossil_specials.o(.text);
@@ -469,7 +469,7 @@ SECTIONS {
data/party_menu.o(.rodata);
data/battle_tent.o(.rodata);
src/unk_text_util_2.o(.rodata);
- data/unk_81BAD84.o(.rodata);
+ src/unk_81BAD84.o(.rodata);
src/battle_controller_player_partner.o(.rodata);
data/fossil_special_fldeff_groundshake.o(.rodata);
src/berry_fix_program.o(.rodata);
diff --git a/src/unk_81BAD84.c b/src/unk_81BAD84.c
new file mode 100644
index 000000000..9ba98dd87
--- /dev/null
+++ b/src/unk_81BAD84.c
@@ -0,0 +1,47 @@
+#include "global.h"
+#include "graphics.h"
+
+const struct {
+ const u8 *gfx;
+ const u8 *tileMap;
+ const u16 *pltt;
+} gUnknown_08617128[] = {
+ {
+ gUnknown_08DD87C0,
+ gUnknown_08DD8EE0,
+ gUnknown_08DD8780
+ }, {
+ gUnknown_08DD90E0,
+ gUnknown_08DD9718,
+ gUnknown_08DD9080
+ }, {
+ gUnknown_08DD98B4,
+ gUnknown_08DD9E58,
+ gUnknown_08DD9874
+ }, {
+ gUnknown_08DDA02C,
+ gUnknown_08DDA63C,
+ gUnknown_08DD9FEC
+ }, {
+ gUnknown_08DDA840,
+ gUnknown_08DDAE40,
+ gUnknown_08DDA800
+ }, {
+ gUnknown_08DDB020,
+ gUnknown_08DDB2C4,
+ gUnknown_08DDAFE0
+ }
+};
+
+void sub_81BAD84(u32 idx)
+{
+ REG_DISPCNT = 0x0000;
+ REG_BG0HOFS = 0x0000;
+ REG_BG0VOFS = 0x0000;
+ REG_BLDCNT = 0x0000;
+ LZ77UnCompVram(gUnknown_08617128[idx].gfx, (void *)BG_CHAR_ADDR(0));
+ LZ77UnCompVram(gUnknown_08617128[idx].tileMap, (void *)BG_SCREEN_ADDR(31));
+ CpuCopy16(gUnknown_08617128[idx].pltt, (void *)PLTT, 0x200);
+ REG_BG0CNT = 0x1f00;
+ REG_DISPCNT = DISPCNT_BG0_ON;
+}