summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/record_mixing.s59
-rw-r--r--include/cable_club.h12
-rw-r--r--include/global.h6
-rw-r--r--include/record_mixing.h19
-rw-r--r--ld_script.txt1
-rw-r--r--src/record_mixing.c36
-rw-r--r--sym_ewram.txt12
7 files changed, 70 insertions, 75 deletions
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"