mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
sub_80E6CA0
This commit is contained in:
parent
ca2bc94c2b
commit
f8486b31c5
2
Makefile
2
Makefile
@ -101,6 +101,8 @@ $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
|
|||||||
$(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
|
$(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
|
||||||
$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
|
$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
|
||||||
|
|
||||||
|
$(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding
|
||||||
|
|
||||||
ifeq ($(NODEP),)
|
ifeq ($(NODEP),)
|
||||||
$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c)
|
$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c)
|
||||||
else
|
else
|
||||||
|
@ -5,67 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_80E6CA0
|
|
||||||
sub_80E6CA0: @ 80E6CA0
|
|
||||||
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 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_80F14F8
|
|
||||||
ldr r1, =0x00001004
|
|
||||||
adds r0, r5, r1
|
|
||||||
ldr r1, =gUnknown_0300113C
|
|
||||||
ldr r1, [r1]
|
|
||||||
movs r2, 0x40
|
|
||||||
bl memcpy
|
|
||||||
ldr r2, =0x00001044
|
|
||||||
adds r0, r5, r2
|
|
||||||
ldr r1, =gUnknown_03001140
|
|
||||||
ldr r1, [r1]
|
|
||||||
movs r2, 0x40
|
|
||||||
bl memcpy
|
|
||||||
ldr r1, =0x00001084
|
|
||||||
adds r0, r5, r1
|
|
||||||
ldr r1, =gUnknown_03001144
|
|
||||||
ldr r1, [r1]
|
|
||||||
movs r2, 0x28
|
|
||||||
bl memcpy
|
|
||||||
ldr r2, =0x000010ac
|
|
||||||
adds r0, r5, r2
|
|
||||||
bl sub_80E89F8
|
|
||||||
ldr r0, =gUnknown_0300114C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r2, =0x00001124
|
|
||||||
adds r1, r5, r2
|
|
||||||
bl sub_81659DC
|
|
||||||
bl GetMultiplayerId
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _080E6D1C
|
|
||||||
bl sub_81539D4
|
|
||||||
ldr r2, =0x000011c8
|
|
||||||
adds r1, r5, r2
|
|
||||||
strh r0, [r1]
|
|
||||||
_080E6D1C:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_80E6CA0
|
|
||||||
|
|
||||||
thumb_func_start sub_80E6D54
|
thumb_func_start sub_80E6D54
|
||||||
sub_80E6D54: @ 80E6D54
|
sub_80E6D54: @ 80E6D54
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
|
@ -2,5 +2,6 @@
|
|||||||
#define GUARD_BATTLE_TOWER_H
|
#define GUARD_BATTLE_TOWER_H
|
||||||
|
|
||||||
u16 sub_8164FCC(u8, u8);
|
u16 sub_8164FCC(u8, u8);
|
||||||
|
void sub_81659DC(void *a0, void *a1);
|
||||||
|
|
||||||
#endif //GUARD_BATTLE_TOWER_H
|
#endif //GUARD_BATTLE_TOWER_H
|
||||||
|
@ -7,5 +7,6 @@
|
|||||||
#include "gba/multiboot.h"
|
#include "gba/multiboot.h"
|
||||||
#include "gba/syscall.h"
|
#include "gba/syscall.h"
|
||||||
#include "gba/macro.h"
|
#include "gba/macro.h"
|
||||||
|
#include "gba/libc.h"
|
||||||
|
|
||||||
#endif // GUARD_GBA_GBA_H
|
#endif // GUARD_GBA_GBA_H
|
||||||
|
10
include/gba/libc.h
Normal file
10
include/gba/libc.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef GUARD_LIBC_H
|
||||||
|
#define GUARD_LIBC_H
|
||||||
|
|
||||||
|
void *memset(void *dst, int val, size_t size);
|
||||||
|
void *memcpy(void *dst, const void *src, size_t size);
|
||||||
|
int strcmp(const char *s1, const char *s2);
|
||||||
|
char *strcpy(char *dst0, const char *src0);
|
||||||
|
#define abs(x) ((x) >= 0 ? (x) : -(x))
|
||||||
|
|
||||||
|
#endif //GUARD_LIBC_H
|
@ -11,13 +11,6 @@
|
|||||||
#define asm_comment(x) asm volatile("@ -- " x " -- ")
|
#define asm_comment(x) asm volatile("@ -- " x " -- ")
|
||||||
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
|
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
|
||||||
|
|
||||||
#if defined (__APPLE__) || defined (__CYGWIN__)
|
|
||||||
void *memset(void *, int, size_t);
|
|
||||||
void *memcpy(void *, const void *, size_t);
|
|
||||||
int strcmp(const char *s1, const char *s2);
|
|
||||||
char* strcpy(char *dst0, const char *src0);
|
|
||||||
#endif // __APPLE__
|
|
||||||
|
|
||||||
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
|
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
|
||||||
|
|
||||||
// useful math macros
|
// useful math macros
|
||||||
|
@ -4,5 +4,6 @@
|
|||||||
u32 RunMysteryEventScript(u8 *);
|
u32 RunMysteryEventScript(u8 *);
|
||||||
void SetMysteryEventScriptStatus(u32 val);
|
void SetMysteryEventScriptStatus(u32 val);
|
||||||
u16 GetRecordMixingGift(void);
|
u16 GetRecordMixingGift(void);
|
||||||
|
u16 sub_81539D4(void);
|
||||||
|
|
||||||
#endif // GUARD_MYSTERY_EVENT_SCRIPT_H
|
#endif // GUARD_MYSTERY_EVENT_SCRIPT_H
|
||||||
|
@ -3,10 +3,26 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "cable_club.h"
|
#include "cable_club.h"
|
||||||
|
#include "link.h"
|
||||||
|
#include "tv.h"
|
||||||
|
#include "battle_tower.h"
|
||||||
|
#include "mystery_event_script.h"
|
||||||
#include "record_mixing.h"
|
#include "record_mixing.h"
|
||||||
|
|
||||||
// Static type declarations
|
// Static type declarations
|
||||||
|
|
||||||
|
struct RecordMixingData {
|
||||||
|
struct SecretBaseRecord secretBases[20];
|
||||||
|
TVShow tvShows[25];
|
||||||
|
PokeNews pokeNews[16];
|
||||||
|
OldMan oldMan;
|
||||||
|
struct EasyChatPair easyChatPair[5];
|
||||||
|
u8 unk_10ac[0x78];
|
||||||
|
u8 unk_1124[0xa4];
|
||||||
|
u16 unk_11c8;
|
||||||
|
u8 unk_11ca[0x27a];
|
||||||
|
};
|
||||||
|
|
||||||
// Static RAM declarations
|
// Static RAM declarations
|
||||||
|
|
||||||
IWRAM_DATA bool8 gUnknown_03001130;
|
IWRAM_DATA bool8 gUnknown_03001130;
|
||||||
@ -28,13 +44,12 @@ EWRAM_DATA struct DayCareMailRecordMixing gUnknown_02039F9C[2] = {};
|
|||||||
EWRAM_DATA struct {
|
EWRAM_DATA struct {
|
||||||
/*0x0000*/ u8 filler_0000[0x5110];
|
/*0x0000*/ u8 filler_0000[0x5110];
|
||||||
} *gUnknown_0203A014 = NULL;
|
} *gUnknown_0203A014 = NULL;
|
||||||
EWRAM_DATA struct {
|
EWRAM_DATA struct RecordMixingData *gUnknown_0203A018 = NULL;
|
||||||
/*0x0000*/ u8 filler_0000[0x1444];
|
|
||||||
} *gUnknown_0203A018 = NULL;
|
|
||||||
|
|
||||||
// Static ROM declarations
|
// Static ROM declarations
|
||||||
|
|
||||||
void sub_80E715C(u8 taskId);
|
void sub_80E715C(u8 taskId);
|
||||||
|
void sub_80E89F8(void *dest);
|
||||||
|
|
||||||
// .rodata
|
// .rodata
|
||||||
|
|
||||||
@ -58,3 +73,19 @@ void sub_80E6BF8(void)
|
|||||||
gUnknown_03001154 = gSaveBlock2Ptr->field_0DC;
|
gUnknown_03001154 = gSaveBlock2Ptr->field_0DC;
|
||||||
gUnknown_03001158 = gSaveBlock2Ptr->field_64C;
|
gUnknown_03001158 = gSaveBlock2Ptr->field_64C;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_80E6CA0(struct RecordMixingData *dest)
|
||||||
|
{
|
||||||
|
memcpy(dest->secretBases, gUnknown_03001134, sizeof(struct SecretBaseRecord) * 20);
|
||||||
|
memcpy(dest->tvShows, gUnknown_03001138, sizeof(TVShow) * 25);
|
||||||
|
sub_80F14F8(dest->tvShows);
|
||||||
|
memcpy(dest->pokeNews, gUnknown_0300113C, sizeof(PokeNews) * 16);
|
||||||
|
memcpy(&dest->oldMan, gUnknown_03001140, sizeof(OldMan));
|
||||||
|
memcpy(dest->easyChatPair, gUnknown_03001144, sizeof(struct EasyChatPair) * 5);
|
||||||
|
sub_80E89F8(dest->unk_10ac);
|
||||||
|
sub_81659DC(gUnknown_0300114C, dest->unk_1124);
|
||||||
|
if (GetMultiplayerId() == 0)
|
||||||
|
{
|
||||||
|
dest->unk_11c8 = sub_81539D4();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user