summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-05-20 15:37:01 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-05-20 15:37:01 -0400
commit116007e1ff5a1016fa1a598bb97d0b3d48a10fe5 (patch)
treed03ee0b0ca1523d9c1214f51bff5d7b3a04b50a9
parentbc75a7d97920cf51627e0803285d096d22c949d9 (diff)
nonmatching sub_80C0408
-rw-r--r--asm/tv.s45
-rw-r--r--src/tv.c59
2 files changed, 59 insertions, 45 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 444eb9110..974abdcee 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -1610,52 +1610,7 @@ _080BE470: .4byte gMapHeader
_080BE474: .4byte gSaveBlock2
thumb_func_end sub_80BE3BC
-
.section .text_80BE8EC
- thumb_func_start sub_80C0408
-sub_80C0408: @ 80C0408
- push {r4-r6,lr}
- ldr r0, _080C044C @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C0444
- movs r2, 0
- ldr r6, _080C0450 @ =gSaveBlock1
- ldr r4, _080C0454 @ =0x00002739
- movs r3, 0
- ldr r5, _080C0458 @ =0x00002738
-_080C0422:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080C0436
- cmp r0, 0x29
- bne _080C043A
-_080C0436:
- adds r0, r1, r4
- strb r3, [r0]
-_080C043A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x17
- bls _080C0422
-_080C0444:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C044C: .4byte 0x00000804
-_080C0450: .4byte gSaveBlock1
-_080C0454: .4byte 0x00002739
-_080C0458: .4byte 0x00002738
- thumb_func_end sub_80C0408
thumb_func_start sub_80C045C
sub_80C045C: @ 80C045C
diff --git a/src/tv.c b/src/tv.c
index d62d56cc8..f7cc4b4c3 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1942,6 +1942,65 @@ void sub_80C03C8(u16 species, u8 showidx) {
}
}
+#ifdef NONMATCHING
+void sub_80C0408(void) {
+ u16 i;
+ if (FlagGet(SYS_GAME_CLEAR) != 1) {
+ for (i=0; i<24; i++) {
+ if (gSaveBlock1.tvShows.shows[i].common.var00 == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE || gSaveBlock1.tvShows.shows[i].common.var00 == TVSHOW_MASS_OUTBREAK) {
+ gSaveBlock1.tvShows.shows[i].common.var01 = 0;
+ }
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_80C0408(void) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ ldr r0, _080C044C @ =0x00000804\n\
+ bl FlagGet\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ beq _080C0444\n\
+ movs r2, 0\n\
+ ldr r6, _080C0450 @ =gSaveBlock1\n\
+ ldr r4, _080C0454 @ =0x00002739\n\
+ movs r3, 0\n\
+ ldr r5, _080C0458 @ =0x00002738\n\
+_080C0422:\n\
+ lsls r0, r2, 3\n\
+ adds r0, r2\n\
+ lsls r0, 2\n\
+ adds r1, r0, r6\n\
+ adds r0, r1, r5\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x7\n\
+ beq _080C0436\n\
+ cmp r0, 0x29\n\
+ bne _080C043A\n\
+_080C0436:\n\
+ adds r0, r1, r4\n\
+ strb r3, [r0]\n\
+_080C043A:\n\
+ adds r0, r2, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r2, r0, 16\n\
+ cmp r2, 0x17\n\
+ bls _080C0422\n\
+_080C0444:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080C044C: .4byte 0x00000804\n\
+_080C0450: .4byte gSaveBlock1\n\
+_080C0454: .4byte 0x00002739\n\
+_080C0458: .4byte 0x00002738\n\
+.syntax divided\n");
+}
+#endif
asm(".section .dotvshow\n");