diff options
| author | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-06-23 07:42:16 +0800 |
|---|---|---|
| committer | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-06-23 07:42:16 +0800 |
| commit | 7be9178c0f9b0e698a305ecc5c0c41fcc596a4fc (patch) | |
| tree | e98c627e1da5c764563774b89b0c06d7ac5ad0a4 /libpsn00b/psxgpu/drawsync.s | |
| parent | ae9e545c3ed33d39ce21ae13ceb8337fa34901b8 (diff) | |
| download | psn00bsdk-7be9178c0f9b0e698a305ecc5c0c41fcc596a4fc.tar.gz | |
LibPSn00b officially v0.10b, added psxsio library, better DrawSync() and VSync(), better reference manual.
Diffstat (limited to 'libpsn00b/psxgpu/drawsync.s')
| -rw-r--r-- | libpsn00b/psxgpu/drawsync.s | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/libpsn00b/psxgpu/drawsync.s b/libpsn00b/psxgpu/drawsync.s index 149519d..66d37e2 100644 --- a/libpsn00b/psxgpu/drawsync.s +++ b/libpsn00b/psxgpu/drawsync.s @@ -8,19 +8,60 @@ .global DrawSync .type DrawSync, @function DrawSync: + + bnez $a0, .Lgetwords + lui $a0, IOBASE + addiu $sp, -4 sw $ra, 0($sp) -.gpu_wait: # Wait for GPU to be ready for commands and DMA + jal ReadGPUstat # Check if DMA enabled + nop + srl $v0, 29 + andi $v0, 0x3 + + beqz $v0, .Lsimple_wait + nop + +.Ldma_wait: + lw $v0, D2_CHCR + nop + srl $v0, 24 + andi $v0, 0x1 + bnez $v0, .Ldma_wait + nop + +.Lgpu_wait: jal ReadGPUstat nop - srl $v0, 0x1a + srl $v0, 26 andi $v0, 0x5 - li $v1, 5 - bne $v0, $v1, .gpu_wait + bne $v0, 5, .Lgpu_wait + nop + + b .Lexit nop + +.Lsimple_wait: # Wait for GPU to be ready for next DMA + jal ReadGPUstat + nop + srl $v0, 28 + andi $v0, 0x1 + beqz $v0, .Lsimple_wait + nop + +.Lexit: lw $ra, 0($sp) addiu $sp, 4 jr $ra nop + +.Lgetwords: + + lw $v0, D2_BCR($a0) + nop + + jr $ra + srl $v0, 16 +
\ No newline at end of file |
