diff options
| author | John "Lameguy" Wilbert Villamor <lameguy64@gmail.com> | 2022-03-25 09:22:20 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-25 09:22:20 +0800 |
| commit | 975e614b3c840e2f717adac1d1cb9cee4e5e561b (patch) | |
| tree | 6584ce5b0dbe27a466c95c81fac61b0d90f627bd /libpsn00b/psxgpu | |
| parent | 05d44488bd5587786f4bd0286fc0f555c79aa46a (diff) | |
| parent | 45168ae43e29aa5930ee5a206475ae836078915f (diff) | |
| download | psn00bsdk-975e614b3c840e2f717adac1d1cb9cee4e5e561b.tar.gz | |
Merge pull request #46 from spicyjpeg/psxmdec
Critical ldscript fixes, initial MDEC support and CI updates
Diffstat (limited to 'libpsn00b/psxgpu')
| -rw-r--r-- | libpsn00b/psxgpu/clearotagr.s | 8 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/drawotag.s | 10 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/drawprim.s | 4 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/drawsync.s | 4 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/drawsynccallback.s | 4 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/loadimage.s | 20 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/putdispenv.s | 8 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/putdispenvraw.s | 10 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/readgpustat.s | 4 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/resetgraph.s | 36 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/setdispmask.s | 4 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/setvideomode.s | 2 | ||||
| -rw-r--r-- | libpsn00b/psxgpu/storeimage.s | 20 |
13 files changed, 67 insertions, 67 deletions
diff --git a/libpsn00b/psxgpu/clearotagr.s b/libpsn00b/psxgpu/clearotagr.s index 3e888f1..562cad4 100644 --- a/libpsn00b/psxgpu/clearotagr.s +++ b/libpsn00b/psxgpu/clearotagr.s @@ -8,14 +8,14 @@ .global ClearOTagR .type ClearOTagR, @function ClearOTagR: - lui $a2, 0x1f80 + lui $a2, IOBASE addi $v0, $a1, -1 sll $v0, 2 addu $a0, $v0 - sw $a0, D6_MADR($a2) + sw $a0, DMA6_MADR($a2) andi $a1, 0xffff - sw $a1, D6_BCR($a2) + sw $a1, DMA6_BCR($a2) lui $v0, 0x1100 addiu $v0, 2 jr $ra - sw $v0, D6_CHCR($a2) + sw $v0, DMA6_CHCR($a2) diff --git a/libpsn00b/psxgpu/drawotag.s b/libpsn00b/psxgpu/drawotag.s index ba771fc..3cb0db0 100644 --- a/libpsn00b/psxgpu/drawotag.s +++ b/libpsn00b/psxgpu/drawotag.s @@ -11,11 +11,11 @@ DrawOTag: addiu $sp, -4 sw $ra, 0($sp) - lui $a3, 0x1f80 # I/O segment base + lui $a3, IOBASE # I/O segment base lui $v0, 0x0400 # Set DMA direction to CPUtoGPU ori $v0, 0x2 - sw $v0, GP1($a3) + sw $v0, GPU_GP1($a3) .Lgpu_wait: # Wait for GPU to be ready for commands & DMA jal ReadGPUstat @@ -25,12 +25,12 @@ DrawOTag: beqz $v0, .Lgpu_wait nop - sw $a0, D2_MADR($a3) # Set DMA base address to specified OT - sw $0 , D2_BCR($a3) + sw $a0, DMA2_MADR($a3) # Set DMA base address to specified OT + sw $0 , DMA2_BCR($a3) lui $v0, 0x0100 # Begin OT transfer! ori $v0, 0x0401 - sw $v0, D2_CHCR($a3) + sw $v0, DMA2_CHCR($a3) lw $ra, 0($sp) addiu $sp, 4 diff --git a/libpsn00b/psxgpu/drawprim.s b/libpsn00b/psxgpu/drawprim.s index de5afbd..d62c202 100644 --- a/libpsn00b/psxgpu/drawprim.s +++ b/libpsn00b/psxgpu/drawprim.s @@ -18,7 +18,7 @@ DrawPrim: lui $a3, IOBASE lui $v0, 0x0400 # Set transfer direction to off - sw $v0, GP1($a3) + sw $v0, GPU_GP1($a3) move $a0, $s0 lbu $a1, 3($a0) # Get length of primitive packet @@ -28,7 +28,7 @@ DrawPrim: .Ltransfer_loop: lw $v0, 0($a0) addiu $a0, 4 - sw $v0, GP0($a3) + sw $v0, GPU_GP0($a3) bgtz $a1, .Ltransfer_loop addiu $a1, -1 diff --git a/libpsn00b/psxgpu/drawsync.s b/libpsn00b/psxgpu/drawsync.s index 2e29381..b671b03 100644 --- a/libpsn00b/psxgpu/drawsync.s +++ b/libpsn00b/psxgpu/drawsync.s @@ -24,7 +24,7 @@ DrawSync: nop .Ldma_wait: - lw $v0, D2_CHCR($a0) + lw $v0, DMA2_CHCR($a0) nop srl $v0, 24 andi $v0, 0x1 @@ -59,7 +59,7 @@ DrawSync: .Lgetwords: - lw $v0, D2_BCR($a0) + lw $v0, DMA2_BCR($a0) nop jr $ra diff --git a/libpsn00b/psxgpu/drawsynccallback.s b/libpsn00b/psxgpu/drawsynccallback.s index 37c0375..22cfb7d 100644 --- a/libpsn00b/psxgpu/drawsynccallback.s +++ b/libpsn00b/psxgpu/drawsynccallback.s @@ -64,7 +64,7 @@ _drawsync_handler: addiu $sp, -4 sw $ra, 0($sp) - lw $v0, D2_CHCR($a0) + lw $v0, DMA2_CHCR($a0) nop srl $v0, 24 andi $v0, 0x1 @@ -84,7 +84,7 @@ _drawsync_handler: lw $v1, 0($v1) lui $v0, 0x0400 # Set DMA direction to off - sw $v0, GP1($a0) + sw $v0, GPU_GP1($a0) jalr $v1 nop diff --git a/libpsn00b/psxgpu/loadimage.s b/libpsn00b/psxgpu/loadimage.s index 4a3b4e0..45f152f 100644 --- a/libpsn00b/psxgpu/loadimage.s +++ b/libpsn00b/psxgpu/loadimage.s @@ -17,7 +17,7 @@ LoadImage: sw $ra, 0($sp) sw $s0, 4($sp) - lui $s0, 0x1f80 # Set I/O segment base address + lui $s0, IOBASE # Set I/O segment base address .Lgpu_wait: # Wait for GPU to be ready for commands and DMA jal ReadGPUstat @@ -31,21 +31,21 @@ LoadImage: nop lui $v0, 0x400 # Set DMA direction to off - sw $v0, GP1($s0) + sw $v0, GPU_GP1($s0) lui $v0, 0x0100 # Clear GPU cache - sw $v0, GP0($s0) + sw $v0, GPU_GP0($s0) lui $v1, 0xa000 # Load image to VRAM - sw $v1, GP0($s0) + sw $v1, GPU_GP0($s0) lw $v0, RECT_x($a0) # Set XY and dimensions of image lw $v1, RECT_w($a0) - sw $v0, GP0($s0) - sw $v1, GP0($s0) + sw $v0, GPU_GP0($s0) + sw $v1, GPU_GP0($s0) lui $v0, 0x400 # Set DMA direction to CPUtoVRAM ori $v0, 0x2 - sw $v0, GP1($s0) + sw $v0, GPU_GP1($s0) lhu $v0, RECT_w($a0) # Get rectangle size lhu $v1, RECT_h($a0) @@ -56,12 +56,12 @@ LoadImage: sll $v1, 0x10 ori $v1, 0x8 - sw $a1, D2_MADR($s0) # Set DMA base address and transfer length - sw $v1, D2_BCR($s0) + sw $a1, DMA2_MADR($s0) # Set DMA base address and transfer length + sw $v1, DMA2_BCR($s0) lui $v0, 0x100 # Start DMA transfer ori $v0, 0x201 - sw $v0, D2_CHCR($s0) + sw $v0, DMA2_CHCR($s0) lw $ra, 0($sp) lw $s0, 4($sp) diff --git a/libpsn00b/psxgpu/putdispenv.s b/libpsn00b/psxgpu/putdispenv.s index 4baa20e..fc09454 100644 --- a/libpsn00b/psxgpu/putdispenv.s +++ b/libpsn00b/psxgpu/putdispenv.s @@ -102,7 +102,7 @@ PutDispEnv: or $a2, $v0 lui $v0, 0x0600 or $v0, $a2 - sw $v0, GP1($a3) + sw $v0, GPU_GP1($a3) # Vertical resolution @@ -127,7 +127,7 @@ PutDispEnv: or $v1, $a2 lui $v0, 0x0700 or $v1, $v0 - sw $v1, GP1($a3) + sw $v1, GPU_GP1($a3) # Video mode @@ -159,7 +159,7 @@ PutDispEnv: lui $v0, 0x800 # Apply mode or $a1, $v0 - sw $a1, GP1($a3) + sw $a1, GPU_GP1($a3) lhu $v0, DISP_dx($a0) # Set VRAM XY offset lhu $v1, DISP_dy($a0) @@ -171,4 +171,4 @@ PutDispEnv: or $v0, $v1 jr $ra - sw $v0, GP1($a3) + sw $v0, GPU_GP1($a3) diff --git a/libpsn00b/psxgpu/putdispenvraw.s b/libpsn00b/psxgpu/putdispenvraw.s index 157150d..747796f 100644 --- a/libpsn00b/psxgpu/putdispenvraw.s +++ b/libpsn00b/psxgpu/putdispenvraw.s @@ -19,7 +19,7 @@ PutDispEnvRaw: sw $ra, 0($sp) sw $s0, 4($sp) - lui $s0, 0x1f80 + lui $s0, IOBASE lh $at, DISP_vxpos($a0) # Set horizontal display range li $v0, 608 @@ -30,7 +30,7 @@ PutDispEnvRaw: or $v0, $v1 lui $v1, 0x600 or $v1, $v0 - sw $v1, GP1($s0) + sw $v1, GPU_GP1($s0) lh $at, DISP_vypos($a0) # Set vertical display range (for NTSC) li $v1, 120 # (values differet for PAL modes) @@ -47,12 +47,12 @@ PutDispEnvRaw: or $v0, $at lui $at, 0x700 or $v0, $at - sw $v0, GP1($s0) + sw $v0, GPU_GP1($s0) lw $v0, DISP_mode($a0) # Set video mode lui $at, 0x800 or $v0, $at - sw $v0, GP1($s0) + sw $v0, GPU_GP1($s0) lhu $v0, DISP_fbx($a0) # Set VRAM XY offset lhu $v1, DISP_fby($a0) @@ -62,7 +62,7 @@ PutDispEnvRaw: or $v0, $v1 lui $v1, 0x500 or $v0, $v1 - sw $v0, GP1($s0) + sw $v0, GPU_GP1($s0) lw $ra, 0($sp) lw $s0, 4($sp) diff --git a/libpsn00b/psxgpu/readgpustat.s b/libpsn00b/psxgpu/readgpustat.s index c587cfb..ffff4d7 100644 --- a/libpsn00b/psxgpu/readgpustat.s +++ b/libpsn00b/psxgpu/readgpustat.s @@ -8,7 +8,7 @@ .global ReadGPUstat .type ReadGPUstat, @function ReadGPUstat: - lui $v0, 0x1f80 - lw $v0, GP1($v0) + lui $v0, IOBASE + lw $v0, GPU_GP1($v0) jr $ra nop diff --git a/libpsn00b/psxgpu/resetgraph.s b/libpsn00b/psxgpu/resetgraph.s index f469fbe..6327f02 100644 --- a/libpsn00b/psxgpu/resetgraph.s +++ b/libpsn00b/psxgpu/resetgraph.s @@ -38,14 +38,14 @@ ResetGraph: nop # interrupts enabled when transferring # execution to the loaded program - lui $a3, 0x1f80 # Base address for I/O + lui $a3, IOBASE # Base address for I/O lui $v0, 0x3b33 # Enables DMA channel 6 (for ClearOTag) ori $v0, 0x3b33 # Enables DMA channel 2 - sw $v0, DPCR($a3) - sw $0 , DICR($a3) # Clear DICR (not needed) + sw $v0, DMA_DPCR($a3) + sw $0 , DMA_DICR($a3) # Clear DICR (not needed) - sw $0 , IMASK($a3) # Clear IRQ settings + sw $0 , IRQ_MASK($a3) # Clear IRQ settings la $v0, _hooks_installed # Set installed flag li $v1, 0x1 @@ -84,9 +84,9 @@ ResetGraph: .Lskip_hook_init: - lui $a3, 0x1f80 + lui $a3, IOBASE - lw $v0, GP1($a3) # Get video standard + lw $v0, GPU_GP1($a3) # Get video standard lui $v1, 0x0010 and $v0, $v1 la $v1, _gpu_standard @@ -98,30 +98,30 @@ ResetGraph: lw $a0, 4($sp) # Get argument value - lui $a3, 0x1f80 # Set base I/O again (likely destroyed + lui $a3, IOBASE # Set base I/O again (likely destroyed # by previous calls) li $v0, 0x1d00 # Configure timer 1 as Hblank counter - sw $v0, T1_MODE($a3) # Set timer 1 value + sw $v0, TIMER1_CTRL($a3) # Set timer 1 value beq $a0, 1, .Lgpu_init_1 nop beq $a0, 3, .Lgpu_init_3 nop - sw $0 , GP1($a3) # Reset the GPU + sw $0 , GPU_GP1($a3) # Reset the GPU b .Linit_done nop .Lgpu_init_1: - sw $0 , D2_CHCR($a3) # Stop any DMA + sw $0 , DMA2_CHCR($a3) # Stop any DMA .Lgpu_init_3: li $v0, 0x1 # Reset the command buffer - sw $v0, GP1($a3) + sw $v0, GPU_GP1($a3) .Linit_done: @@ -140,12 +140,12 @@ VSync: sw $s0, 4($sp) lui $a3, IOBASE # Get GPU status (for interlace sync) - lw $s0, GP1($a3) + lw $s0, GPU_GP1($a3) .Lhwait_loop: # Get Hblank time - lw $v0, T1_CNT($a3) + lw $v0, TIMER1_VALUE($a3) nop - lw $v1, T1_CNT($a3) + lw $v1, TIMER1_VALUE($a3) nop bne $v0, $v1, .Lhwait_loop nop @@ -189,14 +189,14 @@ VSync: lui $a3, IOBASE # Interlace wait logic - lw $v0, GP1($a3) + lw $v0, GPU_GP1($a3) nop xor $v0, $s0, $v0 bltz $v0, .Lhblank_exit lui $a0, 0x8000 .Linterlace_wait: - lw $v0, GP1($a3) + lw $v0, GPU_GP1($a3) nop xor $v0, $s0, $v0 and $v0, $a0 @@ -208,9 +208,9 @@ VSync: la $a2, _vsync_lasthblank .Lhwait2_loop: - lw $v0, T1_CNT($a3) + lw $v0, TIMER1_VALUE($a3) nop - lw $v1, T1_CNT($a3) + lw $v1, TIMER1_VALUE($a3) sw $v0, 0($a2) bne $v0, $v1, .Lhwait2_loop nop diff --git a/libpsn00b/psxgpu/setdispmask.s b/libpsn00b/psxgpu/setdispmask.s index 77ceb04..d79006c 100644 --- a/libpsn00b/psxgpu/setdispmask.s +++ b/libpsn00b/psxgpu/setdispmask.s @@ -8,12 +8,12 @@ .global SetDispMask .type SetDispMask, @function SetDispMask: - lui $v1, 0x1f80 + lui $v1, IOBASE andi $a0, 0x1 lui $v0, 0x300 ori $v0, 0x1 sub $v0, $a0 - sw $v0, GP1($v1) + sw $v0, GPU_GP1($v1) jr $ra nop diff --git a/libpsn00b/psxgpu/setvideomode.s b/libpsn00b/psxgpu/setvideomode.s index 4395f0a..b89b285 100644 --- a/libpsn00b/psxgpu/setvideomode.s +++ b/libpsn00b/psxgpu/setvideomode.s @@ -41,7 +41,7 @@ SetVideoMode: lui $v0, 0x800 # Apply new mode or $a1, $v0 lui $v0, IOBASE - sw $a1, GP1($v0) + sw $a1, GPU_GP1($v0) lw $ra, 0($sp) addiu $sp, 4 diff --git a/libpsn00b/psxgpu/storeimage.s b/libpsn00b/psxgpu/storeimage.s index 5d4c793..554e83c 100644 --- a/libpsn00b/psxgpu/storeimage.s +++ b/libpsn00b/psxgpu/storeimage.s @@ -17,7 +17,7 @@ StoreImage: sw $ra, 0($sp) sw $s0, 4($sp) - lui $s0, 0x1f80 # Set I/O segment base address + lui $s0, IOBASE # Set I/O segment base address .Lgpu_wait: # Wait for GPU to be ready for commands and DMA jal ReadGPUstat @@ -29,21 +29,21 @@ StoreImage: nop lui $v0, 0x400 # Set DMA direction to off - sw $v0, GP1($s0) + sw $v0, GPU_GP1($s0) lui $v0, 0x0100 # Clear GPU cache - sw $v0, GP0($s0) + sw $v0, GPU_GP0($s0) lui $v1, 0xc000 # Store image from VRAM - sw $v1, GP0($s0) + sw $v1, GPU_GP0($s0) lw $v0, RECT_x($a0) # Set XY and dimensions of image lw $v1, RECT_w($a0) - sw $v0, GP0($s0) - sw $v1, GP0($s0) + sw $v0, GPU_GP0($s0) + sw $v1, GPU_GP0($s0) lui $v0, 0x400 # Set DMA direction to VRAMtoCPU ori $v0, 0x3 - sw $v0, GP1($s0) + sw $v0, GPU_GP1($s0) lhu $v0, RECT_w($a0) # Get rectangle size lhu $v1, RECT_h($a0) @@ -54,8 +54,8 @@ StoreImage: sll $v1, 0x10 ori $v1, 0x8 - sw $a1, D2_MADR($s0) # Set DMA base address and transfer length - sw $v1, D2_BCR($s0) + sw $a1, DMA2_MADR($s0) # Set DMA base address and transfer length + sw $v1, DMA2_BCR($s0) .Lgpu_wait_2: # Wait for GPU to be ready for commands and DMA jal ReadGPUstat @@ -67,7 +67,7 @@ StoreImage: lui $v0, 0x100 # Start DMA transfer ori $v0, 0x200 - sw $v0, D2_CHCR($s0) + sw $v0, DMA2_CHCR($s0) lw $ra, 0($sp) lw $s0, 4($sp) |
