You don't want to use GU_TEXTURE_16BIT and GU_VERTEX_16BIT in GU_TRANSFORM_3D mode unless you prescale your vertices. It would be a lot easier to use the 32BITF versions.
I see. Well, there's one thing bothering me about the 32BITF vertices. I am currently using a vertex struct size of 16 bytes in the 16BIT mode. If I was to use 32BITF logically I need a vertex structure of 32 byte size. And I have no idea what could I put in there to double the size.
struct Vertex
{
unsigned int u, v; //texture coordinates
unsigned int color; //color which I don't use
int x, y, z; //coords
long a,b; //useless variables to fit into the 32 byte range
};
I have no idea how else could I make a 32 byte vertex, do you?
struct Vertex
{
float u, v;
float x, y, z;
};
You said you don't use the color so just take GU_COLOR_8888 out of the sceGuDrawArray call.
32BITF means 32 bit float, so that's just a float, not a double. It doesn't mean the vertex struct is 32 bytes, but it may coincidentally be that size.
Thanks for the help I really appreciate it. I have done some tweaking using the information you guys provided, but it seems that hardware rotation is just not for me. I switched to manually rotating those vertexes with some trigonometry. Take care.