diff options
Diffstat (limited to 'arm9/asm/NNS_G2D_g2d_renderer.s')
-rw-r--r-- | arm9/asm/NNS_G2D_g2d_renderer.s | 1159 |
1 files changed, 550 insertions, 609 deletions
diff --git a/arm9/asm/NNS_G2D_g2d_renderer.s b/arm9/asm/NNS_G2D_g2d_renderer.s index d6213a1b..5cd5eaac 100644 --- a/arm9/asm/NNS_G2D_g2d_renderer.s +++ b/arm9/asm/NNS_G2D_g2d_renderer.s @@ -3,127 +3,90 @@ .section .data - ; firstSRTransformedMtxIdx_ - .global UNK_02106570 -UNK_02106570: ; 0x02106570 + .global firstSRTransformedMtxIdx_ +firstSRTransformedMtxIdx_: ; 0x02106570 .short -2 - .balign 4, 0 - ; currenVramTransferHandle_ - .global UNK_02106574 -UNK_02106574: ; 0x02106574 + + .global currenVramTransferHandle_ +currenVramTransferHandle_: ; 0x02106574 .word -1 - ; mtxI_ - .global UNK_02106578 -UNK_02106578: ; 0x02106578 + .global mtxI_ +mtxI_: ; 0x02106578 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .section .bss - ; currentMtxCachePos_ - .global UNK_021CDD60 -UNK_021CDD60: ; 0x021CDD60 + .global currentMtxCachePos_ +currentMtxCachePos_: ; 0x021CDD60 .space 0x4 - ; groupID_ - .global UNK_021CDD64 -UNK_021CDD64: ; 0x021CDD64 + .global groupID_ +groupID_: ; 0x021CDD64 .space 0x4 - ; bDonotUseSRTransform - .global UNK_021CDD68 -UNK_021CDD68: ; 0x021CDD68 + .global bDonotUseSRTransform +bDonotUseSRTransform: ; 0x021CDD68 .space 0x4 - ; pCurrentInstance_ - .global UNK_021CDD6C -UNK_021CDD6C: ; 0x021CDD6C + .global pCurrentInstance_ +pCurrentInstance_: ; 0x021CDD6C .space 0x4 - ; stackPos_ - .global UNK_021CDD70 -UNK_021CDD70: ; 0x021CDD70 + .global stackPos_ +stackPos_: ; 0x021CDD70 .space 0x4 - ; fxZStack_ - .global UNK_021CDD74 -UNK_021CDD74: ; 0x021CDD74 + .global fxZStack_ +fxZStack_: ; 0x021CDD74 .space 0x80 - ; mtxStateStack_ - .global UNK_021CDDF4 -UNK_021CDDF4: ; 0x021CDDF4 - .space 0x4 - - ; mtxStateStack_ + 0x4 - .global UNK_021CDDF8 -UNK_021CDDF8: ; 0x021CDDF8 - .space 0xfc - - ; mtxStack_ - .global UNK_021CDEF4 -UNK_021CDEF4: ; 0x021CDEF4 - .space 0x10 + .global mtxStateStack_ +mtxStateStack_: ; 0x021CDDF4 + .space 0x100 - ; mtxStack_ + 0x10 - .global UNK_021CDF04 -UNK_021CDF04: ; 0x021CDF04 - .space 0x4 - - ; mtxStack_ + 0x14 - .global UNK_021CDF08 -UNK_021CDF08: ; 0x021CDF08 - .space 0x2ec + .global mtxStack_ +mtxStack_: ; 0x021CDEF4 + .space 0x300 - ; mtxStackFor2DHW_ - .global UNK_021CE1F4 -UNK_021CE1F4: ; 0x021CE1F4 + .global mtxStackFor2DHW_ +mtxStackFor2DHW_: ; 0x021CE1F4 .space 0x300 - ; mtxCacheBuffer_ - .global UNK_021CE4F4 -UNK_021CE4F4: ; 0x021CE4F4 + .global mtxCacheBuffer_ +mtxCacheBuffer_: ; 0x021CE4F4 .space 0x400 - ; mcRenderState_ - .global UNK_021CE8F4 -UNK_021CE8F4: ; 0x021CE8F4 - .space 0x4 - - ; mcRenderState_ + 0x4 - .global UNK_021CE8F8 -UNK_021CE8F8: ; 0x021CE8F8 - .space 0x404 + .global mcRenderState_ +mcRenderState_: ; 0x021CE8F4 + .space 0x408 .section .text - ; NNS_G2dSetRendererImageProxy - arm_func_start thunk_FUN_020b5040 -thunk_FUN_020b5040: ; 0x020B2780 - ldr ip, _020B2788 ; =FUN_020B5040 + arm_func_start NNS_G2dSetRendererImageProxy +NNS_G2dSetRendererImageProxy: ; 0x020B2780 + ldr ip, _020B2788 ; =NNS_G2dSetRndCoreImageProxy bx r12 .balign 4 -_020B2788: .word FUN_020B5040 - arm_func_end thunk_FUN_020b5040 +_020B2788: .word NNS_G2dSetRndCoreImageProxy + arm_func_end NNS_G2dSetRendererImageProxy - ; _end - arm_func_start FUN_020B278C -FUN_020B278C: ; 0x020B278C + arm_func_start NNS_G2dGetRendererPaletteTbl +NNS_G2dGetRendererPaletteTbl: ; 0x020B278C ldr r0, [r0, #0x78] bx lr - arm_func_end FUN_020B278C + arm_func_end NNS_G2dGetRendererPaletteTbl - ; NNS_G2dRotZ - arm_func_start FUN_020B2794 -FUN_020B2794: ; 0x020B2794 + arm_func_start NNS_G2dRotZ +NNS_G2dRotZ: ; 0x020B2794 stmdb sp!, {lr} sub sp, sp, #0x1c - ldr r2, _020B2894 ; =UNK_021CDD70 + ldr r2, _020B2894 ; =stackPos_ mov lr, #0x0 ldr r12, [r2, #0x0] - ldr r3, _020B2898 ; =UNK_021CDEF4 + ldr r3, _020B2898 ; =mtxStack_ mov r2, #0x18 str r1, [sp, #0x0] str r1, [sp, #0xc] @@ -135,20 +98,20 @@ FUN_020B2794: ; 0x020B2794 str r3, [sp, #0x8] str lr, [sp, #0x10] str lr, [sp, #0x14] - bl FUN_020B423C - ldr r0, _020B2894 ; =UNK_021CDD70 - ldr r1, _020B289C ; =UNK_021CE1F4 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B2894 ; =stackPos_ + ldr r1, _020B289C ; =mtxStackFor2DHW_ ldr r2, [r0, #0x0] mov r0, #0x18 mla r1, r2, r0, r1 add r0, sp, #0x0 mov r2, r1 - bl FUN_020B423C - ldr r0, _020B28A0 ; =UNK_021CDD68 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B28A0 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B2824 - ldr r1, _020B28A4 ; =UNK_02106570 + ldr r1, _020B28A4 ; =firstSRTransformedMtxIdx_ ldr r0, _020B28A8 ; =0x0000FFFE ldrh r1, [r1, #0x0] cmp r1, r0 @@ -158,12 +121,12 @@ _020B2824: mov r0, #0x0 _020B2828: cmp r0, #0x0 - ldreq r1, _020B2894 ; =UNK_021CDD70 - ldreq r0, _020B28A4 ; =UNK_02106570 + ldreq r1, _020B2894 ; =stackPos_ + ldreq r0, _020B28A4 ; =firstSRTransformedMtxIdx_ ldreq r1, [r1, #0x0] streqh r1, [r0, #0x0] - ldr r0, _020B2894 ; =UNK_021CDD70 - ldr r1, _020B28AC ; =UNK_021CDDF4 + ldr r0, _020B2894 ; =stackPos_ + ldr r1, _020B28AC ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r0, r0, lsl #0x10 add r12, r1, r0, lsr #0xd @@ -177,7 +140,7 @@ _020B2828: b _020B2870 ; case 2 b _020B2870 ; case 3 _020B2870: - ldr r0, _020B28B0 ; =UNK_021CDD64 + ldr r0, _020B28B0 ; =groupID_ mov r1, #0x1 ldrh r3, [r0, #0x0] add r2, r3, #0x1 @@ -188,26 +151,25 @@ _020B288C: add sp, sp, #0x1c ldmia sp!, {pc} .balign 4 -_020B2894: .word UNK_021CDD70 -_020B2898: .word UNK_021CDEF4 -_020B289C: .word UNK_021CE1F4 -_020B28A0: .word UNK_021CDD68 -_020B28A4: .word UNK_02106570 +_020B2894: .word stackPos_ +_020B2898: .word mtxStack_ +_020B289C: .word mtxStackFor2DHW_ +_020B28A0: .word bDonotUseSRTransform +_020B28A4: .word firstSRTransformedMtxIdx_ _020B28A8: .word 0x0000FFFE -_020B28AC: .word UNK_021CDDF4 -_020B28B0: .word UNK_021CDD64 - arm_func_end FUN_020B2794 +_020B28AC: .word mtxStateStack_ +_020B28B0: .word groupID_ + arm_func_end NNS_G2dRotZ - ; NNS_G2dScale - arm_func_start FUN_020B28B4 -FUN_020B28B4: ; 0x020B28B4 + arm_func_start NNS_G2dScale +NNS_G2dScale: ; 0x020B28B4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x1c - ldr r2, _020B29E8 ; =UNK_021CDD70 + ldr r2, _020B29E8 ; =stackPos_ mov r12, #0x0 ldr r3, [r2, #0x0] mov r4, r1 - ldr r2, _020B29EC ; =UNK_021CDEF4 + ldr r2, _020B29EC ; =mtxStack_ mov r1, #0x18 mla r1, r3, r1, r2 mov r5, r0 @@ -219,7 +181,7 @@ FUN_020B28B4: ; 0x020B28B4 str r4, [sp, #0xc] str r12, [sp, #0x10] str r12, [sp, #0x14] - bl FUN_020B423C + bl NNSi_G2dMtxConcat32 mov r0, r5 bl FX_Inv mov r1, #0x0 @@ -229,22 +191,22 @@ FUN_020B28B4: ; 0x020B28B4 str r1, [sp, #0x8] bl FX_Inv mov r3, #0x0 - ldr r1, _020B29E8 ; =UNK_021CDD70 + ldr r1, _020B29E8 ; =stackPos_ str r0, [sp, #0xc] ldr r2, [r1, #0x0] - ldr r1, _020B29F0 ; =UNK_021CE1F4 + ldr r1, _020B29F0 ; =mtxStackFor2DHW_ mov r0, #0x18 mla r1, r2, r0, r1 add r0, sp, #0x0 mov r2, r1 str r3, [sp, #0x10] str r3, [sp, #0x14] - bl FUN_020B423C - ldr r0, _020B29F4 ; =UNK_021CDD68 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B29F4 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B2978 - ldr r1, _020B29F8 ; =UNK_02106570 + ldr r1, _020B29F8 ; =firstSRTransformedMtxIdx_ ldr r0, _020B29FC ; =0x0000FFFE ldrh r1, [r1, #0x0] cmp r1, r0 @@ -254,12 +216,12 @@ _020B2978: mov r0, #0x0 _020B297C: cmp r0, #0x0 - ldreq r1, _020B29E8 ; =UNK_021CDD70 - ldreq r0, _020B29F8 ; =UNK_02106570 + ldreq r1, _020B29E8 ; =stackPos_ + ldreq r0, _020B29F8 ; =firstSRTransformedMtxIdx_ ldreq r1, [r1, #0x0] streqh r1, [r0, #0x0] - ldr r0, _020B29E8 ; =UNK_021CDD70 - ldr r1, _020B2A00 ; =UNK_021CDDF4 + ldr r0, _020B29E8 ; =stackPos_ + ldr r1, _020B2A00 ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r0, r0, lsl #0x10 add r12, r1, r0, lsr #0xd @@ -273,7 +235,7 @@ _020B297C: b _020B29C4 ; case 2 b _020B29C4 ; case 3 _020B29C4: - ldr r0, _020B2A04 ; =UNK_021CDD64 + ldr r0, _020B2A04 ; =groupID_ mov r1, #0x1 ldrh r3, [r0, #0x0] add r2, r3, #0x1 @@ -284,37 +246,36 @@ _020B29E0: add sp, sp, #0x1c ldmia sp!, {r4-r5,pc} .balign 4 -_020B29E8: .word UNK_021CDD70 -_020B29EC: .word UNK_021CDEF4 -_020B29F0: .word UNK_021CE1F4 -_020B29F4: .word UNK_021CDD68 -_020B29F8: .word UNK_02106570 +_020B29E8: .word stackPos_ +_020B29EC: .word mtxStack_ +_020B29F0: .word mtxStackFor2DHW_ +_020B29F4: .word bDonotUseSRTransform +_020B29F8: .word firstSRTransformedMtxIdx_ _020B29FC: .word 0x0000FFFE -_020B2A00: .word UNK_021CDDF4 -_020B2A04: .word UNK_021CDD64 - arm_func_end FUN_020B28B4 +_020B2A00: .word mtxStateStack_ +_020B2A04: .word groupID_ + arm_func_end NNS_G2dScale - ; NNS_G2dTranslate - arm_func_start FUN_020B2A08 -FUN_020B2A08: ; 0x020B2A08 + arm_func_start NNS_G2dTranslate +NNS_G2dTranslate: ; 0x020B2A08 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x1c - ldr r3, _020B2AEC ; =UNK_021CDD68 + ldr r3, _020B2AEC ; =bDonotUseSRTransform mov r4, r2 ldr r2, [r3, #0x0] cmp r2, #0x0 beq _020B2A6C - ldr r2, _020B2AF0 ; =UNK_021CDD70 + ldr r2, _020B2AF0 ; =stackPos_ mov r3, #0x18 ldr r2, [r2, #0x0] - ldr lr, _020B2AF4 ; =UNK_021CDF04 + ldr lr, _020B2AF4 ; =mtxStack_ + 0x10 mul r5, r2, r3 ldr r3, [lr, r5] - ldr ip, _020B2AF8 ; =UNK_021CDF08 + ldr ip, _020B2AF8 ; =mtxStack_ + 0x14 add r0, r3, r0 str r0, [lr, r5] ldr r0, [r12, r5] - ldr r3, _020B2AFC ; =UNK_021CDD74 + ldr r3, _020B2AFC ; =fxZStack_ add r0, r0, r1 str r0, [r12, r5] ldr r0, [r3, r2, lsl #0x2] @@ -323,10 +284,10 @@ FUN_020B2A08: ; 0x020B2A08 str r0, [r3, r2, lsl #0x2] ldmia sp!, {r4-r5,pc} _020B2A6C: - ldr r2, _020B2AF0 ; =UNK_021CDD70 + ldr r2, _020B2AF0 ; =stackPos_ mov lr, #0x1000 ldr r12, [r2, #0x0] - ldr r3, _020B2B00 ; =UNK_021CDEF4 + ldr r3, _020B2B00 ; =mtxStack_ mov r2, #0x18 str r1, [sp, #0x14] mla r1, r12, r2, r3 @@ -338,17 +299,17 @@ _020B2A6C: str r3, [sp, #0x4] str r3, [sp, #0x8] str lr, [sp, #0xc] - bl FUN_020B423C - ldr r0, _020B2AF0 ; =UNK_021CDD70 - ldr r1, _020B2B04 ; =UNK_021CE1F4 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B2AF0 ; =stackPos_ + ldr r1, _020B2B04 ; =mtxStackFor2DHW_ ldr r2, [r0, #0x0] mov r0, #0x18 mla r1, r2, r0, r1 add r0, sp, #0x0 mov r2, r1 - bl FUN_020B423C - ldr r0, _020B2AF0 ; =UNK_021CDD70 - ldr r2, _020B2AFC ; =UNK_021CDD74 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B2AF0 ; =stackPos_ + ldr r2, _020B2AFC ; =fxZStack_ ldr r1, [r0, #0x0] ldr r0, [r2, r1, lsl #0x2] add r0, r0, r4 @@ -356,27 +317,26 @@ _020B2A6C: add sp, sp, #0x1c ldmia sp!, {r4-r5,pc} .balign 4 -_020B2AEC: .word UNK_021CDD68 -_020B2AF0: .word UNK_021CDD70 -_020B2AF4: .word UNK_021CDF04 -_020B2AF8: .word UNK_021CDF08 -_020B2AFC: .word UNK_021CDD74 -_020B2B00: .word UNK_021CDEF4 -_020B2B04: .word UNK_021CE1F4 - arm_func_end FUN_020B2A08 +_020B2AEC: .word bDonotUseSRTransform +_020B2AF0: .word stackPos_ +_020B2AF4: .word mtxStack_ + 0x10 +_020B2AF8: .word mtxStack_ + 0x14 +_020B2AFC: .word fxZStack_ +_020B2B00: .word mtxStack_ +_020B2B04: .word mtxStackFor2DHW_ + arm_func_end NNS_G2dTranslate - ; NNS_G2dPopMtx - arm_func_start FUN_020B2B08 -FUN_020B2B08: ; 0x020B2B08 - ldr r0, _020B2B4C ; =UNK_021CDD70 + arm_func_start NNS_G2dPopMtx +NNS_G2dPopMtx: ; 0x020B2B08 + ldr r0, _020B2B4C ; =stackPos_ ldr r0, [r0, #0x0] cmp r0, #0x0 movle r0, #0x1 movgt r0, #0x0 cmp r0, #0x0 bxne lr - ldr r1, _020B2B4C ; =UNK_021CDD70 - ldr r0, _020B2B50 ; =UNK_02106570 + ldr r1, _020B2B4C ; =stackPos_ + ldr r0, _020B2B50 ; =firstSRTransformedMtxIdx_ ldr r3, [r1, #0x0] ldrh r2, [r0, #0x0] sub r3, r3, #0x1 @@ -386,21 +346,20 @@ FUN_020B2B08: ; 0x020B2B08 strgth r1, [r0, #0x0] bx lr .balign 4 -_020B2B4C: .word UNK_021CDD70 -_020B2B50: .word UNK_02106570 +_020B2B4C: .word stackPos_ +_020B2B50: .word firstSRTransformedMtxIdx_ _020B2B54: .word 0x0000FFFE - arm_func_end FUN_020B2B08 + arm_func_end NNS_G2dPopMtx - ; NNS_G2dPushMtx - arm_func_start FUN_020B2B58 -FUN_020B2B58: ; 0x020B2B58 + arm_func_start NNS_G2dPushMtx +NNS_G2dPushMtx: ; 0x020B2B58 stmdb sp!, {r4-r10,lr} - ldr r0, _020B2D74 ; =UNK_021CDD6C + ldr r0, _020B2D74 ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x7c] ands r0, r0, #0x1 bne _020B2CA4 - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ ldr r1, [r0, #0x0] mov r0, r1, lsl #0x10 add r5, r1, #0x1 @@ -410,34 +369,34 @@ FUN_020B2B58: ; 0x020B2B58 movge r0, #0x0 cmp r0, #0x0 beq _020B2C44 - ldr r0, _020B2D7C ; =UNK_021CDD68 + ldr r0, _020B2D7C ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020B2BE4 - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r3, [r1, #0x0] - ldr r1, _020B2D80 ; =UNK_021CDD74 + ldr r1, _020B2D80 ; =fxZStack_ mul r8, r3, r0 - ldr r6, _020B2D84 ; =UNK_021CDF04 + ldr r6, _020B2D84 ; =mtxStack_ + 0x10 mul r7, r5, r0 ldr r2, [r6, r8] ldr r0, [r1, r3, lsl #0x2] - ldr r3, _020B2D88 ; =UNK_021CDF08 + ldr r3, _020B2D88 ; =mtxStack_ + 0x14 str r2, [r6, r7] ldr r2, [r3, r8] str r0, [r1, r5, lsl #0x2] str r2, [r3, r7] b _020B2C3C _020B2BE4: - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr r7, _020B2D80 ; =UNK_021CDD74 + ldr r7, _020B2D80 ; =fxZStack_ mul lr, r2, r0 - ldr r1, _020B2D8C ; =UNK_021CDEF4 + ldr r1, _020B2D8C ; =mtxStack_ mul r12, r5, r0 - ldr r8, _020B2D90 ; =UNK_021CE1F4 + ldr r8, _020B2D90 ; =mtxStackFor2DHW_ add r10, r1, lr ldr r6, [r7, r2, lsl #0x2] add r9, r1, r12 @@ -453,11 +412,11 @@ _020B2BE4: ldmia r7, {r0-r1} stmia r6, {r0-r1} _020B2C3C: - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ str r5, [r0, #0x0] _020B2C44: - ldr r0, _020B2D78 ; =UNK_021CDD70 - ldr r2, _020B2D94 ; =UNK_021CDDF4 + ldr r0, _020B2D78 ; =stackPos_ + ldr r2, _020B2D94 ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r5, r4, lsl #0x3 mov r0, r0, lsl #0x10 @@ -471,7 +430,7 @@ _020B2C44: strh r0, [r3, #0x2] ldrh r2, [r4, #0x4] ldrh r0, [r4, #0x6] - ldr r1, _020B2D98 ; =UNK_021CDDF8 + ldr r1, _020B2D98 ; =mtxStateStack_ + 0x4 strh r2, [r3, #0x4] strh r0, [r3, #0x6] ldrh r0, [r1, r5] @@ -481,7 +440,7 @@ _020B2C44: strneh r0, [r1, r6] ldmia sp!, {r4-r10,pc} _020B2CA4: - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ ldr r0, [r0, #0x0] add r4, r0, #0x1 cmp r4, #0x20 @@ -489,34 +448,34 @@ _020B2CA4: movge r0, #0x0 cmp r0, #0x0 ldmeqia sp!, {r4-r10,pc} - ldr r0, _020B2D7C ; =UNK_021CDD68 + ldr r0, _020B2D7C ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020B2D10 - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r3, [r1, #0x0] - ldr r1, _020B2D80 ; =UNK_021CDD74 + ldr r1, _020B2D80 ; =fxZStack_ mul r7, r3, r0 - ldr r5, _020B2D84 ; =UNK_021CDF04 + ldr r5, _020B2D84 ; =mtxStack_ + 0x10 mul r6, r4, r0 ldr r2, [r5, r7] ldr r0, [r1, r3, lsl #0x2] - ldr r3, _020B2D88 ; =UNK_021CDF08 + ldr r3, _020B2D88 ; =mtxStack_ + 0x14 str r2, [r5, r6] ldr r2, [r3, r7] str r0, [r1, r4, lsl #0x2] str r2, [r3, r6] b _020B2D68 _020B2D10: - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr ip, _020B2D80 ; =UNK_021CDD74 + ldr ip, _020B2D80 ; =fxZStack_ mul r9, r2, r0 - ldr r1, _020B2D8C ; =UNK_021CDEF4 + ldr r1, _020B2D8C ; =mtxStack_ mul r8, r4, r0 - ldr lr, _020B2D90 ; =UNK_021CE1F4 + ldr lr, _020B2D90 ; =mtxStackFor2DHW_ add r6, r1, r9 ldr r5, [r12, r2, lsl #0x2] add r7, r1, r8 @@ -532,54 +491,53 @@ _020B2D10: stmia lr, {r0-r1} str r5, [r12, r4, lsl #0x2] _020B2D68: - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ str r4, [r0, #0x0] ldmia sp!, {r4-r10,pc} .balign 4 -_020B2D74: .word UNK_021CDD6C -_020B2D78: .word UNK_021CDD70 -_020B2D7C: .word UNK_021CDD68 -_020B2D80: .word UNK_021CDD74 -_020B2D84: .word UNK_021CDF04 -_020B2D88: .word UNK_021CDF08 -_020B2D8C: .word UNK_021CDEF4 -_020B2D90: .word UNK_021CE1F4 -_020B2D94: .word UNK_021CDDF4 -_020B2D98: .word UNK_021CDDF8 - arm_func_end FUN_020B2B58 +_020B2D74: .word pCurrentInstance_ +_020B2D78: .word stackPos_ +_020B2D7C: .word bDonotUseSRTransform +_020B2D80: .word fxZStack_ +_020B2D84: .word mtxStack_ + 0x10 +_020B2D88: .word mtxStack_ + 0x14 +_020B2D8C: .word mtxStack_ +_020B2D90: .word mtxStackFor2DHW_ +_020B2D94: .word mtxStateStack_ +_020B2D98: .word mtxStateStack_ + 0x4 + arm_func_end NNS_G2dPushMtx - ; NNS_G2dDrawMultiCellAnimation - arm_func_start FUN_020B2D9C -FUN_020B2D9C: ; 0x020B2D9C + arm_func_start NNS_G2dDrawMultiCellAnimation +NNS_G2dDrawMultiCellAnimation: ; 0x020B2D9C stmdb sp!, {r4-r6,lr} mov r4, r0 ldrh r0, [r4, #0x56] cmp r0, #0x0 bne _020B2DBC add r0, r4, #0x30 - bl FUN_020B2E78 + bl NNS_G2dDrawMultiCell ldmia sp!, {r4-r6,pc} _020B2DBC: - bl FUN_020B2B58 + bl NNS_G2dPushMtx ldrh r0, [r4, #0x56] ands r0, r0, #0x8 beq _020B2E0C - ldr r0, _020B2E70 ; =UNK_021CDD6C + ldr r0, _020B2E70 ; =pCurrentInstance_ ldrsh r6, [r4, #0x52] ldr r0, [r0, #0x0] ldrsh r5, [r4, #0x50] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B2E70 ; =UNK_021CDD6C + ldr r0, _020B2E70 ; =pCurrentInstance_ rsbne r5, r5, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r6, r6, #0x0 mov r0, r5, lsl #0xc mov r1, r6, lsl #0xc mov r2, #0x0 - bl FUN_020B2A08 + bl NNS_G2dTranslate _020B2E0C: ldrh r0, [r4, #0x56] ands r0, r0, #0x4 @@ -593,7 +551,7 @@ _020B2E0C: mov r1, r0, lsl #0x1 ldrsh r0, [r2, r3] ldrsh r1, [r2, r1] - bl FUN_020B2794 + bl NNS_G2dRotZ _020B2E40: ldrh r0, [r4, #0x56] ands r0, r0, #0x2 @@ -601,21 +559,20 @@ _020B2E40: ldr r0, [r4, #0x48] ldr r1, [r4, #0x4c] mov r2, #0x1000 - bl FUN_020B28B4 + bl NNS_G2dScale _020B2E5C: add r0, r4, #0x30 - bl FUN_020B2E78 + bl NNS_G2dDrawMultiCell mov r0, #0x1 - bl FUN_020B2B08 + bl NNS_G2dPopMtx ldmia sp!, {r4-r6,pc} .balign 4 -_020B2E70: .word UNK_021CDD6C +_020B2E70: .word pCurrentInstance_ _020B2E74: .word FX_SinCosTable_ - arm_func_end FUN_020B2D9C + arm_func_end NNS_G2dDrawMultiCellAnimation - ; NNS_G2dDrawMultiCell - arm_func_start FUN_020B2E78 -FUN_020B2E78: ; 0x020B2E78 + arm_func_start NNS_G2dDrawMultiCell +NNS_G2dDrawMultiCell: ; 0x020B2E78 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r5, r0 @@ -627,7 +584,7 @@ FUN_020B2E78: ; 0x020B2E78 ldrh r0, [r0, #0x2] cmp r0, #0x0 bls _020B2ED0 - ldr r3, _020B3174 ; =UNK_021CE8F4 + ldr r3, _020B3174 ; =mcRenderState_ mov r4, r2 _020B2EAC: add r0, r3, r2, lsl #0x2 @@ -640,22 +597,22 @@ _020B2EAC: cmp r2, r1 blo _020B2EAC _020B2ED0: - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ mov r6, #0x1 ldr r1, [r0, #0x0] - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ str r6, [r0, #0x404] ldr r0, [r1, #0x80] cmp r0, #0x0 beq _020B2FD8 - bl FUN_020B4948 + bl NNSi_G2dGetOamSoftEmuAutoZOffsetStep str r0, [sp, #0x0] mov r0, r6 - bl FUN_020B497C - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag + ldr r0, _020B3178 ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] - bl FUN_020B4958 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep ldr r2, [r5, #0x0] mov r7, #0x0 ldrh r0, [r2, #0x0] @@ -670,30 +627,30 @@ _020B2F28: and r0, r0, #0xff00 mov r0, r0, lsl #0x8 mov r8, r0, lsr #0x10 - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ strh r8, [r0, #0x0] - bl FUN_020B2B58 - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNS_G2dPushMtx + ldr r0, _020B3178 ; =pCurrentInstance_ ldrsh r4, [r10, #0x4] ldr r0, [r0, #0x0] ldrsh r10, [r10, #0x2] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ rsbne r10, r10, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r4, r4, #0x0 mov r2, r11 mov r0, r10, lsl #0xc mov r1, r4, lsl #0xc - bl FUN_020B2A08 + bl NNS_G2dTranslate mov r0, #0x58 mla r0, r8, r0, r9 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, r6 - bl FUN_020B2B08 + bl NNS_G2dPopMtx ldr r2, [r5, #0x0] add r0, r7, #0x1 mov r0, r0, lsl #0x10 @@ -703,10 +660,10 @@ _020B2F28: blo _020B2F28 _020B2FC0: mov r0, #0x0 - bl FUN_020B497C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag ldr r0, [sp, #0x0] - bl FUN_020B4958 - bl FUN_020B4968 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep + bl NNSi_G2dResetOamSoftEmuAutoZOffset b _020B3088 _020B2FD8: ldr r2, [r5, #0x0] @@ -724,29 +681,29 @@ _020B2FF4: and r0, r0, #0xff00 mov r0, r0, lsl #0x8 mov r8, r0, lsr #0x10 - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ strh r8, [r0, #0x0] - bl FUN_020B2B58 - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNS_G2dPushMtx + ldr r0, _020B3178 ; =pCurrentInstance_ ldrsh r4, [r10, #0x4] ldr r0, [r0, #0x0] ldrsh r10, [r10, #0x2] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ rsbne r10, r10, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r4, r4, #0x0 ldr r2, [sp, #0x4] mov r0, r10, lsl #0xc mov r1, r4, lsl #0xc - bl FUN_020B2A08 + bl NNS_G2dTranslate mla r0, r8, r11, r9 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, r6 - bl FUN_020B2B08 + bl NNS_G2dPopMtx ldr r2, [r5, #0x0] add r0, r7, #0x1 mov r0, r0, lsl #0x10 @@ -755,26 +712,26 @@ _020B2FF4: cmp r7, r1 blo _020B2FF4 _020B3088: - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ mov r1, #0x0 str r1, [r0, #0x404] add sp, sp, #0xc ldmia sp!, {r4-r11,pc} _020B309C: - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ ldr r7, [r5, #0xc] ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] cmp r0, #0x0 beq _020B312C - bl FUN_020B4948 + bl NNSi_G2dGetOamSoftEmuAutoZOffsetStep mov r6, r0 mov r0, #0x1 - bl FUN_020B497C - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag + ldr r0, _020B3178 ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] - bl FUN_020B4958 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep ldr r0, [r5, #0x0] mov r4, #0x0 ldrh r0, [r0, #0x0] @@ -783,7 +740,7 @@ _020B309C: mov r8, #0x28 _020B30EC: mla r0, r4, r8, r7 - bl FUN_020B3474 + bl DrawNode_ ldr r1, [r5, #0x0] add r0, r4, #0x1 mov r0, r0, lsl #0x10 @@ -793,10 +750,10 @@ _020B30EC: blo _020B30EC _020B3110: mov r0, #0x0 - bl FUN_020B497C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag mov r0, r6 - bl FUN_020B4958 - bl FUN_020B4968 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep + bl NNSi_G2dResetOamSoftEmuAutoZOffset add sp, sp, #0xc ldmia sp!, {r4-r11,pc} _020B312C: @@ -809,7 +766,7 @@ _020B312C: mov r6, #0x28 _020B3148: mla r0, r4, r6, r7 - bl FUN_020B3474 + bl DrawNode_ ldr r1, [r5, #0x0] add r0, r4, #0x1 mov r0, r0, lsl #0x10 @@ -820,102 +777,99 @@ _020B3148: add sp, sp, #0xc ldmia sp!, {r4-r11,pc} .balign 4 -_020B3174: .word UNK_021CE8F4 -_020B3178: .word UNK_021CDD6C - arm_func_end FUN_020B2E78 +_020B3174: .word mcRenderState_ +_020B3178: .word pCurrentInstance_ + arm_func_end NNS_G2dDrawMultiCell - ; NNS_G2dDrawCellAnimation - arm_func_start FUN_020B317C -FUN_020B317C: ; 0x020B317C + arm_func_start NNS_G2dDrawCellAnimation +NNS_G2dDrawCellAnimation: ; 0x020B317C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r1, _020B31EC ; =UNK_021CDD6C + ldr r1, _020B31EC ; =pCurrentInstance_ mov r5, r0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x80] cmp r1, #0x0 beq _020B31E0 - bl FUN_020B4948 + bl NNSi_G2dGetOamSoftEmuAutoZOffsetStep mov r4, r0 mov r0, #0x1 - bl FUN_020B497C - ldr r0, _020B31EC ; =UNK_021CDD6C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag + ldr r0, _020B31EC ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] - bl FUN_020B4958 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep mov r0, r5 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, #0x0 - bl FUN_020B497C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag mov r0, r4 - bl FUN_020B4958 - bl FUN_020B4968 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep + bl NNSi_G2dResetOamSoftEmuAutoZOffset add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} _020B31E0: - bl FUN_020B3554 + bl DrawCellAnimationImpl_ add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B31EC: .word UNK_021CDD6C - arm_func_end FUN_020B317C +_020B31EC: .word pCurrentInstance_ + arm_func_end NNS_G2dDrawCellAnimation - ; NNS_G2dEndRendering - arm_func_start FUN_020B31F0 -FUN_020B31F0: ; 0x020B31F0 + arm_func_start NNS_G2dEndRendering +NNS_G2dEndRendering: ; 0x020B31F0 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r1, _020B3260 ; =0x04000448 mov r2, #0x1 - ldr r0, _020B3264 ; =UNK_021CDD6C + ldr r0, _020B3264 ; =pCurrentInstance_ str r2, [r1, #0x0] ldr r2, [r0, #0x0] ldr r3, [r2, #0x7c] cmp r3, #0x0 beq _020B324C ands r0, r3, #0x1 - ldrne r0, _020B3268 ; =UNK_021CDD68 + ldrne r0, _020B3268 ; =bDonotUseSRTransform movne r1, #0x0 strne r1, [r0, #0x0] ands r0, r3, #0x2 beq _020B323C mov r0, #0x0 str r0, [r2, #0x74] - bl FUN_020B4DA0 + bl NNS_G2dRndCoreEndRendering _020B323C: - ldr r0, _020B3264 ; =UNK_021CDD6C + ldr r0, _020B3264 ; =pCurrentInstance_ mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x7c] _020B324C: - ldr r0, _020B3264 ; =UNK_021CDD6C + ldr r0, _020B3264 ; =pCurrentInstance_ mov r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 _020B3260: .word 0x04000448 -_020B3264: .word UNK_021CDD6C -_020B3268: .word UNK_021CDD68 - arm_func_end FUN_020B31F0 +_020B3264: .word pCurrentInstance_ +_020B3268: .word bDonotUseSRTransform + arm_func_end NNS_G2dEndRendering - ; NNS_G2dBeginRendering - arm_func_start FUN_020B326C -FUN_020B326C: ; 0x020B326C + arm_func_start NNS_G2dBeginRendering +NNS_G2dBeginRendering: ; 0x020B326C stmdb sp!, {r4-r8,lr} - ldr r5, _020B330C ; =UNK_021CDD60 - ldr r3, _020B3310 ; =UNK_021CDD6C + ldr r5, _020B330C ; =currentMtxCachePos_ + ldr r3, _020B3310 ; =pCurrentInstance_ ldrh r6, [r5, #0x0] - ldr r2, _020B3314 ; =UNK_021CDD70 + ldr r2, _020B3314 ; =stackPos_ mov r4, #0x0 ldr r7, _020B3318 ; =0x0000FFFE - ldr r1, _020B331C ; =UNK_02106570 + ldr r1, _020B331C ; =firstSRTransformedMtxIdx_ str r0, [r3, #0x0] str r4, [r2, #0x0] strh r7, [r1, #0x0] cmp r6, #0x0 ble _020B32D0 - ldr r8, _020B3320 ; =UNK_021CE4F4 + ldr r8, _020B3320 ; =mtxCacheBuffer_ mvn r7, #0x0 mov r6, #0x10 _020B32AC: @@ -929,10 +883,10 @@ _020B32AC: cmp r4, r0 blt _020B32AC _020B32D0: - ldr r4, _020B330C ; =UNK_021CDD60 + ldr r4, _020B330C ; =currentMtxCachePos_ mov r0, #0x0 - ldr r3, _020B3324 ; =UNK_021CDD64 - ldr r1, _020B3328 ; =UNK_021CDDF4 + ldr r3, _020B3324 ; =groupID_ + ldr r1, _020B3328 ; =mtxStateStack_ mov r2, #0x100 strh r0, [r4, #0x0] strh r0, [r3, #0x0] @@ -942,24 +896,23 @@ _020B32D0: ldr r0, _020B3330 ; =0x04000454 str r2, [r1, #0x0] str r2, [r0, #0x0] - bl FUN_020B4178 + bl NNSi_G2dIdentity ldmia sp!, {r4-r8,pc} .balign 4 -_020B330C: .word UNK_021CDD60 -_020B3310: .word UNK_021CDD6C -_020B3314: .word UNK_021CDD70 +_020B330C: .word currentMtxCachePos_ +_020B3310: .word pCurrentInstance_ +_020B3314: .word stackPos_ _020B3318: .word 0x0000FFFE -_020B331C: .word UNK_02106570 -_020B3320: .word UNK_021CE4F4 -_020B3324: .word UNK_021CDD64 -_020B3328: .word UNK_021CDDF4 +_020B331C: .word firstSRTransformedMtxIdx_ +_020B3320: .word mtxCacheBuffer_ +_020B3324: .word groupID_ +_020B3328: .word mtxStateStack_ _020B332C: .word 0x04000444 _020B3330: .word 0x04000454 - arm_func_end FUN_020B326C + arm_func_end NNS_G2dBeginRendering - ; NNS_G2dInitRenderSurface - arm_func_start FUN_020B3334 -FUN_020B3334: ; 0x020B3334 + arm_func_start NNS_G2dInitRenderSurface +NNS_G2dInitRenderSurface: ; 0x020B3334 stmdb sp!, {r4,lr} mov r4, r0 mov r1, r4 @@ -969,39 +922,37 @@ FUN_020B3334: ; 0x020B3334 mov r0, #0x1 str r0, [r4, #0x10] mov r0, #0x3 - ldr r1, _020B3380 ; =FUN_020B3EE0 + ldr r1, _020B3380 ; =RndCoreCBFuncBeforeCell_ str r0, [r4, #0x14] - ldr r0, _020B3384 ; =FUN_020B3E48 + ldr r0, _020B3384 ; =RndCoreCBFuncAfterCell_ str r1, [r4, #0x18] - ldr r1, _020B3388 ; =FUN_020B3C40 + ldr r1, _020B3388 ; =RndCoreCBFuncBeforeOBJ_ str r0, [r4, #0x1c] - ldr r0, _020B338C ; =FUN_020B3B90 + ldr r0, _020B338C ; =RndCoreCBFuncAfterOBJ_ str r1, [r4, #0x20] str r0, [r4, #0x24] ldmia sp!, {r4,pc} .balign 4 -_020B3380: .word FUN_020B3EE0 -_020B3384: .word FUN_020B3E48 -_020B3388: .word FUN_020B3C40 -_020B338C: .word FUN_020B3B90 - arm_func_end FUN_020B3334 +_020B3380: .word RndCoreCBFuncBeforeCell_ +_020B3384: .word RndCoreCBFuncAfterCell_ +_020B3388: .word RndCoreCBFuncBeforeOBJ_ +_020B338C: .word RndCoreCBFuncAfterOBJ_ + arm_func_end NNS_G2dInitRenderSurface - ; _end - arm_func_start FUN_020B3390 -FUN_020B3390: ; 0x020B3390 + arm_func_start NNS_G2dAddRendererTargetSurface +NNS_G2dAddRendererTargetSurface: ; 0x020B3390 ldr r2, [r0, #0x70] str r2, [r1, #0x30] str r1, [r0, #0x70] bx lr - arm_func_end FUN_020B3390 + arm_func_end NNS_G2dAddRendererTargetSurface - ; NNS_G2dInitRenderer - arm_func_start FUN_020B33A0 -FUN_020B33A0: ; 0x020B33A0 + arm_func_start NNS_G2dInitRenderer +NNS_G2dInitRenderer: ; 0x020B33A0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r4, r0 - bl FUN_020B504C + bl NNS_G2dInitRndCore mov r7, #0x0 str r7, [r4, #0x70] str r7, [r4, #0x74] @@ -1013,11 +964,11 @@ FUN_020B33A0: ; 0x020B33A0 strh r7, [r4, #0x8a] str r7, [r4, #0x8c] str r7, [r4, #0x90] - ldr r1, _020B3454 ; =UNK_021CDD70 + ldr r1, _020B3454 ; =stackPos_ strh r7, [r4, #0x94] ldr r2, _020B3458 ; =0x0000FFFE - ldr r0, _020B345C ; =UNK_02106570 - ldr r6, _020B3460 ; =UNK_021CE4F4 + ldr r0, _020B345C ; =firstSRTransformedMtxIdx_ + ldr r6, _020B3460 ; =mtxCacheBuffer_ str r7, [r1, #0x0] strh r2, [r0, #0x0] mvn r5, #0x0 @@ -1031,33 +982,32 @@ _020B3400: cmp r7, #0x20 add r6, r6, #0x20 blt _020B3400 - ldr ip, _020B3464 ; =UNK_021CDD60 + ldr ip, _020B3464 ; =currentMtxCachePos_ mov r0, #0x0 - ldr r3, _020B3468 ; =UNK_021CDD64 - ldr r1, _020B346C ; =UNK_021CDDF4 + ldr r3, _020B3468 ; =groupID_ + ldr r1, _020B346C ; =mtxStateStack_ mov r2, #0x100 strh r0, [r12, #0x0] strh r0, [r3, #0x0] bl MIi_CpuClearFast - ldr r0, _020B3470 ; =UNK_021CDD68 + ldr r0, _020B3470 ; =bDonotUseSRTransform mov r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B3454: .word UNK_021CDD70 +_020B3454: .word stackPos_ _020B3458: .word 0x0000FFFE -_020B345C: .word UNK_02106570 -_020B3460: .word UNK_021CE4F4 -_020B3464: .word UNK_021CDD60 -_020B3468: .word UNK_021CDD64 -_020B346C: .word UNK_021CDDF4 -_020B3470: .word UNK_021CDD68 - arm_func_end FUN_020B33A0 +_020B345C: .word firstSRTransformedMtxIdx_ +_020B3460: .word mtxCacheBuffer_ +_020B3464: .word currentMtxCachePos_ +_020B3468: .word groupID_ +_020B346C: .word mtxStateStack_ +_020B3470: .word bDonotUseSRTransform + arm_func_end NNS_G2dInitRenderer - ; DrawNode_ - arm_func_start FUN_020B3474 -FUN_020B3474: ; 0x020B3474 + arm_func_start DrawNode_ +DrawNode_: ; 0x020B3474 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r0 @@ -1066,26 +1016,26 @@ FUN_020B3474: ; 0x020B3474 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r7,pc} ldr r4, [r5, #0x0] - bl FUN_020B2B58 + bl NNS_G2dPushMtx ldrh r0, [r5, #0x1e] ands r0, r0, #0x8 beq _020B34E4 - ldr r0, _020B354C ; =UNK_021CDD6C + ldr r0, _020B354C ; =pCurrentInstance_ ldrsh r7, [r5, #0x1a] ldr r0, [r0, #0x0] ldrsh r6, [r5, #0x18] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B354C ; =UNK_021CDD6C + ldr r0, _020B354C ; =pCurrentInstance_ rsbne r6, r6, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r7, r7, #0x0 mov r0, r6, lsl #0xc mov r1, r7, lsl #0xc mov r2, #0x0 - bl FUN_020B2A08 + bl NNS_G2dTranslate _020B34E4: ldrh r0, [r5, #0x1e] ands r0, r0, #0x4 @@ -1099,7 +1049,7 @@ _020B34E4: mov r1, r0, lsl #0x1 ldrsh r0, [r2, r3] ldrsh r1, [r2, r1] - bl FUN_020B2794 + bl NNS_G2dRotZ _020B3518: ldrh r0, [r5, #0x1e] ands r0, r0, #0x2 @@ -1107,22 +1057,21 @@ _020B3518: ldr r0, [r5, #0x10] ldr r1, [r5, #0x14] mov r2, #0x1000 - bl FUN_020B28B4 + bl NNS_G2dScale _020B3534: mov r0, r4 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, #0x1 - bl FUN_020B2B08 + bl NNS_G2dPopMtx add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B354C: .word UNK_021CDD6C +_020B354C: .word pCurrentInstance_ _020B3550: .word FX_SinCosTable_ - arm_func_end FUN_020B3474 + arm_func_end DrawNode_ - ; DrawCellAnimationImpl_ - arm_func_start FUN_020B3554 -FUN_020B3554: ; 0x020B3554 + arm_func_start DrawCellAnimationImpl_ +DrawCellAnimationImpl_: ; 0x020B3554 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r0 @@ -1137,41 +1086,41 @@ FUN_020B3554: ; 0x020B3554 moveq r0, #0x0 cmp r0, #0x0 beq _020B35B0 - ldr r1, _020B36B4 ; =UNK_02106574 + ldr r1, _020B36B4 ; =currenVramTransferHandle_ mov r0, r4 str r2, [r1, #0x0] - bl FUN_020B36C0 - ldr r0, _020B36B4 ; =UNK_02106574 + bl DrawCellImpl_ + ldr r0, _020B36B4 ; =currenVramTransferHandle_ mvn r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} _020B35B0: mov r0, r4 - bl FUN_020B36C0 + bl DrawCellImpl_ add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} _020B35C0: - bl FUN_020B2B58 + bl NNS_G2dPushMtx ldrh r0, [r5, #0x4a] ands r0, r0, #0x8 beq _020B3610 - ldr r0, _020B36B8 ; =UNK_021CDD6C + ldr r0, _020B36B8 ; =pCurrentInstance_ ldrsh r7, [r5, #0x46] ldr r0, [r0, #0x0] ldrsh r6, [r5, #0x44] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B36B8 ; =UNK_021CDD6C + ldr r0, _020B36B8 ; =pCurrentInstance_ rsbne r6, r6, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r7, r7, #0x0 mov r0, r6, lsl #0xc mov r1, r7, lsl #0xc mov r2, #0x0 - bl FUN_020B2A08 + bl NNS_G2dTranslate _020B3610: ldrh r0, [r5, #0x4a] ands r0, r0, #0x4 @@ -1185,7 +1134,7 @@ _020B3610: mov r1, r0, lsl #0x1 ldrsh r0, [r2, r3] ldrsh r1, [r2, r1] - bl FUN_020B2794 + bl NNS_G2dRotZ _020B3644: ldrh r0, [r5, #0x4a] ands r0, r0, #0x2 @@ -1193,7 +1142,7 @@ _020B3644: ldr r0, [r5, #0x3c] ldr r1, [r5, #0x40] mov r2, #0x1000 - bl FUN_020B28B4 + bl NNS_G2dScale _020B3660: ldr r2, [r5, #0x34] mvn r0, #0x0 @@ -1202,34 +1151,33 @@ _020B3660: moveq r0, #0x0 cmp r0, #0x0 beq _020B369C - ldr r1, _020B36B4 ; =UNK_02106574 + ldr r1, _020B36B4 ; =currenVramTransferHandle_ mov r0, r4 str r2, [r1, #0x0] - bl FUN_020B36C0 - ldr r0, _020B36B4 ; =UNK_02106574 + bl DrawCellImpl_ + ldr r0, _020B36B4 ; =currenVramTransferHandle_ mvn r1, #0x0 str r1, [r0, #0x0] b _020B36A4 _020B369C: mov r0, r4 - bl FUN_020B36C0 + bl DrawCellImpl_ _020B36A4: mov r0, #0x1 - bl FUN_020B2B08 + bl NNS_G2dPopMtx add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B36B4: .word UNK_02106574 -_020B36B8: .word UNK_021CDD6C +_020B36B4: .word currenVramTransferHandle_ +_020B36B8: .word pCurrentInstance_ _020B36BC: .word FX_SinCosTable_ - arm_func_end FUN_020B3554 + arm_func_end DrawCellAnimationImpl_ - ; DrawCellImpl_ - arm_func_start FUN_020B36C0 -FUN_020B36C0: ; 0x020B36C0 + arm_func_start DrawCellImpl_ +DrawCellImpl_: ; 0x020B36C0 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 - ldr r5, _020B3B54 ; =UNK_021CDD6C + ldr r5, _020B3B54 ; =pCurrentInstance_ mov r10, r0 ldr r0, [r5, #0x0] ldr r1, [r0, #0x7c] @@ -1240,12 +1188,12 @@ FUN_020B36C0: ; 0x020B36C0 ldr r0, [r9, #0x14] cmp r0, #0x0 beq _020B3840 - ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, _020B3B58 ; =bDonotUseSRTransform mov r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B3720 - ldr r2, _020B3B5C ; =UNK_02106570 + ldr r2, _020B3B5C ; =firstSRTransformedMtxIdx_ ldr r0, _020B3B60 ; =0x0000FFFE ldrh r2, [r2, #0x0] cmp r2, r0 @@ -1256,63 +1204,63 @@ _020B3720: _020B3724: cmp r0, #0x0 beq _020B37AC - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ ldr r1, [r0, #0x404] cmp r1, #0x0 beq _020B3788 ldrh r1, [r0, #0x0] - ldr r0, _020B3B68 ; =UNK_021CE8F8 + ldr r0, _020B3B68 ; =mcRenderState_ + 0x4 ldr r1, [r0, r1, lsl #0x2] cmp r1, #0x0 bne _020B37AC - bl FUN_020B4010 - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r2, _020B3B70 ; =UNK_021CDDF4 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache + ldr r0, _020B3B6C ; =stackPos_ + ldr r2, _020B3B70 ; =mtxStateStack_ ldr r0, [r0, #0x0] - ldr r1, _020B3B64 ; =UNK_021CE8F4 + ldr r1, _020B3B64 ; =mcRenderState_ mov r0, r0, lsl #0x10 mov r0, r0, lsr #0xd ldrh r3, [r2, r0] - ldr r4, _020B3B74 ; =UNK_021CE4F4 + ldr r4, _020B3B74 ; =mtxCacheBuffer_ ldrh r2, [r1, #0x0] - ldr r0, _020B3B68 ; =UNK_021CE8F8 + ldr r0, _020B3B68 ; =mcRenderState_ + 0x4 add r1, r4, r3, lsl #0x5 str r1, [r0, r2, lsl #0x2] b _020B37AC _020B3788: - bl FUN_020B4010 - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r1, _020B3B70 ; =UNK_021CDDF4 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache + ldr r0, _020B3B6C ; =stackPos_ + ldr r1, _020B3B70 ; =mtxStateStack_ ldr r0, [r0, #0x0] - ldr r2, _020B3B74 ; =UNK_021CE4F4 + ldr r2, _020B3B74 ; =mtxCacheBuffer_ mov r0, r0, lsl #0x10 mov r0, r0, lsr #0xd ldrh r0, [r1, r0] add r1, r2, r0, lsl #0x5 _020B37AC: - ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3B6C ; =UNK_021CDD70 - ldreq r3, _020B3B78 ; =UNK_021CDEF4 + ldreq r0, _020B3B6C ; =stackPos_ + ldreq r3, _020B3B78 ; =mtxStack_ ldreq r2, [r0, #0x0] moveq r0, #0x18 mlaeq r0, r2, r0, r3 beq _020B37FC - ldr r2, _020B3B6C ; =UNK_021CDD70 + ldr r2, _020B3B6C ; =stackPos_ mov r0, #0x18 ldr r2, [r2, #0x0] - ldr r3, _020B3B7C ; =UNK_021CDF04 + ldr r3, _020B3B7C ; =mtxStack_ + 0x10 mul r4, r2, r0 - ldr r2, _020B3B80 ; =UNK_021CDF08 + ldr r2, _020B3B80 ; =mtxStack_ + 0x14 ldr r3, [r3, r4] - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r2, [r2, r4] str r3, [r0, #0x10] str r2, [r0, #0x14] _020B37FC: - bl FUN_020B4FAC - ldr r1, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx2D + ldr r1, _020B3B88 ; =currenVramTransferHandle_ mvn r0, #0x0 ldr r1, [r1, #0x0] cmp r1, r0 @@ -1321,44 +1269,44 @@ _020B37FC: cmp r0, #0x0 beq _020B3830 mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B3830: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B3840: - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r1, _020B3B8C ; =UNK_021CDD74 + ldr r0, _020B3B6C ; =stackPos_ + ldr r1, _020B3B8C ; =fxZStack_ ldr r2, [r0, #0x0] ldr r0, [sp, #0x0] ldr r1, [r1, r2, lsl #0x2] - bl FUN_020B4FA4 - ldr r0, _020B3B58 ; =UNK_021CDD68 + bl NNS_G2dSetRndCore3DSoftSpriteZvalue + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3B6C ; =UNK_021CDD70 - ldreq r2, _020B3B78 ; =UNK_021CDEF4 + ldreq r0, _020B3B6C ; =stackPos_ + ldreq r2, _020B3B78 ; =mtxStack_ ldreq r1, [r0, #0x0] moveq r0, #0x18 mlaeq r0, r1, r0, r2 beq _020B38A8 - ldr r1, _020B3B6C ; =UNK_021CDD70 + ldr r1, _020B3B6C ; =stackPos_ mov r0, #0x18 ldr r1, [r1, #0x0] - ldr r2, _020B3B7C ; =UNK_021CDF04 + ldr r2, _020B3B7C ; =mtxStack_ + 0x10 mul r3, r1, r0 - ldr r1, _020B3B80 ; =UNK_021CDF08 + ldr r1, _020B3B80 ; =mtxStack_ + 0x14 ldr r2, [r2, r3] - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r1, [r1, r3] str r2, [r0, #0x10] str r1, [r0, #0x14] _020B38A8: - bl FUN_020B4FC4 - ldr r1, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx3D + ldr r1, _020B3B88 ; =currenVramTransferHandle_ mvn r0, #0x0 ldr r1, [r1, #0x0] cmp r1, r0 @@ -1367,20 +1315,20 @@ _020B38A8: cmp r0, #0x0 beq _020B38DC mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B38DC: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B38EC: cmp r9, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r11,pc} - ldr r4, _020B3B6C ; =UNK_021CDD70 - ldr fp, _020B3B78 ; =UNK_021CDEF4 + ldr r4, _020B3B6C ; =stackPos_ + ldr fp, _020B3B78 ; =mtxStack_ mov r7, #0x0 mov r6, #0x1 _020B3908: @@ -1394,19 +1342,19 @@ _020B3908: mov r1, r9 str r9, [r8, #0x74] mov r0, r8 - bl FUN_020B4F9C + bl NNS_G2dSetRndCoreSurface ldr r1, [r9, #0x28] ldr r2, [r9, #0x2c] mov r0, r8 - bl FUN_020B5034 + bl NNS_G2dSetRndCoreOamRegisterFunc mov r0, r8 - bl FUN_020B4E0C - ldr r0, _020B3B58 ; =UNK_021CDD68 + bl NNS_G2dRndCoreBeginRendering + ldr r0, _020B3B58 ; =bDonotUseSRTransform mov r1, r7 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B3978 - ldr r0, _020B3B5C ; =UNK_02106570 + ldr r0, _020B3B5C ; =firstSRTransformedMtxIdx_ ldrh r2, [r0, #0x0] ldr r0, _020B3B60 ; =0x0000FFFE cmp r2, r0 @@ -1417,41 +1365,41 @@ _020B3978: _020B397C: cmp r0, #0x0 beq _020B3A04 - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ ldr r0, [r0, #0x404] cmp r0, #0x0 beq _020B39E4 - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ ldrh r1, [r0, #0x0] add r0, r0, r1, lsl #0x2 ldr r1, [r0, #0x4] cmp r1, #0x0 bne _020B3A04 - bl FUN_020B4010 - ldr r0, _020B3B64 ; =UNK_021CE8F4 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache + ldr r0, _020B3B64 ; =mcRenderState_ ldr r2, [r4, #0x0] ldrh r1, [r0, #0x0] mov r0, r2, lsl #0x10 mov r2, r0, lsr #0xd - ldr r0, _020B3B70 ; =UNK_021CDDF4 + ldr r0, _020B3B70 ; =mtxStateStack_ ldrh r3, [r0, r2] - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ add r2, r0, r1, lsl #0x2 - ldr r0, _020B3B74 ; =UNK_021CE4F4 + ldr r0, _020B3B74 ; =mtxCacheBuffer_ add r1, r0, r3, lsl #0x5 str r1, [r2, #0x4] b _020B3A04 _020B39E4: - bl FUN_020B4010 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache ldr r0, [r4, #0x0] mov r0, r0, lsl #0x10 mov r1, r0, lsr #0xd - ldr r0, _020B3B70 ; =UNK_021CDDF4 + ldr r0, _020B3B70 ; =mtxStateStack_ ldrh r1, [r0, r1] - ldr r0, _020B3B74 ; =UNK_021CE4F4 + ldr r0, _020B3B74 ; =mtxCacheBuffer_ add r1, r0, r1, lsl #0x5 _020B3A04: - ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 ldreq r2, [r4, #0x0] @@ -1461,15 +1409,15 @@ _020B3A04: ldr r2, [r4, #0x0] mov r0, #0x18 mla r8, r2, r0, r11 - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r3, [r8, #0x10] mov r2, r0 str r3, [r2, #0x10] ldr r3, [r8, #0x14] str r3, [r2, #0x14] _020B3A44: - bl FUN_020B4FAC - ldr r0, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx2D + ldr r0, _020B3B88 ; =currenVramTransferHandle_ ldr r1, [r0, #0x0] mvn r0, #0x0 cmp r1, r0 @@ -1478,30 +1426,30 @@ _020B3A44: cmp r0, #0x0 beq _020B3A74 mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer b _020B3A7C _020B3A74: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell _020B3A7C: ldr r0, [r5, #0x0] str r7, [r0, #0x74] - bl FUN_020B4DA0 + bl NNS_G2dRndCoreEndRendering b _020B3B40 _020B3A8C: ldr r8, [r5, #0x0] mov r1, r9 mov r0, r8 str r9, [r8, #0x74] - bl FUN_020B4F9C + bl NNS_G2dSetRndCoreSurface mov r0, r8 - bl FUN_020B4E0C + bl NNS_G2dRndCoreBeginRendering ldr r2, [r4, #0x0] - ldr r1, _020B3B8C ; =UNK_021CDD74 + ldr r1, _020B3B8C ; =fxZStack_ ldr r0, [sp, #0x0] ldr r1, [r1, r2, lsl #0x2] - bl FUN_020B4FA4 - ldr r0, _020B3B58 ; =UNK_021CDD68 + bl NNS_G2dSetRndCore3DSoftSpriteZvalue + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 ldreq r1, [r4, #0x0] @@ -1511,15 +1459,15 @@ _020B3A8C: ldr r1, [r4, #0x0] mov r0, #0x18 mla r3, r1, r0, r11 - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r2, [r3, #0x10] mov r1, r0 str r2, [r1, #0x10] ldr r2, [r3, #0x14] str r2, [r1, #0x14] _020B3AFC: - bl FUN_020B4FC4 - ldr r0, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx3D + ldr r0, _020B3B88 ; =currenVramTransferHandle_ ldr r1, [r0, #0x0] mvn r0, #0x0 cmp r1, r0 @@ -1528,15 +1476,15 @@ _020B3AFC: cmp r0, #0x0 beq _020B3B2C mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer b _020B3B34 _020B3B2C: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell _020B3B34: ldr r0, [r5, #0x0] str r7, [r0, #0x74] - bl FUN_020B4DA0 + bl NNS_G2dRndCoreEndRendering _020B3B40: ldr r9, [r9, #0x30] cmp r9, #0x0 @@ -1544,29 +1492,28 @@ _020B3B40: add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} .balign 4 -_020B3B54: .word UNK_021CDD6C -_020B3B58: .word UNK_021CDD68 -_020B3B5C: .word UNK_02106570 +_020B3B54: .word pCurrentInstance_ +_020B3B58: .word bDonotUseSRTransform +_020B3B5C: .word firstSRTransformedMtxIdx_ _020B3B60: .word 0x0000FFFE -_020B3B64: .word UNK_021CE8F4 -_020B3B68: .word UNK_021CE8F8 -_020B3B6C: .word UNK_021CDD70 -_020B3B70: .word UNK_021CDDF4 -_020B3B74: .word UNK_021CE4F4 -_020B3B78: .word UNK_021CDEF4 -_020B3B7C: .word UNK_021CDF04 -_020B3B80: .word UNK_021CDF08 -_020B3B84: .word UNK_02106578 -_020B3B88: .word UNK_02106574 -_020B3B8C: .word UNK_021CDD74 - arm_func_end FUN_020B36C0 +_020B3B64: .word mcRenderState_ +_020B3B68: .word mcRenderState_ + 0x4 +_020B3B6C: .word stackPos_ +_020B3B70: .word mtxStateStack_ +_020B3B74: .word mtxCacheBuffer_ +_020B3B78: .word mtxStack_ +_020B3B7C: .word mtxStack_ + 0x10 +_020B3B80: .word mtxStack_ + 0x14 +_020B3B84: .word mtxI_ +_020B3B88: .word currenVramTransferHandle_ +_020B3B8C: .word fxZStack_ + arm_func_end DrawCellImpl_ - ; RndCoreCBFuncAfterOBJ_ - arm_func_start FUN_020B3B90 -FUN_020B3B90: ; 0x020B3B90 + arm_func_start RndCoreCBFuncAfterOBJ_ +RndCoreCBFuncAfterOBJ_: ; 0x020B3B90 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 - ldr r0, _020B3C24 ; =UNK_021CDD6C + ldr r0, _020B3C24 ; =pCurrentInstance_ mov r12, r1 ldr r0, [r0, #0x0] mov r3, r2 @@ -1575,23 +1522,23 @@ FUN_020B3B90: ; 0x020B3B90 cmp r2, #0x0 addeq sp, sp, #0x8 ldmeqia sp!, {r4-r6,pc} - ldr r2, _020B3C28 ; =UNK_021CDD68 + ldr r2, _020B3C28 ; =bDonotUseSRTransform ldr r2, [r2, #0x0] cmp r2, #0x0 - ldreq r2, _020B3C2C ; =UNK_021CDD70 - ldreq r4, _020B3C30 ; =UNK_021CDEF4 + ldreq r2, _020B3C2C ; =stackPos_ + ldreq r4, _020B3C30 ; =mtxStack_ ldreq lr, [r2, #0x0] moveq r2, #0x18 mlaeq r6, lr, r2, r4 beq _020B3C0C - ldr lr, _020B3C2C ; =UNK_021CDD70 + ldr lr, _020B3C2C ; =stackPos_ mov r2, #0x18 ldr lr, [lr, #0x0] - ldr r4, _020B3C34 ; =UNK_021CDF04 + ldr r4, _020B3C34 ; =mtxStack_ + 0x10 mul r5, lr, r2 - ldr r2, _020B3C38 ; =UNK_021CDF08 + ldr r2, _020B3C38 ; =mtxStack_ + 0x14 ldr r4, [r4, r5] - ldr r6, _020B3C3C ; =UNK_02106578 + ldr r6, _020B3C3C ; =mtxI_ ldr r2, [r2, r5] str r4, [r6, #0x10] str r2, [r6, #0x14] @@ -1603,40 +1550,39 @@ _020B3C0C: add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 -_020B3C24: .word UNK_021CDD6C -_020B3C28: .word UNK_021CDD68 -_020B3C2C: .word UNK_021CDD70 -_020B3C30: .word UNK_021CDEF4 -_020B3C34: .word UNK_021CDF04 -_020B3C38: .word UNK_021CDF08 -_020B3C3C: .word UNK_02106578 - arm_func_end FUN_020B3B90 +_020B3C24: .word pCurrentInstance_ +_020B3C28: .word bDonotUseSRTransform +_020B3C2C: .word stackPos_ +_020B3C30: .word mtxStack_ +_020B3C34: .word mtxStack_ + 0x10 +_020B3C38: .word mtxStack_ + 0x14 +_020B3C3C: .word mtxI_ + arm_func_end RndCoreCBFuncAfterOBJ_ - ; RndCoreCBFuncBeforeOBJ_ - arm_func_start FUN_020B3C40 -FUN_020B3C40: ; 0x020B3C40 + arm_func_start RndCoreCBFuncBeforeOBJ_ +RndCoreCBFuncBeforeOBJ_: ; 0x020B3C40 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 - ldr r3, _020B3E2C ; =UNK_021CDD6C + ldr r3, _020B3E2C ; =pCurrentInstance_ add r4, r0, #0x38 ldr r0, [r3, #0x0] mov r6, r1 mov r5, r2 - bl FUN_020B278C + bl NNS_G2dGetRendererPaletteTbl cmp r0, #0x0 beq _020B3C90 ldrh r1, [r4, #0x4] and r1, r1, #0xf000 mov r1, r1, lsl #0x4 mov r1, r1, lsr #0x10 - bl FUN_020B10B0 + bl NNS_G2dGetPaletteTableValue ldr r1, [r4, #0x4] and r0, r0, #0xf bic r1, r1, #0xf000 orr r0, r1, r0, lsl #0xc str r0, [r4, #0x4] _020B3C90: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] cmp r0, #0x0 @@ -1651,7 +1597,7 @@ _020B3C90: orr r0, r1, r0, lsl #0xa str r0, [r4, #0x4] _020B3CC8: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x2 @@ -1663,7 +1609,7 @@ _020B3CC8: orr r0, r1, r0, lsl #0xc str r0, [r4, #0x4] _020B3CF4: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x10 @@ -1678,7 +1624,7 @@ _020B3CF4: orr r0, r2, r0, lsl #0xc str r0, [r4, #0x4] _020B3D2C: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x4 @@ -1692,7 +1638,7 @@ _020B3D2C: biceq r0, r0, #0x1000 streq r0, [r4, #0x0] _020B3D60: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x8 @@ -1710,30 +1656,30 @@ _020B3D60: orr r0, r0, r1, lsl #0xc strh r0, [r4, #0x4] _020B3DA4: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r1, [r0, #0x74] ldr r2, [r1, #0x40] cmp r2, #0x0 addeq sp, sp, #0x8 ldmeqia sp!, {r4-r6,pc} - ldr r2, _020B3E30 ; =UNK_021CDD68 + ldr r2, _020B3E30 ; =bDonotUseSRTransform ldr r2, [r2, #0x0] cmp r2, #0x0 - ldreq r2, _020B3E34 ; =UNK_021CDD70 - ldreq r4, _020B3E38 ; =UNK_021CDEF4 + ldreq r2, _020B3E34 ; =stackPos_ + ldreq r4, _020B3E38 ; =mtxStack_ ldreq r3, [r2, #0x0] moveq r2, #0x18 mlaeq r4, r3, r2, r4 beq _020B3E10 - ldr r3, _020B3E34 ; =UNK_021CDD70 + ldr r3, _020B3E34 ; =stackPos_ mov r2, #0x18 ldr r4, [r3, #0x0] - ldr r3, _020B3E3C ; =UNK_021CDF04 + ldr r3, _020B3E3C ; =mtxStack_ + 0x10 mul r12, r4, r2 - ldr r2, _020B3E40 ; =UNK_021CDF08 + ldr r2, _020B3E40 ; =mtxStack_ + 0x14 ldr r3, [r3, r12] - ldr r4, _020B3E44 ; =UNK_02106578 + ldr r4, _020B3E44 ; =mtxI_ ldr r2, [r2, r12] str r3, [r4, #0x10] str r2, [r4, #0x14] @@ -1746,43 +1692,42 @@ _020B3E10: add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 -_020B3E2C: .word UNK_021CDD6C -_020B3E30: .word UNK_021CDD68 -_020B3E34: .word UNK_021CDD70 -_020B3E38: .word UNK_021CDEF4 -_020B3E3C: .word UNK_021CDF04 -_020B3E40: .word UNK_021CDF08 -_020B3E44: .word UNK_02106578 - arm_func_end FUN_020B3C40 +_020B3E2C: .word pCurrentInstance_ +_020B3E30: .word bDonotUseSRTransform +_020B3E34: .word stackPos_ +_020B3E38: .word mtxStack_ +_020B3E3C: .word mtxStack_ + 0x10 +_020B3E40: .word mtxStack_ + 0x14 +_020B3E44: .word mtxI_ + arm_func_end RndCoreCBFuncBeforeOBJ_ - ; RndCoreCBFuncAfterCell_ - arm_func_start FUN_020B3E48 -FUN_020B3E48: ; 0x020B3E48 + arm_func_start RndCoreCBFuncAfterCell_ +RndCoreCBFuncAfterCell_: ; 0x020B3E48 stmdb sp!, {r4,lr} - ldr r0, _020B3EC4 ; =UNK_021CDD6C + ldr r0, _020B3EC4 ; =pCurrentInstance_ mov r2, r1 ldr r0, [r0, #0x0] ldr r1, [r0, #0x74] ldr r3, [r1, #0x3c] cmp r3, #0x0 ldmeqia sp!, {r4,pc} - ldr r3, _020B3EC8 ; =UNK_021CDD68 + ldr r3, _020B3EC8 ; =bDonotUseSRTransform ldr r3, [r3, #0x0] cmp r3, #0x0 - ldreq r3, _020B3ECC ; =UNK_021CDD70 - ldreq lr, _020B3ED0 ; =UNK_021CDEF4 + ldreq r3, _020B3ECC ; =stackPos_ + ldreq lr, _020B3ED0 ; =mtxStack_ ldreq r12, [r3, #0x0] moveq r3, #0x18 mlaeq r3, r12, r3, lr beq _020B3EB8 - ldr ip, _020B3ECC ; =UNK_021CDD70 + ldr ip, _020B3ECC ; =stackPos_ mov r3, #0x18 ldr r12, [r12, #0x0] - ldr lr, _020B3ED4 ; =UNK_021CDF04 + ldr lr, _020B3ED4 ; =mtxStack_ + 0x10 mul r4, r12, r3 - ldr ip, _020B3ED8 ; =UNK_021CDF08 + ldr ip, _020B3ED8 ; =mtxStack_ + 0x14 ldr lr, [lr, r4] - ldr r3, _020B3EDC ; =UNK_02106578 + ldr r3, _020B3EDC ; =mtxI_ ldr r12, [r12, r4] str lr, [r3, #0x10] str r12, [r3, #0x14] @@ -1791,20 +1736,19 @@ _020B3EB8: blx r12 ldmia sp!, {r4,pc} .balign 4 -_020B3EC4: .word UNK_021CDD6C -_020B3EC8: .word UNK_021CDD68 -_020B3ECC: .word UNK_021CDD70 -_020B3ED0: .word UNK_021CDEF4 -_020B3ED4: .word UNK_021CDF04 -_020B3ED8: .word UNK_021CDF08 -_020B3EDC: .word UNK_02106578 - arm_func_end FUN_020B3E48 +_020B3EC4: .word pCurrentInstance_ +_020B3EC8: .word bDonotUseSRTransform +_020B3ECC: .word stackPos_ +_020B3ED0: .word mtxStack_ +_020B3ED4: .word mtxStack_ + 0x10 +_020B3ED8: .word mtxStack_ + 0x14 +_020B3EDC: .word mtxI_ + arm_func_end RndCoreCBFuncAfterCell_ - ; RndCoreCBFuncBeforeCell_ - arm_func_start FUN_020B3EE0 -FUN_020B3EE0: ; 0x020B3EE0 + arm_func_start RndCoreCBFuncBeforeCell_ +RndCoreCBFuncBeforeCell_: ; 0x020B3EE0 stmdb sp!, {r4-r6,lr} - ldr r2, _020B3FF4 ; =UNK_021CDD6C + ldr r2, _020B3FF4 ; =pCurrentInstance_ mov r6, r0 ldr r0, [r2, #0x0] mov r5, r1 @@ -1812,23 +1756,23 @@ FUN_020B3EE0: ; 0x020B3EE0 ldr r0, [r4, #0x34] cmp r0, #0x0 beq _020B3F7C - ldr r0, _020B3FF8 ; =UNK_021CDD68 + ldr r0, _020B3FF8 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3FFC ; =UNK_021CDD70 - ldreq r1, _020B4000 ; =UNK_021CDEF4 + ldreq r0, _020B3FFC ; =stackPos_ + ldreq r1, _020B4000 ; =mtxStack_ ldreq r2, [r0, #0x0] moveq r0, #0x18 mlaeq r1, r2, r0, r1 beq _020B3F54 - ldr r1, _020B3FFC ; =UNK_021CDD70 + ldr r1, _020B3FFC ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr r1, _020B4004 ; =UNK_021CDF04 + ldr r1, _020B4004 ; =mtxStack_ + 0x10 mul r3, r2, r0 - ldr r0, _020B4008 ; =UNK_021CDF08 + ldr r0, _020B4008 ; =mtxStack_ + 0x14 ldr r2, [r1, r3] - ldr r1, _020B400C ; =UNK_02106578 + ldr r1, _020B400C ; =mtxI_ ldr r0, [r0, r3] str r2, [r1, #0x10] str r0, [r1, #0x14] @@ -1847,28 +1791,28 @@ _020B3F7C: ldr r0, [r4, #0x38] cmp r0, #0x0 ldmeqia sp!, {r4-r6,pc} - ldr r0, _020B3FF8 ; =UNK_021CDD68 + ldr r0, _020B3FF8 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3FFC ; =UNK_021CDD70 - ldreq r2, _020B4000 ; =UNK_021CDEF4 + ldreq r0, _020B3FFC ; =stackPos_ + ldreq r2, _020B4000 ; =mtxStack_ ldreq r1, [r0, #0x0] moveq r0, #0x18 mlaeq r3, r1, r0, r2 beq _020B3FD8 - ldr r1, _020B3FFC ; =UNK_021CDD70 + ldr r1, _020B3FFC ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr r1, _020B4004 ; =UNK_021CDF04 + ldr r1, _020B4004 ; =mtxStack_ + 0x10 mul r6, r2, r0 - ldr r0, _020B4008 ; =UNK_021CDF08 + ldr r0, _020B4008 ; =mtxStack_ + 0x14 ldr r1, [r1, r6] - ldr r3, _020B400C ; =UNK_02106578 + ldr r3, _020B400C ; =mtxI_ ldr r0, [r0, r6] str r1, [r3, #0x10] str r0, [r3, #0x14] _020B3FD8: - ldr r0, _020B3FF4 ; =UNK_021CDD6C + ldr r0, _020B3FF4 ; =pCurrentInstance_ ldr r6, [r4, #0x38] ldr r0, [r0, #0x0] mov r1, r4 @@ -1876,22 +1820,21 @@ _020B3FD8: blx r6 ldmia sp!, {r4-r6,pc} .balign 4 -_020B3FF4: .word UNK_021CDD6C -_020B3FF8: .word UNK_021CDD68 -_020B3FFC: .word UNK_021CDD70 -_020B4000: .word UNK_021CDEF4 -_020B4004: .word UNK_021CDF04 -_020B4008: .word UNK_021CDF08 -_020B400C: .word UNK_02106578 - arm_func_end FUN_020B3EE0 +_020B3FF4: .word pCurrentInstance_ +_020B3FF8: .word bDonotUseSRTransform +_020B3FFC: .word stackPos_ +_020B4000: .word mtxStack_ +_020B4004: .word mtxStack_ + 0x10 +_020B4008: .word mtxStack_ + 0x14 +_020B400C: .word mtxI_ + arm_func_end RndCoreCBFuncBeforeCell_ - ; NNSi_G2dMCMStoreCurrentMtxToMtxCache - arm_func_start FUN_020B4010 -FUN_020B4010: ; 0x020B4010 + arm_func_start NNSi_G2dMCMStoreCurrentMtxToMtxCache +NNSi_G2dMCMStoreCurrentMtxToMtxCache: ; 0x020B4010 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r0, _020B4154 ; =UNK_021CDD70 - ldr r1, _020B4158 ; =UNK_021CDDF4 + ldr r0, _020B4154 ; =stackPos_ + ldr r1, _020B4158 ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r2, #0x1 mov r0, r0, lsl #0x10 @@ -1905,46 +1848,46 @@ _020B4044: cmp r2, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r5,pc} - ldr r0, _020B415C ; =UNK_021CDD60 + ldr r0, _020B415C ; =currentMtxCachePos_ mov r2, #0x10 ldrh r4, [r0, #0x0] cmp r4, #0x1f addcc r1, r4, #0x1 strcch r1, [r0, #0x0] - ldr r0, _020B4160 ; =UNK_021CE4F4 + ldr r0, _020B4160 ; =mtxCacheBuffer_ ldrh r5, [r3, #0x2] add r0, r0, r4, lsl #0x5 add r1, r0, #0x10 mvn r0, #0x0 strh r4, [r3, #0x0] bl MIi_CpuClearFast - ldr r0, _020B4154 ; =UNK_021CDD70 - ldr r1, _020B4164 ; =UNK_021CDD68 + ldr r0, _020B4154 ; =stackPos_ + ldr r1, _020B4164 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] ldr r2, [r1, #0x0] mov r1, r0, lsl #0x10 cmp r2, #0x0 - ldr r3, _020B4158 ; =UNK_021CDDF4 + ldr r3, _020B4158 ; =mtxStateStack_ mov r1, r1, lsr #0xd ldrh r1, [r3, r1] - ldr r3, _020B4160 ; =UNK_021CE4F4 + ldr r3, _020B4160 ; =mtxCacheBuffer_ moveq r2, #0x18 add r1, r3, r1, lsl #0x5 - ldreq r3, _020B4168 ; =UNK_021CE1F4 + ldreq r3, _020B4168 ; =mtxStackFor2DHW_ mlaeq r12, r0, r2, r3 beq _020B40E4 mov r2, #0x18 mul r3, r0, r2 - ldr r2, _020B416C ; =UNK_021CDF04 - ldr r0, _020B4170 ; =UNK_021CDF08 + ldr r2, _020B416C ; =mtxStack_ + 0x10 + ldr r0, _020B4170 ; =mtxStack_ + 0x14 ldr r2, [r2, r3] - ldr ip, _020B4174 ; =UNK_02106578 + ldr ip, _020B4174 ; =mtxI_ ldr r0, [r0, r3] str r2, [r12, #0x10] str r0, [r12, #0x14] _020B40E4: ldr r2, [r12, #0x0] - ldr r0, _020B4154 ; =UNK_021CDD70 + ldr r0, _020B4154 ; =stackPos_ str r2, [r1, #0x0] ldr r2, [r12, #0x4] str r2, [r1, #0x4] @@ -1957,7 +1900,7 @@ _020B40E4: movs lr, r0, lsr #0x10 addmi sp, sp, #0x4 ldmmiia sp!, {r4-r5,pc} - ldr r3, _020B4158 ; =UNK_021CDDF4 + ldr r3, _020B4158 ; =mtxStateStack_ mov r0, #0x3 _020B4124: add r2, r3, lr, lsl #0x3 @@ -1973,41 +1916,40 @@ _020B4124: add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B4154: .word UNK_021CDD70 -_020B4158: .word UNK_021CDDF4 -_020B415C: .word UNK_021CDD60 -_020B4160: .word UNK_021CE4F4 -_020B4164: .word UNK_021CDD68 -_020B4168: .word UNK_021CE1F4 -_020B416C: .word UNK_021CDF04 -_020B4170: .word UNK_021CDF08 -_020B4174: .word UNK_02106578 - arm_func_end FUN_020B4010 +_020B4154: .word stackPos_ +_020B4158: .word mtxStateStack_ +_020B415C: .word currentMtxCachePos_ +_020B4160: .word mtxCacheBuffer_ +_020B4164: .word bDonotUseSRTransform +_020B4168: .word mtxStackFor2DHW_ +_020B416C: .word mtxStack_ + 0x10 +_020B4170: .word mtxStack_ + 0x14 +_020B4174: .word mtxI_ + arm_func_end NNSi_G2dMCMStoreCurrentMtxToMtxCache - ; NNSi_G2dIdentity - arm_func_start FUN_020B4178 -FUN_020B4178: ; 0x020B4178 + arm_func_start NNSi_G2dIdentity +NNSi_G2dIdentity: ; 0x020B4178 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r0, _020B4220 ; =UNK_021CDD68 + ldr r0, _020B4220 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020B41B8 - ldr r1, _020B4224 ; =UNK_021CDD70 + ldr r1, _020B4224 ; =stackPos_ mov r0, #0x18 ldr r12, [r1, #0x0] - ldr r1, _020B4228 ; =UNK_021CDF04 + ldr r1, _020B4228 ; =mtxStack_ + 0x10 mul r3, r12, r0 mov r2, #0x0 - ldr r0, _020B422C ; =UNK_021CDF08 + ldr r0, _020B422C ; =mtxStack_ + 0x14 str r2, [r1, r3] str r2, [r0, r3] b _020B420C _020B41B8: - ldr r0, _020B4224 ; =UNK_021CDD70 + ldr r0, _020B4224 ; =stackPos_ mov lr, #0x18 ldr r1, [r0, #0x0] - ldr r4, _020B4230 ; =UNK_021CDEF4 + ldr r4, _020B4230 ; =mtxStack_ mul r3, r1, lr mov r2, #0x1000 str r2, [r4, r3] @@ -2019,25 +1961,24 @@ _020B41B8: str r1, [r5, #0x10] str r1, [r5, #0x14] ldr r12, [r0, #0x0] - ldr r4, _020B4234 ; =UNK_021CE1F4 + ldr r4, _020B4234 ; =mtxStackFor2DHW_ ldmia r5!, {r0-r3} mla lr, r12, lr, r4 stmia lr!, {r0-r3} ldmia r5, {r0-r1} stmia lr, {r0-r1} _020B420C: - ldr r0, _020B4238 ; =UNK_021CDD74 + ldr r0, _020B4238 ; =fxZStack_ mov r1, #0x0 str r1, [r0, r12, lsl #0x2] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B4220: .word UNK_021CDD68 -_020B4224: .word UNK_021CDD70 -_020B4228: .word UNK_021CDF04 -_020B422C: .word UNK_021CDF08 -_020B4230: .word UNK_021CDEF4 -_020B4234: .word UNK_021CE1F4 -_020B4238: .word UNK_021CDD74 - arm_func_end FUN_020B4178 - +_020B4220: .word bDonotUseSRTransform +_020B4224: .word stackPos_ +_020B4228: .word mtxStack_ + 0x10 +_020B422C: .word mtxStack_ + 0x14 +_020B4230: .word mtxStack_ +_020B4234: .word mtxStackFor2DHW_ +_020B4238: .word fxZStack_ + arm_func_end NNSi_G2dIdentity |