summaryrefslogtreecommitdiff
path: root/arm9/asm/NNS_GFD_gfd_vramtransfe.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm/NNS_GFD_gfd_vramtransfe.s')
-rw-r--r--arm9/asm/NNS_GFD_gfd_vramtransfe.s592
1 files changed, 592 insertions, 0 deletions
diff --git a/arm9/asm/NNS_GFD_gfd_vramtransfe.s b/arm9/asm/NNS_GFD_gfd_vramtransfe.s
new file mode 100644
index 00000000..9e3a8863
--- /dev/null
+++ b/arm9/asm/NNS_GFD_gfd_vramtransfe.s
@@ -0,0 +1,592 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .rodata
+
+ .global transFunc$7934
+transFunc$7934: ; 0x020FF7D4
+ .word DoTransfer3dTex
+ .word DoTransfer3dTexPltt
+ .word DoTransfer3dClearImageColor
+ .word DoTransfer3dClearImageDepth
+ .word DoTransfer2dBG0CharMain
+ .word DoTransfer2dBG1CharMain
+ .word DoTransfer2dBG2CharMain
+ .word DoTransfer2dBG3CharMain
+ .word DoTransfer2dBG0ScrMain
+ .word DoTransfer2dBG1ScrMain
+ .word DoTransfer2dBG2ScrMain
+ .word DoTransfer2dBG3ScrMain
+ .word DoTransfer2dBG2BmpMain
+ .word DoTransfer2dBG3BmpMain
+ .word DoTransfer2dObjPlttMain
+ .word DoTransfer2dBGPlttMain
+ .word DoTransfer2dObjExtPlttMain
+ .word DoTransfer2dBGExtPlttMain
+ .word DoTransfer2dObjOamMain
+ .word DoTransfer2dObjCharMain
+ .word DoTransfer2dBG0CharSub
+ .word DoTransfer2dBG1CharSub
+ .word DoTransfer2dBG2CharSub
+ .word DoTransfer2dBG3CharSub
+ .word DoTransfer2dBG0ScrSub
+ .word DoTransfer2dBG1ScrSub
+ .word DoTransfer2dBG2ScrSub
+ .word DoTransfer2dBG3ScrSub
+ .word DoTransfer2dBG2BmpSub
+ .word DoTransfer2dBG3BmpSub
+ .word DoTransfer2dObjPlttSub
+ .word DoTransfer2dBGPlttSub
+ .word DoTransfer2dObjExtPlttSub
+ .word DoTransfer2dBGExtPlttSub
+ .word DoTransfer2dObjOamSub
+ .word DoTransfer2dObjCharSub
+ ; const initializer
+
+ .section .bss
+
+ .global s_VramTransferManager
+s_VramTransferManager: ; 0x021CCD58
+ .space 0x14
+
+ .section .text
+
+ arm_func_start NNS_GfdRegisterNewVramTransferTask
+NNS_GfdRegisterNewVramTransferTask: ; 0x020AEE40
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020AEEB4 ; =s_VramTransferManager
+ mov r9, r0
+ mov r0, r5
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ bl IsVramTransferTaskQueueFull_
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+ mov r0, r5
+ bl NNSi_GfdGetEndVramTransferTaskQueue
+ mov r4, r0
+ str r9, [r4, #0x0]
+ str r7, [r4, #0x4]
+ str r8, [r4, #0x8]
+ mov r0, r5
+ str r6, [r4, #0xc]
+ bl NNSi_GfdPushVramTransferTaskQueue
+ ldr r2, [r5, #0x10]
+ ldr r1, [r4, #0xc]
+ mov r0, #0x1
+ add r1, r2, r1
+ str r1, [r5, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020AEEB4: .word s_VramTransferManager
+ arm_func_end NNS_GfdRegisterNewVramTransferTask
+
+ arm_func_start NNS_GfdDoVramTransfer
+NNS_GfdDoVramTransfer: ; 0x020AEEB8
+ stmdb sp!, {r4-r6,lr}
+ ldr r6, _020AEF18 ; =s_VramTransferManager
+ mov r0, r6
+ bl NNSi_GfdGetFrontVramTransferTaskQueue
+ mov r5, r0
+ mov r0, r6
+ bl NNSi_GfdPopVramTransferTaskQueue
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ add r4, r6, #0x10
+_020AEEE0:
+ mov r0, r5
+ bl DoTransfer_
+ ldr r2, [r4, #0x0]
+ ldr r1, [r5, #0xc]
+ mov r0, r6
+ sub r1, r2, r1
+ str r1, [r4, #0x0]
+ bl NNSi_GfdGetFrontVramTransferTaskQueue
+ mov r5, r0
+ mov r0, r6
+ bl NNSi_GfdPopVramTransferTaskQueue
+ cmp r0, #0x0
+ bne _020AEEE0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AEF18: .word s_VramTransferManager
+ arm_func_end NNS_GfdDoVramTransfer
+
+ arm_func_start NNS_GfdInitVramTransferManager
+NNS_GfdInitVramTransferManager: ; 0x020AEF1C
+ ldr r2, _020AEF34 ; =s_VramTransferManager
+ ldr ip, _020AEF38 ; =ResetTaskQueue_
+ str r0, [r2, #0x0]
+ mov r0, r2
+ str r1, [r2, #0x4]
+ bx r12
+ .balign 4
+_020AEF34: .word s_VramTransferManager
+_020AEF38: .word ResetTaskQueue_
+ arm_func_end NNS_GfdInitVramTransferManager
+
+ arm_func_start NNSi_GfdPopVramTransferTaskQueue
+NNSi_GfdPopVramTransferTaskQueue: ; 0x020AEF3C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl IsVramTransferTaskQueueEmpty_
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ ldrh r1, [r4, #0x8]
+ mov r0, r4
+ bl GetNextIndex_
+ strh r0, [r4, #0x8]
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ sub r1, r1, #0x1
+ strh r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+ arm_func_end NNSi_GfdPopVramTransferTaskQueue
+
+ arm_func_start NNSi_GfdGetEndVramTransferTaskQueue
+NNSi_GfdGetEndVramTransferTaskQueue: ; 0x020AEF78
+ ldrh r1, [r0, #0xa]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r1, lsl #0x4
+ bx lr
+ arm_func_end NNSi_GfdGetEndVramTransferTaskQueue
+
+ arm_func_start NNSi_GfdGetFrontVramTransferTaskQueue
+NNSi_GfdGetFrontVramTransferTaskQueue: ; 0x020AEF88
+ ldrh r1, [r0, #0x8]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r1, lsl #0x4
+ bx lr
+ arm_func_end NNSi_GfdGetFrontVramTransferTaskQueue
+
+ arm_func_start NNSi_GfdPushVramTransferTaskQueue
+NNSi_GfdPushVramTransferTaskQueue: ; 0x020AEF98
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl IsVramTransferTaskQueueFull_
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ ldrh r1, [r4, #0xa]
+ mov r0, r4
+ bl GetNextIndex_
+ strh r0, [r4, #0xa]
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ add r1, r1, #0x1
+ strh r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+ arm_func_end NNSi_GfdPushVramTransferTaskQueue
+
+ arm_func_start ResetTaskQueue_
+ResetTaskQueue_: ; 0x020AEFD4
+ mov r2, #0x0
+ strh r2, [r0, #0xa]
+ ldrh r1, [r0, #0xa]
+ strh r1, [r0, #0x8]
+ strh r2, [r0, #0xc]
+ str r2, [r0, #0x10]
+ bx lr
+ arm_func_end ResetTaskQueue_
+
+ arm_func_start DoTransfer_
+DoTransfer_: ; 0x020AEFF0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r3, [r5, #0x0]
+ ldr r2, _020AF02C ; =transFunc$7934
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0xc]
+ ldr r4, [r2, r3, lsl #0x2]
+ bl DC_FlushRange
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0xc]
+ blx r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AF02C: .word transFunc$7934
+ arm_func_end DoTransfer_
+DoTransfer2dObjCharSub:
+ ldr ip, _020AF038 ; =GXS_LoadOBJ
+ bx r12
+ .balign 4
+_020AF038: .word GXS_LoadOBJ
+ arm_func_end DoTransfer2dObjCharSub
+
+ arm_func_start DoTransfer2dObjOamSub
+DoTransfer2dObjOamSub: ; 0x020AF03C
+ ldr ip, _020AF044 ; =GXS_LoadOAM
+ bx r12
+ .balign 4
+_020AF044: .word GXS_LoadOAM
+ arm_func_end DoTransfer2dObjOamSub
+
+ arm_func_start DoTransfer2dBGExtPlttSub
+DoTransfer2dBGExtPlttSub: ; 0x020AF048
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GXS_BeginLoadBGExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
+ ldmia sp!, {r4-r6,pc}
+ arm_func_end DoTransfer2dBGExtPlttSub
+
+ arm_func_start DoTransfer2dObjExtPlttSub
+DoTransfer2dObjExtPlttSub: ; 0x020AF074
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GXS_BeginLoadOBJExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
+ ldmia sp!, {r4-r6,pc}
+ arm_func_end DoTransfer2dObjExtPlttSub
+
+ arm_func_start DoTransfer2dBGPlttSub
+DoTransfer2dBGPlttSub: ; 0x020AF0A0
+ ldr ip, _020AF0A8 ; =GXS_LoadBGPltt
+ bx r12
+ .balign 4
+_020AF0A8: .word GXS_LoadBGPltt
+ arm_func_end DoTransfer2dBGPlttSub
+
+ arm_func_start DoTransfer2dObjPlttSub
+DoTransfer2dObjPlttSub: ; 0x020AF0AC
+ ldr ip, _020AF0B4 ; =GXS_LoadOBJPltt
+ bx r12
+ .balign 4
+_020AF0B4: .word GXS_LoadOBJPltt
+ arm_func_end DoTransfer2dObjPlttSub
+
+ arm_func_start DoTransfer2dBG3BmpSub
+DoTransfer2dBG3BmpSub: ; 0x020AF0B8
+ ldr ip, _020AF0C0 ; =GXS_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF0C0: .word GXS_LoadBG3Scr
+ arm_func_end DoTransfer2dBG3BmpSub
+
+ arm_func_start DoTransfer2dBG2BmpSub
+DoTransfer2dBG2BmpSub: ; 0x020AF0C4
+ ldr ip, _020AF0CC ; =GXS_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF0CC: .word GXS_LoadBG2Scr
+ arm_func_end DoTransfer2dBG2BmpSub
+
+ arm_func_start DoTransfer2dBG3ScrSub
+DoTransfer2dBG3ScrSub: ; 0x020AF0D0
+ ldr ip, _020AF0D8 ; =GXS_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF0D8: .word GXS_LoadBG3Scr
+ arm_func_end DoTransfer2dBG3ScrSub
+
+ arm_func_start DoTransfer2dBG2ScrSub
+DoTransfer2dBG2ScrSub: ; 0x020AF0DC
+ ldr ip, _020AF0E4 ; =GXS_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF0E4: .word GXS_LoadBG2Scr
+ arm_func_end DoTransfer2dBG2ScrSub
+
+ arm_func_start DoTransfer2dBG1ScrSub
+DoTransfer2dBG1ScrSub: ; 0x020AF0E8
+ ldr ip, _020AF0F0 ; =GXS_LoadBG1Scr
+ bx r12
+ .balign 4
+_020AF0F0: .word GXS_LoadBG1Scr
+ arm_func_end DoTransfer2dBG1ScrSub
+
+ arm_func_start DoTransfer2dBG0ScrSub
+DoTransfer2dBG0ScrSub: ; 0x020AF0F4
+ ldr ip, _020AF0FC ; =GXS_LoadBG0Scr
+ bx r12
+ .balign 4
+_020AF0FC: .word GXS_LoadBG0Scr
+ arm_func_end DoTransfer2dBG0ScrSub
+
+ arm_func_start DoTransfer2dBG3CharSub
+DoTransfer2dBG3CharSub: ; 0x020AF100
+ ldr ip, _020AF108 ; =GXS_LoadBG3Char
+ bx r12
+ .balign 4
+_020AF108: .word GXS_LoadBG3Char
+ arm_func_end DoTransfer2dBG3CharSub
+
+ arm_func_start DoTransfer2dBG2CharSub
+DoTransfer2dBG2CharSub: ; 0x020AF10C
+ ldr ip, _020AF114 ; =GXS_LoadBG2Char
+ bx r12
+ .balign 4
+_020AF114: .word GXS_LoadBG2Char
+ arm_func_end DoTransfer2dBG2CharSub
+
+ arm_func_start DoTransfer2dBG1CharSub
+DoTransfer2dBG1CharSub: ; 0x020AF118
+ ldr ip, _020AF120 ; =GXS_LoadBG1Char
+ bx r12
+ .balign 4
+_020AF120: .word GXS_LoadBG1Char
+ arm_func_end DoTransfer2dBG1CharSub
+
+ arm_func_start DoTransfer2dBG0CharSub
+DoTransfer2dBG0CharSub: ; 0x020AF124
+ ldr ip, _020AF12C ; =GXS_LoadBG0Char
+ bx r12
+ .balign 4
+_020AF12C: .word GXS_LoadBG0Char
+ arm_func_end DoTransfer2dBG0CharSub
+
+ arm_func_start DoTransfer2dObjCharMain
+DoTransfer2dObjCharMain: ; 0x020AF130
+ ldr ip, _020AF138 ; =GX_LoadOBJ
+ bx r12
+ .balign 4
+_020AF138: .word GX_LoadOBJ
+ arm_func_end DoTransfer2dObjCharMain
+
+ arm_func_start DoTransfer2dObjOamMain
+DoTransfer2dObjOamMain: ; 0x020AF13C
+ ldr ip, _020AF144 ; =GX_LoadOAM
+ bx r12
+ .balign 4
+_020AF144: .word GX_LoadOAM
+ arm_func_end DoTransfer2dObjOamMain
+
+ arm_func_start DoTransfer2dBGExtPlttMain
+DoTransfer2dBGExtPlttMain: ; 0x020AF148
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadBGExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
+ ldmia sp!, {r4-r6,pc}
+ arm_func_end DoTransfer2dBGExtPlttMain
+
+ arm_func_start DoTransfer2dObjExtPlttMain
+DoTransfer2dObjExtPlttMain: ; 0x020AF174
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadOBJExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
+ ldmia sp!, {r4-r6,pc}
+ arm_func_end DoTransfer2dObjExtPlttMain
+
+ arm_func_start DoTransfer2dBGPlttMain
+DoTransfer2dBGPlttMain: ; 0x020AF1A0
+ ldr ip, _020AF1A8 ; =GX_LoadBGPltt
+ bx r12
+ .balign 4
+_020AF1A8: .word GX_LoadBGPltt
+ arm_func_end DoTransfer2dBGPlttMain
+
+ arm_func_start DoTransfer2dObjPlttMain
+DoTransfer2dObjPlttMain: ; 0x020AF1AC
+ ldr ip, _020AF1B4 ; =GX_LoadOBJPltt
+ bx r12
+ .balign 4
+_020AF1B4: .word GX_LoadOBJPltt
+ arm_func_end DoTransfer2dObjPlttMain
+
+ arm_func_start DoTransfer2dBG3BmpMain
+DoTransfer2dBG3BmpMain: ; 0x020AF1B8
+ ldr ip, _020AF1C0 ; =GX_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF1C0: .word GX_LoadBG3Scr
+ arm_func_end DoTransfer2dBG3BmpMain
+
+ arm_func_start DoTransfer2dBG2BmpMain
+DoTransfer2dBG2BmpMain: ; 0x020AF1C4
+ ldr ip, _020AF1CC ; =GX_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF1CC: .word GX_LoadBG2Scr
+ arm_func_end DoTransfer2dBG2BmpMain
+
+ arm_func_start DoTransfer2dBG3ScrMain
+DoTransfer2dBG3ScrMain: ; 0x020AF1D0
+ ldr ip, _020AF1D8 ; =GX_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF1D8: .word GX_LoadBG3Scr
+ arm_func_end DoTransfer2dBG3ScrMain
+
+ arm_func_start DoTransfer2dBG2ScrMain
+DoTransfer2dBG2ScrMain: ; 0x020AF1DC
+ ldr ip, _020AF1E4 ; =GX_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF1E4: .word GX_LoadBG2Scr
+ arm_func_end DoTransfer2dBG2ScrMain
+
+ arm_func_start DoTransfer2dBG1ScrMain
+DoTransfer2dBG1ScrMain: ; 0x020AF1E8
+ ldr ip, _020AF1F0 ; =GX_LoadBG1Scr
+ bx r12
+ .balign 4
+_020AF1F0: .word GX_LoadBG1Scr
+ arm_func_end DoTransfer2dBG1ScrMain
+
+ arm_func_start DoTransfer2dBG0ScrMain
+DoTransfer2dBG0ScrMain: ; 0x020AF1F4
+ ldr ip, _020AF1FC ; =GX_LoadBG0Scr
+ bx r12
+ .balign 4
+_020AF1FC: .word GX_LoadBG0Scr
+ arm_func_end DoTransfer2dBG0ScrMain
+
+ arm_func_start DoTransfer2dBG3CharMain
+DoTransfer2dBG3CharMain: ; 0x020AF200
+ ldr ip, _020AF208 ; =GX_LoadBG3Char
+ bx r12
+ .balign 4
+_020AF208: .word GX_LoadBG3Char
+ arm_func_end DoTransfer2dBG3CharMain
+
+ arm_func_start DoTransfer2dBG2CharMain
+DoTransfer2dBG2CharMain: ; 0x020AF20C
+ ldr ip, _020AF214 ; =GX_LoadBG2Char
+ bx r12
+ .balign 4
+_020AF214: .word GX_LoadBG2Char
+ arm_func_end DoTransfer2dBG2CharMain
+
+ arm_func_start DoTransfer2dBG1CharMain
+DoTransfer2dBG1CharMain: ; 0x020AF218
+ ldr ip, _020AF220 ; =GX_LoadBG1Char
+ bx r12
+ .balign 4
+_020AF220: .word GX_LoadBG1Char
+ arm_func_end DoTransfer2dBG1CharMain
+
+ arm_func_start DoTransfer2dBG0CharMain
+DoTransfer2dBG0CharMain: ; 0x020AF224
+ ldr ip, _020AF22C ; =GX_LoadBG0Char
+ bx r12
+ .balign 4
+_020AF22C: .word GX_LoadBG0Char
+ arm_func_end DoTransfer2dBG0CharMain
+
+ arm_func_start DoTransfer3dClearImageDepth
+DoTransfer3dClearImageDepth: ; 0x020AF230
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl GX_BeginLoadClearImage
+ mov r0, r5
+ mov r1, r4
+ bl GX_LoadClearImageDepth
+ bl GX_EndLoadClearImage
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ arm_func_end DoTransfer3dClearImageDepth
+
+ arm_func_start DoTransfer3dClearImageColor
+DoTransfer3dClearImageColor: ; 0x020AF25C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl GX_BeginLoadClearImage
+ mov r0, r5
+ mov r1, r4
+ bl GX_LoadClearImageColor
+ bl GX_EndLoadClearImage
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ arm_func_end DoTransfer3dClearImageColor
+
+ arm_func_start DoTransfer3dTexPltt
+DoTransfer3dTexPltt: ; 0x020AF288
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadTexPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadTexPltt
+ bl GX_EndLoadTexPltt
+ ldmia sp!, {r4-r6,pc}
+ arm_func_end DoTransfer3dTexPltt
+
+ arm_func_start DoTransfer3dTex
+DoTransfer3dTex: ; 0x020AF2B4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadTex
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadTex
+ bl GX_EndLoadTex
+ ldmia sp!, {r4-r6,pc}
+ arm_func_end DoTransfer3dTex
+
+ arm_func_start IsVramTransferTaskQueueEmpty_
+IsVramTransferTaskQueueEmpty_: ; 0x020AF2E0
+ ldrh r0, [r0, #0xc]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+ arm_func_end IsVramTransferTaskQueueEmpty_
+
+ arm_func_start IsVramTransferTaskQueueFull_
+IsVramTransferTaskQueueFull_: ; 0x020AF2F4
+ ldrh r1, [r0, #0xc]
+ ldr r0, [r0, #0x4]
+ cmp r1, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+ arm_func_end IsVramTransferTaskQueueFull_
+
+ arm_func_start GetNextIndex_
+GetNextIndex_: ; 0x020AF30C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r0
+ add r0, r1, #0x1
+ ldr r1, [r2, #0x4]
+ bl _u32_div_f
+ mov r0, r1, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ arm_func_end GetNextIndex_