diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-04-11 17:36:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-11 17:36:58 -0700 |
commit | fcb919c7cf56e0099f5aa2e455930e2eb080f90e (patch) | |
tree | b0e686b62f386a424ad34308facc3b1ab9677798 | |
parent | ba6f60e4674785e4442232d0dd55bf13b9dab228 (diff) | |
parent | 78bd32c68bc8f20b5d3aeb0d0dd694608fee62da (diff) |
Merge pull request #594 from PikalaxALT/taya
Taya debug window
-rw-r--r-- | asm/taya_debug_window.s | 2054 | ||||
-rw-r--r-- | data/debug_menu_taya.s | 219 | ||||
-rw-r--r-- | include/battle_setup.h | 2 | ||||
-rw-r--r-- | include/mauville_man.h | 2 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 1 | ||||
-rw-r--r-- | include/region_map.h | 1 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/debug/taya_debug_window.c | 1085 |
8 files changed, 1090 insertions, 2277 deletions
diff --git a/asm/taya_debug_window.s b/asm/taya_debug_window.s deleted file mode 100644 index 68d27390d..000000000 --- a/asm/taya_debug_window.s +++ /dev/null @@ -1,2054 +0,0 @@ -.if DEBUG - - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .text - - thumb_func_start TayaDebugMenu_Trend -TayaDebugMenu_Trend: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xffffffd8 - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1e - mov r3, #0xb - bl Menu_DrawStdWindowFrame - ldr r5, ._3 @ gSaveBlock1 - mov r7, #0x0 - mov r0, #0x1 - add r0, r0, sp - mov sl, r0 - mov r9, sp - mov r0, #0x0 - mov r8, r0 - add r6, sp, #0x20 -._2: - ldrb r1, [r5, #0x1] - mov r0, #0x40 - and r0, r0, r1 - mov r1, #0xa1 - cmp r0, #0 - beq ._1 @cond_branch - mov r1, #0xa2 -._1: - mov r0, r9 - strb r1, [r0] - ldrh r1, [r5, #0x4] - add r0, r6, #0 - bl EasyChat_GetWordText - mov r0, sl - add r1, r6, #0 - mov r2, #0x0 - mov r3, #0x7 - bl StringCopyPadded - add r4, r0, #0 - ldrh r1, [r5, #0x6] - add r0, r6, #0 - bl EasyChat_GetWordText - add r0, r4, #0 - add r1, r6, #0 - mov r2, #0x0 - mov r3, #0x8 - bl StringCopyPadded - add r4, r0, #0 - ldrb r1, [r5] - lsl r1, r1, #0x19 - lsr r1, r1, #0x19 - mov r2, #0x1 - mov r3, #0x3 - bl ConvertIntToDecimalStringN - add r4, r0, #0 - mov r0, r8 - strb r0, [r4] - add r4, r4, #0x1 - ldrh r1, [r5] - lsl r1, r1, #0x12 - lsr r1, r1, #0x19 - add r0, r4, #0 - mov r2, #0x1 - mov r3, #0x3 - bl ConvertIntToDecimalStringN - add r4, r0, #0 - mov r0, r8 - strb r0, [r4] - add r4, r4, #0x1 - ldrh r1, [r5, #0x2] - add r0, r4, #0 - mov r2, #0x1 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - lsl r2, r7, #0x1 - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r0, sp - mov r1, #0x1 - bl Menu_PrintText - add r5, r5, #0x8 - add r0, r7, #1 - lsl r0, r0, #0x10 - lsr r7, r0, #0x10 - cmp r7, #0x4 - bls ._2 @cond_branch - ldr r1, ._3 + 4 @ gMenuCallback - ldr r0, ._3 + 8 @ debug_sub_8090808 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x28 - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._4: - .align 2, 0 -._3: - .word gSaveBlock1+0x2dd4 - .word gMenuCallback - .word debug_sub_8090808+1 - - thumb_func_end TayaDebugMenu_Trend - - thumb_func_start debug_sub_8090808 -debug_sub_8090808: - push {lr} - ldr r0, ._7 @ gMain - ldrh r1, [r0, #0x2e] - mov r0, #0x3 - and r0, r0, r1 - cmp r0, #0 - bne ._5 @cond_branch - mov r0, #0x0 - b ._6 -._8: - .align 2, 0 -._7: - .word gMain -._5: - bl Menu_EraseScreen - bl CloseMenu - mov r0, #0x1 -._6: - pop {r1} - bx r1 - - thumb_func_end debug_sub_8090808 - - thumb_func_start TayaDebugMenu_TrendR -TayaDebugMenu_TrendR: - push {r4, r5, r6, r7, lr} - mov r0, #0x0 - ldr r7, ._11 @ gSaveBlock1 -._10: - mov r4, #0x0 - lsl r5, r0, #0x3 - add r6, r0, #1 -._9: - bl Random - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x16 - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl sub_80EB72C - lsl r1, r4, #0x1 - add r1, r1, r5 - add r1, r1, r7 - strh r0, [r1] - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x1 - bls ._9 @cond_branch - lsl r0, r6, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0x4 - bls ._10 @cond_branch - bl Menu_EraseScreen - bl CloseMenu - mov r0, #0x1 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._12: - .align 2, 0 -._11: - .word gSaveBlock1+0x2dd8 - - thumb_func_end TayaDebugMenu_TrendR - - thumb_func_start debug_sub_8090880 -debug_sub_8090880: - push {lr} - bl UpdatePaletteFade - lsl r0, r0, #0x18 - cmp r0, #0 - beq ._13 @cond_branch - mov r0, #0x0 - b ._14 -._13: - bl sub_80E60D8 - mov r0, #0x1 -._14: - pop {r1} - bx r1 - - thumb_func_end debug_sub_8090880 - - thumb_func_start debug_sub_809089C -debug_sub_809089C: - push {lr} - bl Menu_ProcessInput - lsl r0, r0, #0x18 - asr r1, r0, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r1, r0 - beq ._15 @cond_branch - add r0, r0, #0x1 - cmp r1, r0 - bne ._16 @cond_branch - bl CloseMenu - mov r0, #0x1 - b ._17 -._16: - ldr r2, ._19 @ gSpecialVar_0x8004 - ldr r0, ._19 + 4 @ gUnknown_Debug_083C4EC0 - lsl r1, r1, #0x3 - add r0, r0, #0x4 - add r1, r1, r0 - ldr r0, [r1] - strh r0, [r2] - ldrh r0, [r2] - sub r0, r0, #0x5 - cmp r0, #0x7 - bhi ._27 @cond_branch - lsl r0, r0, #0x2 - ldr r1, ._19 + 8 @ - add r0, r0, r1 - ldr r0, [r0] - mov pc, r0 -._20: - .align 2, 0 -._19: - .word gSpecialVar_0x8004 - .word gUnknown_Debug_083C4EC0 - .word ._21 -._21: - .word ._29 - .word ._27 - .word ._29 - .word ._29 - .word ._27 - .word ._27 - .word ._29 - .word ._29 -._29: - ldr r0, ._30 @ gSpecialVar_0x8005 - mov r1, #0x0 - strh r1, [r0] - ldr r0, ._30 + 4 @ gSpecialVar_0x8006 - strh r1, [r0] -._27: - mov r0, #0x1 - mov r1, #0x0 - bl FadeScreen - ldr r1, ._30 + 8 @ gMenuCallback - ldr r0, ._30 + 12 @ debug_sub_8090880 - str r0, [r1] -._15: - mov r0, #0x0 -._17: - pop {r1} - bx r1 -._31: - .align 2, 0 -._30: - .word gSpecialVar_0x8005 - .word gSpecialVar_0x8006 - .word gMenuCallback - .word debug_sub_8090880+1 - - thumb_func_end debug_sub_809089C - - thumb_func_start TayaDebugMenu_SimpleText -TayaDebugMenu_SimpleText: - push {lr} - add sp, sp, #0xfffffff8 - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xc - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r3, ._32 @ gUnknown_Debug_083C4EC0 - mov r0, #0x1 - mov r1, #0x1 - mov r2, #0x9 - bl Menu_PrintItems - mov r0, #0x0 - str r0, [sp] - mov r0, #0xb - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0x9 - bl InitMenu - ldr r1, ._32 + 4 @ gMenuCallback - ldr r0, ._32 + 8 @ debug_sub_809089C - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._33: - .align 2, 0 -._32: - .word gUnknown_Debug_083C4EC0 - .word gMenuCallback - .word debug_sub_809089C+1 - - thumb_func_end TayaDebugMenu_SimpleText - - thumb_func_start debug_sub_8090984 -debug_sub_8090984: - push {r4, r5, r6, r7, lr} - bl Menu_ProcessInput - lsl r2, r0, #0x18 - asr r1, r2, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r1, r0 - beq ._34 @cond_branch - add r0, r0, #0x1 - cmp r1, r0 - beq ._46 @cond_branch - cmp r1, #0x4 - bgt ._36 @cond_branch - lsr r0, r2, #0x18 - bl debug_sub_810B32C - b ._46 -._34: - mov r0, #0x0 - b ._38 -._36: - cmp r1, #0x5 - bne ._39 @cond_branch - bl sub_80F7F30 - b ._46 -._39: - cmp r1, #0x6 - bne ._41 @cond_branch - mov r4, #0x0 - ldr r0, ._44 @ gSaveBlock1 - add r1, r0, #2 - mov ip, r1 - ldr r7, ._44 + 4 @ gUnknown_Debug_083C4F08 - ldr r1, ._44 + 8 @ 0xfffffd94 - add r6, r0, r1 - add r5, r0, #0 - add r5, r5, #0xe -._42: - lsl r1, r4, #0x1 - mov r0, ip - add r3, r1, r0 - add r0, r1, r7 - ldrh r2, [r0] - strh r2, [r3] - add r0, r1, r5 - strh r2, [r0] - add r1, r6, r1 - strh r2, [r1] - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x2 - bls ._42 @cond_branch - b ._46 -._45: - .align 2, 0 -._44: - .word gSaveBlock1+0x2d94 - .word gUnknown_Debug_083C4F08 - .word 0xfffffd94 -._41: - cmp r1, #0x7 - bne ._46 @cond_branch - mov r4, #0x0 -._47: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - bl sub_80EB890 - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x20 - bls ._47 @cond_branch -._46: - bl CloseMenu - mov r0, #0x1 -._38: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_end debug_sub_8090984 - - thumb_func_start TayaDebugMenu_OldMan -TayaDebugMenu_OldMan: - push {lr} - add sp, sp, #0xfffffff8 - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xa - mov r3, #0x11 - bl Menu_DrawStdWindowFrame - ldr r3, ._48 @ gUnknown_Debug_083C4F54 - mov r0, #0x1 - mov r1, #0x1 - mov r2, #0x8 - bl Menu_PrintItems - bl GetCurrentMauvilleOldMan - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - mov r0, #0x9 - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0x8 - bl InitMenu - ldr r1, ._48 + 4 @ gMenuCallback - ldr r0, ._48 + 8 @ debug_sub_8090984 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._49: - .align 2, 0 -._48: - .word gUnknown_Debug_083C4F54 - .word gMenuCallback - .word debug_sub_8090984+1 - - thumb_func_end TayaDebugMenu_OldMan - - thumb_func_start TayaDebugMenu_LanettesPC -TayaDebugMenu_LanettesPC: - push {lr} - bl Menu_EraseScreen - bl ShowPokemonStorageSystem - mov r0, #0x1 - pop {r1} - bx r1 - - thumb_func_end TayaDebugMenu_LanettesPC - - thumb_func_start TayaDebugMenu_TownFlags -TayaDebugMenu_TownFlags: - push {lr} - ldr r0, ._50 @ 0x80f - bl FlagSet - mov r0, #0x81 - lsl r0, r0, #0x4 - bl FlagSet - ldr r0, ._50 + 4 @ 0x811 - bl FlagSet - ldr r0, ._50 + 8 @ 0x812 - bl FlagSet - ldr r0, ._50 + 12 @ 0x813 - bl FlagSet - ldr r0, ._50 + 16 @ 0x814 - bl FlagSet - ldr r0, ._50 + 20 @ 0x815 - bl FlagSet - ldr r0, ._50 + 24 @ 0x816 - bl FlagSet - ldr r0, ._50 + 28 @ 0x817 - bl FlagSet - ldr r0, ._50 + 32 @ 0x818 - bl FlagSet - ldr r0, ._50 + 36 @ 0x819 - bl FlagSet - ldr r0, ._50 + 40 @ 0x81a - bl FlagSet - ldr r0, ._50 + 44 @ 0x81b - bl FlagSet - ldr r0, ._50 + 48 @ 0x81c - bl FlagSet - ldr r0, ._50 + 52 @ 0x81d - bl FlagSet - ldr r0, ._50 + 56 @ 0x81e - bl FlagSet - ldr r0, ._50 + 60 @ 0x848 - bl FlagSet - ldr r0, ._50 + 64 @ 0x849 - bl FlagSet - ldr r0, ._50 + 68 @ 0x84a - bl FlagSet - ldr r0, ._50 + 72 @ 0x854 - bl FlagSet - ldr r0, ._50 + 76 @ 0x855 - bl FlagSet - ldr r0, ._50 + 80 @ 0x856 - bl FlagSet - ldr r0, ._50 + 84 @ 0x857 - bl FlagSet - ldr r0, ._50 + 88 @ 0x858 - bl FlagSet - ldr r0, ._50 + 92 @ 0x859 - bl FlagSet - ldr r0, ._50 + 96 @ 0x85a - bl FlagSet - ldr r0, ._50 + 100 @ 0x85b - bl FlagSet - ldr r0, ._50 + 104 @ 0x85c - bl FlagSet - ldr r0, ._50 + 108 @ 0x83c - bl FlagSet - ldr r0, ._50 + 112 @ 0x83d - bl FlagSet - ldr r0, ._50 + 116 @ 0x83e - bl FlagSet - ldr r0, ._50 + 120 @ 0x83f - bl FlagSet - mov r0, #0x84 - lsl r0, r0, #0x4 - bl FlagSet - ldr r0, ._50 + 124 @ 0x841 - bl FlagSet - ldr r0, ._50 + 128 @ 0x842 - bl FlagSet - ldr r0, ._50 + 132 @ 0x843 - bl FlagSet - ldr r0, ._50 + 136 @ 0x844 - bl FlagSet - ldr r0, ._50 + 140 @ 0x845 - bl FlagSet - ldr r0, ._50 + 144 @ 0x846 - bl FlagSet - ldr r0, ._50 + 148 @ 0x847 - bl FlagSet - ldr r0, ._50 + 152 @ 0x83b - bl FlagSet - bl CloseMenu - mov r0, #0x1 - pop {r1} - bx r1 -._51: - .align 2, 0 -._50: - .word 0x80f - .word 0x811 - .word 0x812 - .word 0x813 - .word 0x814 - .word 0x815 - .word 0x816 - .word 0x817 - .word 0x818 - .word 0x819 - .word 0x81a - .word 0x81b - .word 0x81c - .word 0x81d - .word 0x81e - .word 0x848 - .word 0x849 - .word 0x84a - .word 0x854 - .word 0x855 - .word 0x856 - .word 0x857 - .word 0x858 - .word 0x859 - .word 0x85a - .word 0x85b - .word 0x85c - .word 0x83c - .word 0x83d - .word 0x83e - .word 0x83f - .word 0x841 - .word 0x842 - .word 0x843 - .word 0x844 - .word 0x845 - .word 0x846 - .word 0x847 - .word 0x83b - - thumb_func_end TayaDebugMenu_TownFlags - - thumb_func_start TayaDebugMenu_AwardARibbon -TayaDebugMenu_AwardARibbon: - push {lr} - mov r0, #0x1 - neg r0, r0 - mov r1, #0x10 - mov r2, #0x0 - bl BlendPalettes - ldr r0, ._52 @ debug_sub_80915BC - bl SetMainCallback2 - bl CloseMenu - mov r0, #0x1 - pop {r1} - bx r1 -._53: - .align 2, 0 -._52: - .word debug_sub_80915BC+1 - - thumb_func_end TayaDebugMenu_AwardARibbon - - thumb_func_start debug_sub_8090C44 -debug_sub_8090C44: - push {r4, r5, lr} - ldr r4, ._54 @ gSharedMem - sub r5, r4, #1 - ldrh r1, [r5, #0x8] - add r0, r4, #0 - mov r2, #0x2 - mov r3, #0x5 - bl ConvertIntToDecimalStringN - add r0, r4, #0 - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - add r0, r4, #0 - mov r1, #0x0 - mov r2, #0x5 - bl StringFill - ldrb r0, [r5] - add r0, r0, r4 - mov r1, #0x79 - strb r1, [r0] - add r0, r4, #0 - mov r1, #0x1 - mov r2, #0x3 - bl Menu_PrintText - pop {r4, r5} - pop {r0} - bx r0 -._55: - .align 2, 0 -._54: - .word gSharedMem+1 - - thumb_func_end debug_sub_8090C44 - - thumb_func_start debug_sub_8090C88 -debug_sub_8090C88: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - add sp, sp, #0xfffffffc - mov r0, #0x1 - mov r8, r0 - ldr r2, ._59 @ gMain - ldrh r1, [r2, #0x2e] - mov r0, #0x20 - and r0, r0, r1 - add r3, r2, #0 - cmp r0, #0 - beq ._57 @cond_branch - ldr r1, ._59 + 4 @ gSharedMem - ldrb r0, [r1] - cmp r0, #0 - beq ._57 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1] - b ._62 -._60: - .align 2, 0 -._59: - .word gMain - .word gSharedMem -._67: - add r0, r0, #0x1 - strb r0, [r1] - b ._62 -._77: - strh r1, [r7, #0x8] - b ._62 -._79: - ldr r0, ._64 @ gSharedMem - ldrh r0, [r0, #0x8] - bl SetLotteryNumber16_Unused -._78: - bl CloseMenu - mov r0, #0x1 - b ._63 -._65: - .align 2, 0 -._64: - .word gSharedMem -._57: - ldrh r1, [r3, #0x2e] - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._66 @cond_branch - ldr r1, ._81 @ gSharedMem - ldrb r0, [r1] - cmp r0, #0x3 - bls ._67 @cond_branch -._66: - ldrh r1, [r3, #0x30] - mov r0, #0x40 - and r0, r0, r1 - cmp r0, #0 - beq ._68 @cond_branch - ldr r0, ._81 @ gSharedMem - ldrh r1, [r0, #0x8] - str r1, [r0, #0xc] - ldr r1, ._81 + 4 @ 0x2710 - strh r1, [r0, #0x10] - mov r4, #0x0 - ldrb r1, [r0] - add r7, r0, #0 - cmp r4, r1 - bcs ._69 @cond_branch - add r5, r7, #0 - add r6, r1, #0 -._70: - ldrh r0, [r5, #0x10] - mov r1, #0xa - str r3, [sp] - bl __udivsi3 - strh r0, [r5, #0x10] - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r3, [sp] - cmp r4, r6 - bcc ._70 @cond_branch -._69: - ldrh r1, [r7, #0x10] - ldr r0, [r7, #0xc] - add r0, r0, r1 - str r0, [r7, #0xc] - ldr r1, ._81 + 8 @ 0xffff - cmp r0, r1 - ble ._71 @cond_branch - str r1, [r7, #0xc] -._71: - ldrh r0, [r7, #0x8] - ldr r1, [r7, #0xc] - cmp r0, r1 - bne ._77 @cond_branch -._68: - ldrh r1, [r3, #0x30] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._73 @cond_branch - ldr r0, ._81 @ gSharedMem - ldrh r1, [r0, #0x8] - str r1, [r0, #0xc] - ldr r1, ._81 + 4 @ 0x2710 - strh r1, [r0, #0x10] - mov r4, #0x0 - ldrb r1, [r0] - add r7, r0, #0 - cmp r4, r1 - bcs ._74 @cond_branch - add r5, r7, #0 - add r6, r1, #0 -._75: - ldrh r0, [r5, #0x10] - mov r1, #0xa - str r3, [sp] - bl __udivsi3 - strh r0, [r5, #0x10] - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - ldr r3, [sp] - cmp r4, r6 - bcc ._75 @cond_branch -._74: - add r2, r7, #0 - ldrh r1, [r2, #0x10] - ldr r0, [r2, #0xc] - sub r0, r0, r1 - str r0, [r2, #0xc] - cmp r0, #0 - bge ._76 @cond_branch - mov r0, #0x0 - str r0, [r2, #0xc] -._76: - ldrh r0, [r2, #0x8] - ldr r1, [r2, #0xc] - cmp r0, r1 - bne ._77 @cond_branch -._73: - ldrh r2, [r3, #0x2e] - mov r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - bne ._78 @cond_branch - mov r0, #0x1 - and r0, r0, r2 - cmp r0, #0 - bne ._79 @cond_branch - mov r0, #0x0 - mov r8, r0 -._62: - mov r0, r8 - cmp r0, #0 - beq ._80 @cond_branch - bl debug_sub_8090C44 -._80: - mov r0, #0x0 -._63: - add sp, sp, #0x4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._82: - .align 2, 0 -._81: - .word gSharedMem - .word 0x2710 - .word 0xffff - - thumb_func_end debug_sub_8090C88 - - thumb_func_start TayaDebugMenu_PKMNLottery -TayaDebugMenu_PKMNLottery: - push {lr} - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x6 - mov r3, #0x5 - bl Menu_DrawStdWindowFrame - bl RetrieveLotteryNumber - ldr r2, ._83 @ gSharedMem - ldr r0, ._83 + 4 @ gSpecialVar_Result - ldrh r0, [r0] - mov r1, #0x0 - strh r0, [r2, #0x8] - strb r1, [r2] - bl debug_sub_8090C44 - ldr r1, ._83 + 8 @ gMenuCallback - ldr r0, ._83 + 12 @ debug_sub_8090C88 - str r0, [r1] - mov r0, #0x0 - pop {r1} - bx r1 -._84: - .align 2, 0 -._83: - .word gSharedMem - .word gSpecialVar_Result - .word gMenuCallback - .word debug_sub_8090C88+1 - - thumb_func_end TayaDebugMenu_PKMNLottery - - thumb_func_start TayaDebugMenu_Trainer -TayaDebugMenu_Trainer: - push {r4, r5, lr} - mov r4, #0x0 - ldr r5, ._86 @ gTrainerEyeTrainers -._85: - lsl r0, r4, #0x4 - add r0, r0, r5 - ldrh r0, [r0] - bl SetTrainerFlag - add r0, r4, #1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x37 - bls ._85 @cond_branch - ldr r0, ._86 + 4 @ 0x109 - bl SetTrainerFlag - mov r0, #0x85 - lsl r0, r0, #0x1 - bl SetTrainerFlag - ldr r0, ._86 + 8 @ 0x10b - bl SetTrainerFlag - mov r0, #0x86 - lsl r0, r0, #0x1 - bl SetTrainerFlag - ldr r0, ._86 + 12 @ 0x10d - bl SetTrainerFlag - mov r0, #0x87 - lsl r0, r0, #0x1 - bl SetTrainerFlag - ldr r0, ._86 + 16 @ 0x10f - bl SetTrainerFlag - mov r0, #0x88 - lsl r0, r0, #0x1 - bl SetTrainerFlag - ldr r0, ._86 + 20 @ 0x105 - bl SetTrainerFlag - mov r0, #0x83 - lsl r0, r0, #0x1 - bl SetTrainerFlag - ldr r0, ._86 + 24 @ 0x107 - bl SetTrainerFlag - mov r0, #0x84 - lsl r0, r0, #0x1 - bl SetTrainerFlag - ldr r0, ._86 + 28 @ 0x14f - bl SetTrainerFlag - bl CloseMenu - mov r0, #0x1 - pop {r4, r5} - pop {r1} - bx r1 -._87: - .align 2, 0 -._86: - .word gTrainerEyeTrainers - .word 0x109 - .word 0x10b - .word 0x10d - .word 0x10f - .word 0x105 - .word 0x107 - .word 0x14f - - thumb_func_end TayaDebugMenu_Trainer - - thumb_func_start TayaDebugMenu_PokenavD -TayaDebugMenu_PokenavD: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xffffffe4 - bl Menu_DisplayDialogueFrame - mov r0, #0x0 - mov sl, r0 - mov r6, #0x1 - mov r7, #0xff - mov r1, #0x3 - mov r9, r1 -._93: - ldr r4, ._94 @ gSharedMem - add r0, r4, #0 - ldr r1, ._94 + 4 @ gUnknown_Debug_083C4F94 - bl StringCopy - mov r5, sl - add r5, r5, #0x1 - add r1, r5, r4 - mov r0, #0xff - strb r0, [r1] - add r0, r4, #0 - mov r1, #0x2 - mov r2, #0xf - bl Menu_PrintText - mov r0, #0x0 - mov r8, r0 - str r5, [sp, #0x14] - mov r1, sl - lsl r1, r1, #0x2 - str r1, [sp, #0x18] -._91: - bl Random - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r0, r0, #0x1 - str r0, [sp, #0x10] - bl Random - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x64 - bl __umodsi3 - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - bl Random - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0xc1 - lsl r1, r1, #0x1 - bl __umodsi3 - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - cmp r3, #0xfb - bls ._89 @cond_branch - add r0, r3, #0 - add r0, r0, #0x19 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - ldr r0, ._94 + 8 @ 0x19b - cmp r3, r0 - bls ._89 @cond_branch - mov r3, #0x1 -._89: - ldr r0, [sp, #0x18] - add r0, r0, sl - lsl r4, r0, #0x4 - sub r4, r4, r0 - lsl r4, r4, #0x5 - mov r1, r8 - lsl r0, r1, #0x2 - add r0, r0, r8 - lsl r0, r0, #0x4 - ldr r1, ._94 + 12 @ gPokemonStorage - add r0, r0, r1 - add r4, r4, r0 - lsl r2, r5, #0x18 - lsr r2, r2, #0x18 - mov r0, #0x0 - str r0, [sp] - str r0, [sp, #0x4] - str r6, [sp, #0x8] - ldr r0, [sp, #0x10] - str r0, [sp, #0xc] - add r0, r4, #0 - add r1, r3, #0 - mov r3, #0x20 - bl CreateBoxMon - bl Random - add r1, r7, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x16 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r7, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x17 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r7, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x18 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r7, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x21 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r7, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x2f - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r7, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x30 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - mov r1, r9 - and r1, r1, r0 - add r1, r1, #0x1 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x32 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - mov r1, r9 - and r1, r1, r0 - add r1, r1, #0x1 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x33 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - mov r1, r9 - and r1, r1, r0 - add r1, r1, #0x1 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x34 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - mov r1, r9 - and r1, r1, r0 - add r1, r1, #0x1 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x36 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - mov r1, r9 - and r1, r1, r0 - add r1, r1, #0x1 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x35 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x43 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x44 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x45 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x46 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x47 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x48 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x49 - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x4a - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x4b - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x4c - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x4d - add r2, sp, #0x10 - bl SetBoxMonData - bl Random - add r1, r6, #0 - and r1, r1, r0 - str r1, [sp, #0x10] - add r0, r4, #0 - mov r1, #0x4e - add r2, sp, #0x10 - bl SetBoxMonData - mov r0, r8 - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r8, r0 - cmp r0, #0x1d - bhi ._90 @cond_branch - b ._91 -._90: - ldr r1, [sp, #0x14] - lsl r0, r1, #0x10 - lsr r0, r0, #0x10 - mov sl, r0 - cmp r0, #0xd - bhi ._92 @cond_branch - b ._93 -._92: - bl TayaDebugMenu_TownFlags - bl TayaDebugMenu_Trainer - bl CloseMenu - mov r0, #0x1 - add sp, sp, #0x1c - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._95: - .align 2, 0 -._94: - .word gSharedMem - .word gUnknown_Debug_083C4F94 - .word 0x19b - .word gPokemonStorage+0x4 - - thumb_func_end TayaDebugMenu_PokenavD - - thumb_func_start TayaDebugMenu_8091190 -TayaDebugMenu_8091190: - push {r4, r5, lr} - add sp, sp, #0xfffffff8 - bl Menu_ProcessInput - lsl r0, r0, #0x18 - asr r3, r0, #0x18 - mov r0, #0x2 - neg r0, r0 - cmp r3, r0 - beq ._96 @cond_branch - add r0, r0, #0x1 - cmp r3, r0 - beq ._97 @cond_branch - ldr r2, ._99 @ gMenuCallback - ldr r1, ._99 + 4 @ gUnknown_Debug_83C5068 - ldr r0, ._99 + 8 @ unk_2030224 - ldrb r0, [r0] - lsl r0, r0, #0x18 - asr r0, r0, #0x18 - lsl r0, r0, #0x3 - add r0, r0, r1 - ldr r1, [r0] - lsl r0, r3, #0x3 - add r0, r0, r1 - ldr r0, [r0, #0x4] - str r0, [r2] -._106: - mov r0, #0x0 - b ._98 -._100: - .align 2, 0 -._99: - .word gMenuCallback - .word gUnknown_Debug_83C5068 - .word unk_2030224 -._96: - ldr r3, ._107 @ unk_2030224 - ldrb r4, [r3] - ldr r2, ._107 + 4 @ gMain - ldrh r1, [r2, #0x2e] - mov r0, #0x20 - and r0, r0, r1 - add r5, r3, #0 - cmp r0, #0 - beq ._102 @cond_branch - sub r0, r4, #1 - strb r0, [r5] - lsl r0, r0, #0x18 - cmp r0, #0 - bge ._102 @cond_branch - mov r0, #0x1 - strb r0, [r5] -._102: - ldrh r1, [r2, #0x2e] - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._104 @cond_branch - ldrb r0, [r5] - add r0, r0, #0x1 - strb r0, [r5] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - bls ._104 @cond_branch - mov r0, #0x0 - strb r0, [r5] -._104: - lsl r0, r4, #0x18 - asr r0, r0, #0x18 - mov r1, #0x0 - ldrsb r1, [r5, r1] - cmp r0, r1 - beq ._106 @cond_branch - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xb - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r4, ._107 + 8 @ gUnknown_Debug_83C5068 - mov r0, #0x0 - ldrsb r0, [r5, r0] - lsl r0, r0, #0x3 - add r0, r0, r4 - ldrb r2, [r0, #0x4] - ldr r3, [r0] - mov r0, #0x1 - mov r1, #0x1 - bl Menu_PrintItems - mov r0, #0x0 - ldrsb r0, [r5, r0] - lsl r0, r0, #0x3 - add r0, r0, r4 - ldrb r3, [r0, #0x4] - mov r0, #0x0 - str r0, [sp] - mov r0, #0xa - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - bl InitMenu - b ._106 -._108: - .align 2, 0 -._107: - .word unk_2030224 - .word gMain - .word gUnknown_Debug_83C5068 -._97: - bl CloseMenu - mov r0, #0x1 -._98: - add sp, sp, #0x8 - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_end TayaDebugMenu_8091190 - - thumb_func_start InitTayaDebugWindow -InitTayaDebugWindow: - push {lr} - add sp, sp, #0xfffffff8 - ldr r1, ._109 @ unk_2030224 - mov r0, #0x0 - strb r0, [r1] - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0xb - mov r3, #0x13 - bl Menu_DrawStdWindowFrame - ldr r0, ._109 + 4 @ gUnknown_Debug_83C5068 - ldr r3, [r0] - mov r0, #0x1 - mov r1, #0x1 - mov r2, #0x9 - bl Menu_PrintItems - mov r0, #0x0 - str r0, [sp] - mov r0, #0xa - str r0, [sp, #0x4] - mov r0, #0x0 - mov r1, #0x1 - mov r2, #0x1 - mov r3, #0x9 - bl InitMenu - ldr r1, ._109 + 8 @ gMenuCallback - ldr r0, ._109 + 12 @ TayaDebugMenu_8091190 - str r0, [r1] - mov r0, #0x0 - add sp, sp, #0x8 - pop {r1} - bx r1 -._110: - .align 2, 0 -._109: - .word unk_2030224 - .word gUnknown_Debug_83C5068 - .word gMenuCallback - .word TayaDebugMenu_8091190+1 - - thumb_func_end InitTayaDebugWindow - - thumb_func_start debug_sub_80912D8 -debug_sub_80912D8: - push {lr} - ldr r0, ._113 @ gPaletteFade - ldrb r1, [r0, #0x7] - mov r0, #0x80 - and r0, r0, r1 - cmp r0, #0 - beq ._111 @cond_branch - mov r0, #0x0 - b ._112 -._114: - .align 2, 0 -._113: - .word gPaletteFade -._111: - ldr r0, ._115 @ debug_sub_8110F28 - bl SetMainCallback2 - mov r0, #0x1 -._112: - pop {r1} - bx r1 -._116: - .align 2, 0 -._115: - .word debug_sub_8110F28+1 - - thumb_func_end debug_sub_80912D8 - - thumb_func_start debug_sub_8091300 -debug_sub_8091300: - push {lr} - mov r0, #0x1 - mov r1, #0x0 - bl FadeScreen - ldr r1, ._117 @ gMenuCallback - ldr r0, ._117 + 4 @ debug_sub_80912D8 - str r0, [r1] - mov r0, #0x0 - pop {r1} - bx r1 -._118: - .align 2, 0 -._117: - .word gMenuCallback - .word debug_sub_80912D8+1 - - thumb_func_end debug_sub_8091300 - - thumb_func_start debug_sub_8091320 -debug_sub_8091320: - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - - thumb_func_end debug_sub_8091320 - - thumb_func_start debug_sub_8091334 -debug_sub_8091334: - push {r4, r5, r6, r7, lr} - mov r7, r9 - mov r6, r8 - push {r6, r7} - bl AnimateSprites - bl BuildOamBuffer - ldr r3, ._123 @ gSharedMem - add r0, r3, #0 - add r0, r0, #0x52 - ldrb r4, [r0] - cmp r4, #0 - beq ._119 @cond_branch - cmp r4, #0x1 - bne ._120 @cond_branch - b ._121 -._120: - b ._162 -._124: - .align 2, 0 -._123: - .word gSharedMem -._119: - add r5, r3, #0 - add r5, r5, #0x55 - strb r4, [r5] - ldr r2, ._131 @ gMain - ldrh r1, [r2, #0x2e] - mov r0, #0x40 - and r0, r0, r1 - mov r9, r2 - cmp r0, #0 - beq ._126 @cond_branch - add r1, r3, #0 - add r1, r1, #0x54 - ldrb r0, [r1] - cmp r0, #0 - beq ._126 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1] - mov r0, #0x1 - strb r0, [r5] -._126: - mov r0, r9 - ldrh r1, [r0, #0x2e] - mov r0, #0x80 - and r0, r0, r1 - ldr r5, ._131 + 4 @ gSharedMem - cmp r0, #0 - beq ._133 @cond_branch - add r0, r5, #0 - add r0, r0, #0x53 - ldrb r0, [r0] - cmp r0, #0x2 - beq ._128 @cond_branch - add r1, r5, #0 - add r1, r1, #0x54 - ldrb r0, [r1] - cmp r0, #0x4 - bhi ._133 @cond_branch - b ._130 -._132: - .align 2, 0 -._131: - .word gMain - .word gSharedMem -._128: - add r1, r5, #0 - add r1, r1, #0x54 - ldrb r0, [r1] - cmp r0, #0x3 - bhi ._133 @cond_branch -._130: - add r0, r0, #0x1 - strb r0, [r1] - add r1, r1, #0x1 - mov r0, #0x1 - strb r0, [r1] -._133: - mov r2, r9 - ldrh r1, [r2, #0x2e] - mov r0, #0x20 - and r0, r0, r1 - cmp r0, #0 - beq ._135 @cond_branch - add r1, r5, #0 - add r1, r1, #0x53 - ldrb r0, [r1] - cmp r0, #0 - beq ._135 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1] - add r1, r1, #0x2 - mov r0, #0x1 - strb r0, [r1] -._135: - mov r3, r9 - ldrh r1, [r3, #0x2e] - mov r0, #0x10 - and r0, r0, r1 - cmp r0, #0 - beq ._140 @cond_branch - add r0, r5, #0 - add r0, r0, #0x54 - ldrb r0, [r0] - cmp r0, #0x5 - beq ._137 @cond_branch - add r1, r5, #0 - add r1, r1, #0x53 - ldrb r0, [r1] - cmp r0, #0x1 - bhi ._140 @cond_branch - b ._139 -._137: - add r1, r5, #0 - add r1, r1, #0x53 - ldrb r0, [r1] - cmp r0, #0 - bne ._140 @cond_branch -._139: - add r0, r0, #0x1 - strb r0, [r1] - add r1, r1, #0x2 - mov r0, #0x1 - strb r0, [r1] -._140: - add r0, r5, #0 - add r0, r0, #0x55 - ldrb r0, [r0] - cmp r0, #0 - bne ._141 @cond_branch - mov r0, r9 - ldrh r2, [r0, #0x2e] - mov r0, #0x1 - and r0, r0, r2 - cmp r0, #0 - beq ._142 @cond_branch - ldr r2, ._145 @ gUnknown_Debug_083C50EC - add r3, r5, #0 - add r3, r3, #0x53 - add r0, r5, #0 - add r0, r0, #0x54 - ldrb r1, [r0] - lsl r0, r1, #0x1 - add r0, r0, r1 - ldrb r3, [r3] - add r0, r0, r3 - lsl r0, r0, #0x3 - add r0, r0, r2 - ldrh r0, [r0, #0x4] - sub r0, r0, #0x32 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0x4 - bhi ._143 @cond_branch - add r1, r5, #0 - add r1, r1, #0x56 - mov r0, #0x4 - b ._144 -._146: - .align 2, 0 -._145: - .word gUnknown_Debug_083C50EC -._143: - add r1, r5, #0 - add r1, r1, #0x56 - mov r0, #0x1 -._144: - strb r0, [r1] - add r1, r5, #0 - add r1, r1, #0x52 - mov r0, #0x1 - strb r0, [r1] - b ._162 -._142: - mov r0, #0x2 - and r0, r0, r2 - cmp r0, #0 - bne ._148 @cond_branch - b ._162 -._148: - mov r0, #0x1 - neg r0, r0 - mov r1, #0x10 - mov r2, #0x0 - bl BlendPalettes - ldr r0, ._151 @ sub_80546F0 - bl SetMainCallback2 - b ._162 -._152: - .align 2, 0 -._151: - .word sub_80546F0+1 -._121: - add r5, r3, #0 - add r5, r5, #0x55 - mov r0, #0x0 - strb r0, [r5] - ldr r2, ._159 @ gMain - ldrh r1, [r2, #0x2e] - mov r0, #0x40 - and r0, r0, r1 - mov r9, r2 - cmp r0, #0 - beq ._154 @cond_branch - add r2, r3, #0 - add r2, r2, #0x53 - add r0, r3, #0 - add r0, r0, #0x54 - ldrb r1, [r0] - lsl r0, r1, #0x1 - add r0, r0, r1 - ldrb r2, [r2] - add r0, r0, r2 - add r2, r0, r3 - add r0, r3, #0 - add r0, r0, #0x56 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bcs ._154 @cond_branch - add r0, r1, #1 - strb r0, [r2] - strb r4, [r5] -._154: - mov r2, r9 - ldrh r1, [r2, #0x2e] - mov r0, #0x80 - and r0, r0, r1 - ldr r5, ._159 + 4 @ gSharedMem - cmp r0, #0 - beq ._156 @cond_branch - add r2, r5, #0 - add r2, r2, #0x53 - add r0, r5, #0 - add r0, r0, #0x54 - ldrb r1, [r0] - lsl r0, r1, #0x1 - add r0, r0, r1 - ldrb r2, [r2] - add r0, r0, r2 - add r1, r0, r5 - ldrb r0, [r1] - cmp r0, #0 - beq ._156 @cond_branch - sub r0, r0, #0x1 - strb r0, [r1] - add r1, r5, #0 - add r1, r1, #0x55 - mov r0, #0x1 - strb r0, [r1] -._156: - add r6, r5, #0 - add r0, r6, #0 - add r0, r0, #0x55 - ldrb r7, [r0] - cmp r7, #0 - beq ._157 @cond_branch -._141: - bl debug_sub_80916AC - b ._162 -._160: - .align 2, 0 -._159: - .word gMain - .word gSharedMem -._157: - mov r3, r9 - ldrh r1, [r3, #0x2e] - mov r0, #0x2 - and r0, r0, r1 - cmp r0, #0 - beq ._161 @cond_branch - ldr r0, ._164 @ gPlayerParty - ldr r1, ._164 + 4 @ gUnknown_Debug_083C50EC - mov ip, r1 - mov r2, #0x53 - add r2, r2, r6 - mov r8, r2 - add r4, r6, #0 - add r4, r4, #0x54 - ldrb r2, [r4] - lsl r1, r2, #0x1 - add r1, r1, r2 - mov r3, r8 - ldrb r3, [r3] - add r1, r1, r3 - lsl r1, r1, #0x3 - add r1, r1, ip - ldrh r1, [r1, #0x4] - bl GetMonData - ldrb r2, [r4] - lsl r1, r2, #0x1 - add r1, r1, r2 - mov r2, r8 - ldrb r2, [r2] - add r1, r1, r2 - add r1, r1, r6 - strb r0, [r1] - bl debug_sub_80916AC - add r0, r6, #0 - add r0, r0, #0x52 - strb r7, [r0] -._161: - mov r3, r9 - ldrh r1, [r3, #0x2e] - mov r0, #0x1 - and r0, r0, r1 - cmp r0, #0 - beq ._162 @cond_branch - ldr r2, ._164 + 4 @ gUnknown_Debug_083C50EC - add r0, r6, #0 - add r0, r0, #0x53 - ldrb r4, [r0] - add r0, r0, #0x1 - ldrb r1, [r0] - lsl r0, r1, #0x1 - add r3, r0, r1 - add r0, r3, r4 - lsl r0, r0, #0x3 - add r1, r0, r2 - ldrh r0, [r1, #0x4] - cmp r0, #0 - beq ._163 @cond_branch - ldr r0, ._164 @ gPlayerParty - ldrh r1, [r1, #0x4] - add r2, r4, r6 - add r2, r3, r2 - bl SetMonData -._163: - add r0, r5, #0 - add r0, r0, #0x52 - strb r7, [r0] -._162: - pop {r3, r4} - mov r8, r3 - mov r9, r4 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._165: - .align 2, 0 -._164: - .word gPlayerParty - .word gUnknown_Debug_083C50EC - - thumb_func_end debug_sub_8091334 - - thumb_func_start debug_sub_80915BC -debug_sub_80915BC: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, ._168 @ 0x4000010 - mov r1, #0x0 - strh r1, [r0] - add r0, r0, #0x2 - strh r1, [r0] - mov r1, #0x0 - ldr r0, ._168 + 4 @ gUnknown_Debug_083C50EC - mov r8, r0 - ldr r7, ._168 + 8 @ gSharedMem -._171: - mov r4, #0x0 - lsl r0, r1, #0x1 - add r6, r1, #1 - add r5, r0, r1 -._170: - add r0, r5, r4 - lsl r0, r0, #0x3 - add r0, r0, r8 - ldrh r1, [r0, #0x4] - cmp r1, #0 - beq ._166 @cond_branch - ldr r0, ._168 + 12 @ gPlayerParty - bl GetMonData - add r1, r4, r5 - add r1, r1, r7 - strb r0, [r1] - b ._167 -._169: - .align 2, 0 -._168: - .word 0x4000010 - .word gUnknown_Debug_083C50EC - .word gSharedMem - .word gPlayerParty -._166: - add r0, r4, r5 - add r0, r0, r7 - strb r1, [r0] -._167: - add r0, r4, #1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x2 - bls ._170 @cond_branch - lsl r0, r6, #0x18 - lsr r1, r0, #0x18 - cmp r1, #0x5 - bls ._171 @cond_branch - ldr r4, ._172 @ gWindowTemplate_81E7224 - add r0, r4, #0 - bl Text_LoadWindowTemplate - add r0, r4, #0 - bl InitMenuWindow - bl Menu_EraseScreen - mov r0, #0x0 - mov r1, #0x0 - mov r2, #0x1d - mov r3, #0x3 - bl Menu_DrawStdWindowFrame - ldr r0, ._172 + 4 @ gUnknown_Debug_083C517C - mov r1, #0x1 - mov r2, #0x1 - bl Menu_PrintText - mov r0, #0x0 - mov r1, #0x4 - mov r2, #0x1d - mov r3, #0x11 - bl Menu_DrawStdWindowFrame - mov r0, #0x0 - mov r1, #0x12 - mov r2, #0x1d - mov r3, #0x15 - bl Menu_DrawStdWindowFrame - mov r1, #0x80 - lsl r1, r1, #0x13 - mov r2, #0x8a - lsl r2, r2, #0x5 - add r0, r2, #0 - strh r0, [r1] - ldr r2, ._172 + 8 @ gSharedMem - add r0, r2, #0 - add r0, r0, #0x53 - mov r1, #0x0 - strb r1, [r0] - add r0, r0, #0x1 - strb r1, [r0] - sub r0, r0, #0x2 - strb r1, [r0] - bl debug_sub_80916AC - ldr r0, ._172 + 12 @ debug_sub_8091320 - bl SetVBlankCallback - ldr r0, ._172 + 16 @ debug_sub_8091334 - bl SetMainCallback2 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._173: - .align 2, 0 -._172: - .word gWindowTemplate_81E7224 - .word gUnknown_Debug_083C517C - .word gSharedMem - .word debug_sub_8091320+1 - .word debug_sub_8091334+1 - - thumb_func_end debug_sub_80915BC - - thumb_func_start debug_sub_80916AC -debug_sub_80916AC: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xfffffffc - mov r6, #0x0 - ldr r0, ._177 @ gSharedMem - mov sl, r0 - mov r1, #0x0 - mov r8, r1 -._182: - ldr r2, ._177 + 4 @ gSharedMem - mov r5, #0x0 - lsl r0, r6, #0x1 - mov r9, r0 - add r1, r6, #1 - str r1, [sp] -._181: - mov r0, sl - add r0, r0, #0x53 - ldrb r0, [r0] - cmp r0, r5 - bne ._175 @cond_branch - ldr r1, ._177 + 8 @ gSharedMem - ldrb r0, [r1] - cmp r0, r6 - bne ._175 @cond_branch - mov r0, #0xef - b ._176 -._178: - .align 2, 0 -._177: - .word gSharedMem - .word gSharedMem+0x12 - .word gSharedMem+0x54 -._175: - mov r0, r8 - strb r0, [r2] - add r2, r2, #0x1 -._176: - strb r0, [r2] - add r2, r2, #0x1 - mov r1, r9 - add r4, r1, r6 - add r0, r4, r5 - lsl r0, r0, #0x3 - ldr r1, ._183 @ gUnknown_Debug_083C50EC - add r0, r0, r1 - ldr r1, [r0] - add r0, r2, #0 - bl StringCopy - add r2, r0, #0 - mov r0, r8 - strb r0, [r2] - add r2, r2, #0x1 - ldr r7, ._183 + 4 @ gSharedMem - add r4, r5, r4 - add r4, r4, r7 - ldrb r1, [r4] - add r0, r2, #0 - mov r2, #0x0 - mov r3, #0x1 - bl ConvertIntToDecimalStringN - add r2, r0, #0 - mov r1, r8 - strb r1, [r2] - add r2, r2, #0x1 - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x2 - bhi ._179 @cond_branch - cmp r6, #0x5 - bne ._181 @cond_branch - cmp r5, #0x2 - bne ._181 @cond_branch -._179: - sub r1, r2, #1 - mov r0, #0xff - strb r0, [r1] - mov r2, r9 - add r2, r2, #0x5 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - add r0, r7, #0 - add r0, r0, #0x12 - mov r1, #0x1 - bl Menu_PrintText - ldr r1, [sp] - lsl r0, r1, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x5 - bls ._182 @cond_branch - add sp, sp, #0x4 - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._184: - .align 2, 0 -._183: - .word gUnknown_Debug_083C50EC - .word gSharedMem - - thumb_func_end debug_sub_80916AC - - .align 2, 0 - -.endif diff --git a/data/debug_menu_taya.s b/data/debug_menu_taya.s deleted file mode 100644 index 4bd8239f4..000000000 --- a/data/debug_menu_taya.s +++ /dev/null @@ -1,219 +0,0 @@ - .include "include/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .if DEBUG - -gUnknown_Debug_083C4E54:: @ 0x83C4E54 - .string "Profile$" - -gUnknown_Debug_083C4E5C:: @ 0x83C4E5C - .string "Battle’s start$" - -gUnknown_Debug_083C4E6B:: @ 0x83C4E6B - .string "Good saying$" - -gUnknown_Debug_083C4E77:: @ 0x83C4E77 - .string "Lose a battle$" - -gUnknown_Debug_083C4E85:: @ 0x83C4E85 - .string "MAIL$" - -gUnknown_Debug_083C4E8A:: @ 0x83C4E8A - .string "MAIL salutation$" - -gUnknown_Debug_083C4E9A:: @ 0x83C4E9A - .string "BARD’s song$" - -gUnknown_Debug_083C4EA6:: @ 0x83C4EA6 - .string "Interview$" - -gUnknown_Debug_083C4EB0:: @ 0x83C4EB0 - .string "InterviewシBTス$" - - .align 2 -gUnknown_Debug_083C4EC0:: @ 0x83C4EC0 - .4byte gUnknown_Debug_083C4E54, 0x0 - .4byte gUnknown_Debug_083C4E5C, 0x1 - .4byte gUnknown_Debug_083C4E6B, 0xD - .4byte gUnknown_Debug_083C4E77, 0x3 - .4byte gUnknown_Debug_083C4E85, 0x4 - .4byte gUnknown_Debug_083C4E8A, 0x5 - .4byte gUnknown_Debug_083C4E9A, 0x6 - .4byte gUnknown_Debug_083C4EA6, 0x7 - .4byte gUnknown_Debug_083C4EB0, 0xC - -gUnknown_Debug_083C4F08:: @ 0x83C4F08 - .string "サえぃえそい" - -gUnknown_Debug_083C4F0E:: @ 0x83C4F0E - .string "BARD$" - -gUnknown_Debug_083C4F13:: @ 0x83C4F13 - .string "HIPSTER$" - -gUnknown_Debug_083C4F1B:: @ 0x83C4F1B - .string "RECYCLE$" - -gUnknown_Debug_083C4F23:: @ 0x83C4F23 - .string "STORYTELLER$" - -gUnknown_Debug_083C4F2F:: @ 0x83C4F2F - .string "GIDDY GUY$" - -gUnknown_Debug_083C4F39:: @ 0x83C4F39 - .string "Flag OFF$" - -gUnknown_Debug_083C4F42:: @ 0x83C4F42 - .string "21 letters$" - -gUnknown_Debug_083C4F4D:: @ 0x83C4F4D - .string "ナウくなる$" - - .align 2 -gUnknown_Debug_083C4F54:: @ 0x83C4F54 - .4byte gUnknown_Debug_083C4F0E, 0x0 - .4byte gUnknown_Debug_083C4F13, 0x0 - .4byte gUnknown_Debug_083C4F1B, 0x0 - .4byte gUnknown_Debug_083C4F23, 0x0 - .4byte gUnknown_Debug_083C4F2F, 0x0 - .4byte gUnknown_Debug_083C4F39, 0x0 - .4byte gUnknown_Debug_083C4F42, 0x0 - .4byte gUnknown_Debug_083C4F4D, 0x0 - -gUnknown_Debug_083C4F94:: @ 0x83C4F94 - .string "しょうしょうおまちください!$" - -gUnknown_Debug_083C4FA3:: @ 0x83C4FA3 - .string "Weather$" - -gUnknown_Debug_083C4FAB:: @ 0x83C4FAB - .string "LANETTE’S PC$" - -gUnknown_Debug_083C4FB8:: @ 0x83C4FB8 - .string "SimpleText$" - -gUnknown_Debug_083C4FC3:: @ 0x83C4FC3 - .string "Old man$" - -gUnknown_Debug_083C4FCB:: @ 0x83C4FCB - .string "Trend$" - -gUnknown_Debug_083C4FD1:: @ 0x83C4FD1 - .string "Trend R$" - -gUnknown_Debug_083C4FD9:: @ 0x83C4FD9 - .string "Town flag$" - -gUnknown_Debug_083C4FE3:: @ 0x83C4FE3 - .string "Award a ribbon$" - -gUnknown_Debug_083C4FF2:: @ 0x83C4FF2 - .string "{PKMN}LOTTERY$" - -gUnknown_Debug_083C4FFC:: @ 0x83C4FFC - .string "Trainer$" - -gUnknown_Debug_083C5004:: @ 0x83C5004 - .string "POKéNAV D$" - - .align 2 -gUnknown_Debug_083C5010:: @ 0x83C5010 - .4byte gUnknown_Debug_083C4FA3, debug_sub_808560C+1 - .4byte gUnknown_Debug_083C4FAB, TayaDebugMenu_LanettesPC+1 - .4byte gUnknown_Debug_083C4FB8, TayaDebugMenu_SimpleText+1 - .4byte gUnknown_Debug_083C4FC3, TayaDebugMenu_OldMan+1 - .4byte gUnknown_Debug_083C4FCB, TayaDebugMenu_Trend+1 - .4byte gUnknown_Debug_083C4FD1, TayaDebugMenu_TrendR+1 - .4byte gUnknown_Debug_083C4FD9, TayaDebugMenu_TownFlags+1 - .4byte gUnknown_Debug_083C4FE3, TayaDebugMenu_AwardARibbon+1 - .4byte gUnknown_Debug_083C4FF2, TayaDebugMenu_PKMNLottery+1 - -gUnknown_Debug_083C5058:: @ 0x83C5058 - .4byte gUnknown_Debug_083C4FFC, TayaDebugMenu_Trainer+1 - .4byte gUnknown_Debug_083C5004, TayaDebugMenu_PokenavD+1 - -gUnknown_Debug_83C5068:: - .4byte gUnknown_Debug_083C5010, 0x9 - .4byte gUnknown_Debug_083C5058, 0x2 - -gUnknown_Debug_083C5078:: @ 0x83C5078 - .string "CHANP$" - -gUnknown_Debug_083C507E:: @ 0x83C507E - .string "COOL$" - -gUnknown_Debug_083C5083:: @ 0x83C5083 - .string "BEAUTY$" - -gUnknown_Debug_083C508A:: @ 0x83C508A - .string "CUTE$" - -gUnknown_Debug_083C508F:: @ 0x83C508F - .string "SMART$" - -gUnknown_Debug_083C5095:: @ 0x83C5095 - .string "TOUGH$" - -gUnknown_Debug_083C509B:: @ 0x83C509B - .string "WIN$" - -gUnknown_Debug_083C509F:: @ 0x83C509F - .string "VICTORY$" - -gUnknown_Debug_083C50A7:: @ 0x83C50A7 - .string "BROMIDE$" - -gUnknown_Debug_083C50AF:: @ 0x83C50AF - .string "ACCESSIT$" - -gUnknown_Debug_083C50B8:: @ 0x83C50B8 - .string "MARINE$" - -gUnknown_Debug_083C50BF:: @ 0x83C50BF - .string "LAND$" - -gUnknown_Debug_083C50C4:: @ 0x83C50C4 - .string "SKY$" - -gUnknown_Debug_083C50C8:: @ 0x83C50C8 - .string "COUNTRY$" - -gUnknown_Debug_083C50D0:: @ 0x83C50D0 - .string "NATIONAL$" - -gUnknown_Debug_083C50D9:: @ 0x83C50D9 - .string "EARTH$" - -gUnknown_Debug_083C50DF:: @ 0x83C50DF - .string "WORLD$" - -gUnknown_Debug_083C50E5:: @ 0x83C50E5 - .string " $" - - .align 2 -gUnknown_Debug_083C50EC:: @ 0x83C50EC - .4byte gUnknown_Debug_083C5078, 0x43 - .4byte gUnknown_Debug_083C507E, 0x32 - .4byte gUnknown_Debug_083C5083, 0x33 - .4byte gUnknown_Debug_083C508A, 0x34 - .4byte gUnknown_Debug_083C508F, 0x35 - .4byte gUnknown_Debug_083C5095, 0x36 - .4byte gUnknown_Debug_083C509B, 0x44 - .4byte gUnknown_Debug_083C509F, 0x45 - .4byte gUnknown_Debug_083C50A7, 0x46 - .4byte gUnknown_Debug_083C50AF, 0x47 - .4byte gUnknown_Debug_083C50B8, 0x48 - .4byte gUnknown_Debug_083C50BF, 0x49 - .4byte gUnknown_Debug_083C50C4, 0x4A - .4byte gUnknown_Debug_083C50C8, 0x4B - .4byte gUnknown_Debug_083C50D0, 0x4C - .4byte gUnknown_Debug_083C50D9, 0x4D - .4byte gUnknown_Debug_083C50DF, 0x4E - .4byte gUnknown_Debug_083C50E5, 0x0 - -gUnknown_Debug_083C517C:: @ 0x83C517C - .string "Select Ribbon$" - - .endif diff --git a/include/battle_setup.h b/include/battle_setup.h index 8423a6e6e..88afcdf0a 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -47,6 +47,8 @@ struct TrainerEyeTrainer u16 mapNum; }; +extern const struct TrainerEyeTrainer gTrainerEyeTrainers[56]; + void BattleSetup_StartWildBattle(void); void BattleSetup_StartRoamerBattle(void); void BattleSetup_StartScriptedWildBattle(void); diff --git a/include/mauville_man.h b/include/mauville_man.h index 622cd1bfb..5b2d00c6a 100644 --- a/include/mauville_man.h +++ b/include/mauville_man.h @@ -6,5 +6,7 @@ void SetupMauvilleOldMan(void); void sub_80F7F30(void); void sub_80F83D0(void); +void debug_sub_810B32C(u8); +u8 GetCurrentMauvilleOldMan(void); #endif // GUARD_MAUVILLE_OLD_MAN_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 5319b7a2d..c6c37c123 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -298,5 +298,6 @@ void sub_809CFF0(void); void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height); void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height); +void ShowPokemonStorageSystem(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/region_map.h b/include/region_map.h index e7a357fe2..89a47cd05 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -69,5 +69,6 @@ const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length); const u8 *CopyMapName(u8 *dest, u16 b); const u8 *CopyLocationName(u8 *dest, u16 b); void CB2_InitFlyRegionMap(void); +void debug_sub_8110F28(void); #endif // GUARD_REGION_MAP_H diff --git a/ld_script.txt b/ld_script.txt index 33fdee0eb..2c861fdb7 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -117,7 +117,6 @@ SECTIONS { src/debug/tomomichi_debug_menu.o(.text); src/debug/nohara_debug_menu.o(.text); src/debug/mori_debug_menu.o(.text); - asm/taya_debug_window.o(.text); src/debug/taya_debug_window.o(.text); src/trainer_see.o(.text); src/wild_encounter.o(.text); @@ -561,7 +560,7 @@ SECTIONS { src/debug/tomomichi_debug_menu.o(.rodata); src/debug/nohara_debug_menu.o(.rodata); src/debug/mori_debug_menu.o(.rodata); - data/debug_menu_taya.o(.rodata); + src/debug/taya_debug_window.o(.rodata); src/trainer_see.o(.rodata); src/wild_encounter.o(.rodata); src/field_effect.o(.rodata); diff --git a/src/debug/taya_debug_window.c b/src/debug/taya_debug_window.c index f7e0e3770..55212315c 100644 --- a/src/debug/taya_debug_window.c +++ b/src/debug/taya_debug_window.c @@ -1,6 +1,1087 @@ #if DEBUG #include "global.h" +#include "constants/species.h" +#include "constants/opponents.h" +#include "random.h" +#include "palette.h" +#include "ewram.h" +#include "menu.h" +#include "easy_chat.h" +#include "event_data.h" +#include "string_util.h" +#include "main.h" +#include "start_menu.h" +#include "field_weather.h" +#include "mauville_man.h" +#include "pokemon_storage_system.h" +#include "lottery_corner.h" +#include "battle_setup.h" +#include "region_map.h" +#include "overworld.h" -EWRAM_DATA u8 unk_2030224[4] = { 0 }; +bool8 debug_sub_8090808(void); +bool8 debug_sub_808560C(void); +bool8 TayaDebugMenu_LanettesPC(void); +bool8 TayaDebugMenu_SimpleText(void); +bool8 TayaDebugMenu_OldMan(void); +bool8 TayaDebugMenu_Trend(void); +bool8 TayaDebugMenu_TrendR(void); +bool8 TayaDebugMenu_TownFlags(void); +bool8 TayaDebugMenu_AwardARibbon(void); +bool8 TayaDebugMenu_PKMNLottery(void); +bool8 TayaDebugMenu_Trainer(void); +bool8 TayaDebugMenu_PokenavD(void); +void debug_sub_80915BC(void); +void debug_sub_80916AC(void); -#endif +EWRAM_DATA s8 sTayaTopMenuPage = 0; + +struct TayaLuckyNumberEwramStruct { + u8 digit; + u8 charbuf[7]; + u16 curLuckyId; + s32 tempLuckyId; + u16 digitDeltaMagnitude; +}; + +struct TayaMonDataEwramStruct { + u8 data[6][3]; + u8 charbuf[0x40]; + u8 state; + u8 x; + u8 y; + u8 redraw; + u8 maxVal; +}; + +#define eTayaLuckyNumber (*(struct TayaLuckyNumberEwramStruct *)gSharedMem) +#define eTayaMonData (*(struct TayaMonDataEwramStruct *)gSharedMem) + +const u8 gUnknown_Debug_083C4E54[] = _("Profile"); +const u8 gUnknown_Debug_083C4E5C[] = _("Battle’s start"); +const u8 gUnknown_Debug_083C4E6B[] = _("Good saying"); +const u8 gUnknown_Debug_083C4E77[] = _("Lose a battle"); +const u8 gUnknown_Debug_083C4E85[] = _("MAIL"); +const u8 gUnknown_Debug_083C4E8A[] = _("MAIL salutation"); +const u8 gUnknown_Debug_083C4E9A[] = _("BARD’s song"); +const u8 gUnknown_Debug_083C4EA6[] = _("Interview"); +const u8 gUnknown_Debug_083C4EB0[] = _("InterviewシBTス"); + +const struct { + const u8 * text; + u32 unk4; +} gUnknown_Debug_083C4EC0[] = { + {gUnknown_Debug_083C4E54, 0x0}, + {gUnknown_Debug_083C4E5C, 0x1}, + {gUnknown_Debug_083C4E6B, 0xD}, + {gUnknown_Debug_083C4E77, 0x3}, + {gUnknown_Debug_083C4E85, 0x4}, + {gUnknown_Debug_083C4E8A, 0x5}, + {gUnknown_Debug_083C4E9A, 0x6}, + {gUnknown_Debug_083C4EA6, 0x7}, + {gUnknown_Debug_083C4EB0, 0xC} +}; + +const u16 gUnknown_Debug_083C4F08[] = {0x45b, 0x430, 0x20f}; + +const u8 gUnknown_Debug_083C4F0E[] = _("BARD"); +const u8 gUnknown_Debug_083C4F13[] = _("HIPSTER"); +const u8 gUnknown_Debug_083C4F1B[] = _("RECYCLE"); +const u8 gUnknown_Debug_083C4F23[] = _("STORYTELLER"); +const u8 gUnknown_Debug_083C4F2F[] = _("GIDDY GUY"); +const u8 gUnknown_Debug_083C4F39[] = _("Flag OFF"); +const u8 gUnknown_Debug_083C4F42[] = _("21 letters"); +const u8 gUnknown_Debug_083C4F4D[] = _("ナウくなる"); + +const struct { + const u8 * text; + u8 filler[4]; +} gUnknown_Debug_083C4F54[] = { + {gUnknown_Debug_083C4F0E}, + {gUnknown_Debug_083C4F13}, + {gUnknown_Debug_083C4F1B}, + {gUnknown_Debug_083C4F23}, + {gUnknown_Debug_083C4F2F}, + {gUnknown_Debug_083C4F39}, + {gUnknown_Debug_083C4F42}, + {gUnknown_Debug_083C4F4D} +}; + +const u8 gUnknown_Debug_083C4F94[] = _("しょうしょうおまちください!"); +const u8 gUnknown_Debug_083C4FA3[] = _("Weather"); +const u8 gUnknown_Debug_083C4FAB[] = _("LANETTE’S PC"); +const u8 gUnknown_Debug_083C4FB8[] = _("SimpleText"); +const u8 gUnknown_Debug_083C4FC3[] = _("Old man"); +const u8 gUnknown_Debug_083C4FCB[] = _("Trend"); +const u8 gUnknown_Debug_083C4FD1[] = _("Trend R"); +const u8 gUnknown_Debug_083C4FD9[] = _("Town flag"); +const u8 gUnknown_Debug_083C4FE3[] = _("Award a ribbon"); +const u8 gUnknown_Debug_083C4FF2[] = _("{PKMN}LOTTERY"); +const u8 gUnknown_Debug_083C4FFC[] = _("Trainer"); +const u8 gUnknown_Debug_083C5004[] = _("POKéNAV D"); + +const struct MenuAction gUnknown_Debug_083C5010[] = { + {gUnknown_Debug_083C4FA3, debug_sub_808560C}, + {gUnknown_Debug_083C4FAB, TayaDebugMenu_LanettesPC}, + {gUnknown_Debug_083C4FB8, TayaDebugMenu_SimpleText}, + {gUnknown_Debug_083C4FC3, TayaDebugMenu_OldMan}, + {gUnknown_Debug_083C4FCB, TayaDebugMenu_Trend}, + {gUnknown_Debug_083C4FD1, TayaDebugMenu_TrendR}, + {gUnknown_Debug_083C4FD9, TayaDebugMenu_TownFlags}, + {gUnknown_Debug_083C4FE3, TayaDebugMenu_AwardARibbon}, + {gUnknown_Debug_083C4FF2, TayaDebugMenu_PKMNLottery} +}; + +const struct MenuAction gUnknown_Debug_083C5058[] = { + {gUnknown_Debug_083C4FFC, TayaDebugMenu_Trainer}, + {gUnknown_Debug_083C5004, TayaDebugMenu_PokenavD} +}; + +const struct { + const struct MenuAction *menuActions; + u8 nitems; +} gUnknown_Debug_83C5068[] = { + {gUnknown_Debug_083C5010, 9}, + {gUnknown_Debug_083C5058, 2} +}; + +const u8 gUnknown_Debug_083C5078[] = _("CHANP"); +const u8 gUnknown_Debug_083C507E[] = _("COOL"); +const u8 gUnknown_Debug_083C5083[] = _("BEAUTY"); +const u8 gUnknown_Debug_083C508A[] = _("CUTE"); +const u8 gUnknown_Debug_083C508F[] = _("SMART"); +const u8 gUnknown_Debug_083C5095[] = _("TOUGH"); +const u8 gUnknown_Debug_083C509B[] = _("WIN"); +const u8 gUnknown_Debug_083C509F[] = _("VICTORY"); +const u8 gUnknown_Debug_083C50A7[] = _("BROMIDE"); +const u8 gUnknown_Debug_083C50AF[] = _("ACCESSIT"); +const u8 gUnknown_Debug_083C50B8[] = _("MARINE"); +const u8 gUnknown_Debug_083C50BF[] = _("LAND"); +const u8 gUnknown_Debug_083C50C4[] = _("SKY"); +const u8 gUnknown_Debug_083C50C8[] = _("COUNTRY"); +const u8 gUnknown_Debug_083C50D0[] = _("NATIONAL"); +const u8 gUnknown_Debug_083C50D9[] = _("EARTH"); +const u8 gUnknown_Debug_083C50DF[] = _("WORLD"); +const u8 gUnknown_Debug_083C50E5[] = _(" "); + +const struct { + const u8 * text; + u16 param; +} gUnknown_Debug_083C50EC[][3] = { + { + {gUnknown_Debug_083C5078, MON_DATA_CHAMPION_RIBBON}, + {gUnknown_Debug_083C507E, MON_DATA_COOL_RIBBON}, + {gUnknown_Debug_083C5083, MON_DATA_BEAUTY_RIBBON} + }, { + {gUnknown_Debug_083C508A, MON_DATA_CUTE_RIBBON}, + {gUnknown_Debug_083C508F, MON_DATA_SMART_RIBBON}, + {gUnknown_Debug_083C5095, MON_DATA_TOUGH_RIBBON} + }, { + {gUnknown_Debug_083C509B, MON_DATA_WINNING_RIBBON}, + {gUnknown_Debug_083C509F, MON_DATA_VICTORY_RIBBON}, + {gUnknown_Debug_083C50A7, MON_DATA_ARTIST_RIBBON} + }, { + {gUnknown_Debug_083C50AF, MON_DATA_EFFORT_RIBBON}, + {gUnknown_Debug_083C50B8, MON_DATA_GIFT_RIBBON_1}, + {gUnknown_Debug_083C50BF, MON_DATA_GIFT_RIBBON_2} + }, { + {gUnknown_Debug_083C50C4, MON_DATA_GIFT_RIBBON_3}, + {gUnknown_Debug_083C50C8, MON_DATA_GIFT_RIBBON_4}, + {gUnknown_Debug_083C50D0, MON_DATA_GIFT_RIBBON_5} + }, { + {gUnknown_Debug_083C50D9, MON_DATA_GIFT_RIBBON_6}, + {gUnknown_Debug_083C50DF, MON_DATA_GIFT_RIBBON_7}, + {gUnknown_Debug_083C50E5, 0 /* sentinel */} + } +}; + +const u8 gUnknown_Debug_083C517C[] = _("Select Ribbon"); + +bool8 TayaDebugMenu_Trend(void) +{ + u8 sp00[32]; + u8 sp20[8]; + u16 i; + struct EasyChatPair *pair; + + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 30, 11); + pair = gSaveBlock1.easyChatPairs; + + for (i = 0; i < 5; i++) + { + u8 * r4; + + sp00[0] = pair->unk1_6 ? CHAR_0 + 1 : CHAR_0 + 0; + EasyChat_GetWordText(sp20, pair->words[0]); + r4 = StringCopyPadded(sp00 + 1, sp20, CHAR_SPACE, 7); + EasyChat_GetWordText(sp20, pair->words[1]); + r4 = StringCopyPadded(r4, sp20, CHAR_SPACE, 8); + r4 = ConvertIntToDecimalStringN(r4, pair->unk0_0, STR_CONV_MODE_RIGHT_ALIGN, 3); + *r4++ = CHAR_SPACE; + r4 = ConvertIntToDecimalStringN(r4, pair->unk0_7, STR_CONV_MODE_RIGHT_ALIGN, 3); + *r4++ = CHAR_SPACE; + ConvertIntToDecimalStringN(r4, pair->unk2, STR_CONV_MODE_RIGHT_ALIGN, 5); + Menu_PrintText(sp00, 1, 2 * i + 1); + pair++; + } + gMenuCallback = debug_sub_8090808; + return FALSE; +} + +bool8 debug_sub_8090808(void) +{ + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + Menu_EraseScreen(); + CloseMenu(); + return TRUE; + } + + return FALSE; +} + +bool8 TayaDebugMenu_TrendR(void) +{ + u16 i; + u16 j; + + for (i = 0; i < 5; i++) + { + for (j = 0; j < 2; j++) + { + gSaveBlock1.easyChatPairs[i].words[j] = sub_80EB72C(Random() % 22); + } + } + Menu_EraseScreen(); + CloseMenu(); + return TRUE; +} + +bool8 debug_sub_8090880(void) +{ + if (!UpdatePaletteFade()) + { + sub_80E60D8(); + return TRUE; + } + + return FALSE; +} + +bool8 debug_sub_809089C(void) +{ + s8 input = Menu_ProcessInput(); + + switch (input) + { + case -1: + CloseMenu(); + return TRUE; + case -2: + return FALSE; + default: + gSpecialVar_0x8004 = gUnknown_Debug_083C4EC0[input].unk4; + switch (gSpecialVar_0x8004) + { + case 5: + case 7: + case 8: + case 11: + case 12: + gSpecialVar_0x8005 = 0; + gSpecialVar_0x8006 = 0; + default: + FadeScreen(1, 0); + gMenuCallback = debug_sub_8090880; + break; + } + return FALSE; + } +} + +bool8 TayaDebugMenu_SimpleText(void) +{ + Menu_DrawStdWindowFrame(0, 0, 12, 19); + Menu_PrintItems(1, 1, ARRAY_COUNT(gUnknown_Debug_083C4EC0), gUnknown_Debug_083C4EC0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4EC0), 0, 11); + gMenuCallback = debug_sub_809089C; + return FALSE; +} + +bool8 debug_sub_8090984(void) +{ + s8 input = Menu_ProcessInput(); + + switch (input) + { + case -1: + CloseMenu(); + return TRUE; + default: + if (input < 5) + { + debug_sub_810B32C(input); + CloseMenu(); + return TRUE; + } + break; + case -2: + return FALSE; + } + + if (input == 5) + { + sub_80F7F30(); + } + else if (input == 6) + { + u16 i; + + for (i = 0; i < 3; i++) + { + union MauvilleMan *mauvilleMan = &gSaveBlock1.mauvilleMan; + mauvilleMan->bard.songLyrics[i] = gUnknown_Debug_083C4F08[i]; + mauvilleMan->bard.temporaryLyrics[i] = gUnknown_Debug_083C4F08[i]; + gSaveBlock1.easyChats.unk2B28[i] = gUnknown_Debug_083C4F08[i]; + } + } + else if (input == 7) + { + u16 i; + + for (i = 0; i < 33; i++) + { + sub_80EB890(i); + } + } + CloseMenu(); + return TRUE; +} + +bool8 TayaDebugMenu_OldMan(void) +{ + Menu_DrawStdWindowFrame(0, 0, 10, 17); + Menu_PrintItems(1, 1, ARRAY_COUNT(gUnknown_Debug_083C4F54), gUnknown_Debug_083C4F54); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4F54), GetCurrentMauvilleOldMan(), 9); + gMenuCallback = debug_sub_8090984; + return FALSE; +} + +bool8 TayaDebugMenu_LanettesPC(void) +{ + Menu_EraseScreen(); + ShowPokemonStorageSystem(); + return TRUE; +} + +bool8 TayaDebugMenu_TownFlags(void) +{ + FlagSet(FLAG_VISITED_LITTLEROOT_TOWN); + FlagSet(FLAG_VISITED_OLDALE_TOWN); + FlagSet(FLAG_VISITED_DEWFORD_TOWN); + FlagSet(FLAG_VISITED_LAVARIDGE_TOWN); + FlagSet(FLAG_VISITED_FALLARBOR_TOWN); + FlagSet(FLAG_VISITED_VERDANTURF_TOWN); + FlagSet(FLAG_VISITED_PACIFIDLOG_TOWN); + FlagSet(FLAG_VISITED_PETALBURG_CITY); + FlagSet(FLAG_VISITED_SLATEPORT_CITY); + FlagSet(FLAG_VISITED_MAUVILLE_CITY); + FlagSet(FLAG_VISITED_RUSTBORO_CITY); + FlagSet(FLAG_VISITED_FORTREE_CITY); + FlagSet(FLAG_VISITED_LILYCOVE_CITY); + FlagSet(FLAG_VISITED_MOSSDEEP_CITY); + FlagSet(FLAG_VISITED_SOOTOPOLIS_CITY); + FlagSet(FLAG_VISITED_EVER_GRANDE_CITY); + FlagSet(FLAG_LANDMARK_BATTLE_TOWER); + FlagSet(FLAG_LANDMARK_SOUTHERN_ISLAND); + FlagSet(FLAG_LANDMARK_FIERY_PATH); + FlagSet(FLAG_SYS_POKEMON_LEAGUE_FLY); + FlagSet(FLAG_LANDMARK_ISLAND_CAVE); + FlagSet(FLAG_LANDMARK_DESERT_RUINS); + FlagSet(FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE); + FlagSet(FLAG_LANDMARK_SCORCHED_SLAB); + FlagSet(FLAG_LANDMARK_ANCIENT_TOMB); + FlagSet(FLAG_LANDMARK_TUNNELERS_REST_HOUSE); + FlagSet(FLAG_LANDMARK_HUNTERS_HOUSE); + FlagSet(FLAG_LANDMARK_SEALED_CHAMBER); + FlagSet(FLAG_LANDMARK_FLOWER_SHOP); + FlagSet(FLAG_LANDMARK_MR_BRINEY_HOUSE); + FlagSet(FLAG_LANDMARK_ABANDONED_SHIP); + FlagSet(FLAG_LANDMARK_SEASHORE_HOUSE); + FlagSet(FLAG_LANDMARK_NEW_MAUVILLE); + FlagSet(FLAG_LANDMARK_OLD_LADY_REST_SHOP); + FlagSet(FLAG_LANDMARK_TRICK_HOUSE); + FlagSet(FLAG_LANDMARK_WINSTRATE_FAMILY); + FlagSet(FLAG_LANDMARK_GLASS_WORKSHOP); + FlagSet(FLAG_LANDMARK_LANETTES_HOUSE); + FlagSet(FLAG_LANDMARK_POKEMON_DAYCARE); + FlagSet(FLAG_LANDMARK_SEAFLOOR_CAVERN); + FlagSet(FLAG_SYS_RIBBON_GET); + CloseMenu(); + return TRUE; +} + +bool8 TayaDebugMenu_AwardARibbon(void) +{ + BlendPalettes(0xFFFFFFFF, 16, 0); + SetMainCallback2(debug_sub_80915BC); + CloseMenu(); + return TRUE; +} + +void debug_sub_8090C44(void) +{ + ConvertIntToDecimalStringN(eTayaLuckyNumber.charbuf, eTayaLuckyNumber.curLuckyId, STR_CONV_MODE_LEADING_ZEROS, 5); + Menu_PrintText(eTayaLuckyNumber.charbuf, 1, 1); + StringFill(eTayaLuckyNumber.charbuf, CHAR_SPACE, 5); + eTayaLuckyNumber.charbuf[eTayaLuckyNumber.digit] = 0x79; + Menu_PrintText(eTayaLuckyNumber.charbuf, 1, 3); +} + +#ifdef NONMATCHING +// mayday mayday +bool8 debug_sub_8090C88(void) +{ + bool8 r8 = TRUE; + + if (gMain.newKeys & DPAD_LEFT && eTayaLuckyNumber.digit != 0) + { + eTayaLuckyNumber.digit--; + } + else if (gMain.newKeys & DPAD_RIGHT && eTayaLuckyNumber.digit < 4) + { + eTayaLuckyNumber.digit++; + } + else + { + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + u8 r4; + + eTayaLuckyNumber.tempLuckyId = eTayaLuckyNumber.curLuckyId; + eTayaLuckyNumber.charbuf0 = 10000; + for (r4 = 0; r4 < eTayaLuckyNumber.digit; r4++) + eTayaLuckyNumber.charbuf0 /= 10; + eTayaLuckyNumber.tempLuckyId += eTayaLuckyNumber.charbuf0; + if (eTayaLuckyNumber.tempLuckyId > 0xFFFF) + eTayaLuckyNumber.tempLuckyId = 0xFFFF; + if (eTayaLuckyNumber.curLuckyId != eTayaLuckyNumber.tempLuckyId) + { + eTayaLuckyNumber.curLuckyId = eTayaLuckyNumber.tempLuckyId; + goto check; + } + } + if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + u8 r4; + + eTayaLuckyNumber.tempLuckyId = eTayaLuckyNumber.curLuckyId; + eTayaLuckyNumber.charbuf0 = 10000; + for (r4 = 0; r4 < eTayaLuckyNumber.digit; r4++) + eTayaLuckyNumber.charbuf0 /= 10; + eTayaLuckyNumber.tempLuckyId -= eTayaLuckyNumber.charbuf0; + if (eTayaLuckyNumber.tempLuckyId < 0) + eTayaLuckyNumber.tempLuckyId = 0; + if (eTayaLuckyNumber.curLuckyId != eTayaLuckyNumber.tempLuckyId) + { + eTayaLuckyNumber.curLuckyId = eTayaLuckyNumber.tempLuckyId; + goto check; + } + } + if (gMain.newKeys & B_BUTTON) + { + CloseMenu(); + return TRUE; + } + if (gMain.newKeys & A_BUTTON) + { + SetLotteryNumber16_Unused(eTayaLuckyNumber.curLuckyId); + CloseMenu(); + return TRUE; + } + r8 = FALSE; + } + +check: + if (r8) + debug_sub_8090C44(); + return FALSE; +} +#else +NAKED bool8 debug_sub_8090C88(void) +{ + asm("\tpush\t{r4, r5, r6, r7, lr}\n" + "\tmov\tr7, r8\n" + "\tpush\t{r7}\n" + "\tadd\tsp, sp, #0xfffffffc\n" + "\tmov\tr0, #0x1\n" + "\tmov\tr8, r0\n" + "\tldr\tr2, ._59 @ gMain\n" + "\tldrh\tr1, [r2, #0x2e]\n" + "\tmov\tr0, #0x20\n" + "\tand\tr0, r0, r1\n" + "\tadd\tr3, r2, #0\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._57\t@cond_branch\n" + "\tldr\tr1, ._59 + 4 @ gSharedMem\n" + "\tldrb\tr0, [r1]\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._57\t@cond_branch\n" + "\tsub\tr0, r0, #0x1\n" + "\tstrb\tr0, [r1]\n" + "\tb\t._62\n" + "._60:\n" + "\t.align\t2, 0\n" + "._59:\n" + "\t.word\tgMain\n" + "\t.word\tgSharedMem\n" + "._67:\n" + "\tadd\tr0, r0, #0x1\n" + "\tstrb\tr0, [r1]\n" + "\tb\t._62\n" + "._77:\n" + "\tstrh\tr1, [r7, #0x8]\n" + "\tb\t._62\n" + "._79:\n" + "\tldr\tr0, ._64 @ gSharedMem\n" + "\tldrh\tr0, [r0, #0x8]\n" + "\tbl\tSetLotteryNumber16_Unused\n" + "._78:\n" + "\tbl\tCloseMenu\n" + "\tmov\tr0, #0x1\n" + "\tb\t._63\n" + "._65:\n" + "\t.align\t2, 0\n" + "._64:\n" + "\t.word\tgSharedMem\n" + "._57:\n" + "\tldrh\tr1, [r3, #0x2e]\n" + "\tmov\tr0, #0x10\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._66\t@cond_branch\n" + "\tldr\tr1, ._81 @ gSharedMem\n" + "\tldrb\tr0, [r1]\n" + "\tcmp\tr0, #0x3\n" + "\tbls\t._67\t@cond_branch\n" + "._66:\n" + "\tldrh\tr1, [r3, #0x30]\n" + "\tmov\tr0, #0x40\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._68\t@cond_branch\n" + "\tldr\tr0, ._81 @ gSharedMem\n" + "\tldrh\tr1, [r0, #0x8]\n" + "\tstr\tr1, [r0, #0xc]\n" + "\tldr\tr1, ._81 + 4 @ 0x2710\n" + "\tstrh\tr1, [r0, #0x10]\n" + "\tmov\tr4, #0x0\n" + "\tldrb\tr1, [r0]\n" + "\tadd\tr7, r0, #0\n" + "\tcmp\tr4, r1\n" + "\tbcs\t._69\t@cond_branch\n" + "\tadd\tr5, r7, #0\n" + "\tadd\tr6, r1, #0\n" + "._70:\n" + "\tldrh\tr0, [r5, #0x10]\n" + "\tmov\tr1, #0xa\n" + "\tstr\tr3, [sp]\n" + "\tbl\t__udivsi3\n" + "\tstrh\tr0, [r5, #0x10]\n" + "\tadd\tr0, r4, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr4, r0, #0x18\n" + "\tldr\tr3, [sp]\n" + "\tcmp\tr4, r6\n" + "\tbcc\t._70\t@cond_branch\n" + "._69:\n" + "\tldrh\tr1, [r7, #0x10]\n" + "\tldr\tr0, [r7, #0xc]\n" + "\tadd\tr0, r0, r1\n" + "\tstr\tr0, [r7, #0xc]\n" + "\tldr\tr1, ._81 + 8 @ 0xffff\n" + "\tcmp\tr0, r1\n" + "\tble\t._71\t@cond_branch\n" + "\tstr\tr1, [r7, #0xc]\n" + "._71:\n" + "\tldrh\tr0, [r7, #0x8]\n" + "\tldr\tr1, [r7, #0xc]\n" + "\tcmp\tr0, r1\n" + "\tbne\t._77\t@cond_branch\n" + "._68:\n" + "\tldrh\tr1, [r3, #0x30]\n" + "\tmov\tr0, #0x80\n" + "\tand\tr0, r0, r1\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._73\t@cond_branch\n" + "\tldr\tr0, ._81 @ gSharedMem\n" + "\tldrh\tr1, [r0, #0x8]\n" + "\tstr\tr1, [r0, #0xc]\n" + "\tldr\tr1, ._81 + 4 @ 0x2710\n" + "\tstrh\tr1, [r0, #0x10]\n" + "\tmov\tr4, #0x0\n" + "\tldrb\tr1, [r0]\n" + "\tadd\tr7, r0, #0\n" + "\tcmp\tr4, r1\n" + "\tbcs\t._74\t@cond_branch\n" + "\tadd\tr5, r7, #0\n" + "\tadd\tr6, r1, #0\n" + "._75:\n" + "\tldrh\tr0, [r5, #0x10]\n" + "\tmov\tr1, #0xa\n" + "\tstr\tr3, [sp]\n" + "\tbl\t__udivsi3\n" + "\tstrh\tr0, [r5, #0x10]\n" + "\tadd\tr0, r4, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr4, r0, #0x18\n" + "\tldr\tr3, [sp]\n" + "\tcmp\tr4, r6\n" + "\tbcc\t._75\t@cond_branch\n" + "._74:\n" + "\tadd\tr2, r7, #0\n" + "\tldrh\tr1, [r2, #0x10]\n" + "\tldr\tr0, [r2, #0xc]\n" + "\tsub\tr0, r0, r1\n" + "\tstr\tr0, [r2, #0xc]\n" + "\tcmp\tr0, #0\n" + "\tbge\t._76\t@cond_branch\n" + "\tmov\tr0, #0x0\n" + "\tstr\tr0, [r2, #0xc]\n" + "._76:\n" + "\tldrh\tr0, [r2, #0x8]\n" + "\tldr\tr1, [r2, #0xc]\n" + "\tcmp\tr0, r1\n" + "\tbne\t._77\t@cond_branch\n" + "._73:\n" + "\tldrh\tr2, [r3, #0x2e]\n" + "\tmov\tr0, #0x2\n" + "\tand\tr0, r0, r2\n" + "\tcmp\tr0, #0\n" + "\tbne\t._78\t@cond_branch\n" + "\tmov\tr0, #0x1\n" + "\tand\tr0, r0, r2\n" + "\tcmp\tr0, #0\n" + "\tbne\t._79\t@cond_branch\n" + "\tmov\tr0, #0x0\n" + "\tmov\tr8, r0\n" + "._62:\n" + "\tmov\tr0, r8\n" + "\tcmp\tr0, #0\n" + "\tbeq\t._80\t@cond_branch\n" + "\tbl\tdebug_sub_8090C44\n" + "._80:\n" + "\tmov\tr0, #0x0\n" + "._63:\n" + "\tadd\tsp, sp, #0x4\n" + "\tpop\t{r3}\n" + "\tmov\tr8, r3\n" + "\tpop\t{r4, r5, r6, r7}\n" + "\tpop\t{r1}\n" + "\tbx\tr1\n" + "._82:\n" + "\t.align\t2, 0\n" + "._81:\n" + "\t.word\tgSharedMem\n" + "\t.word\t0x2710\n" + "\t.word\t0xffff"); +} +#endif // NONMATCHING + +bool8 TayaDebugMenu_PKMNLottery(void) +{ + Menu_DrawStdWindowFrame(0, 0, 6, 5); + RetrieveLotteryNumber(); + eTayaLuckyNumber.curLuckyId = gSpecialVar_Result; + eTayaLuckyNumber.digit = 0; + debug_sub_8090C44(); + gMenuCallback = debug_sub_8090C88; + return FALSE; +} + +bool8 TayaDebugMenu_Trainer(void) +{ + u16 i; + + for (i = 0; i < ARRAY_COUNT(gTrainerEyeTrainers); i++) + SetTrainerFlag(gTrainerEyeTrainers[i].opponentIDs[0]); + + SetTrainerFlag(OPPONENT_ROXANNE); + SetTrainerFlag(OPPONENT_BRAWLY); + SetTrainerFlag(OPPONENT_WATTSON); + SetTrainerFlag(OPPONENT_FLANNERY); + SetTrainerFlag(OPPONENT_NORMAN); + SetTrainerFlag(OPPONENT_WINONA); + SetTrainerFlag(OPPONENT_TATE_AND_LIZA); + SetTrainerFlag(OPPONENT_WALLACE); + SetTrainerFlag(OPPONENT_SIDNEY); + SetTrainerFlag(OPPONENT_PHOEBE); + SetTrainerFlag(OPPONENT_GLACIA); + SetTrainerFlag(OPPONENT_DRAKE); + SetTrainerFlag(OPPONENT_STEVEN); + CloseMenu(); + return TRUE; +} + +bool8 TayaDebugMenu_PokenavD(void) +{ + u16 i; + u16 j; + + Menu_DisplayDialogueFrame(); + + for (i = 0; i < 14; i++) + { + StringCopy(gSharedMem, gUnknown_Debug_083C4F94); + gSharedMem[i + 1] = EOS; + Menu_PrintText(gSharedMem, 2, 15); + for (j = 0; j < 30; j++) + { + struct BoxPokemon *boxPokemon; + u32 otId = Random() + 1; + u16 level = (Random() % 100) + 1; + u16 species = (Random() % 386) + 1; + if (species >= SPECIES_OLD_UNOWN_B) + { + species += SPECIES_TREECKO - SPECIES_OLD_UNOWN_B; + if (species >= NUM_SPECIES) + species = SPECIES_BULBASAUR; + } + boxPokemon = gPokemonStorage.boxes[i] + j; + CreateBoxMon(boxPokemon, species, level, 32, FALSE, 0, TRUE, otId); + + otId = Random() & 0xff; + SetBoxMonData(boxPokemon, MON_DATA_COOL, &otId); + + otId = Random() & 0xff; + SetBoxMonData(boxPokemon, MON_DATA_BEAUTY, &otId); + + otId = Random() & 0xff; + SetBoxMonData(boxPokemon, MON_DATA_CUTE, &otId); + + otId = Random() & 0xff; + SetBoxMonData(boxPokemon, MON_DATA_SMART, &otId); + + otId = Random() & 0xff; + SetBoxMonData(boxPokemon, MON_DATA_TOUGH, &otId); + + otId = Random() & 0xff; + SetBoxMonData(boxPokemon, MON_DATA_SHEEN, &otId); + + otId = (Random() & 3) + 1; + SetBoxMonData(boxPokemon, MON_DATA_COOL_RIBBON, &otId); + + otId = (Random() & 3) + 1; + SetBoxMonData(boxPokemon, MON_DATA_BEAUTY_RIBBON, &otId); + + otId = (Random() & 3) + 1; + SetBoxMonData(boxPokemon, MON_DATA_CUTE_RIBBON, &otId); + + otId = (Random() & 3) + 1; + SetBoxMonData(boxPokemon, MON_DATA_TOUGH_RIBBON, &otId); + + otId = (Random() & 3) + 1; + SetBoxMonData(boxPokemon, MON_DATA_SMART_RIBBON, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_CHAMPION_RIBBON, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_WINNING_RIBBON, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_VICTORY_RIBBON, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_ARTIST_RIBBON, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_EFFORT_RIBBON, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_1, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_2, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_3, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_4, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_5, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_6, &otId); + + otId = Random() & 1; + SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_7, &otId); + } + } + TayaDebugMenu_TownFlags(); + TayaDebugMenu_Trainer(); + CloseMenu(); + return TRUE; +} + +bool8 TayaDebugMenu_8091190(void) +{ + s8 input = Menu_ProcessInput(); + s8 r4; + + switch (input) + { + default: + gMenuCallback = gUnknown_Debug_83C5068[sTayaTopMenuPage].menuActions[input].func; + return FALSE; + case -2: + r4 = sTayaTopMenuPage; + if (gMain.newKeys & DPAD_LEFT) + { + sTayaTopMenuPage--; + if (sTayaTopMenuPage < 0) + sTayaTopMenuPage = 1; + } + + if (gMain.newKeys & DPAD_RIGHT) + { + sTayaTopMenuPage++; + if ((u8)sTayaTopMenuPage > 1) + sTayaTopMenuPage = 0; + } + if (r4 != sTayaTopMenuPage) + { + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 11, 19); + Menu_PrintItems(1, 1, gUnknown_Debug_83C5068[sTayaTopMenuPage].nitems, gUnknown_Debug_83C5068[sTayaTopMenuPage].menuActions); + InitMenu(0, 1, 1, gUnknown_Debug_83C5068[sTayaTopMenuPage].nitems, 0, 10); + } + return FALSE; + case -1: + CloseMenu(); + return TRUE; + } +} + +bool8 InitTayaDebugWindow(void) +{ + sTayaTopMenuPage = 0; + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 11, 19); + Menu_PrintItems(1, 1, 9, gUnknown_Debug_83C5068[0].menuActions); + InitMenu(0, 1, 1, 9, 0, 10); + gMenuCallback = TayaDebugMenu_8091190; + return FALSE; +} + +bool8 debug_sub_80912D8(void) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(debug_sub_8110F28); + return TRUE; + } + return FALSE; +} + +bool8 debug_sub_8091300(void) +{ + FadeScreen(1, 0); + gMenuCallback = debug_sub_80912D8; + return FALSE; +} + +void debug_sub_8091320(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void debug_sub_8091334(void) +{ + AnimateSprites(); + BuildOamBuffer(); + + switch (eTayaMonData.state) + { + case 0: + eTayaMonData.redraw = 0; + if (gMain.newKeys & DPAD_UP) + { + if (eTayaMonData.y != 0) + { + eTayaMonData.y--; + eTayaMonData.redraw = 1; + } + } + if (gMain.newKeys & DPAD_DOWN) + { + if (eTayaMonData.x != 2) + { + if (eTayaMonData.y < 5) + { + eTayaMonData.y++; + eTayaMonData.redraw = 1; + } + } + else + { + if (eTayaMonData.y < 4) + { + eTayaMonData.y++; + eTayaMonData.redraw = 1; + } + } + } + if (gMain.newKeys & DPAD_LEFT) + { + if (eTayaMonData.x != 0) + { + eTayaMonData.x--; + eTayaMonData.redraw = 1; + } + } + if (gMain.newKeys & DPAD_RIGHT) + { + if (eTayaMonData.y != 5) + { + if (eTayaMonData.x < 2) + { + eTayaMonData.x++; + eTayaMonData.redraw = 1; + } + } + else + { + if (eTayaMonData.x < 1) + { + eTayaMonData.x++; + eTayaMonData.redraw = 1; + } + } + } + if (eTayaMonData.redraw) + { + debug_sub_80916AC(); + } + else if (gMain.newKeys & A_BUTTON) + { + u16 param = gUnknown_Debug_083C50EC[eTayaMonData.y][eTayaMonData.x].param; + if (param >= MON_DATA_COOL_RIBBON && param <= MON_DATA_TOUGH_RIBBON) + eTayaMonData.maxVal = 4; + else + eTayaMonData.maxVal = 1; + eTayaMonData.state = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + BlendPalettes(0xFFFFFFFF, 16, 0); + SetMainCallback2(sub_80546F0); + } + break; + case 1: + eTayaMonData.redraw = 0; + if (gMain.newKeys & DPAD_UP) + { + if (eTayaMonData.data[eTayaMonData.y][eTayaMonData.x] < eTayaMonData.maxVal) + { + eTayaMonData.data[eTayaMonData.y][eTayaMonData.x]++; + eTayaMonData.redraw = 1; + } + } + if (gMain.newKeys & DPAD_DOWN) + { + if (eTayaMonData.data[eTayaMonData.y][eTayaMonData.x] != 0) + { + eTayaMonData.data[eTayaMonData.y][eTayaMonData.x]--; + eTayaMonData.redraw = 1; + } + } + if (eTayaMonData.redraw) + { + debug_sub_80916AC(); + } + else + { + if (gMain.newKeys & B_BUTTON) + { + eTayaMonData.data[eTayaMonData.y][eTayaMonData.x] = GetMonData(gPlayerParty, gUnknown_Debug_083C50EC[eTayaMonData.y][eTayaMonData.x].param); + debug_sub_80916AC(); + eTayaMonData.state = 0; + } + if (gMain.newKeys & A_BUTTON) + { + if (gUnknown_Debug_083C50EC[eTayaMonData.y][eTayaMonData.x].param) + SetMonData(gPlayerParty, gUnknown_Debug_083C50EC[eTayaMonData.y][eTayaMonData.x].param, &eTayaMonData.data[eTayaMonData.y][eTayaMonData.x]); + eTayaMonData.state = 0; + } + } + break; + } +} + +void debug_sub_80915BC(void) +{ + u8 i; + u8 j; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + for (i = 0; i < 6; i++) + { + for (j = 0; j < 3; j++) + { + u16 param = gUnknown_Debug_083C50EC[i][j].param; + if (param) + eTayaMonData.data[i][j] = GetMonData(gPlayerParty, param); + else + eTayaMonData.data[i][j] = 0; + } + } + Text_LoadWindowTemplate(&gWindowTemplate_81E7224); + InitMenuWindow(&gWindowTemplate_81E7224); + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 3); + Menu_PrintText(gUnknown_Debug_083C517C, 1, 1); + Menu_DrawStdWindowFrame(0, 4, 29, 17); + Menu_DrawStdWindowFrame(0, 18, 29, 21); + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON; + eTayaMonData.x = 0; + eTayaMonData.y = 0; + eTayaMonData.state = 0; + debug_sub_80916AC(); + SetVBlankCallback(debug_sub_8091320); + SetMainCallback2(debug_sub_8091334); +} + +void debug_sub_80916AC(void) +{ + u8 i; + u8 j; + + for (i = 0; i < 6; i++) + { + u8 * buffer = eTayaMonData.charbuf; + for (j = 0; j < 3 && !(i == 5 && j == 2); j++) + { + if (eTayaMonData.x == j && eTayaMonData.y == i) + *buffer++ = 0xEF; + else + { + *buffer++ = CHAR_SPACE; + *buffer++ = CHAR_SPACE; + } + buffer = StringCopy(buffer, gUnknown_Debug_083C50EC[i][j].text); + *buffer++ = CHAR_SPACE; + buffer = ConvertIntToDecimalStringN(buffer, eTayaMonData.data[i][j], STR_CONV_MODE_LEFT_ALIGN, 1); + *buffer++ = CHAR_SPACE; + } + buffer[-1] = EOS; + Menu_PrintText(eTayaMonData.charbuf, 1, i * 2 + 5); + } +} + +#endif // DEBUG |