finish decompiling unk_debug_menu_3 code

This commit is contained in:
PikalaxALT
2018-04-07 13:39:52 -04:00
parent 0d6c2a9b1b
commit eaaa093cca
5 changed files with 33 additions and 86 deletions

View File

@@ -1,82 +0,0 @@
.if DEBUG
.include "constants/gba_constants.inc"
.include "include/macros.inc"
.text
thumb_func_start debug_sub_813C904
debug_sub_813C904:
push {r4, lr}
ldr r4, ._35 @ gPlayerParty
add r0, r4, #0
mov r1, #0x5
mov r2, #0x32
mov r3, #0xb7
bl debug_sub_813C638
add r0, r4, #0
add r0, r0, #0x64
mov r1, #0x8
mov r2, #0x32
mov r3, #0xc4
bl debug_sub_813C638
add r4, r4, #0xc8
add r0, r4, #0
mov r1, #0x2
mov r2, #0x32
mov r3, #0x8d
bl debug_sub_813C638
pop {r4}
pop {r0}
bx r0
._36:
.align 2, 0
._35:
.word gPlayerParty
thumb_func_end debug_sub_813C904
thumb_func_start debug_sub_813C93C
debug_sub_813C93C:
push {r4, r5, r6, lr}
add sp, sp, #0xffffff44
add r4, r0, #0
ldr r6, ._37 @ gUnknown_Debug_845E4EF
ldr r5, ._37 + 4 @ gUnknown_Debug_845E606
sub r5, r5, r6
add r1, r6, #0
add r2, r5, #0
bl memcpy
bl SavePlayerParty
bl debug_sub_813C904
ldr r1, ._37 + 8 @ Str_842E253
ldr r2, ._37 + 12 @ 0x270f
mov r0, sp
bl debug_sub_8075DB4
bl LoadPlayerParty
ldr r0, ._37 + 16 @ gUnknown_Debug_845E506
add r4, r4, r0
sub r4, r4, r6
add r0, r4, #0
mov r1, sp
mov r2, #0xbc
bl memcpy
add r0, r5, #0
add sp, sp, #0xbc
pop {r4, r5, r6}
pop {r1}
bx r1
._38:
.align 2, 0
._37:
.word gUnknown_Debug_845E4EF
.word gUnknown_Debug_845E606
.word Str_842E253+5 @ weird...
.word 0x270f
.word gUnknown_Debug_845E506
thumb_func_end debug_sub_813C93C
.align 2, 0
.endif

View File

@@ -215,6 +215,7 @@ gUnknown_Debug_845E4EF::
gUnknown_Debug_845E506::
.space 256
gUnknown_Debug_845E4EFEnd::
gUnknown_Debug_845E606::
me_checkcompat gUnknown_Debug_845E606, 0x4, 0x4, 0x4, 0x80

View File

@@ -9,5 +9,6 @@ void sub_80712B4(u8 taskId);
void sub_8071310(void);
void ScrSpecial_DoSaveDialog(void);
void sub_8071B28(void);
void debug_sub_8075DB4(struct BattleTowerEReaderTrainer *ereaderTrainer, const u8 *b, u32 trainerId);
#endif // GUARD_STARTER_CHOOSE_H

View File

@@ -364,7 +364,6 @@ SECTIONS {
src/save.o(.text);
src/mystery_event_script.o(.text);
src/debug/unk_debug_menu_3.o(.text);
asm/unk_debug_menu_3.o(.text);
src/field_effect_helpers.o(.text);
src/contest_ai.o(.text);
src/unused_81258BC.o(.text);

View File

@@ -4,6 +4,8 @@
#include "constants/items.h"
#include "string_util.h"
#include "new_game.h"
#include "load_save.h"
#include "start_menu.h"
#include "mystery_event_script.h"
#include "berry.h"
#include "mail_data.h"
@@ -222,7 +224,6 @@ size_t debug_sub_813C740(u8 * dest)
dataBuffer[0] = LANGUAGE_JAPANESE;
SetMonData(mon, MON_DATA_LANGUAGE, dataBuffer);
// nonmatching pointer arithmetic
memcpy(gUnknown_Debug_845E467 - src + dest, mon, sizeof(struct Pokemon));
memcpy(gUnknown_Debug_845E4CB - src + dest, &mail, sizeof(struct MailStruct));
@@ -243,7 +244,6 @@ size_t debug_sub_813C810(u8 * dest)
debug_sub_813C638(mon, SPECIES_UNOWN, 21, ITEM_DREAM_MAIL);
debug_sub_813C6AC(mon, &mail);
// nonmatching pointer arithmetic
memcpy(gUnknown_Debug_845E467 - src + dest, mon, sizeof(struct Pokemon));
memcpy(gUnknown_Debug_845E4CB - src + dest, &mail, sizeof(struct MailStruct));
@@ -266,7 +266,6 @@ size_t debug_sub_813C888(u8 * dest)
debug_sub_813C6AC(mon, &mail);
mon->box.checksum = 0;
// nonmatching pointer arithmetic
memcpy(gUnknown_Debug_845E467 - src + dest, mon, sizeof(struct Pokemon));
memcpy(gUnknown_Debug_845E4CB - src + dest, &mail, sizeof(struct MailStruct));
@@ -276,4 +275,33 @@ size_t debug_sub_813C888(u8 * dest)
return size;
}
void debug_sub_813C904(void)
{
debug_sub_813C638(gPlayerParty + 0, SPECIES_CHARMELEON, 50, ITEM_QUICK_CLAW);
debug_sub_813C638(gPlayerParty + 1, SPECIES_WARTORTLE, 50, ITEM_FOCUS_BAND);
debug_sub_813C638(gPlayerParty + 2, SPECIES_IVYSAUR, 50, ITEM_LUM_BERRY);
}
extern u8 gUnknown_Debug_845E4EF[];
extern u8 gUnknown_Debug_845E4EFEnd[];
extern u8 gUnknown_Debug_845E506[];
extern const u8 Str_842E253[];
size_t debug_sub_813C93C(u8 * dest)
{
u8 * src = gUnknown_Debug_845E4EF;
size_t size = gUnknown_Debug_845E4EFEnd - src;
struct BattleTowerEReaderTrainer ereaderTrainer;
memcpy(dest, src, size);
SavePlayerParty();
debug_sub_813C904();
debug_sub_8075DB4(&ereaderTrainer, Str_842E253 + 5, 9999);
LoadPlayerParty();
memcpy(gUnknown_Debug_845E506 - src + dest, &ereaderTrainer, sizeof(ereaderTrainer));
return size;
}
#endif // DEBUG