diff options
-rw-r--r-- | asm/contest_link_80C2020.s | 137 | ||||
-rw-r--r-- | src/battle/contest_link_80C2020.c | 48 |
2 files changed, 48 insertions, 137 deletions
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 84e185035..4d0f6281e 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -5,143 +5,6 @@ .text - thumb_func_start sub_80C2144 -sub_80C2144: @ 80C2144 - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0xC0 - lsls r3, 9 - ldr r0, _080C220C @ =gUnknown_08D1977C - mov r12, r0 - movs r5, 0 - ldr r1, _080C2210 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _080C2214 @ =0x85000400 - movs r7, 0x85 - lsls r7, 24 -_080C2162: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080C2162 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0xC0 - lsls r1, 19 - mov r0, r12 - bl LZDecompressVram - ldr r0, _080C2218 @ =gUnknown_08D1A490 - ldr r1, _080C221C @ =0x0600d000 - bl LZDecompressVram - ldr r0, _080C2220 @ =gUnknown_08D1A364 - ldr r1, _080C2224 @ =0x0600e000 - bl LZDecompressVram - ldr r0, _080C2228 @ =gUnknown_08D1A250 - ldr r1, _080C222C @ =0x0600f000 - bl LZDecompressVram - bl sub_80C37E4 - ldr r0, _080C2230 @ =gUnknown_08D1A618 - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadCompressedPalette - ldr r0, _080C2234 @ =gWindowTemplate_81E6FA0 - bl LoadFontDefaultPalette - movs r6, 0 -_080C21C0: - lsls r5, r6, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80C3990 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80C39E4 - movs r5, 0 - lsls r1, r6, 1 - adds r2, r6, 0x1 - mov r12, r2 - lsls r4, 24 - asrs r7, r4, 24 - adds r1, r6 - lsls r1, 6 - lsls r4, r0, 24 -_080C21EC: - ldr r6, _080C2238 @ =0x000060b2 - cmp r5, r7 - bge _080C21F4 - adds r6, 0x2 -_080C21F4: - asrs r2, r4, 24 - adds r0, r2, 0 - cmp r2, 0 - bge _080C21FE - negs r0, r2 -_080C21FE: - cmp r5, r0 - bge _080C2240 - ldr r3, _080C223C @ =0x000060a4 - cmp r2, 0 - bge _080C2242 - adds r3, 0x2 - b _080C2242 - .align 2, 0 -_080C220C: .4byte gUnknown_08D1977C -_080C2210: .4byte 0x040000d4 -_080C2214: .4byte 0x85000400 -_080C2218: .4byte gUnknown_08D1A490 -_080C221C: .4byte 0x0600d000 -_080C2220: .4byte gUnknown_08D1A364 -_080C2224: .4byte 0x0600e000 -_080C2228: .4byte gUnknown_08D1A250 -_080C222C: .4byte 0x0600f000 -_080C2230: .4byte gUnknown_08D1A618 -_080C2234: .4byte gWindowTemplate_81E6FA0 -_080C2238: .4byte 0x000060b2 -_080C223C: .4byte 0x000060a4 -_080C2240: - ldr r3, _080C2264 @ =0x000060a2 -_080C2242: - ldr r2, _080C2268 @ =0x0600c166 - adds r0, r1, r2 - strh r6, [r0] - adds r2, 0x40 - adds r0, r1, r2 - strh r3, [r0] - adds r1, 0x2 - adds r5, 0x1 - cmp r5, 0x9 - ble _080C21EC - mov r6, r12 - cmp r6, 0x3 - ble _080C21C0 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C2264: .4byte 0x000060a2 -_080C2268: .4byte 0x0600c166 - thumb_func_end sub_80C2144 - thumb_func_start sub_80C226C sub_80C226C: @ 80C226C push {r4-r7,lr} diff --git a/src/battle/contest_link_80C2020.c b/src/battle/contest_link_80C2020.c index 1656d2276..5e3cc3cce 100644 --- a/src/battle/contest_link_80C2020.c +++ b/src/battle/contest_link_80C2020.c @@ -1,10 +1,18 @@ #include "global.h" +#include "decompress.h" +#include "palette.h" +#include "graphics.h" #include "text.h" #include "menu.h" #include "battle.h" #include "contest.h" #include "link.h" +#define ABS(x) ((x) < 0 ? -(x) : (x)) + +void sub_80C37E4(void); +u8 sub_80C3990(u8 a0, u8 a5); +s8 sub_80C39E4(u8 a0, u8 a5); void sub_80C2020(void) { @@ -47,3 +55,43 @@ void sub_80C2020(void) gBattle_WIN1H = 0; gBattle_WIN1V = 0; } + +void sub_80C2144(void) +{ + int i; + int j; + s8 r7; + s8 r4; + u16 r6; + u16 r3; + + DmaFill32Large(3, 0, VRAM, VRAM_SIZE, 0x1000); + LZDecompressVram(gUnknown_08D1977C, BG_SCREEN_ADDR(0)); + LZDecompressVram(gUnknown_08D1A490, BG_SCREEN_ADDR(26)); + LZDecompressVram(gUnknown_08D1A364, BG_SCREEN_ADDR(28)); + LZDecompressVram(gUnknown_08D1A250, BG_SCREEN_ADDR(30)); + sub_80C37E4(); + LoadCompressedPalette(gUnknown_08D1A618, 0, 0x200); + LoadFontDefaultPalette(&gWindowTemplate_81E6FA0); + for (i = 0; i < 4; i++) + { + r7 = sub_80C3990(i, 1); + r4 = sub_80C39E4(i, 1); + for (j = 0; j < 10; j++) + { + r6 = 0x60b2; + if (j < r7) + r6 = 0x60b4; + if (j < ABS(r4)) + { + r3 = 0x60a4; + if (r4 < 0) + r3 = 0x60a6; + } + else + r3 = 0x60a2; + ((u16 *)BG_VRAM)[i * 0x60 + j + 0x60b3] = r6; + ((u16 *)BG_VRAM)[i * 0x60 + j + 0x60d3] = r3; + } + } +} |