aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxgpu
diff options
context:
space:
mode:
authorJohn "Lameguy" Wilbert Villamor <lameguy64@gmail.com>2022-03-25 09:22:20 +0800
committerGitHub <noreply@github.com>2022-03-25 09:22:20 +0800
commit975e614b3c840e2f717adac1d1cb9cee4e5e561b (patch)
tree6584ce5b0dbe27a466c95c81fac61b0d90f627bd /libpsn00b/psxgpu
parent05d44488bd5587786f4bd0286fc0f555c79aa46a (diff)
parent45168ae43e29aa5930ee5a206475ae836078915f (diff)
downloadpsn00bsdk-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.s8
-rw-r--r--libpsn00b/psxgpu/drawotag.s10
-rw-r--r--libpsn00b/psxgpu/drawprim.s4
-rw-r--r--libpsn00b/psxgpu/drawsync.s4
-rw-r--r--libpsn00b/psxgpu/drawsynccallback.s4
-rw-r--r--libpsn00b/psxgpu/loadimage.s20
-rw-r--r--libpsn00b/psxgpu/putdispenv.s8
-rw-r--r--libpsn00b/psxgpu/putdispenvraw.s10
-rw-r--r--libpsn00b/psxgpu/readgpustat.s4
-rw-r--r--libpsn00b/psxgpu/resetgraph.s36
-rw-r--r--libpsn00b/psxgpu/setdispmask.s4
-rw-r--r--libpsn00b/psxgpu/setvideomode.s2
-rw-r--r--libpsn00b/psxgpu/storeimage.s20
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)