diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-13 08:24:11 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-13 08:24:11 -0400 |
commit | e6c587bd92ad5e4ef5ebceaf8e1b12c399b2c0bf (patch) | |
tree | f20c8484b4ed3029c52f33c5a0eb2473f0ad614c | |
parent | 8ae683d744c77d1fe34a265b80fa03d2dcf26b03 (diff) |
nonmatching debug_sub_808EF8C
-rw-r--r-- | asm/tomomichi_debug_menu.s | 246 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 328 |
2 files changed, 326 insertions, 248 deletions
diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s index 9ee4d88c3..51b9393b8 100644 --- a/asm/tomomichi_debug_menu.s +++ b/asm/tomomichi_debug_menu.s @@ -3,252 +3,6 @@ .include "constants/gba_constants.inc" .include "include/macros.inc" - thumb_func_start debug_sub_808EF8C -debug_sub_808EF8C: - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r6, #0x2 - bgt ._653 @cond_branch - cmp r6, #0 - blt ._653 @cond_branch - mov r3, #0x0 - ldr r0, ._656 @ gDebug_03000708 - mov r8, r0 - ldr r4, ._656 + 4 @ gDebug_03000710 - mov r7, #0x7 - mov r5, #0xf -._658: - sub r0, r7, r3 - lsl r0, r0, #0x2 - mov r1, r8 - ldr r2, [r1] - LSR r2, r0 - and r2, r2, r5 - cmp r2, #0x9 - bhi ._654 @cond_branch - add r1, r3, r4 - add r0, r2, #0 - add r0, r0, #0xa1 - b ._655 -._657: - .align 2, 0 -._656: - .word gDebug_03000708 - .word gDebug_03000710 -._654: - add r1, r3, r4 - add r0, r2, #0 - sub r0, r0, #0x4f -._655: - strb r0, [r1] - add r0, r3, #1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - cmp r3, #0x7 - bls ._658 @cond_branch - ldr r0, ._666 @ gDebug_03000710 - mov r1, #0xff - strb r1, [r0, #0x8] - mov r1, #0xc - mov r2, #0x5 - bl Menu_PrintText -._653: - mov r3, #0x0 - ldr r7, ._666 @ gDebug_03000710 - ldr r5, ._666 + 4 @ gDebug_03000700 - ldr r2, ._666 + 8 @ gSpeciesNames - mov r8, r2 - add r4, r7, #0 - mov r2, #0x0 -._659: - add r1, r3, #1 - add r0, r1, r4 - strb r2, [r0] - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - cmp r3, #0x9 - bls ._659 @cond_branch - mov r3, #0x0 - ldrh r2, [r5] - mov r0, #0xb - add r1, r2, #0 - mul r1, r1, r0 - mov r2, r8 - add r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0xff - beq ._661 @cond_branch - ldr r0, ._666 @ gDebug_03000710 - mov ip, r0 - mov r5, r8 - add r4, r1, #0 -._662: - add r1, r3, #1 - mov r0, ip - add r2, r1, r0 - add r0, r3, r4 - add r0, r0, r5 - ldrb r0, [r0] - strb r0, [r2] - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - add r0, r3, r4 - add r0, r0, r5 - ldrb r0, [r0] - cmp r0, #0xff - beq ._661 @cond_branch - cmp r3, #0x9 - bls ._662 @cond_branch -._661: - mov r0, #0xb1 - strb r0, [r7] - mov r0, #0xb2 - strb r0, [r7, #0xb] - mov r0, #0xff - strb r0, [r7, #0xc] - cmp r6, #0x2 - bgt ._664 @cond_branch - cmp r6, #0 - blt ._664 @cond_branch - add r0, r7, #0 - mov r1, #0x8 - mov r2, #0x1 - bl Menu_PrintText - b ._665 -._667: - .align 2, 0 -._666: - .word gDebug_03000710 - .word gDebug_03000700 - .word gSpeciesNames -._664: - ldr r0, ._672 @ gDebug_03000710 - mov r1, #0xc - mov r2, #0x1 - bl Menu_PrintText -._665: - ldr r5, ._672 @ gDebug_03000710 - mov r0, #0xff - strb r0, [r5, #0x3] - ldr r4, ._672 + 4 @ gDebug_03000700 - ldrh r0, [r4] - mov r1, #0x64 - bl __udivsi3 - add r0, r0, #0xa1 - strb r0, [r5] - ldrh r0, [r4] - mov r1, #0x64 - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0xa - bl __udivsi3 - add r0, r0, #0xa1 - strb r0, [r5, #0x1] - ldrh r0, [r4] - mov r1, #0xa - bl __umodsi3 - add r0, r0, #0xa1 - strb r0, [r5, #0x2] - add r0, r5, #0 - mov r1, #0xc - mov r2, #0x3 - bl Menu_PrintText - cmp r6, #0x1 - beq ._668 @cond_branch - cmp r6, #0x1 - bgt ._669 @cond_branch - cmp r6, #0 - beq ._670 @cond_branch - b ._679 -._673: - .align 2, 0 -._672: - .word gDebug_03000710 - .word gDebug_03000700 -._669: - cmp r6, #0x2 - beq ._674 @cond_branch - b ._679 -._670: - ldr r4, ._677 @ gDebug_0300070C - b ._676 -._678: - .align 2, 0 -._677: - .word gDebug_0300070C -._668: - ldr r4, ._680 @ gDebug_0300070D -._676: - ldrb r0, [r4] - mov r1, #0x64 - bl __udivsi3 - add r0, r0, #0xa1 - strb r0, [r5] - ldrb r0, [r4] - mov r1, #0x64 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0xa - bl __udivsi3 - add r0, r0, #0xa1 - strb r0, [r5, #0x1] - ldrb r0, [r4] - mov r1, #0xa - bl __umodsi3 - add r0, r0, #0xa1 - strb r0, [r5, #0x2] - add r0, r5, #0 - mov r1, #0xc - mov r2, #0x7 - bl Menu_PrintText - b ._679 -._681: - .align 2, 0 -._680: - .word gDebug_0300070D -._674: - ldr r4, ._682 @ gDebug_0300070E - ldrb r0, [r4] - mov r1, #0x64 - bl __udivsi3 - add r0, r0, #0xa1 - strb r0, [r5] - ldrb r0, [r4] - mov r1, #0x64 - bl __umodsi3 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0xa - bl __udivsi3 - add r0, r0, #0xa1 - strb r0, [r5, #0x1] - ldrb r0, [r4] - mov r1, #0xa - bl __umodsi3 - add r0, r0, #0xa1 - strb r0, [r5, #0x2] - add r0, r5, #0 - mov r1, #0xc - mov r2, #0x7 - bl Menu_PrintText -._679: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 -._683: - .align 2, 0 -._682: - .word gDebug_0300070E - - thumb_func_end debug_sub_808EF8C - thumb_func_start debug_sub_808F168 debug_sub_808F168: push {r4, lr} diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c index 68fdc9bd1..2ce2329d3 100644 --- a/src/debug/tomomichi_debug_menu.c +++ b/src/debug/tomomichi_debug_menu.c @@ -1,6 +1,7 @@ #if DEBUG #include "global.h" #include "palette.h" +#include "data2.h" #include "event_data.h" #include "constants/flags.h" #include "constants/songs.h" @@ -71,7 +72,7 @@ void debug_sub_808ED9C(void); void debug_sub_808EE3C(void); void debug_sub_808EE9C(void); void debug_sub_808EF14(void); -void debug_sub_808EF8C(u32 a0); +void debug_sub_808EF8C(u8 a0); bool8 debug_sub_808C064(void); bool8 debug_sub_808C0EC(void); bool8 debug_sub_808C104(void); @@ -4082,4 +4083,327 @@ void debug_sub_808EF14(void) } } -#endif +#ifdef NONMATCHING +void debug_sub_808EF8C(u8 a0) +{ + u8 i; + u8 digit; + u16 species; + + switch (a0) + { + case 0: + case 1: + case 2: + for (i = 0; i < 8; i++) + { + digit = (gDebug_03000708 >> (4 * (7 - i))) & 0xf; + if (digit < 10) + gDebug_03000710[i] = digit + CHAR_0; + else + gDebug_03000710[i] = digit + CHAR_A - 10; + } + gDebug_03000710[i] = EOS; + Menu_PrintText(gDebug_03000710, 12, 5); + break; + } + for (i = 0; i < POKEMON_NAME_LENGTH; i++) + { + gDebug_03000710[i + 1] = CHAR_SPACE; + } + + for (i = 0, species = gDebug_03000700; gSpeciesNames[species][i] != EOS && i < POKEMON_NAME_LENGTH; i++) + { + gDebug_03000710[i + 1] = gSpeciesNames[species][i]; + } + + gDebug_03000710[0] = 0xB1; + gDebug_03000710[POKEMON_NAME_LENGTH + 1] = 0xB2; + gDebug_03000710[POKEMON_NAME_LENGTH + 2] = EOS; + switch (a0) + { + case 0: + case 1: + case 2: + Menu_PrintText(gDebug_03000710, 8, 1); + break; + default: + Menu_PrintText(gDebug_03000710, 12, 1); + break; + } + gDebug_03000710[3] = EOS; + gDebug_03000710[0] = gDebug_03000700 / 100 + CHAR_0; + gDebug_03000710[1] = (gDebug_03000700 % 100) / 10 + CHAR_0; + gDebug_03000710[2] = gDebug_03000700 % 10 + CHAR_0; + Menu_PrintText(gDebug_03000710, 12, 3); + + switch (a0) + { + case 0: + gDebug_03000710[0] = gDebug_0300070C / 100 + CHAR_0; + gDebug_03000710[1] = (gDebug_0300070C % 100) / 10 + CHAR_0; + gDebug_03000710[2] = gDebug_0300070C % 10 + CHAR_0; + Menu_PrintText(gDebug_03000710, 12, 7); + break; + case 1: + gDebug_03000710[0] = gDebug_0300070D / 100 + CHAR_0; + gDebug_03000710[1] = (gDebug_0300070D % 100) / 10 + CHAR_0; + gDebug_03000710[2] = gDebug_0300070D % 10 + CHAR_0; + Menu_PrintText(gDebug_03000710, 12, 7); + break; + case 2: + gDebug_03000710[0] = gDebug_0300070E / 100 + CHAR_0; + gDebug_03000710[1] = (gDebug_0300070E % 100) / 10 + CHAR_0; + gDebug_03000710[2] = gDebug_0300070E % 10 + CHAR_0; + Menu_PrintText(gDebug_03000710, 12, 7); + break; + } +} +#else +__attribute__((naked)) void debug_sub_808EF8C(u8 a0) +{ + asm("\tpush\t{r4, r5, r6, r7, lr}\n" + "\tmov\tr7, r8\n" + "\tpush\t{r7}\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr6, r0, #0x18\n" + "\tcmp\tr6, #0x2\n" + "\tbgt\t._653\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tblt\t._653\t@cond_branch\n" + "\tmov\tr3, #0x0\n" + "\tldr\tr0, ._656 @ gDebug_03000708\n" + "\tmov\tr8, r0\n" + "\tldr\tr4, ._656 + 4 @ gDebug_03000710\n" + "\tmov\tr7, #0x7\n" + "\tmov\tr5, #0xf\n" + "._658:\n" + "\tsub\tr0, r7, r3\n" + "\tlsl\tr0, r0, #0x2\n" + "\tmov\tr1, r8\n" + "\tldr\tr2, [r1]\n" + "\tLSR\tr2, r0\n" + "\tand\tr2, r2, r5\n" + "\tcmp\tr2, #0x9\n" + "\tbhi\t._654\t@cond_branch\n" + "\tadd\tr1, r3, r4\n" + "\tadd\tr0, r2, #0\n" + "\tadd\tr0, r0, #0xa1\n" + "\tb\t._655\n" + "._657:\n" + "\t.align\t2, 0\n" + "._656:\n" + "\t.word\tgDebug_03000708\n" + "\t.word\tgDebug_03000710\n" + "._654:\n" + "\tadd\tr1, r3, r4\n" + "\tadd\tr0, r2, #0\n" + "\tsub\tr0, r0, #0x4f\n" + "._655:\n" + "\tstrb\tr0, [r1]\n" + "\tadd\tr0, r3, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr3, r0, #0x18\n" + "\tcmp\tr3, #0x7\n" + "\tbls\t._658\t@cond_branch\n" + "\tldr\tr0, ._666 @ gDebug_03000710\n" + "\tmov\tr1, #0xff\n" + "\tstrb\tr1, [r0, #0x8]\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x5\n" + "\tbl\tMenu_PrintText\n" + "._653:\n" + "\tmov\tr3, #0x0\n" + "\tldr\tr7, ._666 @ gDebug_03000710\n" + "\tldr\tr5, ._666 + 4 @ gDebug_03000700\n" + "\tldr\tr2, ._666 + 8 @ gSpeciesNames\n" + "\tmov\tr8, r2\n" + "\tadd\tr4, r7, #0\n" + "\tmov\tr2, #0x0\n" + "._659:\n" + "\tadd\tr1, r3, #1\n" + "\tadd\tr0, r1, r4\n" + "\tstrb\tr2, [r0]\n" + "\tlsl\tr1, r1, #0x18\n" + "\tlsr\tr3, r1, #0x18\n" + "\tcmp\tr3, #0x9\n" + "\tbls\t._659\t@cond_branch\n" + "\tmov\tr3, #0x0\n" + "\tldrh\tr2, [r5]\n" + "\tmov\tr0, #0xb\n" + "\tadd\tr1, r2, #0\n" + "\tmul\tr1, r1, r0\n" + "\tmov\tr2, r8\n" + "\tadd\tr0, r1, r2\n" + "\tldrb\tr0, [r0]\n" + "\tcmp\tr0, #0xff\n" + "\tbeq\t._661\t@cond_branch\n" + "\tldr\tr0, ._666 @ gDebug_03000710\n" + "\tmov\tip, r0\n" + "\tmov\tr5, r8\n" + "\tadd\tr4, r1, #0\n" + "._662:\n" + "\tadd\tr1, r3, #1\n" + "\tmov\tr0, ip\n" + "\tadd\tr2, r1, r0\n" + "\tadd\tr0, r3, r4\n" + "\tadd\tr0, r0, r5\n" + "\tldrb\tr0, [r0]\n" + "\tstrb\tr0, [r2]\n" + "\tlsl\tr1, r1, #0x18\n" + "\tlsr\tr3, r1, #0x18\n" + "\tadd\tr0, r3, r4\n" + "\tadd\tr0, r0, r5\n" + "\tldrb\tr0, [r0]\n" + "\tcmp\tr0, #0xff\n" + "\tbeq\t._661\t@cond_branch\n" + "\tcmp\tr3, #0x9\n" + "\tbls\t._662\t@cond_branch\n" + "._661:\n" + "\tmov\tr0, #0xb1\n" + "\tstrb\tr0, [r7]\n" + "\tmov\tr0, #0xb2\n" + "\tstrb\tr0, [r7, #0xb]\n" + "\tmov\tr0, #0xff\n" + "\tstrb\tr0, [r7, #0xc]\n" + "\tcmp\tr6, #0x2\n" + "\tbgt\t._664\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tblt\t._664\t@cond_branch\n" + "\tadd\tr0, r7, #0\n" + "\tmov\tr1, #0x8\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "\tb\t._665\n" + "._667:\n" + "\t.align\t2, 0\n" + "._666:\n" + "\t.word\tgDebug_03000710\n" + "\t.word\tgDebug_03000700\n" + "\t.word\tgSpeciesNames\n" + "._664:\n" + "\tldr\tr0, ._672 @ gDebug_03000710\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "._665:\n" + "\tldr\tr5, ._672 @ gDebug_03000710\n" + "\tmov\tr0, #0xff\n" + "\tstrb\tr0, [r5, #0x3]\n" + "\tldr\tr4, ._672 + 4 @ gDebug_03000700\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x10\n" + "\tlsr\tr0, r0, #0x10\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x3\n" + "\tbl\tMenu_PrintText\n" + "\tcmp\tr6, #0x1\n" + "\tbeq\t._668\t@cond_branch\n" + "\tcmp\tr6, #0x1\n" + "\tbgt\t._669\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tbeq\t._670\t@cond_branch\n" + "\tb\t._679\n" + "._673:\n" + "\t.align\t2, 0\n" + "._672:\n" + "\t.word\tgDebug_03000710\n" + "\t.word\tgDebug_03000700\n" + "._669:\n" + "\tcmp\tr6, #0x2\n" + "\tbeq\t._674\t@cond_branch\n" + "\tb\t._679\n" + "._670:\n" + "\tldr\tr4, ._677 @ gDebug_0300070C\n" + "\tb\t._676\n" + "._678:\n" + "\t.align\t2, 0\n" + "._677:\n" + "\t.word\tgDebug_0300070C\n" + "._668:\n" + "\tldr\tr4, ._680 @ gDebug_0300070D\n" + "._676:\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x7\n" + "\tbl\tMenu_PrintText\n" + "\tb\t._679\n" + "._681:\n" + "\t.align\t2, 0\n" + "._680:\n" + "\t.word\tgDebug_0300070D\n" + "._674:\n" + "\tldr\tr4, ._682 @ gDebug_0300070E\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x7\n" + "\tbl\tMenu_PrintText\n" + "._679:\n" + "\tpop\t{r3}\n" + "\tmov\tr8, r3\n" + "\tpop\t{r4, r5, r6, r7}\n" + "\tpop\t{r0}\n" + "\tbx\tr0\n" + "._683:\n" + "\t.align\t2, 0\n" + "._682:\n" + "\t.word\tgDebug_0300070E"); +} +#endif // NONMATCHING + +#endif // DEBUG |