diff --git a/asm/code_80BF13C.s b/asm/code_80BF13C.s index 8c1b49145..093b55087 100644 --- a/asm/code_80BF13C.s +++ b/asm/code_80BF13C.s @@ -3074,1033 +3074,4 @@ _080C40AA: THUMB_FUNC_END sub_80C409C - THUMB_FUNC_START sub_80C40B0 -sub_80C40B0: @ 0x080C40B0 - movs r1, #0 - strh r1, [r0, #0x30] - strh r1, [r0, #0x34] - bx lr - - THUMB_FUNC_END sub_80C40B0 - - THUMB_FUNC_START sub_80C40B8 -sub_80C40B8: @ 0x080C40B8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x77 - bgt _080C4100 - movs r0, #0x30 - ldrsh r1, [r4, r0] - movs r0, #0x77 - subs r0, r0, r1 - movs r1, #0x78 - movs r2, #1 - bl sub_800B84C - adds r1, r0, #0 - movs r0, #0x80 - lsls r0, r0, #5 - subs r1, r0, r1 - lsls r1, r1, #4 - bl DivArm - adds r2, r0, #0 - movs r1, #0x10 - subs r1, r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - movs r3, #0 - bl SetBlendConfig - b _080C4124 -_080C4100: - movs r0, #1 - movs r1, #0 - movs r2, #0x10 - movs r3, #0 - bl SetBlendConfig - ldr r0, [r4, #0x2c] - ldrh r0, [r0, #0x30] - strh r0, [r4, #0x34] - ldr r1, [r4, #0x14] - adds r1, #0x29 - ldrb r0, [r1] - movs r2, #1 - orrs r0, r2 - strb r0, [r1] - adds r0, r4, #0 - bl Proc_Break -_080C4124: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_80C40B8 - - THUMB_FUNC_START sub_80C412C -sub_80C412C: @ 0x080C412C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x34] - subs r0, #1 - strh r0, [r2, #0x34] - ldr r1, [r2, #0x14] - ldr r0, [r1, #0x30] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r0, r3 - ldr r3, [r1, #0x40] - cmp r0, r3 - blt _080C4150 - str r3, [r1, #0x30] - adds r0, r2, #0 - bl Proc_Break - b _080C4152 -_080C4150: - str r0, [r1, #0x30] -_080C4152: - pop {r0} - bx r0 - - THUMB_FUNC_END sub_80C412C - - THUMB_FUNC_START sub_80C4158 -sub_80C4158: @ 0x080C4158 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x34] - subs r0, #1 - strh r0, [r3, #0x34] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080C417E - movs r0, #0 - strh r0, [r3, #0x30] - ldr r1, [r3, #0x14] - adds r1, #0x29 - ldrb r2, [r1] - subs r0, #2 - ands r0, r2 - strb r0, [r1] - adds r0, r3, #0 - bl Proc_Break -_080C417E: - pop {r0} - bx r0 - - THUMB_FUNC_END sub_80C4158 - - THUMB_FUNC_START sub_80C4184 -sub_80C4184: @ 0x080C4184 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x30] - adds r0, #1 - strh r0, [r4, #0x30] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x77 - bgt _080C41CA - movs r0, #0x30 - ldrsh r1, [r4, r0] - movs r0, #0x77 - subs r0, r0, r1 - movs r1, #0x78 - movs r2, #1 - bl sub_800B84C - adds r1, r0, #0 - movs r0, #0x80 - lsls r0, r0, #5 - subs r1, r0, r1 - lsls r1, r1, #4 - bl DivArm - lsls r1, r0, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0x10 - subs r2, r2, r0 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - movs r0, #1 - movs r3, #0 - bl SetBlendConfig - b _080C41DC -_080C41CA: - movs r0, #1 - movs r1, #0x10 - movs r2, #0 - movs r3, #0 - bl SetBlendConfig - adds r0, r4, #0 - bl Proc_Break -_080C41DC: - pop {r4} - pop {r0} - bx r0 - - THUMB_FUNC_END sub_80C4184 - - THUMB_FUNC_START sub_80C41E4 -sub_80C41E4: @ 0x080C41E4 - ldr r1, [r0, #0x14] - adds r1, #0x29 - ldrb r2, [r1] - movs r0, #5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bx lr - - THUMB_FUNC_END sub_80C41E4 - - THUMB_FUNC_START sub_80C41F4 -sub_80C41F4: @ 0x080C41F4 - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldr r0, _080C420C @ gUnknown_08AA2044 - adds r1, r2, #0 - bl Proc_Start - str r4, [r0, #0x2c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C420C: .4byte gUnknown_08AA2044 - - THUMB_FUNC_END sub_80C41F4 - - THUMB_FUNC_START sub_80C4210 -sub_80C4210: @ 0x080C4210 - push {lr} - ldr r0, _080C4224 @ gUnknown_08AA2044 - bl Proc_Find - cmp r0, #0 - beq _080C421E - movs r0, #1 -_080C421E: - pop {r1} - bx r1 - .align 2, 0 -_080C4224: .4byte gUnknown_08AA2044 - - THUMB_FUNC_END sub_80C4210 - - THUMB_FUNC_START sub_80C4228 -sub_80C4228: @ 0x080C4228 - push {lr} - ldr r0, _080C4234 @ gUnknown_08AA2044 - bl Proc_EndEach - pop {r0} - bx r0 - .align 2, 0 -_080C4234: .4byte gUnknown_08AA2044 - - THUMB_FUNC_END sub_80C4228 - - THUMB_FUNC_START sub_80C4238 -sub_80C4238: @ 0x080C4238 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r3, r0, #0 - ldr r0, [r3, #0x30] - asrs r0, r0, #8 - cmp r0, #0 - bge _080C4250 - adds r0, #0xff -_080C4250: - asrs r4, r0, #8 - adds r1, r3, #0 - adds r1, #0x35 - strb r4, [r1] - ldr r0, [r3, #0x30] - asrs r2, r0, #8 - adds r0, r2, #0 - mov r8, r1 - cmp r2, #0 - bge _080C4266 - adds r0, #0xff -_080C4266: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r2, r0 - cmp r0, #0xf - bgt _080C4272 - b _080C4398 -_080C4272: - adds r0, r3, #0 - adds r0, #0x34 - lsls r1, r4, #0x18 - asrs r1, r1, #0x18 - movs r2, #0 - ldrsb r2, [r0, r2] - str r0, [sp, #4] - cmp r1, r2 - bne _080C4286 - b _080C4398 -_080C4286: - adds r4, r3, #0 - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #4 - ands r0, r1 - ldr r1, _080C42D4 @ gUnknown_08206E24 - mov r9, r1 - ldr r2, _080C42D8 @ gUnknown_08206FDC - mov sl, r2 - cmp r0, #0 - bne _080C4302 - mov r1, r8 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r2, r0, #1 - cmp r2, #0x16 - bhi _080C4302 - adds r6, r3, #0 - adds r6, #0x48 - mov r7, r9 - subs r7, #0x14 - ldr r0, _080C42DC @ gPlaySt - mov ip, r0 - lsls r0, r2, #2 - adds r0, r0, r2 - lsls r1, r0, #2 -_080C42BA: - adds r5, r1, r7 - ldr r0, [r5, #4] - cmp r0, #0 - beq _080C42FA - movs r0, #0 - strb r0, [r6] - mov r1, ip - ldrb r0, [r1, #0x1b] - cmp r0, #2 - bne _080C42E0 - ldr r0, [r5, #4] - b _080C42E2 - .align 2, 0 -_080C42D4: .4byte gUnknown_08206E24 -_080C42D8: .4byte gUnknown_08206FDC -_080C42DC: .4byte gPlaySt -_080C42E0: - ldr r0, [r5, #8] -_080C42E2: - str r0, [r3, #0x44] - ldr r0, [r5, #0xc] - str r0, [r3, #0x3c] - ldr r0, [r5, #0x10] - str r0, [r3, #0x40] - ldrb r1, [r4] - movs r0, #4 - orrs r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r4] - b _080C4302 -_080C42FA: - adds r1, #0x14 - adds r2, #1 - cmp r2, #0x16 - bls _080C42BA -_080C4302: - mov r2, r8 - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - mov r2, r9 - adds r5, r1, r2 - adds r2, r0, #1 - movs r0, #1 - ands r2, r0 - ldr r0, [r5] - cmp r0, #0 - beq _080C435C - ldr r0, [r0] - lsls r1, r2, #2 - add r1, sl - ldr r4, [r1] - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r1, r4, r2 - bl Decompress - ldr r0, [r5] - ldr r0, [r0, #4] - ldr r5, _080C4354 @ gGenericBuffer - adds r1, r5, #0 - bl Decompress - ldr r0, _080C4358 @ gUnknown_0201C5D4 - lsrs r4, r4, #5 - movs r1, #0xe0 - lsls r1, r1, #7 - adds r4, r4, r1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - bl CallARM_FillTileRect - b _080C4390 - .align 2, 0 -_080C4354: .4byte gGenericBuffer -_080C4358: .4byte gUnknown_0201C5D4 -_080C435C: - movs r0, #1 - negs r0, r0 - str r0, [sp] - ldr r1, _080C43A8 @ gUnknown_08206FDC - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r1, r4, r2 - ldr r2, _080C43AC @ 0x01000008 - mov r0, sp - bl CpuFastSet - lsrs r4, r4, #5 - movs r1, #0xe0 - lsls r1, r1, #7 - adds r0, r4, r1 - ldr r3, _080C43B0 @ gUnknown_0201C5D4 - movs r2, #0x80 - lsls r2, r2, #3 -_080C4386: - strh r0, [r3] - adds r3, #2 - subs r2, #1 - cmp r2, #0 - bne _080C4386 -_080C4390: - mov r2, r8 - ldrb r0, [r2] - ldr r1, [sp, #4] - strb r0, [r1] -_080C4398: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_080C43A8: .4byte gUnknown_08206FDC -_080C43AC: .4byte 0x01000008 -_080C43B0: .4byte gUnknown_0201C5D4 - - THUMB_FUNC_END sub_80C4238 - - THUMB_FUNC_START sub_80C43B4 -sub_80C43B4: @ 0x080C43B4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x30] - asrs r5, r0, #8 - adds r0, r5, #0 - cmp r5, #0 - bge _080C43C4 - adds r0, #0xf -_080C43C4: - asrs r0, r0, #4 - strh r0, [r4, #0x38] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _080C440C - adds r1, r5, #0 - adds r1, #0xf0 - adds r0, r1, #0 - cmp r1, #0 - bge _080C43E2 - ldr r2, _080C4454 @ 0x000001EF - adds r0, r5, r2 -_080C43E2: - asrs r0, r0, #8 - lsls r0, r0, #8 - subs r0, r1, r0 - adds r1, r0, #0 - cmp r0, #0 - bge _080C43F0 - adds r1, r0, #7 -_080C43F0: - asrs r1, r1, #3 - lsls r1, r1, #6 - ldr r0, _080C4458 @ gUnknown_0201C5D4 - adds r0, r1, r0 - ldr r2, _080C445C @ gBG0TilemapBuffer - adds r1, r1, r2 - movs r2, #0x20 - bl CpuFastSet - movs r0, #1 - bl BG_EnableSyncByMask - ldrh r0, [r4, #0x38] - strh r0, [r4, #0x36] -_080C440C: - bl sub_80C4210 - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080C443A - ldr r0, [r4, #0x2c] - ldr r2, [r4, #0x30] - cmp r0, r2 - beq _080C443A - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080C443A - ldr r0, [r4, #0x3c] - cmp r2, r0 - blt _080C443A - ldr r1, [r4, #0x44] - adds r0, r4, #0 - bl sub_80C41F4 -_080C443A: - movs r0, #0xff - ands r5, r0 - movs r0, #0 - movs r1, #0 - adds r2, r5, #0 - bl BG_SetPosition - ldr r0, [r4, #0x30] - str r0, [r4, #0x2c] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C4454: .4byte 0x000001EF -_080C4458: .4byte gUnknown_0201C5D4 -_080C445C: .4byte gBG0TilemapBuffer - - THUMB_FUNC_END sub_80C43B4 - - THUMB_FUNC_START sub_80C4460 -sub_80C4460: @ 0x080C4460 - push {r4, r5, r6, lr} - sub sp, #0xc - adds r6, r0, #0 - movs r0, #0 - bl SetPrimaryHBlankHandler - movs r0, #0 - bl SetupBackgrounds - ldr r3, _080C45B8 @ gLCDControlBuffer - ldrb r1, [r3, #1] - movs r0, #2 - negs r0, r0 - ands r0, r1 - movs r1, #3 - negs r1, r1 - ands r0, r1 - subs r1, #2 - ands r0, r1 - subs r1, #4 - ands r0, r1 - subs r1, #8 - ands r0, r1 - strb r0, [r3, #1] - ldrb r2, [r3, #0xc] - adds r1, #0xd - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xc] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - movs r2, #1 - orrs r0, r2 - strb r0, [r3, #0x10] - ldrb r0, [r3, #0x14] - ands r1, r0 - movs r0, #2 - orrs r1, r0 - strb r1, [r3, #0x14] - ldrb r0, [r3, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r3, #0x18] - movs r0, #1 - movs r1, #0x10 - movs r2, #0 - movs r3, #0 - bl SetBlendConfig - movs r4, #0 - str r4, [sp] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl SetBlendTargetA - str r4, [sp] - movs r0, #0 - movs r1, #0 - movs r2, #0 - movs r3, #1 - bl SetBlendTargetB - movs r0, #0 - bl SetBlendBackdropA - movs r0, #0 - bl SetBlendBackdropB - str r4, [sp, #4] - ldr r1, _080C45BC @ gPaletteBuffer - ldr r2, _080C45C0 @ 0x01000100 - add r0, sp, #4 - bl CpuFastSet - ldr r0, _080C45C4 @ gUnknown_08A40FC8 - movs r1, #0xe0 - movs r2, #0x20 - bl CopyToPaletteBuffer - movs r0, #1 - negs r0, r0 - str r0, [sp, #8] - add r0, sp, #8 - ldr r1, _080C45C8 @ gUnknown_08206FDC - ldr r4, [r1] - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r1, r4, r2 - ldr r2, _080C45CC @ 0x01000008 - bl CpuFastSet - lsrs r4, r4, #5 - movs r0, #0xe0 - lsls r0, r0, #7 - adds r4, r4, r0 - ldr r0, _080C45D0 @ gBG0TilemapBuffer - movs r5, #0x80 - lsls r5, r5, #3 -_080C452A: - strh r4, [r0] - adds r0, #2 - subs r5, #1 - cmp r5, #0 - bne _080C452A - ldr r0, _080C45D4 @ gBG1TilemapBuffer - movs r1, #0 - bl BG_Fill - ldr r0, _080C45D8 @ gBG2TilemapBuffer - movs r1, #0 - bl BG_Fill - ldr r0, _080C45DC @ gBG3TilemapBuffer - movs r1, #0 - bl BG_Fill - movs r0, #0xf - bl BG_EnableSyncByMask - bl EnablePaletteSync - ldr r2, _080C45B8 @ gLCDControlBuffer - ldrb r0, [r2, #1] - movs r1, #1 - orrs r0, r1 - movs r4, #3 - negs r4, r4 - ands r0, r4 - movs r1, #5 - negs r1, r1 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - movs r1, #0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r2, #1] - bl SetDefaultColorEffects - movs r0, #3 - movs r1, #0 - movs r2, #0 - bl BG_SetPosition - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #2 - negs r0, r0 - ands r0, r1 - ands r0, r4 - strb r0, [r2] - str r5, [r6, #0x2c] - str r5, [r6, #0x30] - adds r1, r6, #0 - adds r1, #0x34 - movs r0, #0xff - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x35 - strb r5, [r0] - strh r5, [r6, #0x36] - strh r5, [r6, #0x38] - adds r0, #0x15 - strh r5, [r0] - add sp, #0xc - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C45B8: .4byte gLCDControlBuffer -_080C45BC: .4byte gPaletteBuffer -_080C45C0: .4byte 0x01000100 -_080C45C4: .4byte gUnknown_08A40FC8 -_080C45C8: .4byte gUnknown_08206FDC -_080C45CC: .4byte 0x01000008 -_080C45D0: .4byte gBG0TilemapBuffer -_080C45D4: .4byte gBG1TilemapBuffer -_080C45D8: .4byte gBG2TilemapBuffer -_080C45DC: .4byte gBG3TilemapBuffer - - THUMB_FUNC_END sub_80C4460 - - THUMB_FUNC_START sub_80C45E0 -sub_80C45E0: @ 0x080C45E0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080C465A - adds r0, r4, #0 - adds r0, #0x48 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #9 - bgt _080C461C - ldr r0, [r4, #0x44] - movs r1, #0 - ldrsb r1, [r5, r1] - lsls r2, r1, #2 - adds r0, r0, r2 - ldr r0, [r0] - lsls r1, r1, #0xb - ldr r2, _080C4618 @ 0x06008000 - adds r1, r1, r2 - bl Decompress - b _080C463E - .align 2, 0 -_080C4618: .4byte 0x06008000 -_080C461C: - ldr r0, _080C4660 @ gBG3TilemapBuffer - ldr r1, [r4, #0x44] - ldr r1, [r1, #0x28] - movs r2, #0 - bl CallARM_FillTileRect - movs r0, #8 - bl BG_EnableSyncByMask - ldr r0, [r4, #0x44] - ldr r0, [r0, #0x2c] - movs r1, #0 - movs r2, #0xc0 - bl CopyToPaletteBuffer - bl EnablePaletteSync -_080C463E: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0xa - ble _080C465A - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080C465A: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C4660: .4byte gBG3TilemapBuffer - - THUMB_FUNC_END sub_80C45E0 - - THUMB_FUNC_START sub_80C4664 -sub_80C4664: @ 0x080C4664 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080C4688 @ gKeyStatusPtr - ldr r0, [r0] - ldrh r1, [r0, #8] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080C468C - bl CheckGameEndFlag - cmp r0, #0 - beq _080C468C - adds r0, r4, #0 - movs r1, #0 - bl Proc_Goto - b _080C46DA - .align 2, 0 -_080C4688: .4byte gKeyStatusPtr -_080C468C: - ldr r1, [r4, #0x30] - ldr r0, _080C46E0 @ 0x000037FF - cmp r1, r0 - bgt _080C469C - movs r2, #0xf0 - lsls r2, r2, #3 - adds r0, r1, r2 - str r0, [r4, #0x30] -_080C469C: - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080C46B0 - ldr r0, [r4, #0x30] - adds r0, #0x80 - str r0, [r4, #0x30] -_080C46B0: - adds r0, r4, #0 - bl sub_80C4238 - adds r0, r4, #0 - bl sub_80C43B4 - adds r0, r4, #0 - bl sub_80C45E0 - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #0x14 - bls _080C46DA - adds r1, r4, #0 - adds r1, #0x4a - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - bl Proc_Break -_080C46DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C46E0: .4byte 0x000037FF - - THUMB_FUNC_END sub_80C4664 - - THUMB_FUNC_START sub_80C46E4 -sub_80C46E4: @ 0x080C46E4 - push {lr} - bl sub_80C4228 - pop {r0} - bx r0 - - THUMB_FUNC_END sub_80C46E4 - - THUMB_FUNC_START sub_80C46F0 -sub_80C46F0: @ 0x080C46F0 - push {lr} - ldr r2, _080C4730 @ gLCDControlBuffer - ldrb r1, [r2, #1] - movs r0, #2 - negs r0, r0 - ands r0, r1 - movs r1, #3 - negs r1, r1 - ands r0, r1 - subs r1, #2 - ands r0, r1 - subs r1, #4 - ands r0, r1 - subs r1, #8 - ands r0, r1 - strb r0, [r2, #1] - bl SetDefaultColorEffects - movs r0, #0 - movs r1, #0 - movs r2, #0 - bl BG_SetPosition - ldr r0, _080C4734 @ gBG3TilemapBuffer - movs r1, #0 - bl BG_Fill - movs r0, #8 - bl BG_EnableSyncByMask - pop {r0} - bx r0 - .align 2, 0 -_080C4730: .4byte gLCDControlBuffer -_080C4734: .4byte gBG3TilemapBuffer - - THUMB_FUNC_END sub_80C46F0 - - THUMB_FUNC_START sub_80C4738 -sub_80C4738: @ 0x080C4738 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _080C4798 @ gUnknown_08206FB4 - ldr r5, [r0] - ldr r0, [r5] - ldr r1, _080C479C @ gUnknown_08206FDC - ldr r4, [r1] - movs r2, #0xc0 - lsls r2, r2, #0x13 - adds r1, r4, r2 - bl Decompress - ldr r0, [r5, #4] - ldr r5, _080C47A0 @ gGenericBuffer - adds r1, r5, #0 - bl Decompress - ldr r0, _080C47A4 @ gBG0TilemapBuffer - lsrs r4, r4, #5 - movs r1, #0xe0 - lsls r1, r1, #7 - adds r4, r4, r1 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - adds r1, r5, #0 - adds r2, r4, #0 - bl CallARM_FillTileRect - movs r0, #1 - bl BG_EnableSyncByMask - ldr r1, _080C47A8 @ gPaletteBuffer - movs r0, #0 - strh r0, [r1] - ldr r0, _080C47AC @ gUnknown_08A40FC8 - movs r1, #0xe0 - movs r2, #0x20 - bl CopyToPaletteBuffer - bl EnablePaletteSync - adds r6, #0x4a - movs r0, #0xf0 - strh r0, [r6] - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080C4798: .4byte gUnknown_08206FB4 -_080C479C: .4byte gUnknown_08206FDC -_080C47A0: .4byte gGenericBuffer -_080C47A4: .4byte gBG0TilemapBuffer -_080C47A8: .4byte gPaletteBuffer -_080C47AC: .4byte gUnknown_08A40FC8 - - THUMB_FUNC_END sub_80C4738 - - THUMB_FUNC_START sub_80C47B0 -sub_80C47B0: @ 0x080C47B0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x4a - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - ldr r0, _080C47F0 @ gKeyStatusPtr - ldr r0, [r0] - ldrh r1, [r0, #8] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080C47D8 - bl CheckGameEndFlag - cmp r0, #0 - beq _080C47D8 - movs r0, #0 - strh r0, [r4] -_080C47D8: - adds r0, r5, #0 - adds r0, #0x4a - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bgt _080C47EA - adds r0, r5, #0 - bl Proc_Break -_080C47EA: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080C47F0: .4byte gKeyStatusPtr - - THUMB_FUNC_END sub_80C47B0 - - THUMB_FUNC_START sub_80C47F4 -sub_80C47F4: @ 0x080C47F4 - push {lr} - sub sp, #4 - ldr r0, _080C4860 @ gBG0TilemapBuffer - movs r1, #0 - bl BG_Fill - ldr r0, _080C4864 @ gBG1TilemapBuffer - movs r1, #0 - bl BG_Fill - ldr r0, _080C4868 @ gBG2TilemapBuffer - movs r1, #0 - bl BG_Fill - movs r0, #0 - str r0, [sp] - movs r1, #0xc0 - lsls r1, r1, #0x13 - ldr r2, _080C486C @ 0x01006000 - mov r0, sp - bl CpuFastSet - ldr r2, _080C4870 @ gLCDControlBuffer - ldrb r1, [r2, #1] - movs r0, #2 - negs r0, r0 - ands r0, r1 - movs r1, #3 - negs r1, r1 - ands r0, r1 - subs r1, #2 - ands r0, r1 - subs r1, #4 - ands r0, r1 - subs r1, #8 - ands r0, r1 - strb r0, [r2, #1] - movs r0, #1 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl SetBlendConfig - ldr r0, _080C4874 @ gBG3TilemapBuffer - movs r1, #1 - negs r1, r1 - bl BG_Fill - movs r0, #8 - bl BG_EnableSyncByMask - add sp, #4 - pop {r0} - bx r0 - .align 2, 0 -_080C4860: .4byte gBG0TilemapBuffer -_080C4864: .4byte gBG1TilemapBuffer -_080C4868: .4byte gBG2TilemapBuffer -_080C486C: .4byte 0x01006000 -_080C4870: .4byte gLCDControlBuffer -_080C4874: .4byte gBG3TilemapBuffer - - THUMB_FUNC_END sub_80C47F4 - - THUMB_FUNC_START sub_80C4878 -sub_80C4878: @ 0x080C4878 - push {lr} - adds r1, r0, #0 - ldr r0, _080C4888 @ gUnknown_08AA2084 - bl Proc_StartBlocking - pop {r0} - bx r0 - .align 2, 0 -_080C4888: .4byte gUnknown_08AA2084 - - THUMB_FUNC_END sub_80C4878 - .align 2, 0 diff --git a/data/const_data_20688C.s b/data/const_data_20688C.s index ccc33d869..f8c125006 100644 --- a/data/const_data_20688C.s +++ b/data/const_data_20688C.s @@ -18,286 +18,3 @@ gUnknown_08206B70: @ 0x08206B70 .4byte 0x73614220 .4byte 0x654d2065 .4byte 0x0000756e - .4byte gUnknown_08A40FC8 + 0x20 - .4byte gUnknown_08A40FC8 + 0x9e40 - .4byte gUnknown_08A40FC8 + 0xb68 - .4byte gUnknown_08A40FC8 + 0xa0c8 - .4byte gUnknown_08A40FC8 + 0x1780 - .4byte gUnknown_08A40FC8 + 0xa32c - .4byte gUnknown_08A40FC8 + 0x22f8 - .4byte gUnknown_08A40FC8 + 0xa590 - .4byte gUnknown_08A40FC8 + 0x2cf4 - .4byte gUnknown_08A40FC8 + 0xa7c0 - .4byte gUnknown_08A40FC8 + 0x4188 - .4byte gUnknown_08A40FC8 + 0xab88 - .4byte gUnknown_08A40FC8 + 0x4654 - .4byte gUnknown_08A40FC8 + 0xacfc - .4byte gUnknown_08A40FC8 + 0x4f90 - .4byte gUnknown_08A40FC8 + 0xaef8 - .4byte gUnknown_08A40FC8 + 0x59c0 - .4byte gUnknown_08A40FC8 + 0xb11c - .4byte gUnknown_08A40FC8 + 0x62e8 - .4byte gUnknown_08A40FC8 + 0xb340 - .4byte gUnknown_08A40FC8 + 0x777c - .4byte gUnknown_08A40FC8 + 0xb724 - .4byte gUnknown_08A40FC8 + 0x87e0 - .4byte gUnknown_08A40FC8 + 0xba28 - .4byte gUnknown_08A40FC8 + 0x9a0c - .4byte gUnknown_08A40FC8 + 0xbd78 - .4byte gPal_BrownTextBox + 0x11c - .4byte gPal_BrownTextBox + 0x6ec - .4byte gPal_BrownTextBox + 0xeec - .4byte gPal_BrownTextBox + 0x1710 - .4byte gPal_BrownTextBox + 0x1f74 - .4byte gPal_BrownTextBox + 0x27cc - .4byte gPal_BrownTextBox + 0x304c - .4byte gPal_BrownTextBox + 0x38b4 - .4byte gPal_BrownTextBox + 0x4124 - .4byte gPal_BrownTextBox + 0x4984 - .4byte 0x8A708A7 + 0xf435 - .4byte 0x8A708A7 + 0x1233d - .4byte 0x00000078 - .4byte gPal_BrownTextBox + 0x518c - .4byte gPal_BrownTextBox + 0x5918 - .4byte gPal_BrownTextBox + 0x6130 - .4byte gPal_BrownTextBox + 0x6944 - .4byte gPal_BrownTextBox + 0x7150 - .4byte gPal_BrownTextBox + 0x7964 - .4byte gPal_BrownTextBox + 0x81a8 - .4byte gPal_BrownTextBox + 0x8950 - .4byte gPal_BrownTextBox + 0x9144 - .4byte gPal_BrownTextBox + 0x9958 - .4byte 0x8A708A7 + 0xf8e9 - .4byte 0x8A708A7 + 0x123fd - .4byte 0x00000078 - .4byte gPal_BrownTextBox + 0xa134 - .4byte gPal_BrownTextBox + 0xa964 - .4byte gPal_BrownTextBox + 0xb1bc - .4byte gPal_BrownTextBox + 0xba18 - .4byte gPal_BrownTextBox + 0xc28c - .4byte gPal_BrownTextBox + 0xcb0c - .4byte gPal_BrownTextBox + 0xd368 - .4byte gPal_BrownTextBox + 0xdb68 - .4byte gPal_BrownTextBox + 0xe2c4 - .4byte gPal_BrownTextBox + 0xea88 - .4byte 0x8A708A7 + 0xfd9d - .4byte 0x8A708A7 + 0x124bd - .4byte 0x00000078 - .4byte gPal_BrownTextBox + 0xf284 - .4byte gPal_BrownTextBox + 0xfa54 - .4byte gPal_BrownTextBox + 0x1022c - .4byte gPal_BrownTextBox + 0x109a4 - .4byte gPal_BrownTextBox + 0x111b0 - .4byte gPal_BrownTextBox + 0x119d0 - .4byte gPal_BrownTextBox + 0x12224 - .4byte gPal_BrownTextBox + 0x12a54 - .4byte gPal_BrownTextBox + 0x13220 - .4byte gPal_BrownTextBox + 0x13a58 - .4byte 0x8A708A7 + 0x10251 - .4byte 0x8A708A7 + 0x1257d - .4byte 0x00000078 - .4byte gPal_BrownTextBox + 0x142bc - .4byte gPal_BrownTextBox + 0x14af8 - .4byte gPal_BrownTextBox + 0x1535c - .4byte gPal_BrownTextBox + 0x15bc0 - .4byte gPal_BrownTextBox + 0x16420 - .4byte gPal_BrownTextBox + 0x16c98 - .4byte gPal_BrownTextBox + 0x17504 - .4byte gPal_BrownTextBox + 0x17d20 - .4byte gPal_BrownTextBox + 0x18550 - .4byte gPal_BrownTextBox + 0x18d68 - .4byte 0x8A708A7 + 0x10705 - .4byte 0x8A708A7 + 0x1263d - .4byte 0x00000078 - .4byte gPal_BrownTextBox + 0x19568 - .4byte gPal_BrownTextBox + 0x19d18 - .4byte gPal_BrownTextBox + 0x1a4fc - .4byte gPal_BrownTextBox + 0x1acf4 - .4byte gPal_BrownTextBox + 0x1b530 - .4byte gPal_BrownTextBox + 0x1bd6c - .4byte gPal_BrownTextBox + 0x1c5c8 - .4byte gPal_BrownTextBox + 0x1cdf8 - .4byte gPal_BrownTextBox + 0x1d600 - .4byte gPal_BrownTextBox + 0x1ddb8 - .4byte 0x8A708A7 + 0x10bb9 - .4byte 0x8A708A7 + 0x126fd - .4byte 0x00000078 - .4byte gPal_BrownTextBox + 0x1e4f8 - .4byte gPal_BrownTextBox + 0x1ed0c - .4byte gPal_BrownTextBox + 0x1f560 - .4byte gPal_BrownTextBox + 0x1fdb4 - .4byte gPal_BrownTextBox + 0x20610 - .4byte gPal_BrownTextBox + 0x20e84 - .4byte gPal_BrownTextBox + 0x21700 - .4byte gPal_BrownTextBox + 0x21f74 - .4byte gPal_BrownTextBox + 0x227c8 - .4byte gPal_BrownTextBox + 0x23018 - .4byte 0x8A708A7 + 0x1106d - .4byte 0x8A708A7 + 0x127bd - .4byte 0x00000078 - .4byte 0x8A708A7 + 0x4d - .4byte 0x8A708A7 + 0x65d - .4byte 0x8A708A7 + 0xe39 - .4byte 0x8A708A7 + 0x163d - .4byte 0x8A708A7 + 0x1e71 - .4byte 0x8A708A7 + 0x269d - .4byte 0x8A708A7 + 0x2ef9 - .4byte 0x8A708A7 + 0x3749 - .4byte 0x8A708A7 + 0x3f65 - .4byte 0x8A708A7 + 0x474d - .4byte 0x8A708A7 + 0x11521 - .4byte 0x8A708A7 + 0x1287d - .4byte 0x00000078 - .4byte 0x8A708A7 + 0x4f91 - .4byte 0x8A708A7 + 0x5709 - .4byte 0x8A708A7 + 0x5f55 - .4byte 0x8A708A7 + 0x67c9 - .4byte 0x8A708A7 + 0x7031 - .4byte 0x8A708A7 + 0x7845 - .4byte 0x8A708A7 + 0x8085 - .4byte 0x8A708A7 + 0x88e1 - .4byte 0x8A708A7 + 0x9145 - .4byte 0x8A708A7 + 0x9971 - .4byte 0x8A708A7 + 0x119d5 - .4byte 0x8A708A7 + 0x1293d - .4byte 0x00000078 - .4byte 0x8A708A7 + 0xa165 - .4byte 0x8A708A7 + 0xa94d - .4byte 0x8A708A7 + 0xb185 - .4byte 0x8A708A7 + 0xb9d9 - .4byte 0x8A708A7 + 0xc229 - .4byte 0x8A708A7 + 0xca7d - .4byte 0x8A708A7 + 0xd2c9 - .4byte 0x8A708A7 + 0xdb39 - .4byte 0x8A708A7 + 0xe395 - .4byte 0x8A708A7 + 0xebed - .4byte 0x8A708A7 + 0x11e89 - .4byte 0x8A708A7 + 0x129fd - .4byte 0x00000078 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - - .global gUnknown_08206E24 -gUnknown_08206E24: @ 0x08206E24 -@ Replacing .incbin "baserom.gba", 0x206E24, 0x190 - .4byte gUnknown_08206B70 + 0x30 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0xcc - .4byte gUnknown_08206B70 + 0x100 - .4byte 0x00016000 - .4byte 0x00027000 - .4byte gUnknown_08206B70 + 0x38 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x238 - .4byte gUnknown_08206B70 + 0x238 - .4byte 0x00034000 - .4byte 0x00047000 - .4byte gUnknown_08206B70 + 0x40 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x134 - .4byte gUnknown_08206B70 + 0x134 - .4byte 0x00055000 - .4byte 0x00067000 - .4byte gUnknown_08206B70 + 0x48 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x1d0 - .4byte gUnknown_08206B70 + 0x1d0 - .4byte 0x00074000 - .4byte 0x00087000 - .4byte gUnknown_08206B70 + 0x50 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x58 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x204 - .4byte gUnknown_08206B70 + 0x204 - .4byte 0x0009e800 - .4byte 0x000b7000 - .4byte gUnknown_08206B70 + 0x60 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x26c - .4byte gUnknown_08206B70 + 0x26c - .4byte 0x000c2000 - .4byte 0x000d7000 - .4byte gUnknown_08206B70 + 0x68 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x168 - .4byte gUnknown_08206B70 + 0x168 - .4byte 0x000e4000 - .4byte 0x000f7000 - .4byte gUnknown_08206B70 + 0x70 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x19c - .4byte gUnknown_08206B70 + 0x19c - .4byte 0x00103000 - .4byte 0x00117000 - .4byte gUnknown_08206B70 + 0x78 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x80 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte gUnknown_08206B70 + 0x88 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - .4byte 0x00000000 - - .global gUnknown_08206FB4 -gUnknown_08206FB4: @ 0x08206FB4 -@ replacing .incbin "baserom.gba", 0x00206fb4, 0x28 -.4byte gUnknown_08206B70 + 0x90 -.4byte 0 -.4byte 0 -.4byte 0 -.4byte 0 -.4byte 0 -.4byte 0 -.4byte 0 -.4byte 0 -.4byte 0 - - .global gUnknown_08206FDC -gUnknown_08206FDC: @ 0x08206FDC - .incbin "baserom.gba", 0x206FDC, 0x8 diff --git a/data/data_A3E4D4.s b/data/data_A3E4D4.s index b7cd05426..c35b6f1e1 100644 --- a/data/data_A3E4D4.s +++ b/data/data_A3E4D4.s @@ -368,9 +368,113 @@ gUnknown_08A40AD4: @ 0x08A40AD4 gUnknown_08A40B14: @ 0x08A40B14 .incbin "baserom.gba", 0xA40B14, 0x4B4 - .global gUnknown_08A40FC8 -gUnknown_08A40FC8: @ 0x08A40FC8 - .incbin "baserom.gba", 0xA40FC8, 0xBF64 + .global Pal_StaffReelEnt_08A40FC8 +Pal_StaffReelEnt_08A40FC8: @ 0x08A40FC8 + .incbin "baserom.gba", 0xA40FC8, 0x20 @ 0xA40FE8 - 0xA40FC8 + + .global Img_StaffReelEnt_08A40FE8 +Img_StaffReelEnt_08A40FE8: @ 0x08A40FE8 + .incbin "baserom.gba", 0xA40FE8, 0xB48 @ 0xA41B30 - 0xA40FE8 + + .global Img_StaffReelEnt_08A41B30 +Img_StaffReelEnt_08A41B30: @ 0x08A41B30 + .incbin "baserom.gba", 0xA41B30, 0xC18 @ 0xA42748 - 0xA41B30 + + .global Img_StaffReelEnt_08A42748 +Img_StaffReelEnt_08A42748: @ 0x08A42748 + .incbin "baserom.gba", 0xA42748, 0xB78 @ 0xA432C0 - 0xA42748 + + .global Img_StaffReelEnt_08A432C0 +Img_StaffReelEnt_08A432C0: @ 0x08A432C0 + .incbin "baserom.gba", 0xA432C0, 0x9FC @ 0xA43CBC - 0xA432C0 + + .global Img_StaffReelEnt_08A43CBC +Img_StaffReelEnt_08A43CBC: @ 0x08A43CBC + .incbin "baserom.gba", 0xA43CBC, 0x1494 @ 0xA45150 - 0xA43CBC + + .global Img_StaffReelEnt_08A45150 +Img_StaffReelEnt_08A45150: @ 0x08A45150 + .incbin "baserom.gba", 0xA45150, 0x4CC @ 0xA4561C - 0xA45150 + + .global Img_StaffReelEnt_08A4561C +Img_StaffReelEnt_08A4561C: @ 0x08A4561C + .incbin "baserom.gba", 0xA4561C, 0x93C @ 0xA45F58 - 0xA4561C + + .global Img_StaffReelEnt_08A45F58 +Img_StaffReelEnt_08A45F58: @ 0x08A45F58 + .incbin "baserom.gba", 0xA45F58, 0xA30 @ 0xA46988 - 0xA45F58 + + .global Img_StaffReelEnt_08A46988 +Img_StaffReelEnt_08A46988: @ 0x08A46988 + .incbin "baserom.gba", 0xA46988, 0x928 @ 0xA472B0 - 0xA46988 + + .global Img_StaffReelEnt_08A472B0 +Img_StaffReelEnt_08A472B0: @ 0x08A472B0 + .incbin "baserom.gba", 0xA472B0, 0x1494 @ 0xA48744 - 0xA472B0 + + .global Img_StaffReelEnt_08A48744 +Img_StaffReelEnt_08A48744: @ 0x08A48744 + .incbin "baserom.gba", 0xA48744, 0x1064 @ 0xA497A8 - 0xA48744 + + .global Img_StaffReelEnt_08A497A8 +Img_StaffReelEnt_08A497A8: @ 0x08A497A8 + .incbin "baserom.gba", 0xA497A8, 0x122C @ 0xA4A9D4 - 0xA497A8 + + .global Img_StaffReelEnt_08A4A9D4 +Img_StaffReelEnt_08A4A9D4: @ 0x08A4A9D4 + .incbin "baserom.gba", 0xA4A9D4, 0x434 @ 0xA4AE08 - 0xA4A9D4 + + .global Tsa_StaffReelEnt_08A4AE08 +Tsa_StaffReelEnt_08A4AE08: @ 0x08A4AE08 + .incbin "baserom.gba", 0xA4AE08, 0x288 @ 0xA4B090 - 0xA4AE08 + + .global Tsa_StaffReelEnt_08A4B090 +Tsa_StaffReelEnt_08A4B090: @ 0x08A4B090 + .incbin "baserom.gba", 0xA4B090, 0x264 @ 0xA4B2F4 - 0xA4B090 + + .global Tsa_StaffReelEnt_08A4B2F4 +Tsa_StaffReelEnt_08A4B2F4: @ 0x08A4B2F4 + .incbin "baserom.gba", 0xA4B2F4, 0x264 @ 0xA4B558 - 0xA4B2F4 + + .global Tsa_StaffReelEnt_08A4B558 +Tsa_StaffReelEnt_08A4B558: @ 0x08A4B558 + .incbin "baserom.gba", 0xA4B558, 0x230 @ 0xA4B788 - 0xA4B558 + + .global Tsa_StaffReelEnt_08A4B788 +Tsa_StaffReelEnt_08A4B788: @ 0x08A4B788 + .incbin "baserom.gba", 0xA4B788, 0x3C8 @ 0xA4BB50 - 0xA4B788 + + .global Tsa_StaffReelEnt_08A4BB50 +Tsa_StaffReelEnt_08A4BB50: @ 0x08A4BB50 + .incbin "baserom.gba", 0xA4BB50, 0x174 @ 0xA4BCC4 - 0xA4BB50 + + .global Tsa_StaffReelEnt_08A4BCC4 +Tsa_StaffReelEnt_08A4BCC4: @ 0x08A4BCC4 + .incbin "baserom.gba", 0xA4BCC4, 0x1FC @ 0xA4BEC0 - 0xA4BCC4 + + .global Tsa_StaffReelEnt_08A4BEC0 +Tsa_StaffReelEnt_08A4BEC0: @ 0x08A4BEC0 + .incbin "baserom.gba", 0xA4BEC0, 0x224 @ 0xA4C0E4 - 0xA4BEC0 + + .global Tsa_StaffReelEnt_08A4C0E4 +Tsa_StaffReelEnt_08A4C0E4: @ 0x08A4C0E4 + .incbin "baserom.gba", 0xA4C0E4, 0x224 @ 0xA4C308 - 0xA4C0E4 + + .global Tsa_StaffReelEnt_08A4C308 +Tsa_StaffReelEnt_08A4C308: @ 0x08A4C308 + .incbin "baserom.gba", 0xA4C308, 0x3E4 @ 0xA4C6EC - 0xA4C308 + + .global Tsa_StaffReelEnt_08A4C6EC +Tsa_StaffReelEnt_08A4C6EC: @ 0x08A4C6EC + .incbin "baserom.gba", 0xA4C6EC, 0x304 @ 0xA4C9F0 - 0xA4C6EC + + .global Tsa_StaffReelEnt_08A4C9F0 +Tsa_StaffReelEnt_08A4C9F0: @ 0x08A4C9F0 + .incbin "baserom.gba", 0xA4C9F0, 0x350 @ 0xA4CD40 - 0xA4C9F0 + + .global Tsa_StaffReelEnt_08A4CD40 +Tsa_StaffReelEnt_08A4CD40: @ 0x08A4CD40 + .incbin "baserom.gba", 0xA4CD40, 0x1EC @ 0xA4CF2C - 0xA4CD40 .global gGfx_BrownTextBox gGfx_BrownTextBox: @ 0x08A4CF2C @@ -1371,103 +1475,3 @@ gImg_WorldmapSkirmish: @ 0x08AA1970 .global SpriteAnim_WorldmapSkirmish SpriteAnim_WorldmapSkirmish: @ 0x08AA1C70 .incbin "baserom.gba", 0xAA1C70, 0x3D4 - - .global gUnknown_08AA2044 -gUnknown_08AA2044: @ 0x08AA2044 - @ PROC_YIELD - .short 0xe, 0x0 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_80C40B0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_80C40B8 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_80C412C - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_80C4158 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_80C4184 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_80C41E4 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 - - - .global gUnknown_08AA2084 -gUnknown_08AA2084: @ 0x08AA2084 - @ PROC_YIELD - .short 0xe, 0x0 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_80C4460 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_80C4664 - @ PROC_GOTO - .short 0xc, 0x1 - .word 0x0 - @ PROC_LABEL - .short 0xb, 0x0 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_80C46E4 - @ PROC_SLEEP - .short 0xe, 0x1 - .word 0x0 - @ PROC_CALL_ARG - .short 0x18, 0x10 - .word NewFadeOut - @ PROC_WHILE - .short 0x14, 0x0 - .word FadeOutExists - @ PROC_CALL - .short 0x2, 0x0 - .word sub_80C46F0 - @ PROC_SLEEP - .short 0xe, 0x1 - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_80C4738 - @ PROC_SLEEP - .short 0xe, 0x1 - .word 0x0 - @ PROC_CALL_ARG - .short 0x18, 0x10 - .word NewFadeIn - @ PROC_WHILE - .short 0x14, 0x0 - .word FadeInExists - @ PROC_LABEL - .short 0xb, 0x1 - .word 0x0 - @ PROC_REPEAT - .short 0x3, 0x0 - .word sub_80C47B0 - @ PROC_CALL - .short 0x2, 0x0 - .word StartSlowFadeToBlack - @ PROC_REPEAT - .short 0x3, 0x0 - .word WaitForFade - @ PROC_SLEEP - .short 0xe, 0x1e - .word 0x0 - @ PROC_CALL - .short 0x2, 0x0 - .word sub_80C47F4 - @ PROC_SLEEP - .short 0xe, 0x1 - .word 0x0 - @ PROC_END - .short 0x0, 0x0 - .word 0x0 diff --git a/include/cg.h b/include/cg.h new file mode 100644 index 000000000..c14e4dcda --- /dev/null +++ b/include/cg.h @@ -0,0 +1,136 @@ +#ifndef GUARD_CG_H +#define GUARD_CG_H + +extern u8 cg_0_part_0_tiles[]; +extern u8 cg_0_part_1_tiles[]; +extern u8 cg_0_part_2_tiles[]; +extern u8 cg_0_part_3_tiles[]; +extern u8 cg_0_part_4_tiles[]; +extern u8 cg_0_part_5_tiles[]; +extern u8 cg_0_part_6_tiles[]; +extern u8 cg_0_part_7_tiles[]; +extern u8 cg_0_part_8_tiles[]; +extern u8 cg_0_part_9_tiles[]; + +extern u8 cg_1_part_0_tiles[]; +extern u8 cg_1_part_1_tiles[]; +extern u8 cg_1_part_2_tiles[]; +extern u8 cg_1_part_3_tiles[]; +extern u8 cg_1_part_4_tiles[]; +extern u8 cg_1_part_5_tiles[]; +extern u8 cg_1_part_6_tiles[]; +extern u8 cg_1_part_7_tiles[]; +extern u8 cg_1_part_8_tiles[]; +extern u8 cg_1_part_9_tiles[]; + +extern u8 cg_2_part_0_tiles[]; +extern u8 cg_2_part_1_tiles[]; +extern u8 cg_2_part_2_tiles[]; +extern u8 cg_2_part_3_tiles[]; +extern u8 cg_2_part_4_tiles[]; +extern u8 cg_2_part_5_tiles[]; +extern u8 cg_2_part_6_tiles[]; +extern u8 cg_2_part_7_tiles[]; +extern u8 cg_2_part_8_tiles[]; +extern u8 cg_2_part_9_tiles[]; + +extern u8 cg_3_part_0_tiles[]; +extern u8 cg_3_part_1_tiles[]; +extern u8 cg_3_part_2_tiles[]; +extern u8 cg_3_part_3_tiles[]; +extern u8 cg_3_part_4_tiles[]; +extern u8 cg_3_part_5_tiles[]; +extern u8 cg_3_part_6_tiles[]; +extern u8 cg_3_part_7_tiles[]; +extern u8 cg_3_part_8_tiles[]; +extern u8 cg_3_part_9_tiles[]; + +extern u8 cg_4_part_0_tiles[]; +extern u8 cg_4_part_1_tiles[]; +extern u8 cg_4_part_2_tiles[]; +extern u8 cg_4_part_3_tiles[]; +extern u8 cg_4_part_4_tiles[]; +extern u8 cg_4_part_5_tiles[]; +extern u8 cg_4_part_6_tiles[]; +extern u8 cg_4_part_7_tiles[]; +extern u8 cg_4_part_8_tiles[]; +extern u8 cg_4_part_9_tiles[]; + +extern u8 cg_5_part_0_tiles[]; +extern u8 cg_5_part_1_tiles[]; +extern u8 cg_5_part_2_tiles[]; +extern u8 cg_5_part_3_tiles[]; +extern u8 cg_5_part_4_tiles[]; +extern u8 cg_5_part_5_tiles[]; +extern u8 cg_5_part_6_tiles[]; +extern u8 cg_5_part_7_tiles[]; +extern u8 cg_5_part_8_tiles[]; +extern u8 cg_5_part_9_tiles[]; + +extern u8 cg_6_part_0_tiles[]; +extern u8 cg_6_part_1_tiles[]; +extern u8 cg_6_part_2_tiles[]; +extern u8 cg_6_part_3_tiles[]; +extern u8 cg_6_part_4_tiles[]; +extern u8 cg_6_part_5_tiles[]; +extern u8 cg_6_part_6_tiles[]; +extern u8 cg_6_part_7_tiles[]; +extern u8 cg_6_part_8_tiles[]; +extern u8 cg_6_part_9_tiles[]; + +extern u8 cg_7_part_0_tiles[]; +extern u8 cg_7_part_1_tiles[]; +extern u8 cg_7_part_2_tiles[]; +extern u8 cg_7_part_3_tiles[]; +extern u8 cg_7_part_4_tiles[]; +extern u8 cg_7_part_5_tiles[]; +extern u8 cg_7_part_6_tiles[]; +extern u8 cg_7_part_7_tiles[]; +extern u8 cg_7_part_8_tiles[]; +extern u8 cg_7_part_9_tiles[]; + +extern u8 cg_8_part_0_tiles[]; +extern u8 cg_8_part_1_tiles[]; +extern u8 cg_8_part_2_tiles[]; +extern u8 cg_8_part_3_tiles[]; +extern u8 cg_8_part_4_tiles[]; +extern u8 cg_8_part_5_tiles[]; +extern u8 cg_8_part_6_tiles[]; +extern u8 cg_8_part_7_tiles[]; +extern u8 cg_8_part_8_tiles[]; +extern u8 cg_8_part_9_tiles[]; + +extern u8 cg_9_part_0_tiles[]; +extern u8 cg_9_part_1_tiles[]; +extern u8 cg_9_part_2_tiles[]; +extern u8 cg_9_part_3_tiles[]; +extern u8 cg_9_part_4_tiles[]; +extern u8 cg_9_part_5_tiles[]; +extern u8 cg_9_part_6_tiles[]; +extern u8 cg_9_part_7_tiles[]; +extern u8 cg_9_part_8_tiles[]; +extern u8 cg_9_part_9_tiles[]; + +extern u8 cg_0_map[]; +extern u8 cg_1_map[]; +extern u8 cg_2_map[]; +extern u8 cg_3_map[]; +extern u8 cg_4_map[]; +extern u8 cg_5_map[]; +extern u8 cg_6_map[]; +extern u8 cg_7_map[]; +extern u8 cg_8_map[]; +extern u8 cg_9_map[]; + +extern u16 cg_0_palette[]; +extern u16 cg_1_palette[]; +extern u16 cg_2_palette[]; +extern u16 cg_3_palette[]; +extern u16 cg_4_palette[]; +extern u16 cg_5_palette[]; +extern u16 cg_6_palette[]; +extern u16 cg_7_palette[]; +extern u16 cg_8_palette[]; +extern u16 cg_9_palette[]; + +#endif // GUARD_CG_H diff --git a/include/ending_credits.h b/include/ending_credits.h new file mode 100644 index 000000000..4a10e88d2 --- /dev/null +++ b/include/ending_credits.h @@ -0,0 +1,25 @@ +#ifndef GUARD_ENDING_CREDITS_H +#define GUARD_ENDING_CREDITS_H + +// ??? CreditsBlendCG_Init(???); +// ??? CreditsBlendCG_80C40B8(???); +// ??? CreditsBlendCG_80C412C(???); +// ??? CreditsBlendCG_80C4158(???); +// ??? CreditsBlendCG_80C4184(???); +// ??? CreditsBlendCG_OnEnd(???); +// ??? StartBlendCreditsCGMaybe(???); +// ??? IsCreditsBlendCGActive(???); +// ??? EndCreditsBlendCG(???); +// ??? sub_80C4238(???); +// ??? sub_80C43B4(???); +// ??? EndingCredits_Init(???); +// ??? sub_80C45E0(???); +// ??? EndingCredits_Loop_Main(???); +// ??? EndingCredits_EndBlendCG(???); +// ??? EndingCredits_80C46F0(???); +// ??? EndingCredits_ShowCopyright(???); +// ??? EndingCredits_AwaitInputForEnd(???); +// ??? EndingCredits_OnEnd(???); +void StartEndingCredits(ProcPtr); + +#endif // GUARD_ENDING_CREDITS_H diff --git a/include/functions.h b/include/functions.h index 87e0aedd9..cee5749bd 100644 --- a/include/functions.h +++ b/include/functions.h @@ -573,26 +573,6 @@ void nullsub_7(void); void nullsub_5(int unused); // ??? sub_80B8200(???); -// ??? sub_80C40B0(???); -// ??? sub_80C40B8(???); -// ??? sub_80C412C(???); -// ??? sub_80C4158(???); -// ??? sub_80C4184(???); -// ??? sub_80C41E4(???); -// ??? sub_80C41F4(???); -// ??? sub_80C4210(???); -// ??? sub_80C4228(???); -// ??? sub_80C4238(???); -// ??? sub_80C43B4(???); -// ??? sub_80C4460(???); -// ??? sub_80C45E0(???); -// ??? sub_80C4664(???); -// ??? sub_80C46E4(???); -// ??? sub_80C46F0(???); -// ??? sub_80C4738(???); -// ??? sub_80C47B0(???); -// ??? sub_80C47F4(???); -void sub_80C4878(ProcPtr); // ??? sub_80C488C(???); // ??? sub_80C48F0(???); // ??? OpSubtitle_HandleStartPress(???); diff --git a/include/variables.h b/include/variables.h index 30caaf25c..822e2d738 100644 --- a/include/variables.h +++ b/include/variables.h @@ -1195,7 +1195,33 @@ extern u8 gGfx_FinScreen[]; extern u8 gTsa_FinScreen[]; extern u16 gUnknown_08A40AD4[]; // pal extern u8 gUnknown_08A40B14[]; // tsa -// extern ??? gUnknown_08A40FC8 +extern u16 Pal_StaffReelEnt_08A40FC8[]; +extern u8 Img_StaffReelEnt_08A40FE8[]; +extern u8 Img_StaffReelEnt_08A41B30[]; +extern u8 Img_StaffReelEnt_08A42748[]; +extern u8 Img_StaffReelEnt_08A432C0[]; +extern u8 Img_StaffReelEnt_08A43CBC[]; +extern u8 Img_StaffReelEnt_08A45150[]; +extern u8 Img_StaffReelEnt_08A4561C[]; +extern u8 Img_StaffReelEnt_08A45F58[]; +extern u8 Img_StaffReelEnt_08A46988[]; +extern u8 Img_StaffReelEnt_08A472B0[]; +extern u8 Img_StaffReelEnt_08A48744[]; +extern u8 Img_StaffReelEnt_08A497A8[]; +extern u8 Img_StaffReelEnt_08A4A9D4[]; +extern u8 Tsa_StaffReelEnt_08A4AE08[]; +extern u8 Tsa_StaffReelEnt_08A4B090[]; +extern u8 Tsa_StaffReelEnt_08A4B2F4[]; +extern u8 Tsa_StaffReelEnt_08A4B558[]; +extern u8 Tsa_StaffReelEnt_08A4B788[]; +extern u8 Tsa_StaffReelEnt_08A4BB50[]; +extern u8 Tsa_StaffReelEnt_08A4BCC4[]; +extern u8 Tsa_StaffReelEnt_08A4BEC0[]; +extern u8 Tsa_StaffReelEnt_08A4C0E4[]; +extern u8 Tsa_StaffReelEnt_08A4C308[]; +extern u8 Tsa_StaffReelEnt_08A4C6EC[]; +extern u8 Tsa_StaffReelEnt_08A4C9F0[]; +extern u8 Tsa_StaffReelEnt_08A4CD40[]; extern u8 gGfx_BrownTextBox[]; extern u16 gPal_BrownTextBox[]; // extern ??? gUnknown_08A83364 @@ -1265,8 +1291,8 @@ extern u8 gUnknown_08AA11D0[]; // tsa? // extern ??? gUnknown_08AA1950 extern u8 gImg_WorldmapSkirmish[]; // gfx extern u8 SpriteAnim_WorldmapSkirmish[]; // ap proc data -// extern ??? gUnknown_08AA2044 -// extern ??? gUnknown_08AA2084 +// extern ??? ProcScr_EndingCredits_BlendCGMaybe +// extern ??? ProcScr_EndingCredits // extern ??? gBgConfig_OpSubtitle // extern ??? gUnknown_08AA21A4 // extern ??? gProcScr_OpSubtitle diff --git a/ldscript.txt b/ldscript.txt index db79a865d..9594a4f38 100644 --- a/ldscript.txt +++ b/ldscript.txt @@ -584,6 +584,7 @@ SECTIONS src/worldmap_hb.o(.text); src/worldmap_rm.o(.text); asm/code_80BF13C.o(.text); + src/ending_credits.o(.text); src/opsubtitle.o(.text); src/titlescreen.o(.text); src/opanimfx.o(.text); @@ -838,6 +839,7 @@ SECTIONS . = ALIGN(4); src/worldmap_timemons.o(.rodata); . = ALIGN(4); src/worldmap_rm.o(.rodata); . = ALIGN(4); data/const_data_20688C.o(.rodata); + . = ALIGN(4); src/ending_credits.o(.rodata); . = ALIGN(4); src/opsubtitle.o(.rodata); . = ALIGN(4); src/classchg-main.o(.rodata); . = ALIGN(4); src/classchg-handler.o(.rodata); @@ -1167,6 +1169,7 @@ SECTIONS . = ALIGN(4); src/worldmap_timemons.o(.data); . = ALIGN(4); src/worldmap_rm.o(.data); . = ALIGN(4); data/data_A3E4D4.o(.data); + . = ALIGN(4); src/ending_credits.o(.data); . = ALIGN(4); src/opsubtitle.o(.data); . = ALIGN(4); data/data_opsubtitle.o(.data); . = ALIGN(4); src/titlescreen.o(.data); diff --git a/src/cg.c b/src/cg.c index 7660b9990..7dbc89fed 100644 --- a/src/cg.c +++ b/src/cg.c @@ -2,16 +2,7 @@ #include "bmlib.h" #include "hardware.h" -extern u8 cg_0_part_0_tiles[]; -extern u8 cg_0_part_1_tiles[]; -extern u8 cg_0_part_2_tiles[]; -extern u8 cg_0_part_3_tiles[]; -extern u8 cg_0_part_4_tiles[]; -extern u8 cg_0_part_5_tiles[]; -extern u8 cg_0_part_6_tiles[]; -extern u8 cg_0_part_7_tiles[]; -extern u8 cg_0_part_8_tiles[]; -extern u8 cg_0_part_9_tiles[]; +#include "cg.h" u8* CONST_DATA cg_0_tiles[] = { cg_0_part_0_tiles, @@ -26,17 +17,6 @@ u8* CONST_DATA cg_0_tiles[] = { cg_0_part_9_tiles, }; -extern u8 cg_1_part_0_tiles[]; -extern u8 cg_1_part_1_tiles[]; -extern u8 cg_1_part_2_tiles[]; -extern u8 cg_1_part_3_tiles[]; -extern u8 cg_1_part_4_tiles[]; -extern u8 cg_1_part_5_tiles[]; -extern u8 cg_1_part_6_tiles[]; -extern u8 cg_1_part_7_tiles[]; -extern u8 cg_1_part_8_tiles[]; -extern u8 cg_1_part_9_tiles[]; - u8* CONST_DATA cg_1_tiles[] = { cg_1_part_0_tiles, cg_1_part_1_tiles, @@ -50,17 +30,6 @@ u8* CONST_DATA cg_1_tiles[] = { cg_1_part_9_tiles, }; -extern u8 cg_2_part_0_tiles[]; -extern u8 cg_2_part_1_tiles[]; -extern u8 cg_2_part_2_tiles[]; -extern u8 cg_2_part_3_tiles[]; -extern u8 cg_2_part_4_tiles[]; -extern u8 cg_2_part_5_tiles[]; -extern u8 cg_2_part_6_tiles[]; -extern u8 cg_2_part_7_tiles[]; -extern u8 cg_2_part_8_tiles[]; -extern u8 cg_2_part_9_tiles[]; - u8* CONST_DATA cg_2_tiles[] = { cg_2_part_0_tiles, cg_2_part_1_tiles, @@ -74,17 +43,6 @@ u8* CONST_DATA cg_2_tiles[] = { cg_2_part_9_tiles, }; -extern u8 cg_3_part_0_tiles[]; -extern u8 cg_3_part_1_tiles[]; -extern u8 cg_3_part_2_tiles[]; -extern u8 cg_3_part_3_tiles[]; -extern u8 cg_3_part_4_tiles[]; -extern u8 cg_3_part_5_tiles[]; -extern u8 cg_3_part_6_tiles[]; -extern u8 cg_3_part_7_tiles[]; -extern u8 cg_3_part_8_tiles[]; -extern u8 cg_3_part_9_tiles[]; - u8* CONST_DATA cg_3_tiles[] = { cg_3_part_0_tiles, cg_3_part_1_tiles, @@ -98,17 +56,6 @@ u8* CONST_DATA cg_3_tiles[] = { cg_3_part_9_tiles, }; -extern u8 cg_4_part_0_tiles[]; -extern u8 cg_4_part_1_tiles[]; -extern u8 cg_4_part_2_tiles[]; -extern u8 cg_4_part_3_tiles[]; -extern u8 cg_4_part_4_tiles[]; -extern u8 cg_4_part_5_tiles[]; -extern u8 cg_4_part_6_tiles[]; -extern u8 cg_4_part_7_tiles[]; -extern u8 cg_4_part_8_tiles[]; -extern u8 cg_4_part_9_tiles[]; - u8* CONST_DATA cg_4_tiles[] = { cg_4_part_0_tiles, cg_4_part_1_tiles, @@ -122,17 +69,6 @@ u8* CONST_DATA cg_4_tiles[] = { cg_4_part_9_tiles, }; -extern u8 cg_5_part_0_tiles[]; -extern u8 cg_5_part_1_tiles[]; -extern u8 cg_5_part_2_tiles[]; -extern u8 cg_5_part_3_tiles[]; -extern u8 cg_5_part_4_tiles[]; -extern u8 cg_5_part_5_tiles[]; -extern u8 cg_5_part_6_tiles[]; -extern u8 cg_5_part_7_tiles[]; -extern u8 cg_5_part_8_tiles[]; -extern u8 cg_5_part_9_tiles[]; - u8* CONST_DATA cg_5_tiles[] = { cg_5_part_0_tiles, cg_5_part_1_tiles, @@ -146,17 +82,6 @@ u8* CONST_DATA cg_5_tiles[] = { cg_5_part_9_tiles, }; -extern u8 cg_6_part_0_tiles[]; -extern u8 cg_6_part_1_tiles[]; -extern u8 cg_6_part_2_tiles[]; -extern u8 cg_6_part_3_tiles[]; -extern u8 cg_6_part_4_tiles[]; -extern u8 cg_6_part_5_tiles[]; -extern u8 cg_6_part_6_tiles[]; -extern u8 cg_6_part_7_tiles[]; -extern u8 cg_6_part_8_tiles[]; -extern u8 cg_6_part_9_tiles[]; - u8* CONST_DATA cg_6_tiles[] = { cg_6_part_0_tiles, cg_6_part_1_tiles, @@ -170,17 +95,6 @@ u8* CONST_DATA cg_6_tiles[] = { cg_6_part_9_tiles, }; -extern u8 cg_7_part_0_tiles[]; -extern u8 cg_7_part_1_tiles[]; -extern u8 cg_7_part_2_tiles[]; -extern u8 cg_7_part_3_tiles[]; -extern u8 cg_7_part_4_tiles[]; -extern u8 cg_7_part_5_tiles[]; -extern u8 cg_7_part_6_tiles[]; -extern u8 cg_7_part_7_tiles[]; -extern u8 cg_7_part_8_tiles[]; -extern u8 cg_7_part_9_tiles[]; - u8* CONST_DATA cg_7_tiles[] = { cg_7_part_0_tiles, cg_7_part_1_tiles, @@ -194,17 +108,6 @@ u8* CONST_DATA cg_7_tiles[] = { cg_7_part_9_tiles, }; -extern u8 cg_8_part_0_tiles[]; -extern u8 cg_8_part_1_tiles[]; -extern u8 cg_8_part_2_tiles[]; -extern u8 cg_8_part_3_tiles[]; -extern u8 cg_8_part_4_tiles[]; -extern u8 cg_8_part_5_tiles[]; -extern u8 cg_8_part_6_tiles[]; -extern u8 cg_8_part_7_tiles[]; -extern u8 cg_8_part_8_tiles[]; -extern u8 cg_8_part_9_tiles[]; - u8* CONST_DATA cg_8_tiles[] = { cg_8_part_0_tiles, cg_8_part_1_tiles, @@ -218,17 +121,6 @@ u8* CONST_DATA cg_8_tiles[] = { cg_8_part_9_tiles, }; -extern u8 cg_9_part_0_tiles[]; -extern u8 cg_9_part_1_tiles[]; -extern u8 cg_9_part_2_tiles[]; -extern u8 cg_9_part_3_tiles[]; -extern u8 cg_9_part_4_tiles[]; -extern u8 cg_9_part_5_tiles[]; -extern u8 cg_9_part_6_tiles[]; -extern u8 cg_9_part_7_tiles[]; -extern u8 cg_9_part_8_tiles[]; -extern u8 cg_9_part_9_tiles[]; - u8* CONST_DATA cg_9_tiles[] = { cg_9_part_0_tiles, cg_9_part_1_tiles, diff --git a/src/ending_credits.c b/src/ending_credits.c new file mode 100644 index 000000000..fa5eafe5d --- /dev/null +++ b/src/ending_credits.c @@ -0,0 +1,1092 @@ +#include "global.h" + +#include "hardware.h" +#include "bmlib.h" +#include "spline.h" +#include "sysutil.h" +#include "cg.h" + +#include "ending_credits.h" + +struct CreditsCG +{ + /* 00 */ u8 * img[10]; + /* 28 */ u8 * tsa; + /* 2C */ u16 * pal; + /* 30 */ u16 unk_30; + STRUCT_PAD(0x32, 0x34); +}; + +struct CreditsSubProc +{ + /* 00 */ PROC_HEADER; + + /* 2C */ const struct CreditsCG * cg; + /* 30 */ s16 unk_30; + /* 32 */ STRUCT_PAD(0x32, 0x34); + /* 34 */ s16 unk_34; +}; + +struct CreditsMainProc +{ + /* 00 */ PROC_HEADER; + + /* 29 */ u8 unk_29_0 : 1; + /* 29 */ u8 unk_29_1 : 1; + /* 29 */ u8 unk_29_2 : 1; + /* 2C */ int unk_2c; + /* 30 */ int unk_30; + /* 34 */ s8 unk_34; + /* 35 */ s8 unk_35; + /* 36 */ s16 unk_36; + /* 38 */ s16 unk_38; + /* 3C */ int unk_3c; + /* 40 */ int unk_40; + /* 44 */ const struct CreditsCG * cg; + /* 48 */ s8 unk_48; + /* 4A */ s16 timer; +}; + +struct StaffReelEnt +{ + /* 00 */ void * img; + /* 04 */ void * tsa; +}; + +struct CreditsEnt +{ + /* 00 */ const struct StaffReelEnt * entry; + /* 04 */ const struct CreditsCG * cg[2]; + /* 0C */ int unk_0c; // delay before playing the CG + /* 10 */ int unk_10; // delay before playing next staff credit roll +}; + +extern const struct CreditsEnt gUnknown_08206E24[]; +extern const u32 gUnknown_08206FDC[]; + +extern u16 gUnknown_0201C5D4[]; + +#define CREDITS_PARENT(proc) ((struct CreditsMainProc *)(proc->proc_parent)) + +// TODO: Implicit declaration +int CheckGameEndFlag(void); + +//! FE8U = 0x080C40B0 +void CreditsBlendCG_Init(struct CreditsSubProc * proc) +{ + proc->unk_30 = 0; + proc->unk_34 = 0; + return; +} + +//! FE8U = 0x080C40B8 +void CreditsBlendCG_80C40B8(struct CreditsSubProc * proc) +{ + proc->unk_30++; + + if (proc->unk_30 < 120) + { + int tmp = sub_800B84C(119 - proc->unk_30, 120, 1); + int bldAmt = DivArm(0x1000, (0x1000 - tmp) * 16); + SetBlendAlpha(16 - bldAmt, bldAmt); + } + else + { + SetBlendAlpha(0, 16); + proc->unk_34 = proc->cg->unk_30; + + CREDITS_PARENT(proc)->unk_29_0 = 1; + + Proc_Break(proc); + } + + return; +} + +//! FE8U = 0x080C412C +void CreditsBlendCG_80C412C(struct CreditsSubProc * proc) +{ + int val; + struct CreditsMainProc * parent; + + proc->unk_34--; + + parent = CREDITS_PARENT(proc); + + val = parent->unk_30 + 0x800; + + if (val >= parent->unk_40) + { + parent->unk_30 = parent->unk_40; + Proc_Break(proc); + } + else + { + parent->unk_30 = val; + } + + return; +} + +//! FE8U = 0x080C4158 +void CreditsBlendCG_80C4158(struct CreditsSubProc * proc) +{ + proc->unk_34--; + + if (proc->unk_34 < 1) + { + proc->unk_30 = 0; + CREDITS_PARENT(proc)->unk_29_0 = 0; + Proc_Break(proc); + } + + return; +} + +//! FE8U = 0x080C4184 +void CreditsBlendCG_80C4184(struct CreditsSubProc * proc) +{ + proc->unk_30++; + + if (proc->unk_30 < 120) + { + int tmp = sub_800B84C(119 - proc->unk_30, 120, 1); + int bldAmt = DivArm(0x1000, (0x1000 - tmp) * 16); + SetBlendAlpha(bldAmt, 16 - bldAmt); + } + else + { + SetBlendAlpha(16, 0); + Proc_Break(proc); + } + + return; +} + +//! FE8U = 0x080C41E4 +void CreditsBlendCG_OnEnd(struct CreditsSubProc * proc) +{ + CREDITS_PARENT(proc)->unk_29_2 = 0; + return; +} + +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_EndingCredits_BlendCGMaybe[] = +{ + PROC_YIELD, + + PROC_CALL(CreditsBlendCG_Init), + + PROC_REPEAT(CreditsBlendCG_80C40B8), + PROC_REPEAT(CreditsBlendCG_80C412C), + PROC_REPEAT(CreditsBlendCG_80C4158), + PROC_REPEAT(CreditsBlendCG_80C4184), + + PROC_CALL(CreditsBlendCG_OnEnd), + + PROC_END, +}; + +// clang-format on + +//! FE8U = 0x080C41F4 +void StartBlendCreditsCGMaybe(ProcPtr parent, const struct CreditsCG * cg) +{ + struct CreditsSubProc * proc = Proc_Start(ProcScr_EndingCredits_BlendCGMaybe, parent); + proc->cg = cg; + return; +} + +//! FE8U = 0x080C4210 +bool IsCreditsBlendCGActive(void) +{ + return Proc_Find(ProcScr_EndingCredits_BlendCGMaybe) ? true : false; +} + +//! FE8U = 0x080C4228 +void EndCreditsBlendCG(void) +{ + Proc_EndEach(ProcScr_EndingCredits_BlendCGMaybe); + return; +} + +//! FE8U = 0x080C4238 +void sub_80C4238(struct CreditsMainProc * proc) +{ + u32 something; + s32 i; + const struct CreditsEnt * ptr; + + proc->unk_35 = (proc->unk_30 >> 8) / 0x100; + + if (((proc->unk_30 >> 8) - ((proc->unk_30 >> 8) / 0x100) * 0x100 > 0xf) && (proc->unk_35 != proc->unk_34)) + { + if (!proc->unk_29_2) + { + for (i = proc->unk_35 + 1; i < 23u; i++) + { + ptr = &gUnknown_08206E24[i - 1]; + + if (ptr->cg[0] == NULL) + { + continue; + } + + proc->unk_48 = 0; + + if (gPlaySt.chapterModeIndex == CHAPTER_MODE_EIRIKA) + { + proc->cg = ptr->cg[0]; + } + else + { + proc->cg = ptr->cg[1]; + } + + proc->unk_3c = ptr->unk_0c; + proc->unk_40 = ptr->unk_10; + + proc->unk_29_2 = 1; + proc->unk_29_1 = 1; + break; + } + } + + ptr = &gUnknown_08206E24[proc->unk_35]; + something = (proc->unk_35 + 1) & 1; + if (ptr->entry != NULL) + { + Decompress(ptr->entry->img, (void *)(0x6000000 + gUnknown_08206FDC[something])); + Decompress(ptr->entry->tsa, gGenericBuffer); + CallARM_FillTileRect( + gUnknown_0201C5D4, gGenericBuffer, (u16)((gUnknown_08206FDC[something] / CHR_SIZE) + 0x7000)); + } + else + { + CpuFastFill(-1, (void *)(0x6000000 + gUnknown_08206FDC[something]), 0x20); + for (i = 0; i < 0x400; i++) + { + gUnknown_0201C5D4[i] = (gUnknown_08206FDC[something] / CHR_SIZE) + 0x7000; + } + } + + proc->unk_34 = proc->unk_35; + } + + return; +} + +//! FE8U = 0x080C43B4 +void sub_80C43B4(struct CreditsMainProc * proc) +{ + int unk_30 = (proc->unk_30 >> 8); + proc->unk_38 = unk_30 / 16; + + if (proc->unk_38 != proc->unk_36) + { + int tmp = unk_30 + 240; + int val = tmp - (tmp / 0x100) * 0x100; + val = ((val / 8) * 32); + + CpuFastCopy(gUnknown_0201C5D4 + val, gBG0TilemapBuffer + val, 0x80); + BG_EnableSyncByMask(BG0_SYNC_BIT); + + proc->unk_36 = proc->unk_38; + } + + if (!IsCreditsBlendCGActive() && (proc->unk_2c != proc->unk_30) && ((proc->unk_29_2) != 0) && (proc->unk_30 >= proc->unk_3c)) + { + StartBlendCreditsCGMaybe(proc, proc->cg); + } + + BG_SetPosition(BG_0, 0, unk_30 & 0xff); + + proc->unk_2c = proc->unk_30; + + return; +} + +//! FE8U = 0x080C4460 +void EndingCredits_Init(struct CreditsMainProc * proc) +{ + u32 chr; + int i; + + SetPrimaryHBlankHandler(NULL); + SetupBackgrounds(NULL); + + SetDispEnable(0, 0, 0, 0, 0); + + gLCDControlBuffer.bg0cnt.priority = 0; + gLCDControlBuffer.bg1cnt.priority = 1; + gLCDControlBuffer.bg2cnt.priority = 2; + gLCDControlBuffer.bg3cnt.priority = 3; + + SetBlendAlpha(16, 0); + SetBlendTargetA(1, 0, 0, 0, 0); + SetBlendTargetB(0, 0, 0, 1, 0); + + SetBlendBackdropA(0); + SetBlendBackdropB(0); + + CpuFastFill(0, gPaletteBuffer, PLTT_SIZE); + + ApplyPalette(Pal_StaffReelEnt_08A40FC8, 7); + + CpuFastFill(-1, (void *)(0x6000000 + (chr = gUnknown_08206FDC[0])), 0x20); + + chr = chr >> 5; + + for (i = 0; i < 0x400; i++) + { + gBG0TilemapBuffer[i] = (chr) + 0x7000; + } + + BG_Fill(gBG1TilemapBuffer, 0); + BG_Fill(gBG2TilemapBuffer, 0); + BG_Fill(gBG3TilemapBuffer, 0); + BG_EnableSyncByMask(BG0_SYNC_BIT | BG1_SYNC_BIT | BG2_SYNC_BIT | BG3_SYNC_BIT); + + EnablePaletteSync(); + + SetDispEnable(1, 0, 0, 1, 0); + + SetDefaultColorEffects(); + + BG_SetPosition(BG_3, 0, 0); + + proc->unk_29_0 = 0; + proc->unk_29_1 = 0; + proc->unk_2c = 0; + proc->unk_30 = 0; + proc->unk_34 = 0xff; + proc->unk_35 = 0; + proc->unk_36 = 0; + proc->unk_38 = 0; + proc->timer = 0; + + return; +} + +//! FE8U = 0x080C45E0 +void sub_80C45E0(struct CreditsMainProc * proc) +{ + if (proc->unk_29_1) + { + if (proc->unk_48 < 10) + { + Decompress(proc->cg->img[proc->unk_48], (void *)(0x06008000 + proc->unk_48 * 0x800)); + } + else + { + CallARM_FillTileRect(gBG3TilemapBuffer, proc->cg->tsa, 0); + BG_EnableSyncByMask(BG3_SYNC_BIT); + + ApplyPalettes(proc->cg->pal, 0, 6); + EnablePaletteSync(); + } + + proc->unk_48++; + + if (proc->unk_48 > 10) + { + proc->unk_29_1 = 0; + } + } + + return; +} + +//! FE8U = 0x080C4664 +void EndingCredits_Loop_Main(struct CreditsMainProc * proc) +{ + if (((gKeyStatusPtr->newKeys & START_BUTTON) != 0) && (CheckGameEndFlag() != 0)) + { + Proc_Goto(proc, 0); + return; + } + + if (proc->unk_30 < 0x3800) + { + proc->unk_30 += 0x780; + } + + if (!proc->unk_29_0) + { + proc->unk_30 += 0x80; + } + + sub_80C4238(proc); + sub_80C43B4(proc); + sub_80C45E0(proc); + + if ((u8)proc->unk_35 > 20) + { + proc->timer = 240; + Proc_Break(proc); + } + + return; +} + +//! FE8U = 0x080C46E4 +void EndingCredits_EndBlendCG(void) +{ + EndCreditsBlendCG(); + return; +} + +//! FE8U = 0x080C46F0 +void EndingCredits_80C46F0(void) +{ + SetDispEnable(0, 0, 0, 0, 0); + SetDefaultColorEffects(); + + BG_SetPosition(BG_0, 0, 0); + BG_Fill(gBG3TilemapBuffer, 0); + BG_EnableSyncByMask(BG3_SYNC_BIT); + + return; +} + +//! FE8U = 0x080C4738 +void EndingCredits_ShowCopyright(struct CreditsMainProc * proc) +{ + u32 chr; + const struct StaffReelEnt * ptr = (&gUnknown_08206E24[20])->entry; + + Decompress(ptr->img, (void *)(0x6000000 + (chr = gUnknown_08206FDC[0]))); + Decompress(ptr->tsa, gGenericBuffer); + + CallARM_FillTileRect(gBG0TilemapBuffer, gGenericBuffer, (u16)((chr >> 5) + 0x7000)); + BG_EnableSyncByMask(BG0_SYNC_BIT); + + gPaletteBuffer[0] = 0; + ApplyPalette(Pal_StaffReelEnt_08A40FC8, 7); + EnablePaletteSync(); + + proc->timer = 240; + + return; +} + +//! FE8U = 0x080C47B0 +void EndingCredits_AwaitInputForEnd(struct CreditsMainProc * proc) +{ + proc->timer--; + + if (((gKeyStatusPtr->newKeys & START_BUTTON) != 0) && (CheckGameEndFlag() != 0)) + { + proc->timer = 0; + } + + if (proc->timer < 1) + { + Proc_Break(proc); + } + + return; +} + +//! FE8U = 0x080C47F4 +void EndingCredits_OnEnd(void) +{ + BG_Fill(gBG0TilemapBuffer, 0); + BG_Fill(gBG1TilemapBuffer, 0); + BG_Fill(gBG2TilemapBuffer, 0); + + CpuFastFill(0, (void *)0x6000000, VRAM_SIZE); + SetDispEnable(0, 0, 0, 0, 0); + SetBlendAlpha(0, 0); + + BG_Fill(gBG3TilemapBuffer, -1); + BG_EnableSyncByMask(BG3_SYNC_BIT); + + return; +} + +// clang-format off + +struct ProcCmd CONST_DATA ProcScr_EndingCredits[] = +{ + PROC_YIELD, + + PROC_CALL(EndingCredits_Init), + PROC_REPEAT(EndingCredits_Loop_Main), + + PROC_GOTO(1), + +PROC_LABEL(0), + PROC_CALL(EndingCredits_EndBlendCG), + PROC_SLEEP(1), + + PROC_CALL_ARG(NewFadeOut, 16), + PROC_WHILE(FadeOutExists), + + PROC_CALL(EndingCredits_80C46F0), + PROC_SLEEP(1), + + PROC_CALL(EndingCredits_ShowCopyright), + PROC_SLEEP(1), + + PROC_CALL_ARG(NewFadeIn, 16), + PROC_WHILE(FadeInExists), + +PROC_LABEL(1), + PROC_REPEAT(EndingCredits_AwaitInputForEnd), + + PROC_CALL(StartSlowFadeToBlack), + PROC_REPEAT(WaitForFade), + PROC_SLEEP(30), + + PROC_CALL(EndingCredits_OnEnd), + PROC_SLEEP(1), + + PROC_END, +}; + +// clang-format on + +//! FE8U = 0x080C4878 +void StartEndingCredits(ProcPtr parent) +{ + Proc_StartBlocking(ProcScr_EndingCredits, parent); + return; +} + +// clang-format off + +const struct StaffReelEnt StaffReelEnt_08206BA0 = +{ + .img = Img_StaffReelEnt_08A40FE8, + .tsa = Tsa_StaffReelEnt_08A4AE08, +}; + +const struct StaffReelEnt StaffReelEnt_08206BA8 = +{ + .img = Img_StaffReelEnt_08A41B30, + .tsa = Tsa_StaffReelEnt_08A4B090, +}; + +const struct StaffReelEnt StaffReelEnt_08206BB0 = +{ + .img = Img_StaffReelEnt_08A42748, + .tsa = Tsa_StaffReelEnt_08A4B2F4, +}; + +const struct StaffReelEnt StaffReelEnt_08206BB8 = +{ + .img = Img_StaffReelEnt_08A432C0, + .tsa = Tsa_StaffReelEnt_08A4B558, +}; + +const struct StaffReelEnt StaffReelEnt_08206BC0 = +{ + .img = Img_StaffReelEnt_08A43CBC, + .tsa = Tsa_StaffReelEnt_08A4B788, +}; + +const struct StaffReelEnt StaffReelEnt_08206BC8 = +{ + .img = Img_StaffReelEnt_08A45150, + .tsa = Tsa_StaffReelEnt_08A4BB50, +}; + +const struct StaffReelEnt StaffReelEnt_08206BD0 = +{ + .img = Img_StaffReelEnt_08A4561C, + .tsa = Tsa_StaffReelEnt_08A4BCC4, +}; + +const struct StaffReelEnt StaffReelEnt_08206BD8 = +{ + .img = Img_StaffReelEnt_08A45F58, + .tsa = Tsa_StaffReelEnt_08A4BEC0, +}; + +const struct StaffReelEnt StaffReelEnt_08206BE0 = +{ + .img = Img_StaffReelEnt_08A46988, + .tsa = Tsa_StaffReelEnt_08A4C0E4, +}; + +const struct StaffReelEnt StaffReelEnt_08206BE8 = +{ + .img = Img_StaffReelEnt_08A472B0, + .tsa = Tsa_StaffReelEnt_08A4C308, +}; + +const struct StaffReelEnt StaffReelEnt_08206BF0 = +{ + .img = Img_StaffReelEnt_08A48744, + .tsa = Tsa_StaffReelEnt_08A4C6EC, +}; + +const struct StaffReelEnt StaffReelEnt_08206BF8 = +{ + .img = Img_StaffReelEnt_08A497A8, + .tsa = Tsa_StaffReelEnt_08A4C9F0, +}; + +const struct StaffReelEnt StaffReelEnt_08206C00 = +{ + .img = Img_StaffReelEnt_08A4A9D4, + .tsa = Tsa_StaffReelEnt_08A4CD40, +}; + +const struct CreditsCG CreditsCG_08206C08 = +{ + .img = + { + cg_0_part_0_tiles, + cg_0_part_1_tiles, + cg_0_part_2_tiles, + cg_0_part_3_tiles, + cg_0_part_4_tiles, + cg_0_part_5_tiles, + cg_0_part_6_tiles, + cg_0_part_7_tiles, + cg_0_part_8_tiles, + cg_0_part_9_tiles, + }, + .tsa = cg_0_map, + .pal = cg_0_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206C3C = +{ + .img = + { + cg_1_part_0_tiles, + cg_1_part_1_tiles, + cg_1_part_2_tiles, + cg_1_part_3_tiles, + cg_1_part_4_tiles, + cg_1_part_5_tiles, + cg_1_part_6_tiles, + cg_1_part_7_tiles, + cg_1_part_8_tiles, + cg_1_part_9_tiles, + }, + .tsa = cg_1_map, + .pal = cg_1_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206C70 = +{ + .img = + { + cg_2_part_0_tiles, + cg_2_part_1_tiles, + cg_2_part_2_tiles, + cg_2_part_3_tiles, + cg_2_part_4_tiles, + cg_2_part_5_tiles, + cg_2_part_6_tiles, + cg_2_part_7_tiles, + cg_2_part_8_tiles, + cg_2_part_9_tiles, + }, + .tsa = cg_2_map, + .pal = cg_2_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206CA4 = +{ + .img = + { + cg_3_part_0_tiles, + cg_3_part_1_tiles, + cg_3_part_2_tiles, + cg_3_part_3_tiles, + cg_3_part_4_tiles, + cg_3_part_5_tiles, + cg_3_part_6_tiles, + cg_3_part_7_tiles, + cg_3_part_8_tiles, + cg_3_part_9_tiles, + }, + .tsa = cg_3_map, + .pal = cg_3_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206CD8 = +{ + .img = + { + cg_4_part_0_tiles, + cg_4_part_1_tiles, + cg_4_part_2_tiles, + cg_4_part_3_tiles, + cg_4_part_4_tiles, + cg_4_part_5_tiles, + cg_4_part_6_tiles, + cg_4_part_7_tiles, + cg_4_part_8_tiles, + cg_4_part_9_tiles, + }, + .tsa = cg_4_map, + .pal = cg_4_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206D0C = +{ + .img = + { + cg_5_part_0_tiles, + cg_5_part_1_tiles, + cg_5_part_2_tiles, + cg_5_part_3_tiles, + cg_5_part_4_tiles, + cg_5_part_5_tiles, + cg_5_part_6_tiles, + cg_5_part_7_tiles, + cg_5_part_8_tiles, + cg_5_part_9_tiles, + }, + .tsa = cg_5_map, + .pal = cg_5_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206D40 = +{ + .img = + { + cg_6_part_0_tiles, + cg_6_part_1_tiles, + cg_6_part_2_tiles, + cg_6_part_3_tiles, + cg_6_part_4_tiles, + cg_6_part_5_tiles, + cg_6_part_6_tiles, + cg_6_part_7_tiles, + cg_6_part_8_tiles, + cg_6_part_9_tiles, + }, + .tsa = cg_6_map, + .pal = cg_6_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206D74 = +{ + .img = + { + cg_7_part_0_tiles, + cg_7_part_1_tiles, + cg_7_part_2_tiles, + cg_7_part_3_tiles, + cg_7_part_4_tiles, + cg_7_part_5_tiles, + cg_7_part_6_tiles, + cg_7_part_7_tiles, + cg_7_part_8_tiles, + cg_7_part_9_tiles, + }, + .tsa = cg_7_map, + .pal = cg_7_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206DA8 = +{ + .img = + { + cg_8_part_0_tiles, + cg_8_part_1_tiles, + cg_8_part_2_tiles, + cg_8_part_3_tiles, + cg_8_part_4_tiles, + cg_8_part_5_tiles, + cg_8_part_6_tiles, + cg_8_part_7_tiles, + cg_8_part_8_tiles, + cg_8_part_9_tiles, + }, + .tsa = cg_8_map, + .pal = cg_8_palette, + .unk_30 = 0x78, +}; + +const struct CreditsCG CreditsCG_08206DDC = +{ + .img = + { + cg_9_part_0_tiles, + cg_9_part_1_tiles, + cg_9_part_2_tiles, + cg_9_part_3_tiles, + cg_9_part_4_tiles, + cg_9_part_5_tiles, + cg_9_part_6_tiles, + cg_9_part_7_tiles, + cg_9_part_8_tiles, + cg_9_part_9_tiles, + }, + .tsa = cg_9_map, + .pal = cg_9_palette, + .unk_30 = 0x78, +}; + +const u32 Padding_08206E10[5] = {0}; + +const struct CreditsEnt gUnknown_08206E24[] = +{ + [0] = + { + .entry = &StaffReelEnt_08206BA0, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [1] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206C3C, + [1] = &CreditsCG_08206C70, + }, + .unk_0c = 0x00016000, + .unk_10 = 0x00027000, + }, + [2] = + { + .entry = &StaffReelEnt_08206BA8, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [3] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206DA8, + [1] = &CreditsCG_08206DA8, + }, + .unk_0c = 0x00034000, + .unk_10 = 0x00047000, + }, + [4] = + { + .entry = &StaffReelEnt_08206BB0, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [5] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206CA4, + [1] = &CreditsCG_08206CA4, + }, + .unk_0c = 0x00055000, + .unk_10 = 0x00067000, + }, + [6] = + { + .entry = &StaffReelEnt_08206BB8, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [7] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206D40, + [1] = &CreditsCG_08206D40, + }, + .unk_0c = 0x00074000, + .unk_10 = 0x00087000, + }, + [8] = + { + .entry = &StaffReelEnt_08206BC0, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [9] = + { + .entry = &StaffReelEnt_08206BC8, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [10] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206D74, + [1] = &CreditsCG_08206D74, + }, + .unk_0c = 0x0009E800, + .unk_10 = 0x000B7000, + }, + [11] = + { + .entry = &StaffReelEnt_08206BD0, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [12] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206DDC, + [1] = &CreditsCG_08206DDC, + }, + .unk_0c = 0x000C2000, + .unk_10 = 0x000D7000, + }, + [13] = + { + .entry = &StaffReelEnt_08206BD8, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [14] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206CD8, + [1] = &CreditsCG_08206CD8, + }, + .unk_0c = 0x000E4000, + .unk_10 = 0x000F7000, + }, + [15] = + { + .entry = &StaffReelEnt_08206BE0, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [16] = + { + .entry = NULL, + .cg = + { + [0] = &CreditsCG_08206D0C, + [1] = &CreditsCG_08206D0C, + }, + .unk_0c = 0x00103000, + .unk_10 = 0x00117000, + }, + [17] = + { + .entry = &StaffReelEnt_08206BE8, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [18] = + { + .entry = &StaffReelEnt_08206BF0, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [19] = + { + .entry = &StaffReelEnt_08206BF8, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [20] = + { + .entry = &StaffReelEnt_08206C00, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, + [21] = + { + .entry = NULL, + .cg = + { + [0] = NULL, + [1] = NULL, + }, + .unk_0c = 0, + .unk_10 = 0, + }, +}; + +const u32 gUnknown_08206FDC[] = +{ + 0x400, + 0x3400, +}; + +// clang-format on diff --git a/src/events/messed-eventscr.h b/src/events/messed-eventscr.h index 0c5501696..3e6f2efe5 100644 --- a/src/events/messed-eventscr.h +++ b/src/events/messed-eventscr.h @@ -10499,7 +10499,7 @@ CONST_DATA EventListScr EventScr_08A00680[] = { EVBIT_F(2) ASMC(BMapDispSuspend) MUSC(0x42) - ASMC(sub_80C4878) + ASMC(StartEndingCredits) STAL(90) EvtTextStartType2 // ENOSUPP in EAstdlib EvtBgFadeIn(0x0, 0, 2) // ENOSUPP in EAstdlib diff --git a/src/events_script.c b/src/events_script.c index 1ac5e017e..5db19d652 100644 --- a/src/events_script.c +++ b/src/events_script.c @@ -8,6 +8,7 @@ #include "constants/event-flags.h" #include "bmunit.h" #include "bmtrap.h" +#include "ending_credits.h" #include "events/common-events.h"