diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-07 13:34:00 -0400 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-04-08 17:33:35 -0500 |
commit | 2b631cbb527434618f8facea260c0b3510d8a817 (patch) | |
tree | ca31be9d9615e51c996961c5d232523aa6555be9 | |
parent | e401945520328117f67bad844a342bb87bec4a2c (diff) |
nonmatching sub_80C3158
-rw-r--r-- | asm/contest_link_80C2020.s | 299 | ||||
-rw-r--r-- | src/battle/contest_link_80C2020.c | 490 |
2 files changed, 397 insertions, 392 deletions
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index d9e10324b..eaa61e7eb 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -5,305 +5,6 @@ .text - thumb_func_start sub_80C3158 -sub_80C3158: @ 80C3158 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - ldr r3, _080C32C0 @ =gSprites - adds r2, r3 - mov r1, sp - ldrh r0, [r2, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r1] - mov r4, sp - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x2] - movs r0, 0x30 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x4] - movs r0, 0x32 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r4, 0x6] - ldr r1, _080C32C4 @ =gWindowTemplate_81E7278 - mov r8, r1 - ldr r7, _080C32C8 @ =0x06010000 - ldr r2, _080C32CC @ =0x040000d4 - ldr r6, _080C32D0 @ =0x85000100 - mov r1, sp - movs r5, 0 - add r3, sp, 0x8 - movs r4, 0x3 -_080C31CE: - ldrh r0, [r1] - lsls r0, 5 - adds r0, r7 - str r5, [sp, 0x8] - str r3, [r2] - str r0, [r2, 0x4] - str r6, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080C31CE - mov r0, r8 - mov r1, r9 - bl Text_GetStringWidthFromWindowTemplate - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _080C32D4 @ =gDisplayedStringBattle - ldr r1, _080C32D8 @ =gUnknown_083D17E2 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - mvns r0, r5 - adds r1, r0, 0x1 - movs r0, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080C3218 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x11 - strb r0, [r2, 0x1] - lsrs r0, r1, 1 - strb r0, [r2, 0x2] - adds r2, 0x3 -_080C3218: - adds r6, r5, 0x7 - movs r1, 0x8 - negs r1, r1 - adds r0, r1, 0 - ands r6, r0 - lsls r6, 24 - lsrs r5, r6, 24 - adds r0, r2, 0 - mov r1, r9 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - strb r5, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080C32DC @ =gSharedMem + 0x18068 - mov r10, r0 - ldr r1, _080C32D4 @ =gDisplayedStringBattle - bl sub_80034D4 - mov r0, sp - ldrh r4, [r0] - lsls r4, 5 - ldr r1, _080C32C8 @ =0x06010000 - adds r7, r4, r1 - ldr r0, _080C32E0 @ =gUnknown_083D1624 - mov r9, r0 - ldr r1, _080C32E4 @ =REG_BG0CNT - mov r8, r1 - adds r1, r7, 0 - mov r2, r8 - bl CpuSet - mov r5, r9 - adds r5, 0x80 - ldr r0, _080C32E8 @ =0x06010100 - adds r1, r4, r0 - adds r0, r5, 0 - mov r2, r8 - bl CpuSet - ldr r0, _080C32EC @ =0x06010200 - adds r1, r4, r0 - adds r0, r5, 0 - mov r2, r8 - bl CpuSet - mov r0, r9 - adds r0, 0x40 - ldr r1, _080C32F0 @ =0x06010300 - adds r4, r1 - adds r1, r4, 0 - mov r2, r8 - bl CpuSet - lsrs r5, r6, 27 - movs r4, 0 - cmp r4, r5 - bgt _080C3382 - mov r6, sp - mov r0, r10 - adds r0, 0x20 - str r0, [sp, 0xC] - mov r1, r10 - str r1, [sp, 0x10] - ldr r0, _080C32F4 @ =0x0600fd20 - str r0, [sp, 0x14] - ldr r1, _080C32F8 @ =0x0600fe20 - str r1, [sp, 0x18] - ldr r0, _080C32FC @ =0x0600ff20 - mov r10, r0 - ldr r1, _080C3300 @ =0x06010020 - mov r9, r1 -_080C32B2: - cmp r4, 0x6 - bgt _080C3304 - ldrh r0, [r6] - lsls r0, 5 - mov r1, r9 - b _080C3322 - .align 2, 0 -_080C32C0: .4byte gSprites -_080C32C4: .4byte gWindowTemplate_81E7278 -_080C32C8: .4byte 0x06010000 -_080C32CC: .4byte 0x040000d4 -_080C32D0: .4byte 0x85000100 -_080C32D4: .4byte gDisplayedStringBattle -_080C32D8: .4byte gUnknown_083D17E2 -_080C32DC: .4byte gSharedMem + 0x18068 -_080C32E0: .4byte gUnknown_083D1624 -_080C32E4: .4byte REG_BG0CNT -_080C32E8: .4byte 0x06010100 -_080C32EC: .4byte 0x06010200 -_080C32F0: .4byte 0x06010300 -_080C32F4: .4byte 0x0600fd20 -_080C32F8: .4byte 0x0600fe20 -_080C32FC: .4byte 0x0600ff20 -_080C3300: .4byte 0x06010020 -_080C3304: - cmp r4, 0xE - bgt _080C3310 - ldrh r0, [r6, 0x2] - lsls r0, 5 - mov r1, r10 - b _080C3322 -_080C3310: - cmp r4, 0x16 - bgt _080C331C - ldrh r0, [r6, 0x4] - lsls r0, 5 - ldr r1, [sp, 0x18] - b _080C3322 -_080C331C: - ldrh r0, [r6, 0x6] - lsls r0, 5 - ldr r1, [sp, 0x14] -_080C3322: - adds r7, r0, r1 - cmp r4, r5 - beq _080C3382 - ldr r0, _080C33D0 @ =gUnknown_083D16E4 - adds r1, r7, 0 - mov r2, r8 - bl CpuSet - movs r0, 0xC0 - lsls r0, 2 - adds r1, r7, r0 - ldr r0, _080C33D0 @ =gUnknown_083D16E4 - adds r0, 0x20 - mov r2, r8 - bl CpuSet - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - ldr r0, [sp, 0x10] - mov r2, r8 - bl CpuSet - movs r0, 0x80 - lsls r0, 2 - adds r1, r7, r0 - ldr r0, [sp, 0xC] - mov r2, r8 - bl CpuSet - ldr r1, [sp, 0xC] - adds r1, 0x40 - str r1, [sp, 0xC] - ldr r0, [sp, 0x10] - adds r0, 0x40 - str r0, [sp, 0x10] - ldr r1, [sp, 0x14] - adds r1, 0x20 - str r1, [sp, 0x14] - ldr r0, [sp, 0x18] - adds r0, 0x20 - str r0, [sp, 0x18] - movs r1, 0x20 - add r10, r1 - add r9, r1 - adds r4, 0x1 - cmp r4, r5 - ble _080C32B2 -_080C3382: - ldr r4, _080C33D4 @ =gUnknown_083D1644 - ldr r5, _080C33D8 @ =REG_BG0CNT - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl CpuSet - adds r6, r4, 0 - adds r6, 0x80 - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - adds r0, r6, 0 - adds r2, r5, 0 - bl CpuSet - movs r0, 0x80 - lsls r0, 2 - adds r1, r7, r0 - adds r0, r6, 0 - adds r2, r5, 0 - bl CpuSet - adds r4, 0x40 - movs r0, 0xC0 - lsls r0, 2 - adds r1, r7, r0 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C33D0: .4byte gUnknown_083D16E4 -_080C33D4: .4byte gUnknown_083D1644 -_080C33D8: .4byte REG_BG0CNT - thumb_func_end sub_80C3158 - thumb_func_start sub_80C33DC sub_80C33DC: @ 80C33DC push {r4-r6,lr} diff --git a/src/battle/contest_link_80C2020.c b/src/battle/contest_link_80C2020.c index 142e603f1..76612d14e 100644 --- a/src/battle/contest_link_80C2020.c +++ b/src/battle/contest_link_80C2020.c @@ -818,96 +818,400 @@ void sub_80C310C(void) } } -// void sub_80C3158(const u8 *string, u8 spriteId) -// { -// int i, j; -// u8 width; -// u8 * displayedStringBattle; -// void * dest; -// u8 * d1; -// u8 * d2; -// void *d3; -// void *d4; -// void *d5; -// void *d6; -// int w; -// u16 sp00[4]; -// struct Sprite *sprite = &gSprites[spriteId]; -// sp00[0] = gSprites[spriteId].oam.tileNum; -// sp00[1] = gSprites[sprite->data[0]].oam.tileNum; -// sp00[2] = gSprites[sprite->data[1]].oam.tileNum; -// sp00[3] = gSprites[sprite->data[2]].oam.tileNum; - -// for (i = 0; i < 4; i++) -// { -// DmaClear32(3, (void *)VRAM + 0x10000 + 32 * sp00[i], 0x400); -// } - -// width = Text_GetStringWidthFromWindowTemplate(&gWindowTemplate_81E7278, string); -// displayedStringBattle = gDisplayedStringBattle; -// displayedStringBattle = StringCopy(displayedStringBattle, gUnknown_083D17E2); -// if ((~width + 1) & 7) -// { -// displayedStringBattle[0] = EXT_CTRL_CODE_BEGIN; -// displayedStringBattle[1] = 0x11; -// displayedStringBattle[2] = ((~width + 1) & 7) / 2; -// displayedStringBattle += 3; -// } - -// width += -8 & (width + 7); -// displayedStringBattle = StringCopy(displayedStringBattle, string); - -// displayedStringBattle[0] = EXT_CTRL_CODE_BEGIN; -// displayedStringBattle[1] = 0x13; -// displayedStringBattle[2] = width; -// displayedStringBattle[3] = EOS; - -// sub_80034D4(eContestLink80C2020Struct2018068, gDisplayedStringBattle); - -// CpuSet(&gUnknown_083D1624[0x0], (void *)0x6010000 + 32 * sp00[0], 0x4000008); -// CpuSet(&gUnknown_083D1624[0x40], (void *)0x6010000 + 32 * sp00[0] + 0x100, 0x4000008); -// CpuSet(&gUnknown_083D1624[0x40], (void *)0x6010000 + 32 * sp00[0] + 0x200, 0x4000008); -// CpuSet(&gUnknown_083D1624[0x20], (void *)0x6010000 + 32 * sp00[0] + 0x300, 0x4000008); - -// w = width / 8; -// j = 0; -// if (j <= w) -// { -// d2 = eContestLink80C2020Struct2018068 + 0x20; -// d1 = eContestLink80C2020Struct2018068; -// d3 = (void *)VRAM + 0x0FD20; -// d4 = (void *)VRAM + 0x0FE20; -// d5 = (void *)VRAM + 0x0FF20; -// d6 = (void *)VRAM + 0x10020; -// while (j <= w) -// { -// if (j < 7) -// dest = 32 * sp00[0] + d6; -// else if (j < 15) -// dest = 32 * sp00[1] + d5; -// else if (j < 23) -// dest = 32 * sp00[2] + d4; -// else -// dest = 32 * sp00[3] + d3; - -// if (j == w) -// break; - -// CpuSet(gUnknown_083D16E4, dest, 0x4000008); -// CpuSet(gUnknown_083D16E4 + 0x10, dest + 0x300, 0x4000008); -// CpuSet(j * 0x40 + d2, dest + 0x100, 0x4000008); -// CpuSet(j * 0x40 + d1, dest + 0x200, 0x4000008); - -// d3 += 0x20; -// d4 += 0x20; -// d5 += 0x20; -// d6 += 0x20; -// j++; -// } -// } - -// CpuSet(gUnknown_083D1644, dest, 0x4000008); -// CpuSet(gUnknown_083D1644 + 0x40, dest + 0x100, 0x4000008); -// CpuSet(gUnknown_083D1644 + 0x40, dest + 0x200, 0x4000008); -// CpuSet(gUnknown_083D1644 + 0x20, dest + 0x300, 0x4000008); -// } +#ifdef NONMATCHING +void sub_80C3158(const u8 *string, u8 spriteId) +{ + int i, j; + u8 width; + u8 * displayedStringBattle; + void * dest; + u8 * d1; + u8 * d2; + void *d3; + void *d4; + void *d5; + void *d6; + int w; + u16 sp00[4]; + struct Sprite *sprite = &gSprites[spriteId]; + sp00[0] = gSprites[spriteId].oam.tileNum; + sp00[1] = gSprites[sprite->data[0]].oam.tileNum; + sp00[2] = gSprites[sprite->data[1]].oam.tileNum; + sp00[3] = gSprites[sprite->data[2]].oam.tileNum; + + for (i = 0; i < 4; i++) + { + DmaClear32(3, (void *)VRAM + 0x10000 + 32 * sp00[i], 0x400); + } + + width = Text_GetStringWidthFromWindowTemplate(&gWindowTemplate_81E7278, string); + displayedStringBattle = gDisplayedStringBattle; + displayedStringBattle = StringCopy(displayedStringBattle, gUnknown_083D17E2); + if ((~width + 1) & 7) + { + displayedStringBattle[0] = EXT_CTRL_CODE_BEGIN; + displayedStringBattle[1] = 0x11; + displayedStringBattle[2] = ((~width + 1) & 7) / 2; + displayedStringBattle += 3; + } + + width += -8 & (width + 7); + displayedStringBattle = StringCopy(displayedStringBattle, string); + + displayedStringBattle[0] = EXT_CTRL_CODE_BEGIN; + displayedStringBattle[1] = 0x13; + displayedStringBattle[2] = width; + displayedStringBattle[3] = EOS; + + sub_80034D4(eContestLink80C2020Struct2018068, gDisplayedStringBattle); + + CpuCopy32(&gUnknown_083D1624[0x0], (void *)0x6010000 + 32 * sp00[0], 32); + CpuCopy32(&gUnknown_083D1624[0x40], (void *)0x6010000 + 32 * sp00[0] + 0x100, 32); + CpuCopy32(&gUnknown_083D1624[0x40], (void *)0x6010000 + 32 * sp00[0] + 0x200, 32); + CpuCopy32(&gUnknown_083D1624[0x20], (void *)0x6010000 + 32 * sp00[0] + 0x300, 32); + + w = width / 8; + j = 0; + if (j <= w) + { + d2 = eContestLink80C2020Struct2018068 + 0x20; + d1 = eContestLink80C2020Struct2018068; + d3 = (void *)VRAM + 0x0FD20; + d4 = (void *)VRAM + 0x0FE20; + d5 = (void *)VRAM + 0x0FF20; + d6 = (void *)VRAM + 0x10020; + while (j <= w) + { + if (j < 7) + dest = 32 * sp00[0] + d6; + else if (j < 15) + dest = 32 * sp00[1] + d5; + else if (j < 23) + dest = 32 * sp00[2] + d4; + else + dest = 32 * sp00[3] + d3; + + if (j == w) + break; + + CpuCopy32(gUnknown_083D16E4, dest, 32); + CpuCopy32(gUnknown_083D16E4 + 0x10, dest + 0x300, 32); + CpuCopy32(j * 0x40 + d2, dest + 0x100, 32); + CpuCopy32(j * 0x40 + d1, dest + 0x200, 32); + + d3 += 0x20; + d4 += 0x20; + d5 += 0x20; + d6 += 0x20; + j++; + } + } + + CpuCopy32(gUnknown_083D1644, dest, 32); + CpuCopy32(gUnknown_083D1644 + 0x40, dest + 0x100, 32); + CpuCopy32(gUnknown_083D1644 + 0x40, dest + 0x200, 32); + CpuCopy32(gUnknown_083D1644 + 0x20, dest + 0x300, 32); +} +#else +asm(".include \"constants/gba_constants.inc\""); +asm(".include \"include/macros.inc\""); +NAKED +void sub_80C3158(const u8 * string, u8 spriteId) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0x1C\n" + "\tmov r9, r0\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tlsls r2, r1, 4\n" + "\tadds r2, r1\n" + "\tlsls r2, 2\n" + "\tldr r3, _080C32C0 @ =gSprites\n" + "\tadds r2, r3\n" + "\tmov r1, sp\n" + "\tldrh r0, [r2, 0x4]\n" + "\tlsls r0, 22\n" + "\tlsrs r0, 22\n" + "\tstrh r0, [r1]\n" + "\tmov r4, sp\n" + "\tmovs r0, 0x2E\n" + "\tldrsh r1, [r2, r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r3\n" + "\tldrh r0, [r0, 0x4]\n" + "\tlsls r0, 22\n" + "\tlsrs r0, 22\n" + "\tstrh r0, [r4, 0x2]\n" + "\tmovs r0, 0x30\n" + "\tldrsh r1, [r2, r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r3\n" + "\tldrh r0, [r0, 0x4]\n" + "\tlsls r0, 22\n" + "\tlsrs r0, 22\n" + "\tstrh r0, [r4, 0x4]\n" + "\tmovs r0, 0x32\n" + "\tldrsh r1, [r2, r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r3\n" + "\tldrh r0, [r0, 0x4]\n" + "\tlsls r0, 22\n" + "\tlsrs r0, 22\n" + "\tstrh r0, [r4, 0x6]\n" + "\tldr r1, _080C32C4 @ =gWindowTemplate_81E7278\n" + "\tmov r8, r1\n" + "\tldr r7, _080C32C8 @ =0x06010000\n" + "\tldr r2, _080C32CC @ =0x040000d4\n" + "\tldr r6, _080C32D0 @ =0x85000100\n" + "\tmov r1, sp\n" + "\tmovs r5, 0\n" + "\tadd r3, sp, 0x8\n" + "\tmovs r4, 0x3\n" + "_080C31CE:\n" + "\tldrh r0, [r1]\n" + "\tlsls r0, 5\n" + "\tadds r0, r7\n" + "\tstr r5, [sp, 0x8]\n" + "\tstr r3, [r2]\n" + "\tstr r0, [r2, 0x4]\n" + "\tstr r6, [r2, 0x8]\n" + "\tldr r0, [r2, 0x8]\n" + "\tadds r1, 0x2\n" + "\tsubs r4, 0x1\n" + "\tcmp r4, 0\n" + "\tbge _080C31CE\n" + "\tmov r0, r8\n" + "\tmov r1, r9\n" + "\tbl Text_GetStringWidthFromWindowTemplate\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "\tldr r2, _080C32D4 @ =gDisplayedStringBattle\n" + "\tldr r1, _080C32D8 @ =gUnknown_083D17E2\n" + "\tadds r0, r2, 0\n" + "\tbl StringCopy\n" + "\tadds r2, r0, 0\n" + "\tmvns r0, r5\n" + "\tadds r1, r0, 0x1\n" + "\tmovs r0, 0x7\n" + "\tands r1, r0\n" + "\tcmp r1, 0\n" + "\tbeq _080C3218\n" + "\tmovs r0, 0xFC\n" + "\tstrb r0, [r2]\n" + "\tmovs r0, 0x11\n" + "\tstrb r0, [r2, 0x1]\n" + "\tlsrs r0, r1, 1\n" + "\tstrb r0, [r2, 0x2]\n" + "\tadds r2, 0x3\n" + "_080C3218:\n" + "\tadds r6, r5, 0x7\n" + "\tmovs r1, 0x8\n" + "\tnegs r1, r1\n" + "\tadds r0, r1, 0\n" + "\tands r6, r0\n" + "\tlsls r6, 24\n" + "\tlsrs r5, r6, 24\n" + "\tadds r0, r2, 0\n" + "\tmov r1, r9\n" + "\tbl StringCopy\n" + "\tadds r2, r0, 0\n" + "\tmovs r0, 0xFC\n" + "\tstrb r0, [r2]\n" + "\tmovs r0, 0x13\n" + "\tstrb r0, [r2, 0x1]\n" + "\tstrb r5, [r2, 0x2]\n" + "\tmovs r0, 0xFF\n" + "\tstrb r0, [r2, 0x3]\n" + "\tldr r0, _080C32DC @ =gSharedMem + 0x18068\n" + "\tmov r10, r0\n" + "\tldr r1, _080C32D4 @ =gDisplayedStringBattle\n" + "\tbl sub_80034D4\n" + "\tmov r0, sp\n" + "\tldrh r4, [r0]\n" + "\tlsls r4, 5\n" + "\tldr r1, _080C32C8 @ =0x06010000\n" + "\tadds r7, r4, r1\n" + "\tldr r0, _080C32E0 @ =gUnknown_083D1624\n" + "\tmov r9, r0\n" + "\tldr r1, _080C32E4 @ =REG_BG0CNT\n" + "\tmov r8, r1\n" + "\tadds r1, r7, 0\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tmov r5, r9\n" + "\tadds r5, 0x80\n" + "\tldr r0, _080C32E8 @ =0x06010100\n" + "\tadds r1, r4, r0\n" + "\tadds r0, r5, 0\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tldr r0, _080C32EC @ =0x06010200\n" + "\tadds r1, r4, r0\n" + "\tadds r0, r5, 0\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tmov r0, r9\n" + "\tadds r0, 0x40\n" + "\tldr r1, _080C32F0 @ =0x06010300\n" + "\tadds r4, r1\n" + "\tadds r1, r4, 0\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tlsrs r5, r6, 27\n" + "\tmovs r4, 0\n" + "\tcmp r4, r5\n" + "\tbgt _080C3382\n" + "\tmov r6, sp\n" + "\tmov r0, r10\n" + "\tadds r0, 0x20\n" + "\tstr r0, [sp, 0xC]\n" + "\tmov r1, r10\n" + "\tstr r1, [sp, 0x10]\n" + "\tldr r0, _080C32F4 @ =0x0600fd20\n" + "\tstr r0, [sp, 0x14]\n" + "\tldr r1, _080C32F8 @ =0x0600fe20\n" + "\tstr r1, [sp, 0x18]\n" + "\tldr r0, _080C32FC @ =0x0600ff20\n" + "\tmov r10, r0\n" + "\tldr r1, _080C3300 @ =0x06010020\n" + "\tmov r9, r1\n" + "_080C32B2:\n" + "\tcmp r4, 0x6\n" + "\tbgt _080C3304\n" + "\tldrh r0, [r6]\n" + "\tlsls r0, 5\n" + "\tmov r1, r9\n" + "\tb _080C3322\n" + "\t.align 2, 0\n" + "_080C32C0: .4byte gSprites\n" + "_080C32C4: .4byte gWindowTemplate_81E7278\n" + "_080C32C8: .4byte 0x06010000\n" + "_080C32CC: .4byte 0x040000d4\n" + "_080C32D0: .4byte 0x85000100\n" + "_080C32D4: .4byte gDisplayedStringBattle\n" + "_080C32D8: .4byte gUnknown_083D17E2\n" + "_080C32DC: .4byte gSharedMem + 0x18068\n" + "_080C32E0: .4byte gUnknown_083D1624\n" + "_080C32E4: .4byte REG_BG0CNT\n" + "_080C32E8: .4byte 0x06010100\n" + "_080C32EC: .4byte 0x06010200\n" + "_080C32F0: .4byte 0x06010300\n" + "_080C32F4: .4byte 0x0600fd20\n" + "_080C32F8: .4byte 0x0600fe20\n" + "_080C32FC: .4byte 0x0600ff20\n" + "_080C3300: .4byte 0x06010020\n" + "_080C3304:\n" + "\tcmp r4, 0xE\n" + "\tbgt _080C3310\n" + "\tldrh r0, [r6, 0x2]\n" + "\tlsls r0, 5\n" + "\tmov r1, r10\n" + "\tb _080C3322\n" + "_080C3310:\n" + "\tcmp r4, 0x16\n" + "\tbgt _080C331C\n" + "\tldrh r0, [r6, 0x4]\n" + "\tlsls r0, 5\n" + "\tldr r1, [sp, 0x18]\n" + "\tb _080C3322\n" + "_080C331C:\n" + "\tldrh r0, [r6, 0x6]\n" + "\tlsls r0, 5\n" + "\tldr r1, [sp, 0x14]\n" + "_080C3322:\n" + "\tadds r7, r0, r1\n" + "\tcmp r4, r5\n" + "\tbeq _080C3382\n" + "\tldr r0, _080C33D0 @ =gUnknown_083D16E4\n" + "\tadds r1, r7, 0\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tmovs r0, 0xC0\n" + "\tlsls r0, 2\n" + "\tadds r1, r7, r0\n" + "\tldr r0, _080C33D0 @ =gUnknown_083D16E4\n" + "\tadds r0, 0x20\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 1\n" + "\tadds r1, r7, r0\n" + "\tldr r0, [sp, 0x10]\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 2\n" + "\tadds r1, r7, r0\n" + "\tldr r0, [sp, 0xC]\n" + "\tmov r2, r8\n" + "\tbl CpuSet\n" + "\tldr r1, [sp, 0xC]\n" + "\tadds r1, 0x40\n" + "\tstr r1, [sp, 0xC]\n" + "\tldr r0, [sp, 0x10]\n" + "\tadds r0, 0x40\n" + "\tstr r0, [sp, 0x10]\n" + "\tldr r1, [sp, 0x14]\n" + "\tadds r1, 0x20\n" + "\tstr r1, [sp, 0x14]\n" + "\tldr r0, [sp, 0x18]\n" + "\tadds r0, 0x20\n" + "\tstr r0, [sp, 0x18]\n" + "\tmovs r1, 0x20\n" + "\tadd r10, r1\n" + "\tadd r9, r1\n" + "\tadds r4, 0x1\n" + "\tcmp r4, r5\n" + "\tble _080C32B2\n" + "_080C3382:\n" + "\tldr r4, _080C33D4 @ =gUnknown_083D1644\n" + "\tldr r5, _080C33D8 @ =REG_BG0CNT\n" + "\tadds r0, r4, 0\n" + "\tadds r1, r7, 0\n" + "\tadds r2, r5, 0\n" + "\tbl CpuSet\n" + "\tadds r6, r4, 0\n" + "\tadds r6, 0x80\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 1\n" + "\tadds r1, r7, r0\n" + "\tadds r0, r6, 0\n" + "\tadds r2, r5, 0\n" + "\tbl CpuSet\n" + "\tmovs r0, 0x80\n" + "\tlsls r0, 2\n" + "\tadds r1, r7, r0\n" + "\tadds r0, r6, 0\n" + "\tadds r2, r5, 0\n" + "\tbl CpuSet\n" + "\tadds r4, 0x40\n" + "\tmovs r0, 0xC0\n" + "\tlsls r0, 2\n" + "\tadds r1, r7, r0\n" + "\tadds r0, r4, 0\n" + "\tadds r2, r5, 0\n" + "\tbl CpuSet\n" + "\tadd sp, 0x1C\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_080C33D0: .4byte gUnknown_083D16E4\n" + "_080C33D4: .4byte gUnknown_083D1644\n" + "_080C33D8: .4byte REG_BG0CNT"); +} +#endif //NONMATCHING |