From c5dcbb78ce0a2fc423190aa743907164b72997a7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 23 Nov 2017 21:04:15 -0500 Subject: [PATCH 1/2] unk_81BAD84 --- asm/unk_81BAD84.s | 57 ----------------------------------------------- ld_script.txt | 2 +- src/unk_81BAD84.c | 20 +++++++++++++++++ 3 files changed, 21 insertions(+), 58 deletions(-) delete mode 100644 asm/unk_81BAD84.s create mode 100644 src/unk_81BAD84.c 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/ld_script.txt b/ld_script.txt index e9c810adc..76125e9e2 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -251,7 +251,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); diff --git a/src/unk_81BAD84.c b/src/unk_81BAD84.c new file mode 100644 index 000000000..43cb9a4b0 --- /dev/null +++ b/src/unk_81BAD84.c @@ -0,0 +1,20 @@ +#include "global.h" + +extern const struct { + const u8 *unk_0; + const u8 *unk_4; + const u8 *unk_8; +} gUnknown_08617128[]; + +void sub_81BAD84(u32 idx) +{ + REG_DISPCNT = 0x0000; + REG_BG0HOFS = 0x0000; + REG_BG0VOFS = 0x0000; + REG_BLDCNT = 0x0000; + LZ77UnCompVram(gUnknown_08617128[idx].unk_0, (void *)BG_CHAR_ADDR(0)); + LZ77UnCompVram(gUnknown_08617128[idx].unk_4, (void *)BG_SCREEN_ADDR(31)); + CpuCopy16(gUnknown_08617128[idx].unk_8, (void *)PLTT, 0x200); + REG_BG0CNT = 0x1f00; + REG_DISPCNT = DISPCNT_BG0_ON; +} From 772da493f9ea0dcd8838dd927f1b70ff63228c21 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 23 Nov 2017 21:15:57 -0500 Subject: [PATCH 2/2] data/unk_81BAD84 --- data/unk_81BAD84.s | 7 ------- include/graphics.h | 18 ++++++++++++++++++ ld_script.txt | 2 +- src/unk_81BAD84.c | 43 +++++++++++++++++++++++++++++++++++-------- 4 files changed, 54 insertions(+), 16 deletions(-) delete mode 100644 data/unk_81BAD84.s 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 76125e9e2..ee423ccf3 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -472,7 +472,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 index 43cb9a4b0..9ba98dd87 100644 --- a/src/unk_81BAD84.c +++ b/src/unk_81BAD84.c @@ -1,10 +1,37 @@ #include "global.h" +#include "graphics.h" -extern const struct { - const u8 *unk_0; - const u8 *unk_4; - const u8 *unk_8; -} gUnknown_08617128[]; +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) { @@ -12,9 +39,9 @@ void sub_81BAD84(u32 idx) REG_BG0HOFS = 0x0000; REG_BG0VOFS = 0x0000; REG_BLDCNT = 0x0000; - LZ77UnCompVram(gUnknown_08617128[idx].unk_0, (void *)BG_CHAR_ADDR(0)); - LZ77UnCompVram(gUnknown_08617128[idx].unk_4, (void *)BG_SCREEN_ADDR(31)); - CpuCopy16(gUnknown_08617128[idx].unk_8, (void *)PLTT, 0x200); + 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; }