TIM (PlayStation graphics)
m |
Dexvertbot (Talk | contribs) m (Change telparia.com samples link to template) |
||
(9 intermediate revisions by 5 users not shown) | |||
Line 3: | Line 3: | ||
|subcat=Graphics | |subcat=Graphics | ||
|extensions={{ext|tim}} | |extensions={{ext|tim}} | ||
+ | |kaitai struct=psx_tim | ||
}} | }} | ||
'''TIM''', or '''PSX TIM''', is an uncompressed raster image file format associated with the Sony PlayStation family of video game consoles. | '''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. | It supports 4- and 8-bit paletted images, and 15- and 24-bit full color images. | ||
+ | |||
+ | See also [[TIM2]]. | ||
== Identification == | == Identification == | ||
− | Files begin with (hex) bytes | + | Files begin with (hex) bytes {{magic|10 00 00 00}}. |
+ | |||
+ | == Structure == | ||
+ | |||
+ | {{Restored|2017-11-03|https://web.archive.org/web/20171103172802/http://rewiki.regengedanken.de/wiki/.TIM}} | ||
+ | |||
+ | A TIM file contains one uncompressed bitmap. It starts with this header: | ||
+ | |||
+ | <pre> | ||
+ | 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; | ||
+ | </pre> | ||
+ | |||
+ | * <code>type</code> can be: | ||
+ | ** <code>0x08</code> for 4 bits paletted images | ||
+ | ** <code>0x09</code> for 8 bits paletted images | ||
+ | ** <code>0x02</code> for 16 bits true-colour images. | ||
+ | * <code>offset</code> is an offset to start of image data. | ||
+ | * <code>nb_palettes</code> is the number of palettes stored in the file, each palette having <code>palette_colors</code> colors. | ||
+ | |||
+ | === 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. | ||
+ | |||
+ | === Image header === | ||
+ | |||
+ | After the optionnal palettes, come the image header. The width is in 16bit words, it means the real width in pixel is <code>width*4</code> for 4-bits paletted images, <code>width*2</code> for 8-bits paletted images and <code>width</code> for 16-bits paletted images. | ||
+ | |||
+ | <pre> | ||
+ | typedef struct { | ||
+ | unsigned short width; /* Width of image in 16-bits words */ | ||
+ | unsigned short height; /* Height of image in pixels */ | ||
+ | } tim_size_t; | ||
+ | </pre> | ||
+ | |||
+ | === 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. | ||
== Software == | == Software == | ||
* [[ImageMagick]] | * [[ImageMagick]] | ||
+ | * [[Konvertor]] | ||
+ | * [[XnView]] | ||
+ | * [[RECOIL]] | ||
* [ftp://ibiblio.org/pub/linux/apps/graphics/convert/tim2bmp-1.0.tar.gz tim2bmp] | * [ftp://ibiblio.org/pub/linux/apps/graphics/convert/tim2bmp-1.0.tar.gz tim2bmp] | ||
+ | |||
+ | == Sample files == | ||
+ | * {{CdTextfilesURL|cdaction/cdaction20a/HORR/USA/}} {DATA,EFFSPR,ITEM_M2}/*.TIM | ||
+ | * {{CdTextfilesURL|pcgamesexe/pcge199902/RE2/COMMON/DATU/}} | ||
+ | * {{CdTextfilesURL|pcgamesexe/pcge199902/RE2/PL0/EMD0/}} | ||
+ | * {{DexvertSamples|image/tim}} | ||
== Resources == | == Resources == | ||
− | * [http://www.romhacking.net/documents/timgfx.txt TIM Graphic Formats, By Klarth, Version | + | * [http://www.romhacking.net/documents/31/ TIM Graphic Formats, By Klarth, Version 1.0] |
+ | * [http://mrclick.zophar.net/TilEd/download/timgfx.txt TIM Graphic Formats, By Klarth, Version 0.7] | ||
+ | |||
+ | [[Category:Sony]] |
Latest revision as of 02:56, 28 December 2023
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 havingpalette_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
- http://cd.textfiles.com/cdaction/cdaction20a/HORR/USA/ {DATA,EFFSPR,ITEM_M2}/*.TIM
- http://cd.textfiles.com/pcgamesexe/pcge199902/RE2/COMMON/DATU/
- http://cd.textfiles.com/pcgamesexe/pcge199902/RE2/PL0/EMD0/
- dexvert samples — image/tim