diff options
| author | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2022-06-29 12:40:46 +0200 |
|---|---|---|
| committer | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2022-06-29 12:40:46 +0200 |
| commit | 6120304537470e7e5ff94b3bf19a33787ca69083 (patch) | |
| tree | f489c6dceae0846184dddd38444ef8519f799f7b /libpsn00b/psxgpu/putdispenv.s | |
| parent | 578181ace1374e72cb93d69d2c201ce7a0a2300c (diff) | |
| download | psn00bsdk-6120304537470e7e5ff94b3bf19a33787ca69083.tar.gz | |
Refactor libpsxgpu in C, add OT drawing queue
Diffstat (limited to 'libpsn00b/psxgpu/putdispenv.s')
| -rw-r--r-- | libpsn00b/psxgpu/putdispenv.s | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/libpsn00b/psxgpu/putdispenv.s b/libpsn00b/psxgpu/putdispenv.s deleted file mode 100644 index fc09454..0000000 --- a/libpsn00b/psxgpu/putdispenv.s +++ /dev/null @@ -1,174 +0,0 @@ -.set noreorder - -.include "hwregs_a.h" - -.set DISP_dx, 0 -.set DISP_dy, 2 -.set DISP_dw, 4 -.set DISP_dh, 6 -.set DISP_sx, 8 -.set DISP_sy, 10 -.set DISP_sw, 12 -.set DISP_sh, 14 -.set DISP_inter, 16 -.set DISP_isrgb24, 17 -.set DISP_reverse, 18 - -.section .text - - -.global PutDispEnv -.type PutDispEnv, @function -PutDispEnv: - - lui $a3, IOBASE - - # Horizontal resolution stuff - - lh $a2, DISP_dw($a0) # Get X resolution - - lh $v0, DISP_sx($a0) - lh $v1, DISP_sw($a0) # Get X screen width - - move $a1, $0 # To use as mode value - - bgt $a2, 560, .Lmode_640 - nop - bgt $a2, 400, .Lmode_512 - nop - bgt $a2, 352, .Lmode_384 - nop - bgt $a2, 280, .Lmode_320 - nop - - .set noat - -.Lmode_256: - li $at, 10 - mult $at, $v1 - li $a2, 0x24e - sll $v0, 2 - add $a2, $v0 - b .Lmode_end - li $v1, 0xa00 -.Lmode_320: - li $at, 8 - mult $at, $v1 - li $a2, 0x258 - ori $a1, 0x01 - sll $v0, 2 - add $a2, $v0 - b .Lmode_end - li $v1, 0xa00 -.Lmode_384: - li $at, 7 - mult $at, $v1 - li $a2, 0x21b - ori $a1, 0x64 - sll $v0, 2 - add $a2, $v0 - b .Lmode_end - li $v1, 0xa80 -.Lmode_512: - li $at, 5 - mult $at, $v1 - li $a2, 0x267 - ori $a1, 0x02 - sll $v0, 2 - add $a2, $v0 - b .Lmode_end - li $v1, 0xa00 -.Lmode_640: - li $at, 4 - mult $at, $v1 - li $a2, 0x26c - ori $a1, 0x03 - sll $v0, 2 - add $a2, $v0 - li $v1, 0xa00 -.Lmode_end: - - .set at - - mflo $v0 - bnez $v0, .Lno_default # Check if screen with is non zero - nop - move $v0, $v1 # Use default if screen width is 0 -.Lno_default: - - addu $v0, $a2 # Apply horizontal display coordinates - sll $v0, 12 - andi $a2, 0xfff - or $a2, $v0 - lui $v0, 0x0600 - or $v0, $a2 - sw $v0, GPU_GP1($a3) - - # Vertical resolution - - lh $v0, DISP_dh($a0) - li $a2, 0x10 - ble $v0, 256, .Lmode_low - nop - -.Lmode_high: - ori $a1, 0x04 -.Lmode_low: - lh $v0, DISP_sy($a0) - lh $v1, DISP_sh($a0) - add $a2, $v0 - bnez $v1, .Lno_default_vert - nop - li $v1, 0xf0 -.Lno_default_vert: - add $v1, $a2 - and $a2, 0x3ff - sll $v1, 10 - or $v1, $a2 - lui $v0, 0x0700 - or $v1, $v0 - sw $v1, GPU_GP1($a3) - - # Video mode - - la $v0, _gpu_standard - lbu $v0, 0($v0) - nop - beqz $v0, .Lconfig_ntsc - nop -.Lconfig_pal: - ori $a1, 0x08 -.Lconfig_ntsc: - - lbu $v0, DISP_inter($a0) - lbu $v1, DISP_isrgb24($a0) - beqz $v0, .Lno_inter - nop - or $a1, 0x20 -.Lno_inter: - beqz $v1, .Lno_rgb24 - nop - or $a1, 0x10 -.Lno_rgb24: - lbu $v0, DISP_inter($a0) - nop - beqz $v0, .Lno_reverse - nop - or $a1, 0x80 -.Lno_reverse: - - lui $v0, 0x800 # Apply mode - or $a1, $v0 - sw $a1, GPU_GP1($a3) - - lhu $v0, DISP_dx($a0) # Set VRAM XY offset - lhu $v1, DISP_dy($a0) - andi $v0, 0x3ff - andi $v1, 0x1ff - sll $v1, 10 - or $v0, $v1 - lui $v1, 0x500 - or $v0, $v1 - - jr $ra - sw $v0, GPU_GP1($a3) |
