46 lines
680 B
ArmAsm
46 lines
680 B
ArmAsm
|
.set noreorder
|
||
|
|
||
|
.include "gtereg.h"
|
||
|
|
||
|
.section .text
|
||
|
|
||
|
|
||
|
.global InitGeom
|
||
|
.type InitGeom, @function
|
||
|
InitGeom:
|
||
|
addiu $sp, -4
|
||
|
sw $ra, 0($sp)
|
||
|
|
||
|
jal EnterCriticalSection
|
||
|
nop
|
||
|
|
||
|
mfc0 $v0, $12 # Get SR
|
||
|
lui $v1, 0x4000 # Set bit to enable cop2
|
||
|
or $v0, $v1
|
||
|
mtc0 $v0, $12 # Set new SR
|
||
|
|
||
|
jal ExitCriticalSection
|
||
|
nop
|
||
|
|
||
|
ctc2 $0 , $24 # Reset GTE offset
|
||
|
ctc2 $0 , $25
|
||
|
|
||
|
li $v0, 320 # Set default projection plane
|
||
|
ctc2 $v0, $26
|
||
|
|
||
|
li $v0, 0x155 # Set ZSF3 and ZSF4 defaults
|
||
|
ctc2 $v0, $29
|
||
|
li $v0, 0x100
|
||
|
ctc2 $v0, $30
|
||
|
|
||
|
li $v0, 0xef9e # DQA and DQB defaults
|
||
|
lui $v1, 0x0140
|
||
|
ctc2 $v0, C2_DQA
|
||
|
ctc2 $v1, C2_DQB
|
||
|
|
||
|
lw $ra, 0($sp)
|
||
|
addiu $sp, 4
|
||
|
jr $ra
|
||
|
nop
|
||
|
|