aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxgpu/gettimimage.c
blob: 49ce8e9b90ff15e88f0ae3b9f0d125f2aa3c79b7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <psxgpu.h>

int GetTimInfo(unsigned int *tim, TIM_IMAGE *timimg) {

	unsigned int *rtim;

	// Check ID
	if( ( tim[0]&0xff ) != 0x10 ) {
		return 1;
	}

	// Check version
	if( ( (tim[0]>>8)&0xff ) != 0x0 ) {
		return 2;
	}

	timimg->mode = tim[1];
	rtim = tim+2;

	// Clut present?
	if( timimg->mode & 0x8 ) {

		timimg->crect = (RECT*)(rtim+1);
		timimg->caddr = (unsigned int*)(rtim+3);

		rtim += rtim[0]>>2;

	} else {
	
		timimg->caddr = 0;
		
	}

	timimg->prect = (RECT*)(rtim+1);
	timimg->paddr = (unsigned int*)(rtim+3);

	return 0;

}