Copy Link
Add to Bookmark
Report

PLAYSTATION PRIMITIVE LIST'S MEMBER VARIABLES FORMAT

PS_2's profile picture
Published in 
Playstation
 · 4 years ago

PRIMITIVE LIST'S MEMBER VARIABLES FORMAT

  U_CHAR FLAG           - options for primitive 
{
bit 0; - LGT. Light source calculation
0 - On. Light source calculation is carried out
1 - Off. Light source calculation is not carried out
bit 1; - FCE. Determines if primitive is one or two faced
0 - Primitive has one face
1 - Primitive has two faces
bit 2; - GRD. Determines single or gradient pigment
0 - Primitive has one solid pigment
1 - Primitive has different pigments at each vertex
bits 3-7; - ignored
}


Note: Most of these bits are set or cleared according to which type of primitive is being created. Messing around with these may cause unexpected drawing or crashes. The only bit you may want to edit manually is FCE.

  U_CHAR MODE           - options for primitive 
{
bit 0; - TGE. Brightness calculation at time of calculation
0 - On. Calculates light
1 - Off. Draws texture as is (without lighting)
bit 1; - ABE. Activates translucency when rendered
0 - Off. Primitive is rendered solid.
1 - On. Primitive is rendered semitranslucent.
bit 2; - TME. Sets whether a texture is used or not
0 - Off. No texture is rendered.
1 - On. A texture is rendered.
bit 3; - displays whether a 3 or 4 sided polygon
0 - 3 sided polygon
1 - 4 sided polygon
bit 4; - IIP. Shading mode
0 - Flat shading
1 - Gouraud shading
bits 5-7; - Code. Defines which sort of entity to draw.
0 - Polygon (3 sided or 4 sided)
1 - Straight line
2 - Sprite
}


Possible values of ABR (semitransparency method)

Note: Most of these bits are set or cleared according to which type of primitive is being created. Messing around with these may cause unexpected drawing or crashes. The only bit you may want to edit manually is ABE.
For semitransparency to be used when the TMD is rendered, bit 30 of the GsDOBJ's attribute member must be set. To control the semitransparency method, alter the ABR bits of the primitive's TSB member (see below).


 U_SHORT CBA           - position of CLUT in VRAM for primitives with textures 
{
bits 0-5; - upper 6 bits of 10 bits of X coordinate value
for CLUT in VRAM
bits 6-14; - 9 bits of Y coordinate value for CLUT in VRAM
bit 15; - ignored
}

For example -

  u_long  CLUT_X_POS = 640; 
u_long CLUT_Y_POS = 480;
u_short CBA = (CLUT_X_POS >> 4) + (CLUT_Y_POS << 6);

 U_SHORT TSB           - information about image for primitives with textures 
{
bits 0-4; - texture page number of texture
bits 5-6; - ABR. Semitransparency method (see below)
bits 7-8; - TPF. Colour mode of the texture (see below)
bits 9-15; - ignored
}

Possible values of ABR (semitransparency method)
Note: For semitransparency to be used when the TMD is rendered, bit 30 of the GsDOBJ's attribute member must be set, and the ABE bit of the primitive's mode member must be set (see above).


 0  - 50% background  +50% polygon 
1 - 100% background +100% polygon
2 - 100% background - 100% polygon
3 - 100% background + 25% polygon

Possible values of TPF (colour mode)


 0  - 4 bit texture and CLUT 
1 - 8 bit texture and CLUT
2 - 15 bit texture with no CLUT

For example -

  u_long  IMG_X_POS = 640; 
u_long IMG_Y_POS = 0;
u_long ABR = 1; // 100% back + 100% polygon
u_long TPF = 0; // 16 colour texture
u_short TXT_TPAGE;
TXT_TPAGE = GetTPage((int) TPF, (int) ABR, IMG_X_POS, IMG_Y_POS);
u_short TSB = (TXT_TPAGE) + (ABR << 5) + (TPF << 7);


← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT