summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-11-03 22:26:12 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-11-03 22:26:12 -0400
commit1c3e7f169f26d471280a0f7aa1043dbd68e981c7 (patch)
tree9ce208cc6c35411a4ef4db4805c119148377c93f
parent20ebcf71699a3463e130b68b1c2c2a3f984c8db8 (diff)
sub_80E6E24
-rw-r--r--asm/record_mixing.s108
-rw-r--r--include/global.h5
-rw-r--r--include/link.h2
-rw-r--r--include/record_mixing.h2
-rw-r--r--include/secret_base.h1
-rw-r--r--include/tv.h1
-rw-r--r--src/record_mixing.c47
7 files changed, 54 insertions, 112 deletions
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index e7827f8a4..27aa86a2e 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -5,114 +5,6 @@
.text
- thumb_func_start sub_80E6E24
-sub_80E6E24: @ 80E6E24
- push {r4,r5,lr}
- bl sub_80E9914
- bl sub_80F0BB8
- bl sub_80E6BF8
- bl sub_800A064
- cmp r0, 0
- beq _080E6E60
- bl sub_800A03C
- cmp r0, 0
- bne _080E6E50
- ldr r0, =gUnknown_0203A018
- ldr r0, [r0]
- bl sub_80E6CA0
- b _080E6F12
- .pool
-_080E6E50:
- ldr r0, =gUnknown_0203A018
- ldr r0, [r0]
- bl sub_80E6D54
- b _080E6F12
- .pool
-_080E6E60:
- ldr r5, =gUnknown_0203A018
- ldr r0, [r5]
- ldr r1, =gUnknown_03001134
- ldr r1, [r1]
- movs r4, 0xC8
- lsls r4, 4
- adds r2, r4, 0
- bl memcpy
- ldr r0, [r5]
- adds r0, r4
- ldr r1, =gUnknown_03001138
- ldr r1, [r1]
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- ldr r0, [r5]
- ldr r1, =0x00001004
- adds r0, r1
- ldr r1, =gUnknown_0300113C
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r0, [r5]
- ldr r2, =0x00001044
- adds r0, r2
- ldr r1, =gUnknown_03001140
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r0, [r5]
- ldr r1, =0x00001214
- adds r0, r1
- ldr r1, =gUnknown_03001150
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r0, [r5]
- ldr r2, =0x00001084
- adds r0, r2
- ldr r1, =gUnknown_03001144
- ldr r1, [r1]
- movs r2, 0x28
- bl memcpy
- ldr r0, [r5]
- ldr r1, =0x000010ac
- adds r0, r1
- bl sub_80E89F8
- ldr r0, [r5]
- ldr r4, =0x00001124
- adds r0, r4
- ldr r1, =gUnknown_0300114C
- ldr r1, [r1]
- movs r2, 0xEC
- bl memcpy
- ldr r0, [r5]
- adds r0, r4
- bl sub_80E8AC0
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080E6EFA
- bl sub_81539D4
- ldr r1, [r5]
- ldr r2, =0x00001210
- adds r1, r2
- strh r0, [r1]
-_080E6EFA:
- ldr r0, [r5]
- ldr r1, =0x00001254
- adds r0, r1
- ldr r1, =gUnknown_03001154
- ldr r1, [r1]
- bl sub_80E8110
- ldr r0, [r5]
- ldr r2, =0x000012dc
- adds r0, r2
- bl sub_80E8260
-_080E6F12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E6E24
-
thumb_func_start sub_80E6F60
sub_80E6F60: @ 80E6F60
push {r4-r6,lr}
diff --git a/include/global.h b/include/global.h
index f3c58a3d8..8343f99f8 100644
--- a/include/global.h
+++ b/include/global.h
@@ -490,12 +490,13 @@ struct LilycoveLadyContest
/*0x00e*/ u8 language;
};
-typedef union // TODO
+typedef union
{
struct LilycoveLadyQuiz quiz;
struct LilycoveLadyFavour favour;
struct LilycoveLadyContest contest;
u8 id;
+ u8 pad[0x40];
} LilycoveLady;
struct WaldaPhrase
@@ -592,7 +593,7 @@ struct SaveBlock1
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
/*0x3B24*/ u8 seen2[52];
/*0x3B58*/ LilycoveLady lilycoveLady;
- /*0x3B88*/ u8 filler_3B88[0x1E8];
+ /*0x3B98*/ u8 filler_3B88[0x1D8];
/*0x3D70*/ struct WaldaPhrase waldaPhrase;
// sizeof: 0x3D88
};
diff --git a/include/link.h b/include/link.h
index 7a6563144..1bcdb047c 100644
--- a/include/link.h
+++ b/include/link.h
@@ -192,5 +192,7 @@ void sub_8011BD0(void);
u8 sub_800ABAC(void);
u8 sub_800ABBC(void);
void sub_800AC34(void);
+bool32 sub_800A064(void);
+bool32 sub_800A03C(void);
#endif // GUARD_LINK_H
diff --git a/include/record_mixing.h b/include/record_mixing.h
index 5ccbdc0dd..86e4b982e 100644
--- a/include/record_mixing.h
+++ b/include/record_mixing.h
@@ -16,4 +16,6 @@ struct DayCareMailRecordMixing {
// Exported ROM declarations
+void sub_80E8260(void *);
+
#endif //GUARD_RECORD_MIXING_H
diff --git a/include/secret_base.h b/include/secret_base.h
index d3ef57653..43ea66ebc 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -9,5 +9,6 @@
void sub_80E9578(void);
void sub_80E980C(void);
void sub_80EB18C(struct SecretBaseRecord *dest);
+void sub_80E9914(void);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/tv.h b/include/tv.h
index ea5bb726f..9dc0f7719 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -14,5 +14,6 @@ void sub_80EEA70(void);
void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);
void sub_80F1208(TVShow *dest);
+void sub_80F0BB8(void);
#endif //GUARD_TV_H
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 5b1f1c0c8..c8259e117 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -22,8 +22,13 @@ struct RecordMixingData {
u8 unk_10ac[0x78];
u8 unk_1124[0xa4];
u16 unk_11c8;
- u8 unk_11ca[0x27a];
-};
+ u8 filler_11ca[0x46];
+ u16 unk_1210;
+ u8 filler_1212[0x2];
+ LilycoveLady lilycoveLady;
+ u8 unk_1254[0x88];
+ u8 unk_12dc[0x168];
+}; // 1444
// Static RAM declarations
@@ -54,6 +59,8 @@ void sub_80E715C(u8 taskId);
void sub_80E89F8(void *dest);
void sub_80E8A54(void *src);
void TaskDummy4(void *src);
+void sub_80E8AC0(void *);
+void sub_80E8110(void *, void *);
// .rodata
@@ -113,3 +120,39 @@ void sub_80E6D54(struct RecordMixingData *dest)
dest->unk_11c8 = sub_81539D4();
}
}
+
+void sub_80E6E24(void)
+{
+ sub_80E9914();
+ sub_80F0BB8();
+ sub_80E6BF8();
+ if (sub_800A064())
+ {
+ if (sub_800A03C() == FALSE)
+ {
+ sub_80E6CA0(gUnknown_0203A018);
+ }
+ else
+ {
+ sub_80E6D54(gUnknown_0203A018);
+ }
+ }
+ else
+ {
+ memcpy(gUnknown_0203A018->secretBases, gUnknown_03001134, sizeof(struct SecretBaseRecord) * 20);
+ memcpy(gUnknown_0203A018->tvShows, gUnknown_03001138, sizeof(TVShow) * 25);
+ memcpy(gUnknown_0203A018->pokeNews, gUnknown_0300113C, sizeof(PokeNews) * 16);
+ memcpy(&gUnknown_0203A018->oldMan, gUnknown_03001140, sizeof(OldMan));
+ memcpy(&gUnknown_0203A018->lilycoveLady, gUnknown_03001150, sizeof(LilycoveLady));
+ memcpy(gUnknown_0203A018->easyChatPair, gUnknown_03001144, sizeof(struct EasyChatPair) * 5);
+ sub_80E89F8(gUnknown_0203A018->unk_10ac);
+ memcpy(gUnknown_0203A018->unk_1124, gUnknown_0300114C, 0xec);
+ sub_80E8AC0(gUnknown_0203A018->unk_1124);
+ if (GetMultiplayerId() == 0)
+ {
+ gUnknown_0203A018->unk_1210 = sub_81539D4();
+ }
+ sub_80E8110(gUnknown_0203A018->unk_1254, gUnknown_03001154);
+ sub_80E8260(gUnknown_0203A018->unk_12dc);
+ }
+}