diff --git a/asm/record_mixing.s b/asm/record_mixing.s index 94f3756d5..e7827f8a4 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -5,78 +5,6 @@ .text - thumb_func_start sub_80E6D54 -sub_80E6D54: @ 80E6D54 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gUnknown_03001134 - ldr r1, [r0] - movs r4, 0xC8 - lsls r4, 4 - adds r0, r5, 0 - adds r2, r4, 0 - bl memcpy - adds r0, r5, 0 - bl sub_80EB18C - adds r4, r5, r4 - ldr r0, =gUnknown_03001138 - ldr r1, [r0] - movs r2, 0xE1 - lsls r2, 2 - adds r0, r4, 0 - bl memcpy - adds r0, r4, 0 - bl sub_80F1208 - ldr r1, =0x00001004 - adds r0, r5, r1 - ldr r1, =gUnknown_0300113C - ldr r1, [r1] - movs r2, 0x40 - bl memcpy - ldr r2, =0x00001044 - adds r4, r5, r2 - ldr r0, =gUnknown_03001140 - ldr r1, [r0] - adds r0, r4, 0 - movs r2, 0x40 - bl memcpy - adds r0, r4, 0 - bl sub_8120B70 - ldr r1, =0x00001084 - adds r0, r5, r1 - ldr r1, =gUnknown_03001144 - ldr r1, [r1] - movs r2, 0x28 - bl memcpy - ldr r2, =0x000010ac - adds r4, r5, r2 - adds r0, r4, 0 - bl sub_80E89F8 - adds r0, r4, 0 - bl sub_80E8A54 - ldr r0, =gUnknown_0300114C - ldr r0, [r0] - ldr r1, =0x00001124 - adds r4, r5, r1 - adds r1, r4, 0 - bl sub_81659DC - adds r0, r4, 0 - bl TaskDummy4 - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080E6DEE - bl sub_81539D4 - ldr r2, =0x000011c8 - adds r1, r5, r2 - strh r0, [r1] -_080E6DEE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6D54 - thumb_func_start sub_80E6E24 sub_80E6E24: @ 80E6E24 push {r4,r5,lr} diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index aefc76083..25c5d8cd2 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -4,5 +4,6 @@ void SetMauvilleOldMan(void); u8 sub_81201C8(void); +void sub_8120B70(OldMan *dest); #endif // GUARD_MAUVILLE_OLD_MAN_H diff --git a/include/secret_base.h b/include/secret_base.h index 14defff26..d3ef57653 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -8,5 +8,6 @@ // Exported ROM declarations void sub_80E9578(void); void sub_80E980C(void); +void sub_80EB18C(struct SecretBaseRecord *dest); #endif //GUARD_SECRET_BASE_H diff --git a/include/tv.h b/include/tv.h index 43f36d69f..ea5bb726f 100644 --- a/include/tv.h +++ b/include/tv.h @@ -13,5 +13,6 @@ void sub_80EE184(void); void sub_80EEA70(void); void sub_80F14F8(TVShow *shows); size_t sub_80EF370(int value); +void sub_80F1208(TVShow *dest); #endif //GUARD_TV_H diff --git a/src/record_mixing.c b/src/record_mixing.c index 06cf1ab2e..5b1f1c0c8 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -7,6 +7,8 @@ #include "tv.h" #include "battle_tower.h" #include "mystery_event_script.h" +#include "secret_base.h" +#include "mauville_old_man.h" #include "record_mixing.h" // Static type declarations @@ -50,6 +52,8 @@ EWRAM_DATA struct RecordMixingData *gUnknown_0203A018 = NULL; void sub_80E715C(u8 taskId); void sub_80E89F8(void *dest); +void sub_80E8A54(void *src); +void TaskDummy4(void *src); // .rodata @@ -89,3 +93,23 @@ void sub_80E6CA0(struct RecordMixingData *dest) dest->unk_11c8 = sub_81539D4(); } } + +void sub_80E6D54(struct RecordMixingData *dest) +{ + memcpy(dest->secretBases, gUnknown_03001134, sizeof(struct SecretBaseRecord) * 20); + sub_80EB18C(dest->secretBases); + memcpy(dest->tvShows, gUnknown_03001138, sizeof(TVShow) * 25); + sub_80F1208(dest->tvShows); + memcpy(dest->pokeNews, gUnknown_0300113C, sizeof(PokeNews) * 16); + memcpy(&dest->oldMan, gUnknown_03001140, sizeof(OldMan)); + sub_8120B70(&dest->oldMan); + memcpy(dest->easyChatPair, gUnknown_03001144, sizeof(struct EasyChatPair) * 5); + sub_80E89F8(dest->unk_10ac); + sub_80E8A54(dest->unk_10ac); + sub_81659DC(gUnknown_0300114C, dest->unk_1124); + TaskDummy4(dest->unk_1124); + if (GetMultiplayerId() == 0) + { + dest->unk_11c8 = sub_81539D4(); + } +}