From ca2bc94c2be5d7b915e5ab913ef026aa12b8fc0f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 3 Nov 2017 20:59:29 -0400 Subject: [PATCH] through sub_80E6BF8 --- asm/record_mixing.s | 59 ----------------------------------------- include/cable_club.h | 12 +++++++++ include/global.h | 6 ++--- include/record_mixing.h | 19 +++++++++++++ ld_script.txt | 1 + src/record_mixing.c | 36 +++++++++++++++++++++++-- sym_ewram.txt | 12 +-------- 7 files changed, 70 insertions(+), 75 deletions(-) create mode 100644 include/cable_club.h create mode 100644 include/record_mixing.h diff --git a/asm/record_mixing.s b/asm/record_mixing.s index 7e9ea30d1..8951649ec 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -5,65 +5,6 @@ .text - thumb_func_start sub_80E6BE8 -sub_80E6BE8: @ 80E6BE8 - push {lr} - ldr r0, =sub_80E715C - bl sub_80B37D4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6BE8 - - thumb_func_start sub_80E6BF8 -sub_80E6BF8: @ 80E6BF8 - push {r4,lr} - ldr r2, =gUnknown_03001134 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r3, =0x00001a9c - adds r0, r1, r3 - str r0, [r2] - ldr r2, =gUnknown_03001138 - ldr r4, =0x000027cc - adds r0, r1, r4 - str r0, [r2] - ldr r2, =gUnknown_0300113C - ldr r3, =0x00002b50 - adds r0, r1, r3 - str r0, [r2] - ldr r2, =gUnknown_03001140 - ldr r4, =0x00002e28 - adds r0, r1, r4 - str r0, [r2] - ldr r2, =gUnknown_03001144 - ldr r3, =0x00002e68 - adds r0, r1, r3 - str r0, [r2] - ldr r2, =gUnknown_03001148 - ldr r0, =gUnknown_02039F9C - str r0, [r2] - ldr r2, =gUnknown_0300114C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r4, =0x0000064c - adds r3, r0, r4 - str r3, [r2] - ldr r2, =gUnknown_03001150 - ldr r4, =0x00003b58 - adds r1, r4 - str r1, [r2] - ldr r1, =gUnknown_03001154 - adds r0, 0xDC - str r0, [r1] - ldr r0, =gUnknown_03001158 - str r3, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80E6BF8 - thumb_func_start sub_80E6CA0 sub_80E6CA0: @ 80E6CA0 push {r4,r5,lr} diff --git a/include/cable_club.h b/include/cable_club.h new file mode 100644 index 000000000..adb0c4f90 --- /dev/null +++ b/include/cable_club.h @@ -0,0 +1,12 @@ +#ifndef GUARD_CABLE_CLUB_H +#define GUARD_CABLE_CLUB_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_80B37D4(TaskFunc taskFunc); + +#endif //GUARD_CABLE_CLUB_H diff --git a/include/global.h b/include/global.h index 3421517d7..ad4f23c2b 100644 --- a/include/global.h +++ b/include/global.h @@ -192,7 +192,8 @@ struct SaveBlock2 /*0xAC*/ u32 encryptionKey; // TODO: fix and verify labels - /*0xB0*/ u8 field_B0[316]; + /*0xB0*/ u8 field_B0[0x2c]; + /*0xDC*/ u8 field_0DC[0x110]; /*0x1EC*/ struct BerryCrush berryCrush; /*0x1FC*/ struct PokemonJumpResults pokeJump; /*0x20C*/ struct BerryPickingResults berryPick; @@ -579,13 +580,12 @@ struct SaveBlock1 /*0x2BB0*/ u16 unk2BB0[6]; /*0x2BBC*/ u16 unk2BBC[6]; /*0x2BC8*/ u16 unk2BC8[6]; - /*0x2BD4*/ u16 unk2BD4[3]; + /*0x2BD4*/ u16 unk2BD4[6]; /*0x2BE0*/ struct MailStruct mail[16]; /*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system /*0x2E25*/ u8 unk2E25[3]; // possibly padding? /*0x2E28*/ OldMan oldMan; /*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff - /*0x2e8c*/ u8 filler_2E8C[0x4]; /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum /*0x3030*/ struct DaycareData daycare; /*0x3150*/ struct LinkBattleRecord linkBattleRecords[5]; diff --git a/include/record_mixing.h b/include/record_mixing.h new file mode 100644 index 000000000..5ccbdc0dd --- /dev/null +++ b/include/record_mixing.h @@ -0,0 +1,19 @@ +#ifndef GUARD_RECORD_MIXING_H +#define GUARD_RECORD_MIXING_H + +// Exported type declarations + +struct DayCareMailRecordMixing { + struct MailStruct mail; + u8 OT_name[OT_NAME_LENGTH + 1]; + u8 monName[11]; + u8 language_maybe : 4; + u8 unknown : 4; + u32 stepsTaken; +}; + +// Exported RAM declarations + +// Exported ROM declarations + +#endif //GUARD_RECORD_MIXING_H diff --git a/ld_script.txt b/ld_script.txt index c8d31c846..7390a0702 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -146,6 +146,7 @@ SECTIONS { asm/naming_screen.o(.text); src/money.o(.text); asm/contest_effect.o(.text); + src/record_mixing.o(.text); asm/record_mixing.o(.text); src/secret_base.o(.text); src/tv.o(.text); diff --git a/src/record_mixing.c b/src/record_mixing.c index 151835e5e..ade4d6e8c 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1,6 +1,9 @@ // Includes #include "global.h" +#include "task.h" +#include "cable_club.h" +#include "record_mixing.h" // Static type declarations @@ -9,10 +12,10 @@ IWRAM_DATA bool8 gUnknown_03001130; IWRAM_DATA struct SecretBaseRecord *gUnknown_03001134; IWRAM_DATA TVShow *gUnknown_03001138; -IWRAM_DATA struct UnknownSaveStruct2ABC *gUnknown_0300113C; +IWRAM_DATA PokeNews *gUnknown_0300113C; IWRAM_DATA OldMan *gUnknown_03001140; IWRAM_DATA struct EasyChatPair *gUnknown_03001144; -IWRAM_DATA struct DaycareData *gUnknown_03001148; +IWRAM_DATA struct DayCareMailRecordMixing *gUnknown_03001148; IWRAM_DATA void *gUnknown_0300114C; // gSaveBlock2Ptr->field_64C IWRAM_DATA LilycoveLady *gUnknown_03001150; IWRAM_DATA void *gUnknown_03001154; // gSaveBlock2Ptr->field_0DC; @@ -21,8 +24,37 @@ IWRAM_DATA u32 gUnknown_0300115C; IWRAM_DATA u8 gUnknown_03001160[8]; IWRAM_DATA u32 gUnknown_03001168[3]; +EWRAM_DATA struct DayCareMailRecordMixing gUnknown_02039F9C[2] = {}; +EWRAM_DATA struct { + /*0x0000*/ u8 filler_0000[0x5110]; +} *gUnknown_0203A014 = NULL; +EWRAM_DATA struct { + /*0x0000*/ u8 filler_0000[0x1444]; +} *gUnknown_0203A018 = NULL; + // Static ROM declarations +void sub_80E715C(u8 taskId); + // .rodata // .text + +void sub_80E6BE8(void) +{ + sub_80B37D4(sub_80E715C); +} + +void sub_80E6BF8(void) +{ + gUnknown_03001134 = gSaveBlock1Ptr->secretBases; + gUnknown_03001138 = gSaveBlock1Ptr->tvShows; + gUnknown_0300113C = gSaveBlock1Ptr->pokeNews; + gUnknown_03001140 = &gSaveBlock1Ptr->oldMan; + gUnknown_03001144 = gSaveBlock1Ptr->easyChatPairs; + gUnknown_03001148 = gUnknown_02039F9C; + gUnknown_0300114C = gSaveBlock2Ptr->field_64C; + gUnknown_03001150 = &gSaveBlock1Ptr->lilycoveLady; + gUnknown_03001154 = gSaveBlock2Ptr->field_0DC; + gUnknown_03001158 = gSaveBlock2Ptr->field_64C; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 52d24a9ab..27db667e8 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1033,17 +1033,7 @@ gUnknown_02039F94: @ 2039F94 .space 0x4 .include "src/money.o" - - .align 2 -gUnknown_02039F9C: @ 2039F9C - .space 0x78 - -gUnknown_0203A014: @ 203A014 - .space 0x4 - -gUnknown_0203A018: @ 203A018 - .space 0x4 - + .include "src/record_mixing.o" .include "src/secret_base.o" .include "src/tv.o"