Clamp vpX0/vpY0 to zero when negative value retured

This fixes negative values may return to the lower left corner of the viewport rectangle in the glviewport call and cause black screen in some games like Coded Soul and may be others

-Before
![screen00001](https://f.cloud.github.com/assets/3000282/865719/831a947e-f642-11e2-962f-36e8cd48622f.jpg)


-After 

![screen00000](https://f.cloud.github.com/assets/3000282/865722/8ae9e272-f642-11e2-9964-bf2f10f37f4b.jpg)