summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-20 22:31:46 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-20 22:31:46 -0400
commitf2adb8e246e5d850c6fdf51e5ba113b13640888c (patch)
tree341ceb46980d1b5bae7ee2f6ffe5e1319e49afcf
parent1acdf9496c9757f002476b56ad0842fed335999d (diff)
through InitSeeTrainers
-rw-r--r--asm/watanabe_debug_menu.s240
-rw-r--r--src/debug/watanabe_debug_menu.c78
2 files changed, 78 insertions, 240 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s
index f78a2ff77..e7ae5d91f 100644
--- a/asm/watanabe_debug_menu.s
+++ b/asm/watanabe_debug_menu.s
@@ -5,246 +5,6 @@
.text
- thumb_func_start debug_80C7584
-debug_80C7584:
- push {r4, lr}
- add r2, r0, #0
- ldr r0, ._771 @ gUnknown_Debug_2038A20
- ldr r3, [r0]
- ldrb r1, [r3, #0x5]
- add r4, r0, #0
- cmp r1, #0
- beq ._766 @cond_branch
- mov r1, #0x2e
- ldsh r0, [r2, r1]
- cmp r0, #0x1
- beq ._767 @cond_branch
- cmp r0, #0x1
- ble ._768 @cond_branch
- cmp r0, #0x2
- beq ._769 @cond_branch
-._768:
- ldrb r0, [r3, #0xc]
- lsl r0, r0, #0x1b
- b ._773
-._772:
- .align 2, 0
-._771:
- .word gUnknown_Debug_2038A20
-._767:
- ldrh r0, [r3, #0xc]
- lsl r0, r0, #0x16
- b ._773
-._769:
- ldrb r0, [r3, #0xd]
- lsl r0, r0, #0x19
-._773:
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x2
- strh r0, [r2, #0x24]
- mov r1, #0x2e
- ldsh r0, [r2, r1]
- lsl r0, r0, #0x3
- strh r0, [r2, #0x26]
- ldrh r0, [r2, #0x30]
- add r3, r0, #1
- strh r3, [r2, #0x30]
- mov r0, #0x2e
- ldsh r1, [r2, r0]
- ldr r0, [r4]
- ldrb r0, [r0, #0xa]
- cmp r1, r0
- bne ._775 @cond_branch
- mov r0, #0x8
- and r3, r3, r0
- cmp r3, #0
- bne ._775 @cond_branch
-._766:
- add r0, r2, #0
- add r0, r0, #0x3e
- ldrb r1, [r0]
- mov r2, #0x4
- orr r1, r1, r2
- strb r1, [r0]
- b ._776
-._775:
- add r2, r2, #0x3e
- ldrb r1, [r2]
- mov r0, #0x5
- neg r0, r0
- and r0, r0, r1
- strb r0, [r2]
-._776:
- pop {r4}
- pop {r0}
- bx r0
-
- thumb_func_end debug_80C7584
-
- thumb_func_start InitSeeTrainers
-InitSeeTrainers:
- push {r4, r5, r6, lr}
- add sp, sp, #0xfffffffc
- bl debug_80C35DC
- ldr r1, ._777 @ byte_83F88EC
- ldr r2, ._777 + 4 @ 0x600e000
- ldr r0, ._777 + 8 @ 0x40000d4
- str r1, [r0]
- str r2, [r0, #0x4]
- ldr r1, ._777 + 12 @ 0x80000400
- str r1, [r0, #0x8]
- ldr r0, [r0, #0x8]
- ldr r0, ._777 + 16 @ word_83F888C
- mov r1, #0x80
- mov r2, #0x60
- bl LoadPalette
- mov r0, #0x1
- neg r0, r0
- mov r5, #0x0
- str r5, [sp]
- mov r1, #0x0
- mov r2, #0x10
- mov r3, #0x0
- bl BeginNormalPaletteFade
- ldr r0, ._777 + 20 @ 0x4000040
- mov r6, #0x0
- strh r5, [r0]
- add r0, r0, #0x4
- strh r5, [r0]
- sub r0, r0, #0x2
- strh r5, [r0]
- add r0, r0, #0x4
- strh r5, [r0]
- ldr r1, ._777 + 24 @ 0x4000048
- mov r0, #0x3f
- strh r0, [r1]
- add r1, r1, #0x2
- mov r0, #0x1f
- strh r0, [r1]
- add r1, r1, #0x6
- mov r0, #0xf1
- strh r0, [r1]
- ldr r0, ._777 + 28 @ 0x4000052
- strh r5, [r0]
- add r1, r1, #0x4
- mov r0, #0x7
- strh r0, [r1]
- ldr r3, ._777 + 32 @ 0x4000208
- ldrh r2, [r3]
- strh r5, [r3]
- ldr r4, ._777 + 36 @ 0x4000200
- ldrh r0, [r4]
- mov r1, #0x1
- orr r0, r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, ._777 + 40 @ debug_80C3758
- bl SetVBlankCallback
- ldr r0, ._777 + 44 @ debug_80C370C
- bl SetMainCallback2
- ldr r1, ._777 + 48 @ 0x4000008
- ldr r2, ._777 + 52 @ 0x1f0b
- add r0, r2, #0
- strh r0, [r1]
- add r1, r1, #0x2
- ldr r2, ._777 + 56 @ 0x1e0a
- add r0, r2, #0
- strh r0, [r1]
- sub r1, r1, #0xa
- mov r2, #0xcd
- lsl r2, r2, #0x6
- add r0, r2, #0
- strh r0, [r1]
- ldr r0, ._777 + 60 @ debug_80C777C
- mov r1, #0x0
- bl CreateTask
- ldr r1, ._777 + 64 @ gUnknown_Debug_2038A20
- ldr r0, ._777 + 68 @ 0x2018000
- str r0, [r1]
- strh r5, [r0]
- strb r6, [r0, #0x2]
- strb r6, [r0, #0x3]
- strb r6, [r0, #0x5]
- strb r6, [r0, #0x7]
- strb r6, [r0, #0xa]
- strb r6, [r0, #0x8]
- ldr r4, ._777 + 72 @ gSpriteTemplate_83F8874
- add r0, r4, #0
- mov r1, #0x6c
- mov r2, #0x74
- mov r3, #0x0
- bl CreateSprite
- add r1, r0, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- ldr r6, ._777 + 76 @ gSprites
- lsl r0, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x2
- add r0, r0, r6
- strh r5, [r0, #0x2e]
- mov r1, #0x0
- bl StartSpriteAnim
- add r0, r4, #0
- mov r1, #0x6c
- mov r2, #0x74
- mov r3, #0x0
- bl CreateSprite
- add r1, r0, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r0, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x2
- add r0, r0, r6
- mov r1, #0x1
- strh r1, [r0, #0x2e]
- bl StartSpriteAnim
- add r0, r4, #0
- mov r1, #0x6c
- mov r2, #0x74
- mov r3, #0x0
- bl CreateSprite
- add r1, r0, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r0, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x2
- add r0, r0, r6
- mov r1, #0x2
- strh r1, [r0, #0x2e]
- bl StartSpriteAnim
- add sp, sp, #0x4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-._778:
- .align 2, 0
-._777:
- .word byte_83F88EC
- .word 0x600e000
- .word 0x40000d4
- .word 0x80000400
- .word word_83F888C
- .word 0x4000040
- .word 0x4000048
- .word 0x4000052
- .word 0x4000208
- .word 0x4000200
- .word debug_80C3758+1
- .word debug_80C370C+1
- .word 0x4000008
- .word 0x1f0b
- .word 0x1e0a
- .word debug_80C777C+1
- .word gUnknown_Debug_2038A20
- .word 0x2018000
- .word gSpriteTemplate_83F8874
- .word gSprites
-
- thumb_func_end InitSeeTrainers
-
thumb_func_start debug_80C777C
debug_80C777C:
push {r4, r5, r6, r7, lr}
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c
index 697f97c4e..7bb182be8 100644
--- a/src/debug/watanabe_debug_menu.c
+++ b/src/debug/watanabe_debug_menu.c
@@ -140,6 +140,7 @@ void debug_80C71FC(u8 taskId);
void debug_80C7294(u8 taskId);
void debug_80C74E4(u8 taskId);
void debug_80C7584(struct Sprite *);
+void debug_80C777C(u8 taskId);
extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5];
extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F80D8[10];
@@ -2939,4 +2940,81 @@ void debug_80C74E4(u8 taskId)
gTasks[taskId].func = debug_80C7294;
}
+void debug_80C7584(struct Sprite *sprite)
+{
+ if (!gUnknown_Debug_2038A20->unk5)
+ sprite->invisible = TRUE;
+ else
+ {
+ u8 shade;
+ switch (sprite->data[0])
+ {
+ default:
+ case 0:
+ shade = gUnknown_Debug_2038A20->unkC.r;
+ break;
+ case 1:
+ shade = gUnknown_Debug_2038A20->unkC.g;
+ break;
+ case 2:
+ shade = gUnknown_Debug_2038A20->unkC.b;
+ break;
+ }
+ sprite->pos2.x = 4 * shade;
+ sprite->pos2.y = 8 * sprite->data[0];
+ sprite->data[1]++;
+ if (sprite->data[0] == gUnknown_Debug_2038A20->unkA && !(sprite->data[1] & 0x08))
+ sprite->invisible = TRUE;
+ else
+ sprite->invisible = FALSE;
+ }
+}
+
+void InitSeeTrainers(void)
+{
+ u8 spriteId;
+ debug_80C35DC();
+ DmaCopy16Defvars(3, byte_83F88EC, VRAM + 0xe000, 0x800);
+ LoadPalette(word_83F888C, 0x80, 0x60);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1H = 0;
+ REG_WIN1V = 0;
+ REG_WININ = 0x3F;
+ REG_WINOUT = 0x1F;
+ REG_BLDCNT = 0xF1;
+ 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_BG0CNT = 0x1F0B;
+ REG_BG1CNT = 0x1E0A;
+ REG_DISPCNT = 0x3340;
+ CreateTask(debug_80C777C, 0);
+ gUnknown_Debug_2038A20 = &eWatanabe18000_2;
+ gUnknown_Debug_2038A20->unk0 = 0;
+ gUnknown_Debug_2038A20->unk2 = 0;
+ gUnknown_Debug_2038A20->unk3 = 0;
+ gUnknown_Debug_2038A20->unk5 = 0;
+ gUnknown_Debug_2038A20->unk7 = 0;
+ gUnknown_Debug_2038A20->unkA = 0;
+ gUnknown_Debug_2038A20->unk8 = 0;
+ spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6c, 0x74, 0);
+ gSprites[spriteId].data[0] = 0;
+ StartSpriteAnim(gSprites + spriteId, 0);
+ spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6c, 0x74, 0);
+ gSprites[spriteId].data[0] = 1;
+ StartSpriteAnim(gSprites + spriteId, 1);
+ spriteId = CreateSprite(&gSpriteTemplate_83F8874, 0x6c, 0x74, 0);
+ gSprites[spriteId].data[0] = 2;
+ StartSpriteAnim(gSprites + spriteId, 2);
+}
+
#endif // DEBUG