restructured some files
This commit is contained in:
95
tools/ps2/defaultpipe.dsm
Normal file
95
tools/ps2/defaultpipe.dsm
Normal file
@ -0,0 +1,95 @@
|
||||
.global defaultPipe
|
||||
|
||||
.equ vertexTop, 0x3d0
|
||||
.equ numInAttribs, 4
|
||||
.equ numOutAttribs, 3
|
||||
.equ numOutBuf, 2
|
||||
.equ vertCount, ((vertexTop-numOutBuf)/(numInAttribs*2+numOutAttribs*numOutBuf))
|
||||
.equ offset, (vertCount*numInAttribs)
|
||||
.equ outBuf1, (2*offset)
|
||||
.equ outSize, ((vertexTop-outBuf1-2)/2)
|
||||
.equ outBuf2, (outBuf1+outSize)
|
||||
|
||||
.equ lightMat, 0x3d0
|
||||
.equ lightDir, 0x3d4
|
||||
.equ matrix, 0x3f0
|
||||
.equ screenOffset, 0x3f9
|
||||
.equ gifTag, 0x3fa
|
||||
.equ matColor, 0x3fb
|
||||
.equ ambientLight, 0x3fd
|
||||
|
||||
.balign 16,0
|
||||
defaultPipe:
|
||||
DMAret *
|
||||
MPG 0, *
|
||||
.vu
|
||||
Start:
|
||||
NOP LQ VF25, screenOffset(VI00)
|
||||
NOP LQ VF28, matrix(VI00)
|
||||
NOP LQ VF29, matrix+1(VI00)
|
||||
NOP LQ VF30, matrix+2(VI00)
|
||||
NOP LQ VF31, matrix+3(VI00)
|
||||
NOP IADDIU VI12, VI00, outBuf1
|
||||
NOP IADDIU VI13, VI00, outBuf2
|
||||
Cnt:
|
||||
NOP XTOP VI02 ; input pointer
|
||||
NOP LQ VF01, gifTag(VI00)
|
||||
NOP XITOP VI01 ; vertex count
|
||||
NOP IADDIU VI05, VI00, 0x4000
|
||||
NOP IADD VI05, VI05, VI05
|
||||
NOP IOR VI05, VI05, VI01
|
||||
NOP SQ VF01, 0(VI12)
|
||||
NOP ISW.x VI05, 0(VI12)
|
||||
NOP IADDIU VI03, VI12, 1 ; output pointer
|
||||
NOP LQ VF18, lightMat(VI00)
|
||||
NOP LQ VF19, lightMat+1(VI00)
|
||||
NOP LQ VF20, lightMat+2(VI00)
|
||||
|
||||
Loop:
|
||||
NOP LQI VF01, (VI02++) ; vertex
|
||||
NOP LQI VF02, (VI02++) ; UV
|
||||
NOP LQI VF03, (VI02++) ; color
|
||||
NOP LQI VF04, (VI02++) ; normal
|
||||
|
||||
MULAw.xyzw ACC, VF31, VF00w NOP ; transform vertex
|
||||
MADDAx.xyzw ACC, VF28, VF01x NOP
|
||||
MADDAy.xyzw ACC, VF29, VF01y NOP
|
||||
MADDz.xyzw VF01, VF30, VF01z NOP
|
||||
ITOF0 VF03, VF03 NOP
|
||||
ITOF0[I] VF04, VF04 LOI 0.0078125 ; - normal scale
|
||||
NOP NOP
|
||||
NOP DIV Q, VF00w, VF01w
|
||||
NOP WAITQ
|
||||
MULq VF01, VF01, Q NOP ; perspective division
|
||||
MULi VF04, VF04, I NOP ; scale normal
|
||||
NOP MR32.z VF02, VF00
|
||||
NOP NOP
|
||||
SUB.w VF01, VF01, VF01 NOP
|
||||
MULAx.xyz ACC, VF18, VF04x NOP ; transform normal
|
||||
MADDAy.xyz ACC, VF19, VF04y NOP
|
||||
MADDz.xyz VF04, VF20, VF04z NOP
|
||||
ADD.xy VF01, VF01, VF25 NOP
|
||||
MULq VF02, VF02, Q NOP
|
||||
NOP NOP
|
||||
FTOI0 VF03, VF03 NOP
|
||||
FTOI4 VF01, VF01 NOP
|
||||
NOP SQ VF04, -1(VI02) ; store normal
|
||||
NOP IADDI VI01, VI01, -1
|
||||
NOP SQI VF02, (VI03++) ; STQ
|
||||
NOP SQI VF03, (VI03++) ; color
|
||||
NOP SQI VF01, (VI03++) ; vertex
|
||||
NOP IBNE VI01, VI00, Loop
|
||||
NOP NOP
|
||||
|
||||
.include "light.vu"
|
||||
|
||||
NOP XGKICK VI12
|
||||
NOP IADD VI15,VI00,VI12
|
||||
NOP IADD VI12,VI00,VI13
|
||||
NOP[E] IADD VI13,VI00,VI15
|
||||
NOP NOP
|
||||
NOP B Cnt
|
||||
NOP NOP
|
||||
|
||||
.EndMPG
|
||||
.EndDmaData
|
Reference in New Issue
Block a user