summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-18 08:42:20 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-18 08:42:20 -0400
commit508e2a78acea7c2d04e8818d1a55bbc5a2b28fac (patch)
tree1e2e74bff61cb48a97d1993d51df4d8ae5c21848
parent3a4396984562a6e4665aecf45d60d944ccaa0ab6 (diff)
debug_80C5FFC
-rw-r--r--asm/watanabe_debug_menu.s299
-rw-r--r--data/debug_menu_watanabe.s22
-rw-r--r--src/debug/watanabe_debug_menu.c76
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");