TIM (PlayStation graphics)

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (Change telparia.com samples link to template)
 
Line 24: Line 24:
 
unsigned long magic; /* Constant = 0x10 */
 
unsigned long magic; /* Constant = 0x10 */
 
unsigned long type;
 
unsigned long type;
unsigned long offset; /* allways Size of Clut data + 12 */
+
unsigned long offset; /* allways Size of Clut data   12 */
 
unsigned short Palette Org X;
 
unsigned short Palette Org X;
 
unsigned short Palette Org Y;
 
unsigned short Palette Org Y;
Line 71: Line 71:
 
* {{CdTextfilesURL|pcgamesexe/pcge199902/RE2/COMMON/DATU/}}
 
* {{CdTextfilesURL|pcgamesexe/pcge199902/RE2/COMMON/DATU/}}
 
* {{CdTextfilesURL|pcgamesexe/pcge199902/RE2/PL0/EMD0/}}
 
* {{CdTextfilesURL|pcgamesexe/pcge199902/RE2/PL0/EMD0/}}
* https://telparia.com/fileFormatSamples/image/tim/
+
* {{DexvertSamples|image/tim}}
  
 
== Resources ==
 
== Resources ==

Latest revision as of 02:56, 28 December 2023

File Format
Name TIM (PlayStation graphics)
Ontology
Extension(s) .tim
Kaitai Struct Spec psx_tim.ksy

TIM, or PSX TIM, is an uncompressed raster image file format associated with the Sony PlayStation family of video game consoles.

It supports 4- and 8-bit paletted images, and 15- and 24-bit full color images.

See also TIM2.

Contents

[edit] Identification

Files begin with (hex) bytes 10 00 00 00.

[edit] Structure

This content was first retrieved from the Internet Archive's Wayback Machine for the date 2017-11-03 from the following URL: https://web.archive.org/web/20171103172802/http://rewiki.regengedanken.de/wiki/.TIM

A TIM file contains one uncompressed bitmap. It starts with this header:

typedef struct {
	unsigned long	magic;	/* Constant = 0x10 */
	unsigned long	type;
	unsigned long	offset; /* allways Size of Clut data   12 */
	unsigned short	Palette Org X;
	unsigned short	Palette Org Y;
	unsigned short	palette_colors;
	unsigned short	nb_palettes;
} tim_header_t;
  • type can be:
    • 0x08 for 4 bits paletted images
    • 0x09 for 8 bits paletted images
    • 0x02 for 16 bits true-colour images.
  • offset is an offset to start of image data.
  • nb_palettes is the number of palettes stored in the file, each palette having palette_colors colors.

[edit] Palettes

In the case of paletted images, palettes are following the header in the file. Each color is coded in a 16-bits RGB value, which format is A1B5G5R5. There are 'palette_colors'*'nb_palettes' values stored.

[edit] Image header

After the optionnal palettes, come the image header. The width is in 16bit words, it means the real width in pixel is width*4 for 4-bits paletted images, width*2 for 8-bits paletted images and width for 16-bits paletted images.

typedef struct {
	unsigned short	width;	/* Width of image in 16-bits words */
	unsigned short	height; /* Height of image in pixels */
} tim_size_t;

[edit] Image data

  • 4 bits images: Each pixel is stored in 4 bits (so 2 pixels per byte), bits 7-4 for first pixel, and bits 3-0 for second pixel. The value is an index in a palette stored in the beginning of the file.
  • 8 bits images: Each pixel is stored in a byte, which is an index in a palette stored in the beginning of the file.
  • 16 bits images: Each pixel is in A1B5G5R5 format.

[edit] Software

[edit] Sample files

[edit] Resources

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox