aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxgpu/gettimimage.c
blob: d9cf1bf5b67f1513ecbaeb0a7334d667784cabad (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
40
#include <sys/types.h>
#include <psxgpu.h>

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

	u_long *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 = (u_long*)(rtim+3);

		rtim += rtim[0]>>2;

	} else {
	
		timimg->caddr = 0;
		
	}

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

	return 0;

}