TMEM

As mentioned in the previous section, the RDP contains a single cache called TMEM, which is shorthand for Texture Memory. This cache is 4 kilobytes in size (4096 bytes), and any texture which the RDP wants to use must be loaded into TMEM first. There's no way to circumvent this 4 kilobyte limitation, so it is your duty to ensure that your texture can be, in some way, twisted to fit into this 4kb limit.

This can be done by choosing the correct image format, by breaking your texture down into smaller bits, or by designing your texture in a way that it can be easily broken down manually by your programmer (AKA tiles). There are some texture effects that can be used by you to make your texture look larger than it actually is, which will be covered in the Loading Textures page.

When rendering 3D polygons, the Nintendo 64 only supports 1 texture per triangle, so if you wish to render a large texture (larger than 4kb), you must divide your model into multiple smaller faces. For example, the paintings in Super Mario 64 are 64x64 pixels in size. This is too large to fit into TMEM (You'll understand why in the Image Formats page), therefore in order to render it, the painting model needs to split up into chunks:

Texels

You will probably see this word being used a bit, so it's a good idea to define it. Texel is short for Texture Pixel, and you can think of it as a single "pixel" of a texture. A texel can be 32 bits (which you might be most familiar with, 255 values of red + green + blue + alpha), 16 bits, 8 bits, or even smaller!

For instance, if each pixel of your image is 32 bits, then each pixel of your texture takes up 4 bytes of TMEM. This means that, using a 32 bit format, you can only fit up to 1024 texels in TMEM. How those 1024 texels are organized, is up to you, as you can do 32x32, 16x48, etc...