diff options
author | Akira Akashi <rubenru09@aol.com> | 2021-08-18 19:53:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-18 19:53:17 +0100 |
commit | bb16d9a030161b764029628f99eb22a8834b96d5 (patch) | |
tree | 03de4ccb9a850663165c6f31741a1399a19810d9 | |
parent | e947eab3f1d5315ba59ec989a02f6b84797e052b (diff) | |
parent | bb8d0b174dfafd4d268a874ef55f2d09f510b82b (diff) |
Merge pull request #451 from remicalixte/unk_02009EAC
Decompile and split unk_02009EAC.s
53 files changed, 706 insertions, 922 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 51b0b5c2..8287f133 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -24,7 +24,8 @@ Static arm9 Object unk_02006D98.o Object unk_02008AA4.o Object unk_02008DEC.o - Object unk_02009EAC.o + Object oam.o + Object brightness.o Object msgdata.o Object script_buffers.o Object unk_0200BA78.o diff --git a/arm9/asm/unk_02009EAC.s b/arm9/asm/unk_02009EAC.s deleted file mode 100644 index b08b52fd..00000000 --- a/arm9/asm/unk_02009EAC.s +++ /dev/null @@ -1,664 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - - .global UNK_021C4670 -UNK_021C4670: ; 0x021C4670 - .space 0x4 - - .global UNK_021C4674 -UNK_021C4674: ; 0x021C4674 - .space 0x20 - - .global UNK_021C4694 -UNK_021C4694: ; 0x021C4694 - .space 0x20 - - .text - - thumb_func_start FUN_02009EAC -FUN_02009EAC: ; 0x02009EAC - push {r3-r4, lr} - sub sp, #0x14 - add r4, r0, #0x0 - cmp r4, #0x4 - bge _02009EC0 - mov r0, #0x4 - cmp r1, #0x7c - ble _02009EC0 - sub r4, r0, r4 - sub r1, r1, r4 -_02009EC0: - cmp r2, #0x1 - bge _02009ED0 - mov r4, #0x1 - cmp r3, #0x1e - ble _02009ED2 - sub r2, r4, r2 - sub r3, r3, r2 - b _02009ED2 -_02009ED0: - add r4, r2, #0x0 -_02009ED2: - ldr r2, [sp, #0x20] - str r2, [sp, #0x0] - ldr r2, [sp, #0x24] - str r2, [sp, #0x4] - ldr r2, [sp, #0x28] - str r2, [sp, #0x8] - ldr r2, [sp, #0x2c] - str r2, [sp, #0xc] - ldr r2, [sp, #0x30] - str r2, [sp, #0x10] - add r2, r4, #0x0 - bl FUN_02009EF0 - add sp, #0x14 - pop {r3-r4, pc} - - thumb_func_start FUN_02009EF0 -FUN_02009EF0: ; 0x02009EF0 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldr r0, _02009F7C ; =UNK_021C4670 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r0, #0x0 - beq _02009F08 - bl GF_AssertFail -_02009F08: - ldr r0, [sp, #0x30] - mov r1, #0x3c - bl AllocFromHeap - ldr r1, _02009F7C ; =UNK_021C4670 - cmp r0, #0x0 - str r0, [r1, #0x0] - bne _02009F1C - bl GF_AssertFail -_02009F1C: - ldr r1, _02009F7C ; =UNK_021C4670 - lsl r3, r6, #0x10 - ldr r2, [sp, #0x30] - ldr r0, [r1, #0x0] - lsr r3, r3, #0x10 - str r2, [r0, #0x38] - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - ldr r0, [r1, #0x0] - lsl r1, r5, #0x10 - lsl r2, r4, #0x10 - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - bl NNS_G2dGetNewOamManagerInstance - cmp r0, #0x0 - bne _02009F48 - bl GF_AssertFail -_02009F48: - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x20] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldr r0, _02009F7C ; =UNK_021C4670 - ldr r2, [sp, #0x24] - ldr r3, [sp, #0x28] - ldr r0, [r0, #0x0] - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - lsl r3, r3, #0x10 - add r0, #0x1c - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - lsr r3, r3, #0x10 - bl NNS_G2dGetNewOamManagerInstance - cmp r0, #0x0 - bne _02009F78 - bl GF_AssertFail -_02009F78: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02009F7C: .word UNK_021C4670 - - thumb_func_start FUN_02009F80 -FUN_02009F80: ; 0x02009F80 - push {r3, lr} - ldr r0, _02009F9C ; =UNK_021C4670 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02009F98 - bl NNS_G2dApplyAndResetOamManagerBuffer - ldr r0, _02009F9C ; =UNK_021C4670 - ldr r0, [r0, #0x0] - add r0, #0x1c - bl NNS_G2dApplyAndResetOamManagerBuffer -_02009F98: - pop {r3, pc} - nop -_02009F9C: .word UNK_021C4670 - - thumb_func_start FUN_02009FA0 -FUN_02009FA0: ; 0x02009FA0 - push {r3, lr} - ldr r0, _02009FD4 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02009FAE - bl GF_AssertFail -_02009FAE: - ldr r0, _02009FD4 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x38] - bl FUN_0200A064 - ldr r0, _02009FD4 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x38] - bl FUN_0200A06C - ldr r0, _02009FD4 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - bl FreeToHeap - ldr r0, _02009FD4 ; =UNK_021C4670 - mov r1, #0x0 - str r1, [r0, #0x0] - pop {r3, pc} - nop -_02009FD4: .word UNK_021C4670 - - thumb_func_start FUN_02009FD8 -FUN_02009FD8: ; 0x02009FD8 - push {r4-r7, lr} - sub sp, #0xc - add r6, r0, #0x0 - ldr r0, _0200A024 ; =UNK_021C4670 - add r7, r1, #0x0 - ldr r0, [r0, #0x0] - add r5, r2, #0x0 - add r4, r3, #0x0 - cmp r0, #0x0 - bne _02009FF0 - bl GF_AssertFail -_02009FF0: - cmp r5, #0x1 - bne _0200A00C - ldr r0, _0200A028 ; =FUN_020213A0 - ldr r2, _0200A02C ; =FUN_0200A074 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldr r3, _0200A030 ; =FUN_0200A0B8 - add r0, r6, #0x0 - add r1, r7, #0x0 - str r4, [sp, #0x8] - bl FUN_0202135C - add sp, #0xc - pop {r4-r7, pc} -_0200A00C: - ldr r0, _0200A028 ; =FUN_020213A0 - ldr r2, _0200A034 ; =FUN_0200A094 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldr r3, _0200A038 ; =FUN_0200A0DC - add r0, r6, #0x0 - add r1, r7, #0x0 - str r4, [sp, #0x8] - bl FUN_0202135C - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_0200A024: .word UNK_021C4670 -_0200A028: .word FUN_020213A0 -_0200A02C: .word FUN_0200A074 -_0200A030: .word FUN_0200A0B8 -_0200A034: .word FUN_0200A094 -_0200A038: .word FUN_0200A0DC - - thumb_func_start FUN_0200A03C -FUN_0200A03C: ; 0x0200A03C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0200A060 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0200A04C - bl GF_AssertFail -_0200A04C: - cmp r4, #0x0 - bne _0200A056 - ldr r0, _0200A060 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - pop {r4, pc} -_0200A056: - ldr r0, _0200A060 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - add r0, #0x1c - pop {r4, pc} - nop -_0200A060: .word UNK_021C4670 - - thumb_func_start FUN_0200A064 -FUN_0200A064: ; 0x0200A064 - ldr r3, _0200A068 ; =FUN_020203CC - bx r3 - .balign 4 -_0200A068: .word FUN_020203CC - - thumb_func_start FUN_0200A06C -FUN_0200A06C: ; 0x0200A06C - ldr r3, _0200A070 ; =FUN_02020404 - bx r3 - .balign 4 -_0200A070: .word FUN_02020404 - - thumb_func_start FUN_0200A074 -FUN_0200A074: ; 0x0200A074 - push {r4, lr} - add r3, r0, #0x0 - ldr r0, _0200A090 ; =UNK_021C4670 - add r2, r1, #0x0 - ldr r0, [r0, #0x0] - add r1, r3, #0x0 - bl NNS_G2dEntryOamManagerOamWithAffineIdx - add r4, r0, #0x0 - bne _0200A08C - bl GF_AssertFail -_0200A08C: - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 -_0200A090: .word UNK_021C4670 - - thumb_func_start FUN_0200A094 -FUN_0200A094: ; 0x0200A094 - push {r4, lr} - add r3, r0, #0x0 - ldr r0, _0200A0B4 ; =UNK_021C4670 - add r2, r1, #0x0 - ldr r0, [r0, #0x0] - add r1, r3, #0x0 - add r0, #0x1c - bl NNS_G2dEntryOamManagerOamWithAffineIdx - add r4, r0, #0x0 - bne _0200A0AE - bl GF_AssertFail -_0200A0AE: - add r0, r4, #0x0 - pop {r4, pc} - nop -_0200A0B4: .word UNK_021C4670 - - thumb_func_start FUN_0200A0B8 -FUN_0200A0B8: ; 0x0200A0B8 - push {r4, lr} - add r1, r0, #0x0 - ldr r0, _0200A0D4 ; =UNK_021C4670 - ldr r0, [r0, #0x0] - bl NNS_G2dEntryOamManagerAffine - add r4, r0, #0x0 - ldr r0, _0200A0D8 ; =0x0000FFFE - cmp r4, r0 - bne _0200A0D0 - bl GF_AssertFail -_0200A0D0: - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 -_0200A0D4: .word UNK_021C4670 -_0200A0D8: .word 0x0000FFFE - - thumb_func_start FUN_0200A0DC -FUN_0200A0DC: ; 0x0200A0DC - push {r4, lr} - add r1, r0, #0x0 - ldr r0, _0200A0FC ; =UNK_021C4670 - ldr r0, [r0, #0x0] - add r0, #0x1c - bl NNS_G2dEntryOamManagerAffine - add r4, r0, #0x0 - ldr r0, _0200A100 ; =0x0000FFFE - cmp r4, r0 - bne _0200A0F6 - bl GF_AssertFail -_0200A0F6: - add r0, r4, #0x0 - pop {r4, pc} - nop -_0200A0FC: .word UNK_021C4670 -_0200A100: .word 0x0000FFFE - - thumb_func_start FUN_0200A104 -FUN_0200A104: ; 0x0200A104 - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x10 - ldrsb r2, [r5, r0] - mov r0, #0x14 - ldrsh r0, [r5, r0] - add r1, r2, #0x0 - mov r7, #0x1a - ldrsh r2, [r5, r7] - mul r1, r0 - mov r6, #0xa - ldrsh r0, [r5, r6] - add r1, r2, r1 - mov r4, #0x0 - cmp r0, r1 - beq _0200A162 - cmp r2, r0 - beq _0200A162 - strh r1, [r5, #0x1a] - ldrh r3, [r5, #0x18] - ldrh r0, [r5, #0x16] - add r2, r5, #0x0 - add r1, r5, #0x0 - add r0, r3, r0 - strh r0, [r5, #0x18] - ldrh r3, [r5, #0x18] - ldrh r0, [r5, #0x8] - add r2, #0x1a - add r1, #0x18 - cmp r3, r0 - blo _0200A166 - mov r3, #0x10 - ldrsh r0, [r2, r4] - ldrsb r3, [r5, r3] - add r0, r0, r3 - strh r0, [r2, #0x0] - ldrsh r2, [r5, r7] - ldrsh r0, [r5, r6] - cmp r2, r0 - beq _0200A15E - ldrh r2, [r1, #0x0] - ldrh r0, [r5, #0x8] - sub r0, r2, r0 - strh r0, [r1, #0x0] - b _0200A166 -_0200A15E: - mov r4, #0x1 - b _0200A166 -_0200A162: - strh r0, [r5, #0x1a] - mov r4, #0x1 -_0200A166: - ldr r1, [r5, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0200A17C - mov r2, #0x1a - ldrsh r2, [r5, r2] - ldr r0, _0200A198 ; =0x04000050 - ldr r1, [r5, #0x0] - bl G2x_SetBlendBrightness_ - b _0200A18E -_0200A17C: - mov r0, #0x2 - tst r0, r1 - beq _0200A18E - mov r2, #0x1a - ldrsh r2, [r5, r2] - ldr r0, _0200A19C ; =0x04001050 - ldr r1, [r5, #0x0] - bl G2x_SetBlendBrightness_ -_0200A18E: - cmp r4, #0x1 - bne _0200A196 - mov r0, #0x0 - str r0, [r5, #0x1c] -_0200A196: - pop {r3-r7, pc} - .balign 4 -_0200A198: .word 0x04000050 -_0200A19C: .word 0x04001050 - - thumb_func_start FUN_0200A1A0 -FUN_0200A1A0: ; 0x0200A1A0 - push {r3-r7, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x1c] - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r0, #0x0 - beq _0200A1B4 - bl GF_AssertFail -_0200A1B4: - ldr r1, [sp, #0x18] - mov r0, #0x1 - lsl r1, r1, #0x18 - str r0, [r5, #0x1c] - lsr r1, r1, #0x18 - str r1, [r5, #0x0] - ldr r1, [sp, #0x1c] - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - str r1, [r5, #0x4] - strh r4, [r5, #0x8] - strh r6, [r5, #0xa] - strh r7, [r5, #0x1a] - sub r1, r7, r6 - strh r1, [r5, #0x12] - mov r1, #0x12 - ldrsh r2, [r5, r1] - cmp r2, #0x0 - ble _0200A1E0 - sub r1, #0x13 - strb r1, [r5, #0x10] - b _0200A1EA -_0200A1E0: - strb r0, [r5, #0x10] - ldrsh r0, [r5, r1] - sub r1, #0x13 - mul r1, r0 - strh r1, [r5, #0x12] -_0200A1EA: - mov r0, #0x12 - ldrsh r0, [r5, r0] - add r1, r4, #0x0 - bl _s32_div_f - strh r0, [r5, #0x14] - mov r0, #0x12 - ldrsh r0, [r5, r0] - add r1, r4, #0x0 - bl _s32_div_f - strh r1, [r5, #0x16] - mov r0, #0x0 - strh r0, [r5, #0x18] - pop {r3-r7, pc} - - thumb_func_start FUN_0200A208 -FUN_0200A208: ; 0x0200A208 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r7, r1, #0x0 - add r6, r2, #0x0 - add r4, r3, #0x0 - cmp r5, #0x0 - beq _0200A25E - ldr r1, [sp, #0x20] - mov r0, #0x1 - tst r0, r1 - beq _0200A23A - ldr r0, _0200A264 ; =0x04000050 - add r1, r4, #0x0 - bl G2x_SetBlendBrightness_ - str r4, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x4] - ldr r0, _0200A268 ; =UNK_021C4694 - add r1, r5, #0x0 - add r2, r7, #0x0 - add r3, r6, #0x0 - bl FUN_0200A1A0 -_0200A23A: - ldr r1, [sp, #0x20] - mov r0, #0x2 - tst r0, r1 - beq _0200A25E - ldr r0, _0200A26C ; =0x04001050 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl G2x_SetBlendBrightness_ - str r4, [sp, #0x0] - mov r0, #0x2 - str r0, [sp, #0x4] - ldr r0, _0200A270 ; =UNK_021C4674 - add r1, r5, #0x0 - add r2, r7, #0x0 - add r3, r6, #0x0 - bl FUN_0200A1A0 -_0200A25E: - add sp, #0x8 - pop {r3-r7, pc} - nop -_0200A264: .word 0x04000050 -_0200A268: .word UNK_021C4694 -_0200A26C: .word 0x04001050 -_0200A270: .word UNK_021C4674 - - thumb_func_start FUN_0200A274 -FUN_0200A274: ; 0x0200A274 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r2, #0x0 - mov r0, #0x1 - add r6, r1, #0x0 - tst r0, r4 - beq _0200A28A - ldr r0, _0200A2A4 ; =0x04000050 - add r2, r5, #0x0 - bl G2x_SetBlendBrightness_ -_0200A28A: - mov r0, #0x2 - tst r0, r4 - beq _0200A29A - ldr r0, _0200A2A8 ; =0x04001050 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl G2x_SetBlendBrightness_ -_0200A29A: - add r0, r4, #0x0 - bl FUN_0200A2D8 - pop {r4-r6, pc} - nop -_0200A2A4: .word 0x04000050 -_0200A2A8: .word 0x04001050 - - thumb_func_start FUN_0200A2AC -FUN_0200A2AC: ; 0x0200A2AC - push {r3, lr} - ldr r0, _0200A2CC ; =UNK_021C4694 - mov r1, #0x0 - mov r2, #0x20 - bl MI_CpuFill8 - ldr r0, _0200A2D0 ; =UNK_021C4674 - mov r1, #0x0 - mov r2, #0x20 - bl MI_CpuFill8 - ldr r0, _0200A2D4 ; =UNK_021C4674 - mov r1, #0x0 - str r1, [r0, #0x3c] - str r1, [r0, #0x1c] - pop {r3, pc} - .balign 4 -_0200A2CC: .word UNK_021C4694 -_0200A2D0: .word UNK_021C4674 -_0200A2D4: .word UNK_021C4674 - - thumb_func_start FUN_0200A2D8 -FUN_0200A2D8: ; 0x0200A2D8 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x1 - tst r0, r4 - beq _0200A2F2 - ldr r0, _0200A30C ; =UNK_021C4694 - mov r1, #0x0 - mov r2, #0x20 - bl MI_CpuFill8 - ldr r0, _0200A310 ; =UNK_021C4674 - mov r1, #0x0 - str r1, [r0, #0x3c] -_0200A2F2: - mov r0, #0x2 - tst r0, r4 - beq _0200A308 - ldr r0, _0200A314 ; =UNK_021C4674 - mov r1, #0x0 - mov r2, #0x20 - bl MI_CpuFill8 - ldr r0, _0200A310 ; =UNK_021C4674 - mov r1, #0x0 - str r1, [r0, #0x1c] -_0200A308: - pop {r4, pc} - nop -_0200A30C: .word UNK_021C4694 -_0200A310: .word UNK_021C4674 -_0200A314: .word UNK_021C4674 - - thumb_func_start FUN_0200A318 -FUN_0200A318: ; 0x0200A318 - push {r3, lr} - ldr r0, _0200A338 ; =UNK_021C4674 - ldr r0, [r0, #0x3c] - cmp r0, #0x0 - beq _0200A328 - ldr r0, _0200A33C ; =UNK_021C4694 - bl FUN_0200A104 -_0200A328: - ldr r0, _0200A338 ; =UNK_021C4674 - ldr r0, [r0, #0x1c] - cmp r0, #0x0 - beq _0200A336 - ldr r0, _0200A340 ; =UNK_021C4674 - bl FUN_0200A104 -_0200A336: - pop {r3, pc} - .balign 4 -_0200A338: .word UNK_021C4674 -_0200A33C: .word UNK_021C4694 -_0200A340: .word UNK_021C4674 - - thumb_func_start FUN_0200A344 -FUN_0200A344: ; 0x0200A344 - cmp r0, #0x3 - bne _0200A35A - ldr r0, _0200A380 ; =UNK_021C4674 - ldr r1, [r0, #0x3c] - cmp r1, #0x0 - bne _0200A37A - ldr r0, [r0, #0x1c] - cmp r0, #0x0 - bne _0200A37A - mov r0, #0x1 - bx lr -_0200A35A: - cmp r0, #0x1 - bne _0200A36A - ldr r0, _0200A380 ; =UNK_021C4674 - ldr r0, [r0, #0x3c] - cmp r0, #0x0 - bne _0200A37A - mov r0, #0x1 - bx lr -_0200A36A: - cmp r0, #0x2 - bne _0200A37A - ldr r0, _0200A380 ; =UNK_021C4674 - ldr r0, [r0, #0x1c] - cmp r0, #0x0 - bne _0200A37A - mov r0, #0x1 - bx lr -_0200A37A: - mov r0, #0x0 - bx lr - nop -_0200A380: .word UNK_021C4674 diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s index 68018241..74cfef32 100644 --- a/arm9/asm/unk_02048120.s +++ b/arm9/asm/unk_02048120.s @@ -376,12 +376,12 @@ _0204840C: mvn r0, r0 mov r1, #0x37 mov r2, #0x1 - bl FUN_0200A274 + bl SetBrightness mov r0, #0xf mvn r0, r0 mov r1, #0x3f mov r2, #0x2 - bl FUN_0200A274 + bl SetBrightness add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02048164 @@ -400,7 +400,7 @@ _02048442: mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 - bl FUN_0200A274 + bl SetBrightness bl FUN_02034E8C add r7, r0, #0x0 ldr r0, [r6, #0xc] diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s index 8cf0ee61..54d87433 100644 --- a/arm9/asm/unk_02048904.s +++ b/arm9/asm/unk_02048904.s @@ -2218,14 +2218,14 @@ _02049A64: mov r0, #0x1e sub r2, #0x10 mov r3, #0x19 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _02049A96: mov r0, #0x2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0x0 beq _02049AB2 mov r0, #0x1 @@ -2287,14 +2287,14 @@ _02049B02: sub r1, #0x2e mov r2, #0x0 mov r3, #0x1 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049B2C: mov r0, #0x2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0x0 beq _02049BDC ldr r0, [r5, #0x68] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index cdf9258d..90334793 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -1505,7 +1505,7 @@ _02077982: lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData ldr r1, _02077A70 ; =0x000004AC mov r0, #0x12 ldr r1, [r4, r1] @@ -1655,7 +1655,7 @@ _02077ADA: FUN_02077AE8: ; 0x02077AE8 push {r3, lr} bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _02077B00 ; =0x027E0000 ldr r1, _02077B04 ; =0x00003FF8 mov r0, #0x1 diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 4f43b41e..e8299712 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -3370,7 +3370,7 @@ FUN_0208251C: ; 0x0208251C add r5, r1, #0x0 ldr r4, [r5, r0] mov r0, #0x1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0x0 beq _02082594 ldrb r0, [r4, #0xb] @@ -3392,7 +3392,7 @@ FUN_0208251C: ; 0x0208251C mov r1, #0x0 mov r2, #0x4 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _0208259C ; =0x000005F8 bl PlaySE ldrb r0, [r4, #0xa] diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s index 4ef386dd..077b7bf5 100644 --- a/arm9/asm/unk_02089D90.s +++ b/arm9/asm/unk_02089D90.s @@ -165,7 +165,7 @@ FUN_02089D90: ; 0x02089D90 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 - bl FUN_0200A274 + bl SetBrightness mov r4, #0x1 _02089EE4: bl HandleDSLidAction diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s index 63f6e77a..3fbde6cb 100644 --- a/arm9/asm/unk_02089F24.s +++ b/arm9/asm/unk_02089F24.s @@ -169,7 +169,7 @@ FUN_02089F24: ; 0x02089F24 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 - bl FUN_0200A274 + bl SetBrightness mov r4, #0x1 _0208A078: bl HandleDSLidAction @@ -338,7 +338,7 @@ _0208A0C8: mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 - bl FUN_0200A274 + bl SetBrightness mov r4, #0x1 ; Battery-saver trap _0208A21A: diff --git a/arm9/global.inc b/arm9/global.inc index 98ee4d76..2f9f2d11 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -514,17 +514,17 @@ .extern FUN_02009E54 .extern FUN_02009E88 .extern FUN_02009EAC -.extern FUN_02009F80 -.extern FUN_02009FA0 +.extern ApplyAndResetOamManagerBuffer +.extern DeinitOamData .extern FUN_02009FD8 -.extern FUN_0200A03C +.extern GetOamManager .extern FUN_0200A064 .extern FUN_0200A06C -.extern FUN_0200A208 -.extern FUN_0200A274 -.extern FUN_0200A2AC -.extern FUN_0200A318 -.extern FUN_0200A344 +.extern StartBrightnessTransition +.extern SetBrightness +.extern InitAllScreenBrightnessData +.extern DoAllScreenBrightnessTransitionStep +.extern IsBrightnessTransitionActive .extern ReadMsgData_NewNarc_ExistingString .extern ReadMsgData_NewNarc_NewString .extern NewMsgDataFromNarc diff --git a/arm9/lib/libnns/include/NNS_g2d.h b/arm9/lib/libnns/include/NNS_g2d.h index f7eed210..d65f0430 100644 --- a/arm9/lib/libnns/include/NNS_g2d.h +++ b/arm9/lib/libnns/include/NNS_g2d.h @@ -200,6 +200,11 @@ typedef struct NNSG2dAnimBankData } NNSG2dAnimBankData; +typedef struct NNSG2dOamManager +{ + u8 unk00[0x1c]; +} NNSG2dOamManager; + BOOL NNS_G2dGetUnpackedBGCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData); BOOL NNS_G2dGetUnpackedCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData); BOOL NNS_G2dGetUnpackedScreenData(void * pNscrFile, NNSG2dScreenData ** ppScrData); @@ -209,4 +214,11 @@ BOOL NNS_G2dGetUnpackedPaletteCompressInfo(void * pNclrFile, NNSG2dPaletteCompre BOOL NNS_G2dGetUnpackedCellBank(void * pNcerFile, NNSG2dCellDataBank ** ppCellBank); BOOL NNS_G2dGetUnpackedAnimBank(void * pNanrFile, NNSG2dAnimBankData ** ppAnimBank); +BOOL NNS_G2dGetNewOamManagerInstance( + NNSG2dOamManager *oamManager, u16 param1, u16 param2, u16 param3, u16 param4, u32 param5); +void NNS_G2dApplyAndResetOamManagerBuffer(NNSG2dOamManager *oamManager); +u32 NNS_G2dEntryOamManagerOamWithAffineIdx( + NNSG2dOamManager *oamManager, u32 param1, u32 param2); +u32 NNS_G2dEntryOamManagerAffine(NNSG2dOamManager *oamManager, u32 param1); + #endif //NNSYS_NNS_G2D_H diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s index 52073cac..4b30f2d3 100644 --- a/arm9/modules/05/asm/mod05_021D74E0.s +++ b/arm9/modules/05/asm/mod05_021D74E0.s @@ -10,7 +10,7 @@ MOD05_021D74E0: ; 0x021D74E0 ldr r0, [r4, #8] bl DoScheduledBgGpuUpdates bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r0, [r4, #0x34] bl FUN_020583A0 bl MOD05_021F2D48 @@ -744,10 +744,10 @@ MOD05_021D7B38: ; 0x021D7B38 thumb_func_start MOD05_021D7B5C MOD05_021D7B5C: ; 0x021D7B5C - ldr r3, _021D7B60 ; =FUN_02009FA0 + ldr r3, _021D7B60 ; =DeinitOamData bx r3 .balign 4, 0 -_021D7B60: .word FUN_02009FA0 +_021D7B60: .word DeinitOamData thumb_func_start MOD05_021D7B64 MOD05_021D7B64: ; 0x021D7B64 diff --git a/arm9/modules/05/asm/mod05_021E3340.s b/arm9/modules/05/asm/mod05_021E3340.s index 8fb0d143..5aeaf2cc 100644 --- a/arm9/modules/05/asm/mod05_021E3340.s +++ b/arm9/modules/05/asm/mod05_021E3340.s @@ -35,14 +35,14 @@ _021E3370: sub r1, #0x12 mov r2, #0 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E3414 _021E3388: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021E3414 ldr r0, [r5, #8] @@ -67,7 +67,7 @@ _021E33A0: add r0, r6, #0 bl Sav2_Poketch_Give mov r0, #1 - bl FUN_0200A03C + bl GetOamManager str r0, [sp] ldr r1, [r5, #4] ldr r2, [r5, #0xc] @@ -87,14 +87,14 @@ _021E33E4: mov r0, #4 sub r2, #0x10 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E3414 _021E33FE: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021E3414 add r0, r4, #0 diff --git a/arm9/modules/05/asm/mod05_021EFA9C.s b/arm9/modules/05/asm/mod05_021EFA9C.s index f749c0e8..b6c27091 100644 --- a/arm9/modules/05/asm/mod05_021EFA9C.s +++ b/arm9/modules/05/asm/mod05_021EFA9C.s @@ -37,7 +37,7 @@ MOD05_021EFAAC: ; 0x021EFAAC mov r1, #2 bl HandleLoadOverlay mov r0, #1 - bl FUN_0200A03C + bl GetOamManager str r0, [sp] ldr r1, [r5, #4] ldr r2, [r5, #0xc] diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index acd698d5..93dd97ef 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -37368,7 +37368,7 @@ _022244E4: mov r1, #0x10 mov r2, #0 mov r3, #0xd - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #0 mvn r0, r0 str r0, [r4, #0x10] @@ -37384,7 +37384,7 @@ _02224508: cmp r1, r0 bne _02224532 mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _02224532 mov r0, #1 @@ -37393,7 +37393,7 @@ _02224508: mov r1, #0 mov r2, #0x10 mov r3, #0xd - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #1 mvn r0, r0 str r0, [r4, #0x10] @@ -37408,7 +37408,7 @@ _02224532: b _022245A8 _02224544: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _022245A8 ldr r0, [r4, #0xc] diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index c035be6d..88cebb83 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -8253,7 +8253,7 @@ _022318EA: MOD12_022318F8: ; 0x022318F8 push {r3, lr} mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _02231908 mov r0, #1 @@ -8268,7 +8268,7 @@ MOD12_0223190C: ; 0x0223190C sub sp, #4 mov r0, #1 add r4, r1, #0 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _02231972 ldr r0, [r4, #8] @@ -8286,7 +8286,7 @@ MOD12_0223190C: ; 0x0223190C mov r1, #0 mov r2, #4 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _02231978 ; =0x000005F8 bl PlaySE mov r0, #0 @@ -28281,7 +28281,7 @@ _0223B04E: ldrsb r1, [r4, r1] ldrsb r2, [r4, r2] mov r3, #0x3d - bl FUN_0200A208 + bl StartBrightnessTransition ldrb r0, [r4, #0x10] add sp, #8 add r0, r0, #1 @@ -28289,7 +28289,7 @@ _0223B04E: pop {r3, r4, r5, pc} _0223B06C: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _0223B0C0 mov r1, #0 @@ -47725,7 +47725,7 @@ _0224467E: mov r1, #0x10 mov r2, #0 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _02244704 ; =0x0000049E mov r1, #0x5a bl FUN_02005350 @@ -47735,7 +47735,7 @@ _0224467E: pop {r3, r4, r5, pc} _0224469E: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _02244700 bl FUN_02005404 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index e1acb188..67f55456 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -10857,7 +10857,7 @@ MOD14_021DCA38: ; 0x021DCA38 bl FreeToHeap add r0, r4, #0 bl FreeToHeap - bl FUN_02009FA0 + bl DeinitOamData pop {r4, pc} .align 2, 0 _021DCB08: .word 0x0000B3AC @@ -10994,7 +10994,7 @@ MOD14_021DCBFC: ; 0x021DCBFC bl MOD14_021E0EE4 ldr r0, [r4, #0x18] bl FUN_0201FDEC - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _021DCC24 ; =0x027E0000 ldr r1, _021DCC28 ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index 173d4fd6..ba4f57ae 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -2664,7 +2664,7 @@ _021D88A4: bl FUN_0200CAB4 ldr r0, [r6, #4] bl FUN_0200CAB4 - bl FUN_02009FA0 + bl DeinitOamData ldr r0, [r6, #0x24] bl FUN_0201FD58 ldr r0, [r6, #0x20] @@ -2691,7 +2691,7 @@ MOD15_021D88DC: ; 0x021D88DC push {r3, lr} ldr r0, [r1, #0x24] bl FUN_0201FDEC - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _021D88F8 ; =0x027E0000 ldr r1, _021D88FC ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 16b3c00d..3365be5a 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -105,7 +105,7 @@ _021D75AC: mvn r0, r0 mov r1, #0x3f mov r2, #3 - bl FUN_0200A274 + bl SetBrightness ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -614,7 +614,7 @@ MOD16_021D79FC: ; 0x021D79FC thumb_func_start MOD16_021D7A10 MOD16_021D7A10: ; 0x021D7A10 push {r3, lr} - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C bl MOD16_021D8514 @@ -627,7 +627,7 @@ MOD16_021D7A24: ; 0x021D7A24 ldr r1, _021D7A34 ; =0x0000177C add r0, r0, r1 bl MOD16_021D86DC - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer pop {r3, pc} .align 2, 0 _021D7A34: .word 0x0000177C @@ -13301,7 +13301,7 @@ MOD16_021DD724: ; 0x021DD724 mov r0, #4 sub r2, #0x10 mov r3, #0x39 - bl FUN_0200A208 + bl StartBrightnessTransition pop {r3, r4, r5, pc} _021DD74C: mov r0, #1 @@ -13311,7 +13311,7 @@ _021DD74C: sub r1, #0x14 mov r2, #0 mov r3, #0x39 - bl FUN_0200A208 + bl StartBrightnessTransition _021DD75E: pop {r3, r4, r5, pc} thumb_func_end MOD16_021DD724 @@ -13328,7 +13328,7 @@ MOD16_021DD760: ; 0x021DD760 cmp r0, #1 beq _021DD77C mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive b _021DD77E _021DD77C: mov r0, #1 @@ -13346,7 +13346,7 @@ _021DD77E: mvn r0, r0 mov r1, #0x3f mov r2, #1 - bl FUN_0200A274 + bl SetBrightness ldr r0, [r5] mov r1, #0 add r0, r0, #4 @@ -14292,14 +14292,14 @@ _021DDE94: mov r0, #4 sub r2, #0x10 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DDEC8 _021DDEAE: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DDEC8 ldr r0, [r4] @@ -14415,14 +14415,14 @@ _021DDF86: sub r1, #0x14 mov r2, #0 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DDFD8 _021DDFA0: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DDFD8 ldr r0, [r4] @@ -16501,14 +16501,14 @@ _021DEEF6: str r0, [sp] sub r2, #0x10 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DEF2E _021DEF18: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DEF2E ldr r0, [r4] @@ -16592,7 +16592,7 @@ _021DEF96: sub r1, #0x16 mov r2, #0 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -16603,7 +16603,7 @@ _021DEFB6: b _021DEFF2 _021DEFBC: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DEFF2 ldr r0, [r4] @@ -18398,7 +18398,7 @@ _021DFD50: mov r0, #1 sub r2, #0x10 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition add r0, r6, #0 add r1, r5, #0 add r2, r7, #0 @@ -18409,7 +18409,7 @@ _021DFD50: b _021DFD96 _021DFD80: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DFD96 ldr r0, [r4] @@ -18617,14 +18617,14 @@ _021DFF02: sub r1, #0x16 mov r2, #0 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DFF6E _021DFF1C: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DFF6E ldr r0, [r4] @@ -25278,7 +25278,7 @@ MOD16_021E2E74: ; 0x021E2E74 mov r0, #4 sub r2, #0x10 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition add sp, #4 pop {r3, r4, pc} _021E2EA4: @@ -25293,7 +25293,7 @@ _021E2EA4: sub r1, #0x14 mov r2, #0 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition _021E2EC0: add sp, #4 pop {r3, r4, pc} @@ -28340,7 +28340,7 @@ MOD16_021E45BC: ; 0x021E45BC b _021E45E2 _021E45DC: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive _021E45E2: cmp r0, #0 beq _021E45F4 @@ -37267,7 +37267,7 @@ MOD16_021E8878: ; 0x021E8878 b _021E889E _021E8898: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive _021E889E: cmp r0, #0 beq _021E88B0 @@ -39308,7 +39308,7 @@ _021E979E: mov r0, #4 sub r2, #0x10 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 @@ -39319,7 +39319,7 @@ _021E979E: b _021E97D8 _021E97C2: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021E97D8 ldr r0, [r4] @@ -39392,14 +39392,14 @@ _021E9834: sub r1, #0x14 mov r2, #0 mov r3, #0x3f - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E9890 _021E984E: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021E9890 ldr r0, [r4] @@ -42999,7 +42999,7 @@ MOD16_021EB2E0: ; 0x021EB2E0 b _021EB306 _021EB300: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive _021EB306: cmp r0, #0 beq _021EB318 @@ -46749,7 +46749,7 @@ MOD16_021ECF04: ; 0x021ECF04 b _021ECF2A _021ECF24: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive _021ECF2A: cmp r0, #0 beq _021ECF3C @@ -50300,7 +50300,7 @@ MOD16_021EEA00: ; 0x021EEA00 b _021EEA26 _021EEA20: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive _021EEA26: cmp r0, #0 beq _021EEA38 diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 7e32e1c9..9111403a 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -863,7 +863,7 @@ MOD17_021D7AE4: ; 0x021D7AE4 bl DoScheduledBgGpuUpdates ldr r0, [r4, #0x20] bl FUN_020081C4 - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D7AE4 @@ -1137,7 +1137,7 @@ MOD17_021D7CF0: ; 0x021D7CF0 push {r3, lr} ldr r0, [r0, #0x38] bl DoScheduledBgGpuUpdates - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021D7CF0 @@ -1724,7 +1724,7 @@ _021D8178: blt _021D8178 bl FUN_0201D12C bl FUN_0201E08C - bl FUN_02009FA0 + bl DeinitOamData pop {r3, r4, r5, pc} thumb_func_end MOD17_021D816C @@ -3933,7 +3933,7 @@ _021D934E: sub r1, #0x18 mov r2, #0 mov r3, #0xa - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 @@ -3941,7 +3941,7 @@ _021D934E: pop {r3, r4, pc} _021D936A: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D9424 ldr r0, [r4, #0xc] @@ -4009,7 +4009,7 @@ _021D93EA: mov r0, #8 sub r2, #0x10 mov r3, #0xa - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 @@ -4017,7 +4017,7 @@ _021D93EA: pop {r3, r4, pc} _021D9406: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D9424 ldr r0, [r4, #0xc] @@ -4093,7 +4093,7 @@ _021D9482: sub r1, #0x18 mov r2, #0 mov r3, #0xa - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 @@ -4101,7 +4101,7 @@ _021D9482: pop {r3, r4, pc} _021D949E: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D95A4 ldr r0, [r4, #0xc] @@ -4175,7 +4175,7 @@ _021D952E: mov r0, #8 sub r2, #0x10 mov r3, #0xa - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 @@ -4183,7 +4183,7 @@ _021D952E: pop {r3, r4, pc} _021D954A: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D95A4 ldr r0, [r4, #0xc] diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index f30d7e23..ac5296d1 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -1969,7 +1969,7 @@ _0223A5F8: ldr r0, [r0] ldr r0, [r0, #0x20] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C mov r0, #0 @@ -2628,7 +2628,7 @@ _0223AB94: add r2, r1, #0 mov r3, #7 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #0x1a add sp, #0xc str r0, [r4] @@ -6175,7 +6175,7 @@ MOD18_0223C6CC: ; 0x0223C6CC add r0, r4, #0 bl DoScheduledBgGpuUpdates bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer pop {r4, pc} thumb_func_end MOD18_0223C6CC @@ -13940,7 +13940,7 @@ _0224013A: mov r1, #0xa mov r2, #0 add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add sp, #8 add r0, r0, #1 @@ -13957,7 +13957,7 @@ _0224015A: mov r1, #0 mov r2, #0xa add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add sp, #8 add r0, r0, #1 @@ -13989,7 +13989,7 @@ _02240190: sub r1, r0, #5 mov r2, #0 add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition bl MOD18_0223D638 bl MOD18_0224DD94 ldr r0, [r4, #0xc] @@ -14011,7 +14011,7 @@ _022401D2: mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness add r0, r4, #0 bl FreeToHeap add r0, r5, #0 @@ -14123,7 +14123,7 @@ MOD18_022402A0: ; 0x022402A0 mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness add r0, r4, #0 bl FreeToHeap ldr r0, _022402EC ; =0x022513A0 @@ -14372,7 +14372,7 @@ _02240480: strh r0, [r1] mov r1, #1 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _022404EC ; =0x022513A0 mov r1, #2 ldr r0, [r0, #4] @@ -14666,7 +14666,7 @@ _022406A4: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r1, #0 mov r0, #0x12 str r1, [sp] @@ -14706,7 +14706,7 @@ _022406F6: mov r2, #0xa add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _02240884 ; =0x022513A0 ldr r1, [r0, #4] ldr r0, _02240888 ; =0x00000B3B @@ -14790,7 +14790,7 @@ _0224079E: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #4 mov r1, #1 bl GX_EngineAToggleLayers @@ -15358,7 +15358,7 @@ MOD18_02240C14: ; 0x02240C14 mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _02240C70 ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -15593,7 +15593,7 @@ MOD18_02240DC8: ; 0x02240DC8 mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _02240E28 ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -15658,7 +15658,7 @@ _02240E54: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition b _02240E7A _02240E68: cmp r0, #4 @@ -15668,7 +15668,7 @@ _02240E68: mov r2, #0xa add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition _02240E7A: ldr r0, [r4, #0x10] cmp r0, #0x1e @@ -15692,7 +15692,7 @@ _02240EA4: mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _02240EE0 ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -15826,7 +15826,7 @@ _02240FB4: mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _02241004 ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -15944,7 +15944,7 @@ _02241096: mov r1, #0xa mov r2, #0 add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add sp, #0x14 add r0, r0, #1 @@ -15961,7 +15961,7 @@ _022410B6: mov r1, #0 mov r2, #0xa add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add sp, #0x14 add r0, r0, #1 @@ -16441,7 +16441,7 @@ _02241472: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _022416A0 ; =0x022513A0 ldr r1, _022416A4 ; =0x00000B3B ldr r0, [r0, #4] @@ -16515,7 +16515,7 @@ _02241500: mov r2, #0xa add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _022416A0 ; =0x022513A0 ldr r1, _022416A4 ; =0x00000B3B ldr r0, [r0, #4] @@ -16618,7 +16618,7 @@ _022415C0: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition bl MOD18_0223D638 mov r2, #0 mov r1, #0x4c @@ -16742,13 +16742,13 @@ _022416D6: mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness mov r0, #1 mov r1, #0 sub r2, r1, #4 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #0x45 lsl r0, r0, #2 ldrb r0, [r4, r0] @@ -17873,7 +17873,7 @@ _02241F60: mov r1, #0xa mov r2, #0 add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add sp, #0x10 add r0, r0, #1 @@ -17911,7 +17911,7 @@ _02241FD4: mov r2, #0xa add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r3, #0 str r3, [sp] mov r0, #2 @@ -18683,7 +18683,7 @@ _02242604: strh r0, [r1] mov r1, #1 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _02242664 ; =0x0400006C mov r1, #0 bl GXx_SetMasterBrightness_ @@ -19893,7 +19893,7 @@ _02242F98: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r3, #0 str r3, [sp] mov r0, #1 @@ -19956,7 +19956,7 @@ _02243018: mov r2, #0xa add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r3, #0 str r3, [sp] mov r0, #2 @@ -20251,7 +20251,7 @@ _02243268: mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness mov r0, #0x10 bl FUN_0204F774 ldr r0, _022432AC ; =0x022513A0 @@ -20644,7 +20644,7 @@ _0224358C: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _02243784 ; =0x022513A0 ldr r1, _02243788 ; =0x00000B3B ldr r0, [r0, #4] @@ -20710,7 +20710,7 @@ _0224360E: mov r2, #0xa add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _02243784 ; =0x022513A0 ldr r1, _02243788 ; =0x00000B3B ldr r0, [r0, #4] @@ -20991,7 +20991,7 @@ _02243840: mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _02243890 ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -21069,7 +21069,7 @@ _022438DA: mov r1, #0xa mov r2, #0 add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add sp, #4 add r0, r0, #1 @@ -21086,7 +21086,7 @@ _022438FA: mov r1, #0 mov r2, #0xa add r3, r0, #0 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add sp, #4 add r0, r0, #1 @@ -21257,7 +21257,7 @@ _02243A44: mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness ldr r0, _02243A8C ; =0x04000050 mov r1, #0 strh r1, [r0] @@ -36157,7 +36157,7 @@ MOD18_0224AFE8: ; 0x0224AFE8 mov r1, #1 mov r0, #0 add r2, r1, #0 - bl FUN_0200A274 + bl SetBrightness mov r1, #1 add r0, r4, #0 mvn r1, r1 @@ -37566,7 +37566,7 @@ _0224BB22: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition bl MOD18_0223D658 mov r2, #0 mov r1, #0x30 @@ -37598,7 +37598,7 @@ _0224BB6E: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition bl MOD18_0223D658 mov r2, #0 mov r1, #0x31 @@ -37630,7 +37630,7 @@ _0224BBBA: mov r2, #0 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition bl MOD18_0223D658 mov r2, #0 mov r1, #0x32 @@ -37670,7 +37670,7 @@ _0224BC1E: sub r2, r1, #6 add r3, r0, #0 str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition bl MOD18_0223D658 bl MOD18_0224DD94 bl FUN_0202EDD8 diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index 0bff7b6e..388e4ef0 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -352,7 +352,7 @@ _021D77D8: blt _021D77D8 ldr r0, [r6, #0x34] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C add r0, r6, #0 @@ -434,7 +434,7 @@ MOD53_021D78A8: ; 0x021D78A8 push {r4, lr} add r4, r0, #0 bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer add r0, r4, #0 bl DoScheduledBgGpuUpdates ldr r3, _021D78C8 ; =0x027E0000 diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 8795cd7f..83feae5d 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -301,7 +301,7 @@ _021D776C: blt _021D776C ldr r0, [r6, #0x50] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C add r0, r6, #0 @@ -400,7 +400,7 @@ MOD54_021D784C: ; 0x021D784C push {r4, lr} add r4, r0, #0 bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer add r0, r4, #0 bl DoScheduledBgGpuUpdates ldr r3, _021D786C ; =0x027E0000 diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index ce354a55..f23c5281 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -311,7 +311,7 @@ _021D7754: mov r1, #0 add r0, #0xec str r1, [r0] - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C mov r0, #0xeb @@ -370,7 +370,7 @@ _021D77E6: ldr r0, [r4, #4] bl DoScheduledBgGpuUpdates bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _021D7804 ; =0x027E0000 ldr r1, _021D7808 ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 61f44b88..5b49451e 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -509,7 +509,7 @@ _022121EC: lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C add r0, r6, #0 @@ -577,7 +577,7 @@ MOD56_0221228C: ; 0x0221228C ldr r0, [r0] bl DoScheduledBgGpuUpdates bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _022122AC ; =0x027E0000 ldr r1, _022122B0 ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index bbf164b2..ec406679 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -1941,7 +1941,7 @@ _021D8470: MOD57_021D848C: ; 0x021D848C push {r3, lr} bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _021D84A4 ; =0x027E0000 ldr r1, _021D84A8 ; =0x00003FF8 mov r0, #1 @@ -3996,7 +3996,7 @@ _021D94F4: blo _021D94F4 ldr r0, [r5] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C pop {r4, r5, r6, pc} diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index 1cdd6b43..f9301441 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -247,7 +247,7 @@ _021D9C40: blt _021D9C40 ldr r0, [r6, #0x3c] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C add r0, r6, #0 @@ -287,7 +287,7 @@ MOD58_021D9CB4: ; 0x021D9CB4 push {r4, lr} add r4, r0, #0 bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer add r0, r4, #0 bl DoScheduledBgGpuUpdates ldr r3, _021D9CD4 ; =0x027E0000 diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index 27c05dd6..6e1c1392 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -3145,24 +3145,24 @@ _021D90E2: add r2, r5, #0 mov r3, #0xb str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #2 str r0, [sp] mov r0, #1 mov r1, #0x10 add r2, r5, #0 mov r3, #0xd - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #0x33 str r0, [r4, #0xc] b _021D985C _021D9106: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D91F6 mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D91F6 mov r0, #1 @@ -3170,24 +3170,24 @@ _021D9106: mov r2, #0x10 mov r3, #0xb str r0, [sp] - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #2 str r0, [sp] mov r0, #1 add r1, r5, #0 mov r2, #0x10 mov r3, #0xd - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #0x34 str r0, [r4, #0xc] b _021D985C _021D913E: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D91F6 mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D91F6 mov r0, #1 @@ -3196,24 +3196,24 @@ _021D913E: mov r1, #0x10 add r2, r5, #0 mov r3, #0xb - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #2 str r0, [sp] mov r0, #4 mov r1, #0x10 add r2, r5, #0 mov r3, #0xd - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #0x35 str r0, [r4, #0xc] b _021D985C _021D9178: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D91F6 mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D91F6 mov r0, #0x36 @@ -3244,14 +3244,14 @@ _021D9192: add r1, r5, #0 add r2, r0, #0 mov r3, #0xb - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #2 str r0, [sp] mov r0, #0x10 add r1, r5, #0 add r2, r0, #0 mov r3, #0xd - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #0x37 str r0, [r4, #0xc] b _021D985C @@ -3260,14 +3260,14 @@ _021D91E4: add r1, #0x94 bl MOD59_021D86BC mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 beq _021D91F8 _021D91F6: b _021D985C _021D91F8: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D92FA mov r0, #0x38 diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s index 0dded682..77ecf51d 100644 --- a/arm9/modules/63/asm/mod63_021D74E0.s +++ b/arm9/modules/63/asm/mod63_021D74E0.s @@ -1136,11 +1136,11 @@ _021D7E18: b _021D824E _021D7E24: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D7E38 mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 beq _021D7E3A _021D7E38: @@ -1157,14 +1157,14 @@ _021D7E3A: mov r1, #0x10 add r2, r6, #0 mov r3, #6 - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #2 str r0, [sp] mov r0, #0xa mov r1, #0x10 add r2, r6, #0 mov r3, #7 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _021D80F0 ; =0x00000116 mov r1, #2 strh r1, [r4, r0] @@ -1188,11 +1188,11 @@ _021D7E7E: b _021D824E _021D7E8C: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D7F94 mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #1 bne _021D7F94 mov r0, #1 @@ -1201,14 +1201,14 @@ _021D7E8C: add r1, r6, #0 mov r2, #0x10 mov r3, #6 - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #2 str r0, [sp] mov r0, #0xa add r1, r6, #0 mov r2, #0x10 mov r3, #7 - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, _021D80F0 ; =0x00000116 mov r1, #3 strh r1, [r4, r0] @@ -1759,11 +1759,11 @@ _021D8272: add r0, r4, #0 mov r1, #6 mov r2, #1 - bl FUN_0200A274 + bl SetBrightness add r0, r4, #0 mov r1, #7 mov r2, #2 - bl FUN_0200A274 + bl SetBrightness add r0, r5, #0 mov r1, #2 add r0, #0xa4 diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s index 0fd84316..18a7c3b2 100644 --- a/arm9/modules/63/asm/mod63_021D8890.s +++ b/arm9/modules/63/asm/mod63_021D8890.s @@ -502,17 +502,17 @@ _021D8CA4: .word 0x04000580 thumb_func_start MOD63_021D8CA8 MOD63_021D8CA8: ; 0x021D8CA8 - ldr r3, _021D8CAC ; =FUN_02009F80 + ldr r3, _021D8CAC ; =ApplyAndResetOamManagerBuffer bx r3 .align 2, 0 -_021D8CAC: .word FUN_02009F80 +_021D8CAC: .word ApplyAndResetOamManagerBuffer thumb_func_end MOD63_021D8CA8 thumb_func_start MOD63_021D8CB0 MOD63_021D8CB0: ; 0x021D8CB0 push {r4, lr} add r4, r0, #0 - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r0, [r4, #0x4c] bl MOD63_021DB598 pop {r4, pc} @@ -565,7 +565,7 @@ _021D8D0C: .word 0x0000209F MOD63_021D8D10: ; 0x021D8D10 push {r4, lr} add r4, r0, #0 - bl FUN_0200A2AC + bl InitAllScreenBrightnessData ldr r1, _021D8D90 ; =0x00007FFF mov r0, #0 bl FUN_0200E3A0 @@ -1599,7 +1599,7 @@ _021D950C: mov r0, #0x10 mov r1, #1 mov r2, #2 - bl FUN_0200A274 + bl SetBrightness mov r0, #1 add r5, #0x36 strb r0, [r5] @@ -2178,7 +2178,7 @@ _021D9A42: mov r1, #0 mov r2, #0x10 mov r3, #1 - bl FUN_0200A208 + bl StartBrightnessTransition ldrb r0, [r4, #1] add r0, r0, #1 strb r0, [r4, #1] diff --git a/arm9/modules/63/asm/mod63_021DA640.s b/arm9/modules/63/asm/mod63_021DA640.s index 5bcdfbd2..698fc468 100644 --- a/arm9/modules/63/asm/mod63_021DA640.s +++ b/arm9/modules/63/asm/mod63_021DA640.s @@ -504,7 +504,7 @@ _021DAA32: blo _021DAA32 ldr r0, [r5] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/63/asm/mod63_021DAE5C.s b/arm9/modules/63/asm/mod63_021DAE5C.s index efa1a033..fe1e0252 100644 --- a/arm9/modules/63/asm/mod63_021DAE5C.s +++ b/arm9/modules/63/asm/mod63_021DAE5C.s @@ -377,7 +377,7 @@ _021DB126: blo _021DB126 ldr r0, [r5] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C pop {r4, r5, r6, pc} diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index ce6e5e5e..e3f91882 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -308,7 +308,7 @@ _021D7726: MOD64_021D77A4: ; 0x021D77A4 push {r4, lr} add r4, r0, #0 - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer add r0, r4, #0 add r0, #0x94 ldr r0, [r0] @@ -384,7 +384,7 @@ MOD64_021D7810: ; 0x021D7810 thumb_func_start MOD64_021D7828 MOD64_021D7828: ; 0x021D7828 push {r3, lr} - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C bl MOD64_021D7964 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index 1667a6f0..78dbeb0f 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -712,7 +712,7 @@ MOD69_0222DB2C: ; 0x0222DB2C str r1, [r0] ldr r0, [r4, #0x24] bl FUN_0201FDEC - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer _0222DB8E: add sp, #8 pop {r4, pc} @@ -1451,7 +1451,7 @@ _0222E1C2: bl FreeToHeap ldr r0, [r6, #0x24] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -4231,4 +4231,3 @@ MOD69_0222F940: ; 0x0222F940 .global MOD69_0222F960 MOD69_0222F960: ; 0x0222F960 .space 0x20 - diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s index 8dc21247..66e1a85e 100644 --- a/arm9/modules/70/asm/module_70.s +++ b/arm9/modules/70/asm/module_70.s @@ -524,7 +524,7 @@ MOD70_021D78A0: ; 0x021D78A0 bl DestroyMsgData ldr r0, [r4, #0x34] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData ldr r0, [r4, #0x10] bl FreeToHeap add r0, r4, #0 @@ -538,7 +538,7 @@ MOD70_021D790C: ; 0x021D790C push {r3, lr} ldr r0, [r0, #0x34] bl FUN_0201FDEC - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _021D7928 ; =0x027E0000 ldr r1, _021D792C ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 5ece5081..acd8756a 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -1208,7 +1208,7 @@ _0222DFD6: mov r0, #8 sub r2, #0x10 mov r3, #0x1e - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #1 add r1, r0, #0 bl ToggleBgLayer @@ -1227,7 +1227,7 @@ _0222DFD6: b _0222E0E8 _0222E010: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _0222E0E8 ldr r0, _0222E0F8 ; =0x00002218 @@ -1264,7 +1264,7 @@ _0222E054: mov r0, #8 sub r2, #0x10 mov r3, #0x17 - bl FUN_0200A208 + bl StartBrightnessTransition mov r0, #4 mov r1, #1 bl ToggleBgLayer @@ -1285,7 +1285,7 @@ _0222E054: b _0222E0E8 _0222E094: mov r0, #2 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _0222E0E8 ldr r0, _0222E110 ; =0x000005A8 @@ -1661,7 +1661,7 @@ _0222E3AC: lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C pop {r3, r4, r5, r6, r7, pc} @@ -1827,7 +1827,7 @@ MOD71_0222E4DC: ; 0x0222E4DC str r1, [r5, r0] _0222E52E: bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _0222E550 ; =0x027E0000 ldr r1, _0222E554 ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index 28b61540..c61aa026 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -2403,7 +2403,7 @@ _021D88AA: MOD73_021D88B0: ; 0x021D88B0 push {r4, lr} add r4, r0, #0 - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r0, [r4, #0x20] cmp r0, #0 beq _021D88C2 @@ -2635,7 +2635,7 @@ _021D8A70: .word 0x00200010 thumb_func_start MOD73_021D8A74 MOD73_021D8A74: ; 0x021D8A74 push {r3, lr} - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C pop {r3, pc} diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index fae0c264..3b68da11 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -1712,7 +1712,7 @@ MOD80_0222E2E0: ; 0x0222E2E0 str r1, [r4, r0] _0222E2F4: bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _0222E310 ; =0x027E0000 ldr r1, _0222E314 ; =0x00003FF8 mov r0, #1 @@ -2389,7 +2389,7 @@ _0222E824: ldr r0, _0222E858 ; =0x00000B84 mov r1, #0 str r1, [r6, r0] - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index df849b5e..f3c96168 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -233,7 +233,7 @@ MOD81_02238004: ; 0x02238004 bl FreeToHeap ldr r0, [r4, #0x18] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData add r0, r5, #0 bl OverlayManager_FreeData mov r0, #0x39 @@ -327,7 +327,7 @@ MOD81_022380F4: ; 0x022380F4 push {r3, lr} ldr r0, [r1, #0x18] bl FUN_0201FDEC - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _02238110 ; =0x027E0000 ldr r1, _02238114 ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index 01d50253..c04d7d65 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -900,7 +900,7 @@ _0222DCC0: .word 0x00000B78 MOD82_0222DCC4: ; 0x0222DCC4 push {r3, lr} bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _0222DCDC ; =0x027E0000 ldr r1, _0222DCE0 ; =0x00003FF8 mov r0, #1 @@ -1349,7 +1349,7 @@ _0222E018: mov r1, #0 lsl r0, r0, #4 str r1, [r6, r0] - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 0cdcae12..c84d1e83 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -1893,7 +1893,7 @@ MOD83_0222E464: ; 0x0222E464 push {r4, lr} add r4, r0, #0 bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer add r0, r4, #0 bl DoScheduledBgGpuUpdates ldr r3, _0222E484 ; =MOD83_027E0000 @@ -18085,7 +18085,7 @@ _022363E2: bl FUN_0201FD58 mov r0, #0 str r0, [r6, #0x28] - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C ldr r0, _02236448 ; =0x0000E88C @@ -18217,7 +18217,7 @@ MOD83_0223650C: ; 0x0223650C str r1, [r4, r0] _02236520: bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r0, [r4, #0x20] bl DoScheduledBgGpuUpdates ldr r3, _02236540 ; =MOD83_027E0000 @@ -23784,7 +23784,7 @@ _02238EB0: ldr r0, _02238EF0 ; =MOD83_0223BC60 mov r1, #0 str r1, [r0] - bl FUN_02009FA0 + bl DeinitOamData bl FUN_0201D12C bl FUN_0201E08C mov r0, #0 @@ -23826,7 +23826,7 @@ MOD83_02238F00: ; 0x02238F00 str r1, [r4, r0] _02238F1E: bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r3, _02238F3C ; =MOD83_027E0000 ldr r1, _02238F40 ; =0x00003FF8 mov r0, #1 diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s index c9bff482..8c7c35e8 100644 --- a/arm9/modules/84/asm/module_84_thumb1.s +++ b/arm9/modules/84/asm/module_84_thumb1.s @@ -260,7 +260,7 @@ _021D771A: add r5, #0xdc ldr r0, [r5] bl FUN_0201FD58 - bl FUN_02009FA0 + bl DeinitOamData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -552,7 +552,7 @@ MOD84_021D7958: ; 0x021D7958 add r1, #0xdc ldr r0, [r1] bl FUN_0201FDEC - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer pop {r3, pc} thumb_func_end MOD84_021D7958 diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index d97e5a59..cb5660e4 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -1067,14 +1067,14 @@ _021D8914: sub r1, #0x30 mov r2, #0 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8950 _021D893A: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D8950 ldr r0, [r5, #8] @@ -1322,14 +1322,14 @@ _021D8AF4: mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8B66 _021D8B16: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D8B66 ldr r0, [r4] @@ -1350,14 +1350,14 @@ _021D8B28: sub r1, #0x30 mov r2, #0 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8B66 _021D8B4E: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D8B66 mov r0, #1 @@ -1622,14 +1622,14 @@ _021D8D2C: mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8DE6 _021D8D56: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D8DE6 ldr r0, _021D8DEC ; =0x00000DF4 @@ -1680,14 +1680,14 @@ _021D8D9E: sub r1, #0x30 mov r2, #0 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8DE6 _021D8DC8: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D8DE6 mov r0, #1 @@ -2481,14 +2481,14 @@ _021D93FC: mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D946E _021D941E: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D946E ldr r0, [r4] @@ -2509,14 +2509,14 @@ _021D9430: sub r1, #0x30 mov r2, #0 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D946E _021D9456: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D946E mov r0, #1 @@ -2790,14 +2790,14 @@ _021D9654: mov r0, #0x10 sub r2, #0x10 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D966E: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D96D2 mov r1, #0 @@ -2960,14 +2960,14 @@ _021D97B0: sub r1, #0x30 mov r2, #0 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D97F0 _021D97D8: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D97F0 ldr r0, [r4, #0x4c] @@ -3354,14 +3354,14 @@ _021D9ABC: mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9B2E _021D9ADE: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D9B2E ldr r0, [r4] @@ -3382,14 +3382,14 @@ _021D9AF0: sub r1, #0x30 mov r2, #0 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D9B2E _021D9B16: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D9B2E mov r0, #1 @@ -3661,14 +3661,14 @@ _021D9D0E: mov r0, #0x20 sub r2, #0x10 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9D28: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021D9E16 mov r1, #0 @@ -3977,14 +3977,14 @@ _021D9F90: sub r1, #0x30 mov r2, #0 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021D9FBE: mov r0, #3 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DA068 mov r0, #1 @@ -4049,14 +4049,14 @@ _021DA02A: mov r0, #0x10 sub r2, #0x10 mov r3, #0x1d - bl FUN_0200A208 + bl StartBrightnessTransition ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021DA068 _021DA058: mov r0, #1 - bl FUN_0200A344 + bl IsBrightnessTransitionActive cmp r0, #0 beq _021DA068 add sp, #0x10 diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s index 042746c2..8d6b495f 100644 --- a/arm9/modules/85/asm/module_85.s +++ b/arm9/modules/85/asm/module_85.s @@ -979,7 +979,7 @@ MOD85_021D7D04: ; 0x021D7D04 lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD85_021DE710 - bl FUN_02009FA0 + bl DeinitOamData pop {r4, pc} thumb_func_end MOD85_021D7D04 @@ -1459,7 +1459,7 @@ MOD85_021D80DC: ; 0x021D80DC push {r4, lr} add r4, r0, #0 bl FUN_0201C30C - bl FUN_02009F80 + bl ApplyAndResetOamManagerBuffer ldr r0, _021D80F4 ; =0x0000043C ldr r0, [r4, r0] bl DoScheduledBgGpuUpdates diff --git a/arm9/src/brightness.c b/arm9/src/brightness.c new file mode 100644 index 00000000..59e96fd3 --- /dev/null +++ b/arm9/src/brightness.c @@ -0,0 +1,198 @@ +#include "global.h" +#include "brightness.h" +#include "GX_g2.h" +#include "MI_memory.h" + +struct BrightnessData mainScreenBrightnessData; + +struct BrightnessData subScreenBrightnessData; + +THUMB_FUNC void DoBrightnessTransitionStep(struct BrightnessData *brightness) +{ + BOOL transitionFinished = FALSE; + + if (brightness->target_brightness != + brightness->current_brightness + + brightness->transition_direction * brightness->step_size_integer && + brightness->current_brightness != brightness->target_brightness) + { + brightness->current_brightness += + brightness->transition_direction * brightness->step_size_integer; + brightness->fractional_count += brightness->step_size_fractional; + + if (brightness->fractional_count >= brightness->step_count) + { + brightness->current_brightness += brightness->transition_direction; + if (brightness->current_brightness != brightness->target_brightness) + { + brightness->fractional_count -= brightness->step_count; + } + else + { + transitionFinished = TRUE; + } + } + } + else + { + brightness->current_brightness = brightness->target_brightness; + transitionFinished = TRUE; + } + + if ((brightness->screenMask & 1) != 0) + { + G2x_SetBlendBrightness_( + ®_G2_BLDCNT, brightness->surfaceMask, brightness->current_brightness); + } + else if ((brightness->screenMask & 2) != 0) + { + G2x_SetBlendBrightness_( + ®_G2S_DB_BLDCNT, brightness->surfaceMask, brightness->current_brightness); + } + + if (transitionFinished == TRUE) + { + brightness->transitionActive = FALSE; + } +} + +THUMB_FUNC void InitBrightnessTransition(struct BrightnessData *brightnessData, + u16 step_count, + s16 target_brightness, + s16 start_brightness, + fx32 surfaceMask, + u32 screenMask) +{ + GF_ASSERT(!brightnessData->transitionActive); + + brightnessData->transitionActive = TRUE; + brightnessData->surfaceMask = (u8)surfaceMask; + brightnessData->screenMask = (u8)screenMask; + brightnessData->step_count = step_count; + brightnessData->target_brightness = target_brightness; + brightnessData->current_brightness = start_brightness; + brightnessData->brightness_diff = (s16)(start_brightness - target_brightness); + + if (brightnessData->brightness_diff > 0) + { + brightnessData->transition_direction = -1; + } + else + { + brightnessData->transition_direction = 1; + brightnessData->brightness_diff *= -1; + } + + brightnessData->step_size_integer = (s16)(brightnessData->brightness_diff / step_count); + brightnessData->step_size_fractional = (u16)(brightnessData->brightness_diff % step_count); + brightnessData->fractional_count = 0; +} + +THUMB_FUNC void StartBrightnessTransition( + u16 step_count, s16 target_brightness, s16 start_brightness, fx32 surfaceMask, u32 screenMask) +{ + if (step_count != 0) + { + if ((screenMask & 1) != 0) + { + G2x_SetBlendBrightness_(®_G2_BLDCNT, surfaceMask, start_brightness); + InitBrightnessTransition(&mainScreenBrightnessData, + step_count, + target_brightness, + start_brightness, + surfaceMask, + 1); + } + + if ((screenMask & 2) != 0) + { + G2x_SetBlendBrightness_(®_G2S_DB_BLDCNT, surfaceMask, start_brightness); + InitBrightnessTransition(&subScreenBrightnessData, + step_count, + target_brightness, + start_brightness, + surfaceMask, + 2); + } + } +} + +THUMB_FUNC void SetBrightness(fx32 brightness, fx32 surfaceMask, u32 screenMask) +{ + + if ((screenMask & 1) != 0) + { + G2x_SetBlendBrightness_(®_G2_BLDCNT, surfaceMask, brightness); + } + + if ((screenMask & 2) != 0) + { + G2x_SetBlendBrightness_(®_G2S_DB_BLDCNT, surfaceMask, brightness); + } + + InitScreenBrightnessData(screenMask); +} + +THUMB_FUNC void InitAllScreenBrightnessData(void) +{ + MI_CpuFill8(&mainScreenBrightnessData, 0, sizeof(struct BrightnessData)); + MI_CpuFill8(&subScreenBrightnessData, 0, sizeof(struct BrightnessData)); + + mainScreenBrightnessData.transitionActive = FALSE; + subScreenBrightnessData.transitionActive = FALSE; +} + +THUMB_FUNC void InitScreenBrightnessData(u32 screenMask) +{ + if (screenMask & 1) + { + MI_CpuFill8(&mainScreenBrightnessData, 0, sizeof(struct BrightnessData)); + mainScreenBrightnessData.transitionActive = FALSE; + } + + if (screenMask & 2) + { + MI_CpuFill8(&subScreenBrightnessData, 0, sizeof(struct BrightnessData)); + subScreenBrightnessData.transitionActive = FALSE; + } +} + +THUMB_FUNC void DoAllScreenBrightnessTransitionStep(void) +{ + if (mainScreenBrightnessData.transitionActive) + { + DoBrightnessTransitionStep(&mainScreenBrightnessData); + } + + if (subScreenBrightnessData.transitionActive) + { + DoBrightnessTransitionStep(&subScreenBrightnessData); + } +} + +THUMB_FUNC BOOL IsBrightnessTransitionActive(u32 screenMask) +{ + if (screenMask == 3) + { + if (!mainScreenBrightnessData.transitionActive && !subScreenBrightnessData.transitionActive) + { + return TRUE; + } + } + else if (screenMask == 1) + { + if (!mainScreenBrightnessData.transitionActive) + { + return TRUE; + } + } + else if (screenMask == 2) + { + if (!subScreenBrightnessData.transitionActive) + { + return TRUE; + } + } + + return FALSE; +} diff --git a/arm9/src/communication_error.c b/arm9/src/communication_error.c index 73345af1..4401d9b8 100644 --- a/arm9/src/communication_error.c +++ b/arm9/src/communication_error.c @@ -6,8 +6,8 @@ #include "msgdata.h" #include "msgdata/msg.naix" #include "text.h" +#include "brightness.h" -extern void FUN_0200A274(fx32 brightness, fx32, u32); extern void FUN_0200CB00(struct BgConfig* bg_config, enum GFBgLayer layer, u32 num_tiles, u32, u8, u32 heap_id); extern void FUN_0200CCA4(struct Window* window, BOOL copy_to_vram, u16 fill_value, u32 palette_num); extern void FUN_0200E394(BOOL set_brightness_on_bottom_screen); @@ -149,7 +149,7 @@ THUMB_FUNC void ShowCommunicationError(u32 heap_id, u32 error, u32 error_code) GX_BothDispOn(); FUN_0200E394(PM_LCD_TOP); FUN_0200E394(PM_LCD_BOTTOM); - FUN_0200A274(0, 0x3F, 3); + SetBrightness(0, 0x3F, 3); RemoveWindow(&window); DestroyMsgData(error_message_data); diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index d49e8e51..93bc898d 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -6,6 +6,7 @@ #include "bg_window.h" #include "PAD_pad.h" #include "font.h" +#include "brightness.h" const struct WindowTemplate UNK_020FF49C = { @@ -46,7 +47,6 @@ extern void FUN_0200E3A0(PMLCDTarget, int); extern void FUN_0200CB00(struct BgConfig *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); extern void FUN_0200CCA4(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_0200E394(u32 param0); -extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); THUMB_FUNC void VBlankHandler() { @@ -124,7 +124,7 @@ THUMB_FUNC void PrintErrorMessageAndReset() GX_BothDispOn(); FUN_0200E394(0); FUN_0200E394(1); - FUN_0200A274(0, 0x3f, 3); + SetBrightness(0, 0x3f, 3); FUN_02032DAC(); while (1) diff --git a/arm9/src/main.c b/arm9/src/main.c index fb4f8707..312d222c 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -18,6 +18,7 @@ #include "wfc_user_info_warning.h" #include "module_52.h" #include "font.h" +#include "brightness.h" FS_EXTERN_OVERLAY(MODULE_52); FS_EXTERN_OVERLAY(MODULE_63); @@ -32,13 +33,11 @@ extern void FUN_02022294(void); extern void GF_InitRTCWork(void); extern int FUN_020337E8(int); extern void FUN_02089D90(int); -extern void FUN_0200A2AC(void); extern void FUN_02015E30(void); extern void FUN_0201B5CC(void *); extern void GF_RTC_UpdateOnFrame(void); extern void FUN_02015E60(void); extern void FUN_020222C4(void); -extern void FUN_0200A318(void); extern void FUN_0200E2D8(void); extern struct Unk21DBE18 MOD63_021DBE18; @@ -97,7 +96,7 @@ THUMB_FUNC void NitroMain(void) gMain.unk6C = 1; gMain.unk30 = 0; InitializeMainRNG(); - FUN_0200A2AC(); + InitAllScreenBrightnessData(); FUN_02015E30(); UNK_02016FA4 = 0; for (;;) @@ -127,7 +126,7 @@ THUMB_FUNC void NitroMain(void) OS_WaitIrq(1, 1); gMain.unk2C++; gMain.unk30 = 0; - FUN_0200A318(); + DoAllScreenBrightnessTransitionStep(); FUN_0200E2D8(); if (gMain.vBlankIntr) gMain.vBlankIntr(gMain.vBlankIntrArg); diff --git a/arm9/src/oam.c b/arm9/src/oam.c new file mode 100644 index 00000000..ff3405d4 --- /dev/null +++ b/arm9/src/oam.c @@ -0,0 +1,169 @@ +#include "global.h" +#include "oam.h" +#include "GX_g2.h" +#include "MI_memory.h" +#include "heap.h" + +extern void FUN_020213A0(void); +extern void FUN_0202135C(void *param0, + u32 *param1, + u32 (*param2)(u32, u32), + u32 (*param3)(u32), + void (*param4)(void), + u32 param5, + u32 param6); +extern void FUN_020203CC(u32 heap_id); +extern void FUN_02020404(u32 heap_id); + +struct OamData *oamData; + +THUMB_FUNC void FUN_02009EAC(s32 param0, + s32 param1, + s32 param2, + s32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8) +{ + s32 r0; + if (param0 < 4) + { + r0 = 4; + if (param1 > 0x7c) + { + param1 = param1 - (4 - param0); + } + } + else + { + r0 = param0; + } + + s32 r2; + if (param2 < 1) + { + r2 = 1; + if (param3 > 0x1e) + { + param3 = param3 - (1 - param2); + } + } + else + { + r2 = param2; + } + + InitOamData(r0, param1, r2, param3, param4, param5, param6, param7, param8); +} + +THUMB_FUNC void InitOamData(s32 param0, + s32 param1, + s32 param2, + s32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 heap_id) +{ + GF_ASSERT(oamData == NULL); + oamData = AllocFromHeap(heap_id, sizeof(struct OamData)); + GF_ASSERT(oamData); + + oamData->heap_id = heap_id; + + GF_ASSERT(NNS_G2dGetNewOamManagerInstance( + &oamData->oamManagers[0], (u16)param0, (u16)param1, (u16)param2, (u16)param3, 0)); + GF_ASSERT(NNS_G2dGetNewOamManagerInstance( + &oamData->oamManagers[1], (u16)param4, (u16)param5, (u16)param6, (u16)param7, 1)); +} + +THUMB_FUNC void ApplyAndResetOamManagerBuffer(void) +{ + if (oamData != NULL) + { + NNS_G2dApplyAndResetOamManagerBuffer(&oamData->oamManagers[0]); + NNS_G2dApplyAndResetOamManagerBuffer(&oamData->oamManagers[1]); + } +} + +THUMB_FUNC void DeinitOamData(void) +{ + GF_ASSERT(oamData); + + FUN_0200A064(oamData->heap_id); + FUN_0200A06C(oamData->heap_id); + + FreeToHeap(oamData); + oamData = NULL; +} + +THUMB_FUNC void FUN_02009FD8(void *param0, u32 *param1, u32 param2, u32 param3) +{ + GF_ASSERT(oamData); + + if (param2 == 1) + { + FUN_0202135C(param0, param1, EntryOamManagerOamWithAffineIdxMainScreen, EntryOamManagerAffineMainScreen, FUN_020213A0, param2, param3); + return; + } + + FUN_0202135C(param0, param1, EntryOamManagerOamWithAffineIdxSubScreen, EntryOamManagerAffineSubScreen, FUN_020213A0, param2, param3); +} + +THUMB_FUNC NNSG2dOamManager *GetOamManager(u32 screen) +{ + GF_ASSERT(oamData); + if (screen == 0) + { + return &oamData->oamManagers[0]; + } + else + { + return &oamData->oamManagers[1]; + } +} + +THUMB_FUNC void FUN_0200A064(u32 heap_id) +{ + FUN_020203CC(heap_id); +} + +THUMB_FUNC void FUN_0200A06C(u32 heap_id) +{ + FUN_02020404(heap_id); +} + +THUMB_FUNC u32 EntryOamManagerOamWithAffineIdxMainScreen(u32 param0, u32 param1) +{ + u32 res = NNS_G2dEntryOamManagerOamWithAffineIdx(&oamData->oamManagers[0], param0, param1); + GF_ASSERT(res); + + return res; +} + +THUMB_FUNC u32 EntryOamManagerOamWithAffineIdxSubScreen(u32 param0, u32 param1) +{ + u32 res = NNS_G2dEntryOamManagerOamWithAffineIdx(&oamData->oamManagers[1], param0, param1); + GF_ASSERT(res); + + return res; +} + +THUMB_FUNC u32 EntryOamManagerAffineMainScreen(u32 param0) +{ + u32 res = NNS_G2dEntryOamManagerAffine(&oamData->oamManagers[0], param0); + GF_ASSERT(res != 0xFFFE); + + return res; +} + +THUMB_FUNC u32 EntryOamManagerAffineSubScreen(u32 param0) +{ + u32 res = NNS_G2dEntryOamManagerAffine(&oamData->oamManagers[1], param0); + GF_ASSERT(res != 0xFFFE); + + return res; +} diff --git a/arm9/src/unk_02008AA4.c b/arm9/src/unk_02008AA4.c index 1cabb887..300967fc 100644 --- a/arm9/src/unk_02008AA4.c +++ b/arm9/src/unk_02008AA4.c @@ -4,9 +4,9 @@ #include "heap.h" #include "unk_0200BB14.h" #include "unk_02008DEC.h" +#include "oam.h" extern void FUN_0202134C(void *, u32); -extern void FUN_02009FD8(void *param0, u32 *param1, u32 param2, u32 param3); extern u32 FUN_0201FCB0(u32 *); extern void FUN_02021390(u32, u32 *); extern void FUN_0201D194(u32, u32, u32); diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index 95a854d7..093d35c1 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -4,31 +4,21 @@ #include "heap.h" #include "unk_02008AA4.h" #include "unk_02008DEC.h" +#include "oam.h" extern void FUN_0201D060(u32 *param0, u32 param1, u32 param2); extern void FUN_0201E00C(u32 param0, u32 param1); extern void NNS_G2dInitOamManagerModule(); -extern void FUN_02009EAC(u32 param0, - u32 param1, - u32 param2, - u32 param3, - u32 param4, - u32 param5, - u32 param6, - u32 param7, - u32 param8); extern u32 FUN_0201C328(u32 param0, u32 param1); extern void FUN_0201D168(); extern void FUN_0201E0BC(); extern void FUN_0201FFC8(u32 param0); extern void FUN_0201FDEC(u32 param0); -extern void FUN_02009F80(); extern void FUN_0201C348(); extern void FUN_0201FD58(u32 param0); extern void FUN_0201C350(u32 param0); extern void FUN_0201D12C(); extern void FUN_0201E08C(); -extern void FUN_02009FA0(); extern u32 FUN_0201FE94(struct UnkStruct_0200BB14_4 *param0); extern void FUN_02020130(u32 param0, u32 param1); extern void FUN_02020248(u32 param0, u32 param1); @@ -168,7 +158,7 @@ THUMB_FUNC void FUN_0200BC1C(u32 *param0) THUMB_FUNC void FUN_0200BC30() { - FUN_02009F80(); + ApplyAndResetOamManagerBuffer(); } THUMB_FUNC void FUN_0200BC38() @@ -215,7 +205,7 @@ THUMB_FUNC void FUN_0200BCB0(u32 *param0) if (param0[2] == 1) { - FUN_02009FA0(); + DeinitOamData(); } } diff --git a/arm9/src/wfc_user_info_warning.c b/arm9/src/wfc_user_info_warning.c index d9edd94c..370cf314 100644 --- a/arm9/src/wfc_user_info_warning.c +++ b/arm9/src/wfc_user_info_warning.c @@ -10,9 +10,9 @@ #include "string16.h" #include "text.h" #include "wfc_user_info_warning.h" +#include "brightness.h" extern void FUN_02002ED0(enum GFBgLayer layer, u32 base_addr, u32 heap_id); -extern void FUN_0200A274(fx32 brightness, fx32, u32); extern void FUN_0200CB00(struct BgConfig* bg_config, enum GFBgLayer layer, u32 num_tiles, u32, u8, u32 heap_id); extern void FUN_0200CCA4(struct Window* window, BOOL copy_to_vram, u16 fill_value, u32 palette_num); extern void FUN_0200E394(BOOL set_brightness_on_bottom_screen); @@ -118,7 +118,7 @@ THUMB_FUNC void ShowWFCUserInfoWarning(u32 heap_id, u32 a1) GX_BothDispOn(); FUN_0200E394(0); FUN_0200E394(1); - FUN_0200A274(0, 0x3F, 3); + SetBrightness(0, 0x3F, 3); while (TRUE) { diff --git a/include/brightness.h b/include/brightness.h new file mode 100644 index 00000000..029ee0b9 --- /dev/null +++ b/include/brightness.h @@ -0,0 +1,38 @@ +#ifndef POKEDIAMOND_UNK_0200A104_H +#define POKEDIAMOND_UNK_0200A104_H + +#include "global.h" +#include "nitro/FX_types.h" + +struct BrightnessData +{ + fx32 surfaceMask; + u32 screenMask; + u16 step_count; + s16 target_brightness; + u32 unk0c; + s8 transition_direction; + s16 brightness_diff; + s16 step_size_integer; + u16 step_size_fractional; + u16 fractional_count; + s16 current_brightness; + BOOL transitionActive; +}; + +void DoBrightnessTransitionStep(struct BrightnessData *brightness); +void InitBrightnessTransition(struct BrightnessData *brightnessData, + u16 step_count, + s16 target_brightness, + s16 start_brightness, + fx32 surfaceMask, + u32 screenMask); +void StartBrightnessTransition( + u16 step_count, s16 target_brightness, s16 start_brightness, fx32 surfaceMask, u32 screenMask); +void SetBrightness(fx32 brightness, fx32 surfaceMask, u32 screenMask); +void InitAllScreenBrightnessData(void); +void InitScreenBrightnessData(u32 screenMask); +void DoAllScreenBrightnessTransitionStep(void); +BOOL IsBrightnessTransitionActive(u32 screenMask); + +#endif // POKEDIAMOND_UNK_0200A104_H diff --git a/include/oam.h b/include/oam.h new file mode 100644 index 00000000..773c985d --- /dev/null +++ b/include/oam.h @@ -0,0 +1,42 @@ +#ifndef POKEDIAMOND_UNK_02009EAC_H +#define POKEDIAMOND_UNK_02009EAC_H + +#include "global.h" +#include "NNS_g2d.h" + +struct OamData +{ + NNSG2dOamManager oamManagers[2]; + u32 heap_id; +}; + +void FUN_02009EAC(s32 param0, + s32 param1, + s32 param2, + s32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8); +void InitOamData(s32 param0, + s32 param1, + s32 param2, + s32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 heap_id); +void ApplyAndResetOamManagerBuffer(void); +void DeinitOamData(void); +void FUN_02009FD8(void *param0, u32 *param1, u32 param2, u32 param3); +NNSG2dOamManager *GetOamManager(u32 screen); +void FUN_0200A064(u32 heap_id); +void FUN_0200A06C(u32 heap_id); +u32 EntryOamManagerOamWithAffineIdxMainScreen(u32 param0, u32 param1); +u32 EntryOamManagerOamWithAffineIdxSubScreen(u32 param0, u32 param1); +u32 EntryOamManagerAffineMainScreen(u32 param0); +u32 EntryOamManagerAffineSubScreen(u32 param0); + +#endif // POKEDIAMOND_UNK_02009EAC_H |