diff options
Diffstat (limited to 'asm/credits.s')
-rw-r--r-- | asm/credits.s | 479 |
1 files changed, 479 insertions, 0 deletions
diff --git a/asm/credits.s b/asm/credits.s new file mode 100644 index 0000000..f42c628 --- /dev/null +++ b/asm/credits.s @@ -0,0 +1,479 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8035404 +sub_8035404: + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803541A + adds r0, r4, 0 + bl sub_80338C4 +_0803541A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8035404 + + thumb_func_start sub_8035424 +sub_8035424: + push {lr} + movs r0, 0x6 + bl sub_80338C4 + pop {r0} + bx r0 + thumb_func_end sub_8035424 + + thumb_func_start sub_8035430 +sub_8035430: + push {lr} + movs r0, 0x4F + bl sub_80338C4 + pop {r0} + bx r0 + thumb_func_end sub_8035430 + + thumb_func_start nullsub_50 +nullsub_50: + bx lr + thumb_func_end nullsub_50 + + thumb_func_start nullsub_51 +nullsub_51: + bx lr + thumb_func_end nullsub_51 + + thumb_func_start sub_8035444 +sub_8035444: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x84 + mov r8, r0 + adds r5, r1, 0 + ldr r4, _080354C0 + movs r0, 0x6C + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + movs r1, 0 + str r1, [r0, 0x60] + str r5, [r0, 0x64] + mov r1, r8 + str r1, [r0, 0x68] + ldr r2, _080354C4 + mov r12, r2 + mov r9, r4 + movs r3, 0 + movs r2, 0x3 +_08035472: + ldr r1, [r4] + adds r1, r3 + mov r0, r12 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _08035472 + mov r0, r9 + ldr r1, [r0] + ldr r0, _080354C8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + bl ResetUnusedInputStruct + mov r1, r9 + ldr r0, [r1] + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0x2 + bl sub_8099690 + movs r0, 0 + bl sub_80073B8 + mov r2, r8 + lsls r0, r2, 2 + ldr r1, _080354CC + adds r0, r1 + ldr r1, [r0] + movs r5, 0 + b _08035542 + .align 2, 0 +_080354C0: .4byte gUnknown_203B340 +_080354C4: .4byte gUnknown_80E4A10 +_080354C8: .4byte gUnknown_80E4A28 +_080354CC: .4byte gUnknown_80E591C +_080354D0: + ldr r2, [r1, 0x8] + movs r3, 0x4 + ldrsh r0, [r1, r3] + cmp r0, 0 + blt _080354DE + adds r5, r0, 0 + b _080354E4 +_080354DE: + movs r6, 0x4 + ldrsh r0, [r1, r6] + subs r5, r0 +_080354E4: + movs r7, 0x2 + ldrsh r6, [r1, r7] + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + beq _080354FA + cmp r0, 0x2 + beq _08035514 + adds r4, r1, 0 + adds r4, 0xC + b _08035532 +_080354FA: + add r3, sp, 0x4 + ldrb r0, [r2] + adds r4, r1, 0 + adds r4, 0xC + cmp r0, 0 + beq _0803552C +_08035506: + strb r0, [r3] + adds r2, 0x1 + adds r3, 0x1 + ldrb r0, [r2] + cmp r0, 0 + bne _08035506 + b _0803552C +_08035514: + add r3, sp, 0x4 + ldrb r0, [r2] + adds r4, r1, 0 + adds r4, 0xC + cmp r0, 0 + beq _0803552C +_08035520: + strb r0, [r3] + adds r2, 0x1 + adds r3, 0x1 + ldrb r0, [r2] + cmp r0, 0 + bne _08035520 +_0803552C: + movs r0, 0 + strb r0, [r3] + add r2, sp, 0x4 +_08035532: + movs r0, 0 + str r0, [sp] + adds r0, r6, 0 + adds r1, r5, 0 + movs r3, 0 + bl xxx_call_draw_string + adds r1, r4, 0 +_08035542: + ldr r0, [r1, 0x8] + cmp r0, 0 + bne _080354D0 + movs r0, 0 + bl sub_80073E0 + movs r0, 0 + bl SelectCharmap + ldr r2, _08035570 + movs r0, 0x9 + movs r1, 0 + ldr r2, [r2] + bl sub_8099AFC + movs r0, 0x1 + add sp, 0x84 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08035570: .4byte gCreditsTable + thumb_func_end sub_8035444 + + thumb_func_start sub_8035574 +sub_8035574: + push {r4,lr} + ldr r1, _0803558C + ldr r0, [r1] + ldr r0, [r0, 0x60] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _08035654 + lsls r0, 2 + ldr r1, _08035590 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803558C: .4byte gUnknown_203B340 +_08035590: .4byte _08035594 + .align 2, 0 +_08035594: + .4byte _080355A8 + .4byte _080355D0 + .4byte _080355E8 + .4byte _08035610 + .4byte _08035638 +_080355A8: + bl sub_8099B94 + lsls r0, 24 + cmp r0, 0 + bne _08035654 + ldr r0, _080355C8 + ldr r1, [r0] + movs r0, 0x1 + str r0, [r1, 0x60] + ldr r2, _080355CC + movs r0, 0x9 + movs r1, 0x1E + ldr r2, [r2] + bl sub_8099A5C + b _08035654 + .align 2, 0 +_080355C8: .4byte gUnknown_203B340 +_080355CC: .4byte gCreditsTable +_080355D0: + bl sub_8099B94 + lsls r0, 24 + cmp r0, 0 + bne _08035654 + ldr r0, _080355E4 + ldr r1, [r0] + movs r0, 0x2 + str r0, [r1, 0x60] + b _08035654 + .align 2, 0 +_080355E4: .4byte gUnknown_203B340 +_080355E8: + ldr r1, [r4] + ldr r0, [r1, 0x64] + cmp r0, 0 + bgt _08035600 + movs r0, 0x3 + str r0, [r1, 0x60] + ldr r2, _0803560C + movs r0, 0x9 + movs r1, 0x1E + ldr r2, [r2] + bl sub_8099AFC +_08035600: + ldr r1, [r4] + ldr r0, [r1, 0x64] + subs r0, 0x1 + str r0, [r1, 0x64] + b _08035654 + .align 2, 0 +_0803560C: .4byte gCreditsTable +_08035610: + bl sub_8099B94 + lsls r0, 24 + cmp r0, 0 + bne _08035654 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, _08035634 + ldr r1, [r0] + movs r0, 0x4 + str r0, [r1, 0x60] + b _08035654 + .align 2, 0 +_08035634: .4byte gUnknown_203B340 +_08035638: + movs r0, 0 + bl sub_8099690 + ldr r2, _08035650 + movs r0, 0x1 + movs r1, 0 + ldr r2, [r2] + bl sub_8099A5C + movs r0, 0x3 + b _08035656 + .align 2, 0 +_08035650: .4byte gCreditsTable +_08035654: + movs r0, 0 +_08035656: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8035574 + + thumb_func_start sub_803565C +sub_803565C: + push {r4,lr} + ldr r4, _08035674 + ldr r0, [r4] + cmp r0, 0 + beq _0803566E + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0803566E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035674: .4byte gUnknown_203B340 + thumb_func_end sub_803565C + + thumb_func_start sub_8035678 +sub_8035678: + push {r4,lr} + ldr r4, _0803569C + movs r0, 0x8 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + movs r1, 0 + str r1, [r0] + str r1, [r0, 0x4] + movs r0, 0 + movs r1, 0x39 + bl sub_80015C0 + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0803569C: .4byte gUnknown_203B344 + thumb_func_end sub_8035678 + + thumb_func_start sub_80356A0 +sub_80356A0: + push {r4,lr} + ldr r0, _080356C4 + ldrh r4, [r0] + ldr r3, _080356C8 + ldr r2, _080356CC + ldr r1, [r2] + ldr r0, [r1, 0x4] + lsls r0, 1 + adds r0, r3 + ldrh r3, [r0] + ldr r0, [r1] + cmp r0, 0x4 + bhi _08035734 + lsls r0, 2 + ldr r1, _080356D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080356C4: .4byte gRealInputs +_080356C8: .4byte gUnknown_80E5990 +_080356CC: .4byte gUnknown_203B344 +_080356D0: .4byte _080356D4 + .align 2, 0 +_080356D4: + .4byte _08035728 + .4byte _080356E8 + .4byte _08035710 + .4byte _0803574C + .4byte _08035730 +_080356E8: + cmp r3, 0 + bne _080356F4 + ldr r1, [r2] + movs r0, 0x4 + str r0, [r1] + b _08035734 +_080356F4: + cmp r4, r3 + bne _08035700 + ldr r1, [r2] + movs r0, 0x2 + str r0, [r1] + b _08035734 +_08035700: + ands r3, r4 + cmp r3, r4 + bne _08035728 + ldr r1, [r2] + ldr r0, [r1, 0x4] + cmp r0, 0 + bne _08035734 + b _0803572A +_08035710: + cmp r4, 0 + bne _08035722 + ldr r1, [r2] + movs r0, 0x1 + str r0, [r1] + ldr r0, [r1, 0x4] + adds r0, 0x1 + str r0, [r1, 0x4] + b _08035734 +_08035722: + ands r3, r4 + cmp r3, r4 + beq _08035734 +_08035728: + ldr r1, [r2] +_0803572A: + movs r0, 0x3 + str r0, [r1] + b _08035734 +_08035730: + movs r0, 0x3 + b _0803574E +_08035734: + movs r0, 0 + movs r1, 0x39 + bl sub_8001658 + cmp r0, 0 + bne _08035744 + movs r0, 0 + b _0803574E +_08035744: + ldr r0, _08035754 + ldr r1, [r0] + movs r0, 0x3 + str r0, [r1] +_0803574C: + movs r0, 0x2 +_0803574E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08035754: .4byte gUnknown_203B344 + thumb_func_end sub_80356A0 + + thumb_func_start sub_8035758 +sub_8035758: + push {r4,lr} + ldr r4, _08035770 + ldr r0, [r4] + cmp r0, 0 + beq _0803576A + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0803576A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035770: .4byte gUnknown_203B344 + thumb_func_end sub_8035758 + + .align 2,0 |