through debug_80C42B8

This commit is contained in:
PikalaxALT
2018-04-14 16:11:45 -04:00
parent ea25c05dcc
commit 21e006d680
2 changed files with 155 additions and 383 deletions
-381
View File
@@ -5,387 +5,6 @@
.text
thumb_func_start debug_80C405C
debug_80C405C:
push {r4, r5, lr}
add r4, r0, #0
lsl r1, r1, #0x10
lsr r5, r1, #0x10
mov r2, #0x0
mov r1, #0x0
._122:
add r0, r4, r2
strb r1, [r0]
add r0, r2, #1
lsl r0, r0, #0x18
lsr r2, r0, #0x18
cmp r2, #0x9
bls ._122 @cond_branch
add r0, r4, r2
mov r1, #0xff
strb r1, [r0]
mov r0, #0xae
strb r0, [r4]
cmp r5, #0
beq ._125 @cond_branch
mov r2, #0x0
ldr r3, ._127 @ gSpeciesNames
mov r0, #0xb
add r1, r5, #0
mul r1, r1, r0
add r0, r1, r3
ldrb r0, [r0]
cmp r0, #0xff
beq ._125 @cond_branch
add r5, r3, #0
add r3, r1, #0
._126:
add r1, r4, r2
add r0, r2, r3
add r0, r0, r5
ldrb r0, [r0]
strb r0, [r1]
add r0, r2, #1
lsl r0, r0, #0x18
lsr r2, r0, #0x18
add r0, r2, r3
add r0, r0, r5
ldrb r0, [r0]
cmp r0, #0xff
beq ._125 @cond_branch
cmp r2, #0x9
bls ._126 @cond_branch
._125:
pop {r4, r5}
pop {r0}
bx r0
._128:
.align 2, 0
._127:
.word gSpeciesNames
thumb_func_end debug_80C405C
thumb_func_start debug_80C40C4
debug_80C40C4:
push {r4, r5, r6, r7, lr}
add sp, sp, #0xfffffffc
lsl r0, r0, #0x18
lsr r7, r0, #0x18
mov r5, #0x0
mov r6, sp
._135:
cmp r7, #0
beq ._129 @cond_branch
mov r0, #0x64
add r1, r5, #0
mul r1, r1, r0
ldr r0, ._132 @ gEnemyParty
add r4, r1, r0
add r0, r4, #0
mov r1, #0xb
bl GetMonData
cmp r0, #0
beq ._134 @cond_branch
add r0, r4, #0
bl CalculateMonStats
add r0, r4, #0
mov r1, #0x3a
bl GetMonData
strh r0, [r6]
add r0, r4, #0
mov r1, #0x39
mov r2, sp
bl SetMonData
b ._134
._133:
.align 2, 0
._132:
.word gEnemyParty
._129:
mov r0, #0x64
add r1, r5, #0
mul r1, r1, r0
ldr r0, ._136 @ gPlayerParty
add r4, r1, r0
add r0, r4, #0
mov r1, #0xb
bl GetMonData
cmp r0, #0
beq ._134 @cond_branch
add r0, r4, #0
bl CalculateMonStats
add r0, r4, #0
mov r1, #0x3a
bl GetMonData
strh r0, [r6]
add r0, r4, #0
mov r1, #0x39
mov r2, sp
bl SetMonData
._134:
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #0x5
bls ._135 @cond_branch
add sp, sp, #0x4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
._137:
.align 2, 0
._136:
.word gPlayerParty
thumb_func_end debug_80C40C4
thumb_func_start InitBattleForDebug
InitBattleForDebug:
push {lr}
bl SavePlayerParty
ldr r1, ._138 @ gUnknown_Debug_2038A0C
ldr r0, ._138 + 4 @ gSaveBlock2
ldrb r2, [r0, #0x8]
mov r0, #0x0
strb r2, [r1, #0xd]
strb r0, [r1]
strb r0, [r1, #0x1]
strb r0, [r1, #0x2]
strb r0, [r1, #0x3]
strb r0, [r1, #0x4]
strb r0, [r1, #0x5]
strb r0, [r1, #0x6]
strb r0, [r1, #0x7]
strb r0, [r1, #0x8]
strb r0, [r1, #0xc]
ldr r1, ._138 + 8 @ byte_3005E30
str r0, [r1]
bl ZeroPlayerPartyMons
bl ZeroEnemyPartyMons
mov r0, #0x0
bl debug_80C4214
ldr r0, ._138 + 12 @ debug_80C47BC
mov r1, #0x0
bl CreateTask
pop {r0}
bx r0
._139:
.align 2, 0
._138:
.word gUnknown_Debug_2038A0C
.word gSaveBlock2
.word byte_3005E30
.word debug_80C47BC+1
thumb_func_end InitBattleForDebug
thumb_func_start debug_80C41A8
debug_80C41A8:
push {lr}
ldr r1, ._140 @ gUnknown_Debug_2038A0C
mov r0, #0x0
strb r0, [r1, #0x1]
strb r0, [r1, #0x2]
bl ZeroPlayerPartyMons
bl ZeroEnemyPartyMons
mov r0, #0x0
bl debug_80C4214
ldr r0, ._140 + 4 @ debug_80C47BC
mov r1, #0x0
bl CreateTask
pop {r0}
bx r0
._141:
.align 2, 0
._140:
.word gUnknown_Debug_2038A0C
.word debug_80C47BC+1
thumb_func_end debug_80C41A8
thumb_func_start debug_80C41D4
debug_80C41D4:
push {lr}
mov r0, #0x0
bl debug_80C40C4
mov r0, #0x0
bl debug_80C4214
ldr r0, ._142 @ debug_80C42B8
mov r1, #0x0
bl CreateTask
pop {r0}
bx r0
._143:
.align 2, 0
._142:
.word debug_80C42B8+1
thumb_func_end debug_80C41D4
thumb_func_start debug_80C41F4
debug_80C41F4:
push {lr}
mov r0, #0x1
bl debug_80C40C4
mov r0, #0x1
bl debug_80C4214
ldr r0, ._144 @ debug_80C42B8
mov r1, #0x0
bl CreateTask
pop {r0}
bx r0
._145:
.align 2, 0
._144:
.word debug_80C42B8+1
thumb_func_end debug_80C41F4
thumb_func_start debug_80C4214
debug_80C4214:
push {r4, r5, r6, lr}
bl debug_80C35DC
ldr r6, ._146 @ 0x4000040
mov r4, #0x0
strh r4, [r6]
ldr r5, ._146 + 4 @ 0x4000044
strh r4, [r5]
ldr r0, ._146 + 8 @ 0x4000042
strh r4, [r0]
add r0, r0, #0x4
strh r4, [r0]
ldr r1, ._146 + 12 @ 0x4000048
ldr r2, ._146 + 16 @ 0x1111
add r0, r2, #0
strh r0, [r1]
add r1, r1, #0x2
mov r0, #0x31
strh r0, [r1]
add r1, r1, #0x6
mov r0, #0xe1
strh r0, [r1]
ldr r0, ._146 + 20 @ 0x4000052
strh r4, [r0]
add r1, r1, #0x4
mov r0, #0x7
strh r0, [r1]
ldr r3, ._146 + 24 @ 0x4000208
ldrh r2, [r3]
strh r4, [r3]
ldr r4, ._146 + 28 @ 0x4000200
ldrh r0, [r4]
mov r1, #0x1
orr r0, r0, r1
strh r0, [r4]
strh r2, [r3]
ldr r0, ._146 + 32 @ debug_80C3758
bl SetVBlankCallback
ldr r0, ._146 + 36 @ debug_80C370C
bl SetMainCallback2
mov r1, #0x80
lsl r1, r1, #0x13
ldr r2, ._146 + 40 @ 0x7140
add r0, r2, #0
strh r0, [r1]
ldr r1, ._146 + 44 @ 0x1ef
add r0, r1, #0
strh r0, [r6]
ldr r2, ._146 + 48 @ 0x819f
add r0, r2, #0
strh r0, [r5]
pop {r4, r5, r6}
pop {r0}
bx r0
._147:
.align 2, 0
._146:
.word 0x4000040
.word 0x4000044
.word 0x4000042
.word 0x4000048
.word 0x1111
.word 0x4000052
.word 0x4000208
.word 0x4000200
.word debug_80C3758+1
.word debug_80C370C+1
.word 0x7140
.word 0x1ef
.word 0x819f
thumb_func_end debug_80C4214
thumb_func_start debug_80C42B8
debug_80C42B8:
push {r4, r5, lr}
add sp, sp, #0xffffffe4
lsl r0, r0, #0x18
lsr r5, r0, #0x18
ldr r1, ._150 @ gUnknown_Debug_083F8194
mov r0, sp
mov r2, #0xc
bl memcpy
add r4, sp, #0xc
ldr r1, ._150 + 4 @ gUnknown_Debug_083F81A0
add r0, r4, #0
mov r2, #0xd
bl memcpy
mov r0, #0x0
mov r1, #0x10
mov r2, #0x1d
mov r3, #0x13
bl Menu_DrawStdWindowFrame
mov r0, sp
mov r1, #0x1
mov r2, #0x11
bl Menu_PrintText
add r0, r4, #0
mov r1, #0x14
mov r2, #0x11
bl Menu_PrintText
bl debug_80C4694
bl debug_80C4704
ldr r0, ._150 + 8 @ gUnknown_Debug_2038A0C
ldrb r0, [r0]
cmp r0, #0
beq ._148 @cond_branch
ldr r0, ._150 + 12 @ gTasks
lsl r1, r5, #0x2
add r1, r1, r5
lsl r1, r1, #0x3
add r1, r1, r0
ldr r0, ._150 + 16 @ debug_80C44EC
b ._149
._151:
.align 2, 0
._150:
.word gUnknown_Debug_083F8194
.word gUnknown_Debug_083F81A0
.word gUnknown_Debug_2038A0C
.word gTasks
.word debug_80C44EC+1
._148:
ldr r0, ._152 @ gTasks
lsl r1, r5, #0x2
add r1, r1, r5
lsl r1, r1, #0x3
add r1, r1, r0
ldr r0, ._152 + 4 @ debug_80C4348
._149:
str r0, [r1]
add sp, sp, #0x1c
pop {r4, r5}
pop {r0}
bx r0
._153:
.align 2, 0
._152:
.word gTasks
.word debug_80C4348+1
thumb_func_end debug_80C42B8
thumb_func_start debug_80C4348
debug_80C4348:
push {r4, lr}
+155 -2
View File
@@ -18,16 +18,24 @@
#include "save.h"
#include "sound.h"
#include "pokedex.h"
#include "load_save.h"
EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 };
EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 };
EWRAM_DATA u8 gUnknown_Debug_2038A1C[4] = { 0 };
EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 };
u8 byte_3005E30[0x20];
u32 byte_3005E30;
void debug_80C3A50(u8 taskId);
void debug_80C3D2C(u8 taskId);
void debug_80C4214(u8);
void debug_80C42B8(u8 taskId);
void debug_80C4348(u8 taskId);
void debug_80C44EC(u8 taskId);
void debug_80C4694(void);
void debug_80C4704(void);
void debug_80C47BC(u8 taskId);
void debug_80C68CC(u16, u8, u8, u8);
extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶");
@@ -42,6 +50,8 @@ extern const u8 gUnknown_Debug_083F800C[13]; // = _("Aボタン▶そうさき
extern const u8 gUnknown_Debug_083F8019[9]; // = _("Bボタン▶やめる");
extern const u8 gUnknown_Debug_083F8022[6]; // = _("スタート:");
extern const u8 gUnknown_Debug_083F8028[6]; // = _(":セレクト");
extern const u8 gUnknown_Debug_083F8194[12]; // = _("ポケモンを えらんでね");
extern const u8 gUnknown_Debug_083F81A0[13]; // = _("{COLOR RED}START:つぎへ");
extern const struct SpriteSheet stru_83F8828[2];
extern const struct SpritePalette stru_83F8838[2];
@@ -209,7 +219,7 @@ u16 debug_80C38B4(u8 a0, u16 a1)
void debug_80C38E4(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4)
{
// u8 sp00[] = _("▶");
u8 sp00[2];
u8 sp00[sizeof(gUnknown_Debug_083F7FD4)];
memcpy(sp00, gUnknown_Debug_083F7FD4, ARRAY_COUNT(gUnknown_Debug_083F7FD4));
Menu_BlankWindowRect(a1, a2, a1, a3);
@@ -786,4 +796,147 @@ void debug_80C3D2C(u8 taskId)
}
}
void debug_80C405C(u8 * dest, u16 species)
{
u8 i;
for (i = 0; i < 10; i++)
dest[i] = CHAR_SPACE;
dest[i] = EOS;
dest[0] = CHAR_HYPHEN;
if (species != SPECIES_NONE)
{
for (i = 0; gSpeciesNames[species][i] != EOS && i < 10; i++)
dest[i] = gSpeciesNames[species][i];
}
}
void debug_80C40C4(bool8 who)
{
u8 i;
u16 maxHp;
for (i = 0; i < PARTY_SIZE; i++)
{
if (who)
{
struct Pokemon *pokemon = gEnemyParty + i;
if (GetMonData(pokemon, MON_DATA_SPECIES) != SPECIES_NONE)
{
CalculateMonStats(pokemon);
maxHp = GetMonData(pokemon, MON_DATA_MAX_HP);
SetMonData(pokemon, MON_DATA_HP, &maxHp);
}
}
else
{
struct Pokemon *pokemon = gPlayerParty + i;
if (GetMonData(pokemon, MON_DATA_SPECIES) != SPECIES_NONE)
{
CalculateMonStats(pokemon);
maxHp = GetMonData(pokemon, MON_DATA_MAX_HP);
SetMonData(pokemon, MON_DATA_HP, &maxHp);
}
}
}
}
void InitBattleForDebug(void)
{
SavePlayerParty();
gUnknown_Debug_2038A0C[13] = gSaveBlock2.playerGender;
gUnknown_Debug_2038A0C[0] = 0;
gUnknown_Debug_2038A0C[1] = 0;
gUnknown_Debug_2038A0C[2] = 0;
gUnknown_Debug_2038A0C[3] = 0;
gUnknown_Debug_2038A0C[4] = 0;
gUnknown_Debug_2038A0C[5] = 0;
gUnknown_Debug_2038A0C[6] = 0;
gUnknown_Debug_2038A0C[7] = 0;
gUnknown_Debug_2038A0C[8] = 0;
gUnknown_Debug_2038A0C[12] = 0;
byte_3005E30 = 0;
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
debug_80C4214(0);
CreateTask(debug_80C47BC, 0);
}
void debug_80C41A8(void)
{
gUnknown_Debug_2038A0C[1] = 0;
gUnknown_Debug_2038A0C[2] = 0;
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
debug_80C4214(0);
CreateTask(debug_80C47BC, 0);
}
void debug_80C41D4(void)
{
debug_80C40C4(0);
debug_80C4214(0);
CreateTask(debug_80C42B8, 0);
}
void debug_80C41F4(void)
{
debug_80C40C4(1);
debug_80C4214(1);
CreateTask(debug_80C42B8, 0);
}
void debug_80C4214(UNUSED u8 a0)
{
debug_80C35DC();
REG_WIN0H = 0;
REG_WIN0V = 0;
REG_WIN1H = 0;
REG_WIN1V = 0;
REG_WININ = 0x1111;
REG_WINOUT = 0x0031;
REG_BLDCNT = BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN;
REG_BLDALPHA = 0;
REG_BLDY = 7;
{
u16 imeBak = REG_IME;
REG_IME = 0;
REG_IE |= INTR_FLAG_VBLANK;
REG_IME = imeBak;
}
SetVBlankCallback(debug_80C3758);
SetMainCallback2(debug_80C370C);
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON;
REG_WIN0H = 0x01EF;
REG_WIN0V = 0x819F;
}
void debug_80C42B8(u8 taskId)
{
u8 sp00[sizeof(gUnknown_Debug_083F8194)];
u8 sp0c[sizeof(gUnknown_Debug_083F81A0)];
memcpy(sp00, gUnknown_Debug_083F8194, sizeof(gUnknown_Debug_083F8194));
memcpy(sp0c, gUnknown_Debug_083F81A0, sizeof(gUnknown_Debug_083F81A0));
// u8 sp00[] = _("ポケモンを えらんでね");
// u8 sp0c[] = _("{COLOR RED}START:つぎへ");
Menu_DrawStdWindowFrame(0, 16, 29, 19);
Menu_PrintText(sp00, 1, 17);
Menu_PrintText(sp0c, 20, 17);
debug_80C4694();
debug_80C4704();
if (gUnknown_Debug_2038A0C[0])
gTasks[taskId].func = debug_80C44EC;
else
gTasks[taskId].func = debug_80C4348;
}
#endif // DEBUG