diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-18 08:42:20 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-18 08:42:20 -0400 |
commit | 508e2a78acea7c2d04e8818d1a55bbc5a2b28fac (patch) | |
tree | 1e2e74bff61cb48a97d1993d51df4d8ae5c21848 | |
parent | 3a4396984562a6e4665aecf45d60d944ccaa0ab6 (diff) |
debug_80C5FFC
-rw-r--r-- | asm/watanabe_debug_menu.s | 299 | ||||
-rw-r--r-- | data/debug_menu_watanabe.s | 22 | ||||
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 76 |
3 files changed, 91 insertions, 306 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s index c0abfa2fa..5b80700b8 100644 --- a/asm/watanabe_debug_menu.s +++ b/asm/watanabe_debug_menu.s @@ -5,297 +5,6 @@ .text - thumb_func_start debug_80C5FFC -debug_80C5FFC: - push {r4, r5, r6, r7, lr} - add sp, sp, #0xffffffe0 - ldr r1, ._578 @ gUnknown_Debug_083F8758 - add r0, sp, #0x10 - mov r2, #0x4 - bl memcpy - add r7, sp, #0x14 - ldr r1, ._578 + 4 @ gUnknown_Debug_083F875C - add r0, r7, #0 - mov r2, #0x8 - bl memcpy - ldr r5, ._578 + 8 @ gUnknown_Debug_2038A1C - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x98 - ldr r4, [r0] - mov r1, #0x1f - and r4, r4, r1 - add r0, r0, #0x8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x5 - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xa8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0xa - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xb0 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0xf - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xb8 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x14 - orr r4, r4, r0 - add r0, r2, #0 - add r0, r0, #0xc0 - ldr r0, [r0] - and r0, r0, r1 - lsl r0, r0, #0x19 - orr r4, r4, r0 - ldr r0, [r2, #0x64] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl NationalPokedexNumToSpecies - add r1, r0, #0 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - ldr r0, [r5] - ldr r2, [r0, #0x68] - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - lsl r4, r4, #0x18 - lsr r4, r4, #0x18 - mov r6, #0x1 - str r6, [sp] - ldr r3, [r0, #0x74] - str r3, [sp, #0x4] - str r6, [sp, #0x8] - ldr r3, [r0, #0x70] - str r3, [sp, #0xc] - add r3, r4, #0 - bl CreateMon - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x80 - ldr r0, [r0] - cmp r0, #0 - beq ._573 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x0 - bl SetMonMoveSlot -._573: - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq ._574 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x1 - bl SetMonMoveSlot -._574: - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x88 - ldr r0, [r0] - cmp r0, #0 - beq ._575 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x2 - bl SetMonMoveSlot -._575: - ldr r2, [r5] - add r0, r2, #0 - add r0, r0, #0x8c - ldr r0, [r0] - cmp r0, #0 - beq ._576 @cond_branch - lsl r1, r0, #0x10 - lsr r1, r1, #0x10 - add r0, r2, #0 - mov r2, #0x3 - bl SetMonMoveSlot -._576: - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x6c - mov r1, #0x19 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x98 - mov r1, #0x27 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x9c - mov r1, #0x1a - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xa0 - mov r1, #0x28 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xa4 - mov r1, #0x1b - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xa8 - mov r1, #0x29 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xac - mov r1, #0x1c - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xb0 - mov r1, #0x2a - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xb4 - mov r1, #0x1d - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xb8 - mov r1, #0x2b - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xbc - mov r1, #0x1e - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xc0 - mov r1, #0x2c - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xc4 - mov r1, #0x1f - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xc8 - mov r1, #0x16 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xcc - mov r1, #0x17 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xd0 - mov r1, #0x18 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xd4 - mov r1, #0x21 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xd8 - mov r1, #0x2f - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xdc - mov r1, #0x30 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xe0 - mov r1, #0x20 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xe4 - mov r1, #0x22 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x90 - mov r1, #0xc - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0x94 - mov r1, #0x2e - bl SetMonData - ldr r0, [r5] - add r1, r0, #0 - add r1, r1, #0xec - ldr r2, [r1] - lsl r2, r2, #0x3 - ldr r1, ._578 + 12 @ gUnknown_Debug_083F86E8 - add r2, r2, r1 - mov r1, #0x37 - bl SetMonData - ldr r0, [r5] - add r2, r0, #0 - add r2, r2, #0xe8 - mov r1, #0x2d - bl SetMonData - ldr r1, [r5] - add r0, r1, #0 - add r0, r0, #0xe8 - ldr r0, [r0] - cmp r0, #0 - beq ._577 @cond_branch - add r0, r1, #0 - mov r1, #0x2 - add r2, sp, #0x10 - bl SetMonData - add r2, sp, #0x1c - strb r6, [r2] - ldr r0, [r5] - mov r1, #0x3 - bl SetMonData -._577: - ldr r0, [r5] - mov r1, #0x7 - add r2, r7, #0 - bl SetMonData - mov r2, sp - add r2, r2, #0x1e - mov r0, #0xff - strh r0, [r2] - ldr r0, [r5] - mov r1, #0x23 - bl SetMonData - ldr r0, [r5] - bl CalculateMonStats - add sp, sp, #0x20 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._579: - .align 2, 0 -._578: - .word gUnknown_Debug_083F8758 - .word gUnknown_Debug_083F875C - .word gUnknown_Debug_2038A1C - .word gUnknown_Debug_083F86E8+0x4 - - thumb_func_end debug_80C5FFC - thumb_func_start debug_80C627C debug_80C627C: push {r4, r5, r6, lr} @@ -2054,7 +1763,7 @@ debug_80C6FA8: cmp r0, #0xd bhi ._689 @cond_branch lsl r0, r0, #0x1 - ldr r2, ._691 + 4 @ 0x5000102 + ldr r2, ._691 + 4 @ PLTT + 0x102 add r0, r0, r2 strh r3, [r0] ldr r1, [r1] @@ -2066,7 +1775,7 @@ debug_80C6FA8: .align 2, 0 ._691: .word gUnknown_Debug_2038A20 - .word 0x5000102 + .word PLTT + 0x102 ._689: ldrh r1, [r4, #0x30] mov r0, #0x20 @@ -2202,7 +1911,7 @@ debug_80C6FA8: ldr r0, [r2] ldrb r1, [r0, #0x7] lsl r1, r1, #0x1 - ldr r2, ._707 + 4 @ 0x5000142 + ldr r2, ._707 + 4 @ PLTT + 0x142 add r1, r1, r2 ldr r2, ._707 + 8 @ gUnknown_Debug_083F8790 ldrb r0, [r0, #0x8] @@ -2219,7 +1928,7 @@ debug_80C6FA8: .align 2, 0 ._707: .word gUnknown_Debug_2038A20 - .word 0x5000142 + .word PLTT + 0x142 .word gUnknown_Debug_083F8790 thumb_func_end debug_80C6FA8 diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s index b409ecab3..a8bd429a4 100644 --- a/data/debug_menu_watanabe.s +++ b/data/debug_menu_watanabe.s @@ -630,19 +630,19 @@ gUnknown_Debug_083F875C:: @ 0x83F875C gUnknown_Debug_083F8764:: .string " $" - .byte 0, 0 + .align 2 gUnknown_Debug_083F8768:: - .4byte 0x00000001 - .4byte 0x0000000a - .4byte 0x00000064 - .4byte 0x000003e8 - .4byte 0x00002710 - .4byte 0x000186a0 - .4byte 0x000f4240 - .4byte 0x00989680 - .4byte 0x05f5e100 - .4byte 0x3b9aca00 + .4byte 1 + .4byte 10 + .4byte 100 + .4byte 1000 + .4byte 10000 + .4byte 100000 + .4byte 1000000 + .4byte 10000000 + .4byte 100000000 + .4byte 1000000000 gUnknown_Debug_083F8790:: .2byte 0x0000 diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c index 33b5e8a29..16fe342e9 100644 --- a/src/debug/watanabe_debug_menu.c +++ b/src/debug/watanabe_debug_menu.c @@ -5,6 +5,7 @@ #include "gba/flash_internal.h" #include "constants/items.h" #include "constants/species.h" +#include "constants/moves.h" #include "constants/songs.h" #include "debug.h" #include "palette.h" @@ -162,6 +163,8 @@ extern const u8 gUnknown_Debug_083F8544[2]; // = _("♂"); extern const u8 gUnknown_Debug_083F8546[2]; // = _("♀"); extern const u8 gUnknown_Debug_083F854A[3]; // = _("ON"); extern const u8 gUnknown_Debug_083F854D[4]; // = _("OFF"); +extern const u8 gUnknown_Debug_083F8758[4]; // = _("たまご"); +extern const u8 gUnknown_Debug_083F875C[8]; // = _("DebugーG"); #define SPRITETAG_WATANABE 0x1000 @@ -2007,7 +2010,80 @@ void debug_80C5EF4(void) gUnknown_Debug_2038A1C->unk64[38] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED); gUnknown_Debug_2038A1C->unk64[39] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK); gUnknown_Debug_2038A1C->unk64[40] = GetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF); +} + +void debug_80C5FFC(void) +{ + u32 ivs; + // u8 sp10[] = _("たまご"); + // u8 sp14[] = _("DebugーG"); + + u8 sp10[ARRAY_COUNT(gUnknown_Debug_083F8758)]; + u8 sp14[ARRAY_COUNT(gUnknown_Debug_083F875C)]; + u8 one; + u16 ff; + + memcpy(sp10, gUnknown_Debug_083F8758, sizeof(gUnknown_Debug_083F8758)); + memcpy(sp14, gUnknown_Debug_083F875C, sizeof(gUnknown_Debug_083F875C)); + + ivs = gUnknown_Debug_2038A1C->unk64[13] & 0x1f; + ivs |= (gUnknown_Debug_2038A1C->unk64[15] & 0x1f) << 5; + ivs |= (gUnknown_Debug_2038A1C->unk64[17] & 0x1f) << 10; + ivs |= (gUnknown_Debug_2038A1C->unk64[19] & 0x1f) << 15; + ivs |= (gUnknown_Debug_2038A1C->unk64[21] & 0x1f) << 20; + ivs |= (gUnknown_Debug_2038A1C->unk64[23] & 0x1f) << 25; + + CreateMon(&gUnknown_Debug_2038A1C->pokemon, NationalPokedexNumToSpecies(gUnknown_Debug_2038A1C->unk64[0]), gUnknown_Debug_2038A1C->unk64[1], ivs, TRUE, gUnknown_Debug_2038A1C->unk64[4], TRUE, gUnknown_Debug_2038A1C->unk64[3]); + + if (gUnknown_Debug_2038A1C->unk64[7] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[7], 0); + if (gUnknown_Debug_2038A1C->unk64[8] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[8], 1); + if (gUnknown_Debug_2038A1C->unk64[9] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[9], 2); + if (gUnknown_Debug_2038A1C->unk64[10] != MOVE_NONE) + SetMonMoveSlot(&gUnknown_Debug_2038A1C->pokemon, gUnknown_Debug_2038A1C->unk64[10], 3); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_EXP, gUnknown_Debug_2038A1C->unk64 + 2); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HP_IV, gUnknown_Debug_2038A1C->unk64 + 13); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HP_EV, gUnknown_Debug_2038A1C->unk64 + 14); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK_IV, gUnknown_Debug_2038A1C->unk64 + 15); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ATK_EV, gUnknown_Debug_2038A1C->unk64 + 16); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF_IV, gUnknown_Debug_2038A1C->unk64 + 17); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_DEF_EV, gUnknown_Debug_2038A1C->unk64 + 18); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED_IV, gUnknown_Debug_2038A1C->unk64 + 19); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPEED_EV, gUnknown_Debug_2038A1C->unk64 + 20); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK_IV, gUnknown_Debug_2038A1C->unk64 + 21); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPATK_EV, gUnknown_Debug_2038A1C->unk64 + 22); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF_IV, gUnknown_Debug_2038A1C->unk64 + 23); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SPDEF_EV, gUnknown_Debug_2038A1C->unk64 + 24); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_COOL, gUnknown_Debug_2038A1C->unk64 + 25); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_BEAUTY, gUnknown_Debug_2038A1C->unk64 + 26); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_CUTE, gUnknown_Debug_2038A1C->unk64 + 27); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SMART, gUnknown_Debug_2038A1C->unk64 + 28); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_TOUGH, gUnknown_Debug_2038A1C->unk64 + 29); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_SHEEN, gUnknown_Debug_2038A1C->unk64 + 30); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_FRIENDSHIP, gUnknown_Debug_2038A1C->unk64 + 31); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_POKERUS, gUnknown_Debug_2038A1C->unk64 + 32); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_HELD_ITEM, gUnknown_Debug_2038A1C->unk64 + 11); + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_ALT_ABILITY, gUnknown_Debug_2038A1C->unk64 + 12); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_STATUS, &gUnknown_Debug_083F86E8[gUnknown_Debug_2038A1C->unk64[34]].data.type3); + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_IS_EGG, gUnknown_Debug_2038A1C->unk64 + 33); + if (gUnknown_Debug_2038A1C->unk64[33]) + { + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_NICKNAME, sp10); + one = LANGUAGE_JAPANESE; + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_LANGUAGE, &one); + } + + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_OT_NAME, sp14); + ff = 0xff; + SetMonData(&gUnknown_Debug_2038A1C->pokemon, MON_DATA_MET_LOCATION, &ff); + CalculateMonStats(&gUnknown_Debug_2038A1C->pokemon); } u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal"); |