ADDAx.xyzw ACC, VF02, VF00 LQ.zw VF03, vuSDxMaxyMax(VI00) ; get shift -- load fog values NOP LQ.xyzw VF07, (vertexSize*0+0)(VI01) ; -- load pos[0] MSUBAz.w ACC, VF03, VF03 LQ.xyw VF04, (vertexSize*0+1)(VI01) ; fog[0] -- load uv,adc[0] MADDz.w VF07, VF07, VF03 DIV Q, VF00w, VF07w ; fog[0] -- 1/pos[0].w NOP LQ.xyzw VF09, (vertexSize*1+0)(VI01) NOP LQ.xyw VF10, (vertexSize*1+1)(VI01) ADDw.z VF04, VF00, VF00 LOI 255 MINIi.w VF07, VF07, I LQ.xyzw VF05, (vertexSize*0+2)(VI01) ; clamp fog[0] -- load rgba[0] MADDz.w VF13, VF09, VF03 LQ.xyzw VF12, (vertexSize*1+2)(VI01) MAX.w VF11, VF10, VF10 IADDIU VI02, VI01, 0 MADDq.xyz VF07, VF07, Q IADDIU VI03, VI14, 1 ; divide and shift pos[0] MAX.w VF06, VF07, VF02 ISW.x VI09, 0(VI14) ; clamp fog[0] MULq.xyz VF08, VF04, Q SQ.yzw VF01, 0(VI14) ; divide uv[0] FTOI0.xyzw VF16, VF05 DIV Q, VF00w, VF09w CTSprocessorLoop: ADD.w VF07, VF06, VF04 LQ.xyzw VF14, (vertexSize*2+0)(VI02) ; combine fog[0] and adc[0] MINIi.w VF09, VF13, I LQ.xyw VF15, (vertexSize*2+1)(VI02) ADDw.z VF10, VF00, VF00 SQ.xyz VF08, (OutverSize*0+0)(VI03) NOP SQ.xyzw VF16, (OutverSize*0+1)(VI03) FTOI4.xyzw VF07, VF07 IADDIU VI04, VI02, vertexSize MAX.w VF01, VF09, VF02 MOVE.w VF03, VF15 MULq.xyz VF06, VF10, Q LQ.xyzw VF16, (vertexSize*2+2)(VI02) MADDz.w VF08, VF14, VF03 IBEQ VI04, VI07, CTSprocessorEnd MADDq.xyz VF04, VF09, Q SQ.xyzw VF07, (OutverSize*0+2)(VI03) ; store pos[0] FTOI0.xyzw VF18, VF12 DIV Q, VF00w, VF14w ADD.w VF04, VF01, VF11 SQ.xyz VF06, (OutverSize*1+0)(VI03) MINIi.w VF14, VF08, I LQ.xyzw VF09, (vertexSize*2+0)(VI04) NOP LQ.xyw VF10, (vertexSize*2+1)(VI04) ADDw.z VF15, VF00, VF00 SQ.xyzw VF18, (OutverSize*1+1)(VI03) FTOI4.xyzw VF04, VF04 IADDIU VI02, VI04, vertexSize MAX.w VF06, VF14, VF02 LQ.xyzw VF18, (vertexSize*2+2)(VI04) MADDq.xyz VF01, VF14, Q MOVE.w VF17, VF10 MULq.xyz VF07, VF15, Q IBEQ VI02, VI07, CTSprocessorEnd MADDz.w VF13, VF09, VF03 SQ.xyzw VF04, (OutverSize*1+2)(VI03) ADD.w VF01, VF06, VF03 LQ.xyw VF15, (vertexSize*2+1)(VI02) FTOI0.xyzw VF05, VF16 DIV Q, VF00w, VF09w NOP LQ.xyzw VF14, (vertexSize*2+0)(VI02) MINIi.w VF09, VF13, I IADDIU VI04, VI02, vertexSize ADDw.z VF10, VF00, VF00 MOVE.w VF04, VF15 FTOI4.xyzw VF01, VF01 SQ.xyzw VF05, (OutverSize*2+1)(VI03) MADDz.w VF07, VF14, VF03 LQ.xyzw VF05, (vertexSize*2+2)(VI02) MAX.w VF08, VF09, VF02 SQ.xyz VF07, (OutverSize*2+0)(VI03) MADDq.xyz VF19, VF09, Q IBEQ VI04, VI07, CTSprocessorEnd MULq.xyz VF06, VF10, Q SQ.xyzw VF01, (OutverSize*2+2)(VI03) MINIi.w VF12, VF07, I DIV Q, VF00w, VF14w ADD.w VF19, VF08, VF17 LQ.xyw VF10, (vertexSize*2+1)(VI04) FTOI0.xyzw VF07, VF18 LQ.xyzw VF09, (vertexSize*2+0)(VI04) MAX.w VF06, VF12, VF02 IADDIU VI02, VI04, vertexSize ADDw.z VF15, VF00, VF00 LQ.xyzw VF12, (vertexSize*2+2)(VI04) FTOI4.xyzw VF19, VF19 SQ.xyz VF06, (OutverSize*3+0)(VI03) MAX.w VF11, VF10, VF10 SQ.xyzw VF07, (OutverSize*3+1)(VI03) MADDq.xyz VF07, VF14, Q IADDIU VI03, VI03, OutverSize*4 MADDz.w VF13, VF09, VF03 IBNE VI02, VI07, CTSprocessorLoop MULq.xyz VF08, VF15, Q SQ.xyzw VF19, (-OutverSize*1+2)(VI03) CTSprocessorEnd: