home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 6 B / CHIP_HITWARE6_B.iso / gry / wkiss / doc / kissfrmt.txt < prev   
Text File  |  1999-02-19  |  14KB  |  418 lines

  1. ------------------------------------------------------------------------------
  2.  
  3.  
  4.                              KISS FORMAT DOCUMENT
  5.                                        
  6.    This is a poor translation of kissgs.doc. Comments, questions and
  7.    corrections are greatly welcomed.
  8.    
  9.    _KISS/GS ( KISS General Specification ) Manual by K.O.S._
  10.    
  11.    >>>>>>>
  12.    
  13.    This is an abridged translation of the official document about KISS
  14.    data format. However parts of it are undefined and will be updated
  15.    gradually.
  16.      _________________________________________________________________
  17.    
  18. Outline
  19.  
  20.     1. Introduction
  21.     2. Abstract of New Specification
  22.     3. Basic Concepts
  23.     4. KISS/GS New features
  24.     5. Details of the Configuration File
  25.     6. Details of Cel Files
  26.     7. Palette File Detail
  27.     8. KISS/GS Ranks
  28.     9. Appendix
  29.        
  30.    
  31.      _________________________________________________________________
  32.    
  33.     1. _Introduction_
  34.        
  35.        KISS - a paper doll program has been developped for computers
  36.        based on NEC PC-9801VM2 architecture since March 1991. Many people
  37.        have enjoyed and implemented KISS for other computers. Now KISS is
  38.        running on many platforms.
  39.        
  40.        Now we make a reference manual about new KISS data format, that
  41.        is,
  42.        
  43.  
  44.         KISS General Specification : KISS/GS
  45.  
  46.    and release this.
  47.        
  48.     2. _Abstract of new specification_
  49.        
  50.        New style KISS data is upper compatible with the old style.
  51.        
  52.  
  53. * color (cel)           16 colors   ->  16 or 256 colors
  54. * color (palette)       4096 colors ->  4096 or 16,777,216 colors
  55. * screen size           640 x 400   ->  768 x 480 or more
  56. * cel and object max    128         ->  256 or more
  57.  
  58.    Multiple palette files available.
  59.        (-> 4-1 multipalette)
  60.        
  61.        A header is added to cel/palette files to store additional
  62.        information. At implemention some limitations may exist about
  63.        hardware and software resources. So implementation level is
  64.        indicated in the following form:
  65.        
  66.        _KISS/GSn ( n = 1,2,3,... )_
  67.        
  68.        (-> 7 KISS/GS Ranks)
  69.        
  70.     3. _Basic Concepts_
  71.        
  72.         _ 3-1:_ _KISS Functions_
  73.                 KISS is a image viewer program with transparency
  74.                 processing. It is able to display overlapped pictures and
  75.                 allow the user to manipulate them with real-time mouse
  76.                 operation.
  77.                 
  78.         _3-2: _ _Files_
  79.                 KISS needs the following files.
  80.                 
  81.                o Cel file
  82.                  Image data to be moved. An array of pixels. Pixel code 0
  83.                  is transparent pixel.
  84.                o Palette file
  85.                  Defines actual colors of pixels.
  86.                o Configuration file
  87.                  Describes the overlapping order and positions of cels,
  88.                  etc. KISS reads this first and refers it to read other
  89.                  files. This file is a text file created with a text
  90.                  editor. Some parts of it may be changed by KISS
  91.                  program's save function.
  92.                  
  93.         _3-3: _ _Technical terms_
  94.                 
  95.                o Cel
  96.                  A minimum element of pictures.
  97.                o Object
  98.                  A unit of pictures for moving; composed of one or more
  99.                  cels.
  100.                o Palette group
  101.                  Color information of one screen.
  102.                o Set
  103.                  Data composed of a palette group and object positions.
  104.     4. _ GS-KISS New Feature _
  105.        
  106.         _4-1: _ _Multipalette _
  107.                 Before KISS/GS, all cels are drawn according to a single
  108.                 palette table in the palette file. Now, cels can be drawn
  109.                 with individual palette tables.
  110.                 
  111.                 The total number of colors must be less than or equal to
  112.                 256.
  113.                 
  114.                 Each cel requires information about which palette it
  115.                 uses.
  116.                 
  117.     5. _ Details of the configuration file _
  118.        
  119.        Each line must be shorter than 256 bytes.
  120.        
  121.        Palette/cel filenames are composed of the basename (max 8 bytes) +
  122.        the suffix (max 3 bytes). Upper and lower cases are identical. The
  123.        character set used in filenames is [_0-9a-z].
  124.        
  125.        The character at the top of each line is one of the following:
  126.           + _ '='_ _Memory size _
  127.             
  128.             Description: =<memory >K
  129.             
  130.             For KISS v1.0 compatibility. KISS v2.0 or later ignores it.
  131.             Its use is discouraged.
  132.             
  133.             Example:
  134.             
  135. |
  136. |=260K
  137. |
  138.  
  139.           + _'('_ _ Screen size_
  140.             
  141.             Description: (<horizontal size >, <vertical size >)
  142.             
  143.             Defines the screen size.
  144.             If omitted, (448,320) is assumed for KISS v2.18
  145.             compatibility. Maximum size of screen is (640,400) on
  146.             KISS/GS2. (-> 7 KISS/GS Ranks)
  147.             
  148.             Example:
  149.             
  150. |
  151. |(640,400)
  152. |
  153.  
  154.           + _'%'_ _Palette file_
  155.             
  156.             Description: % <Palette filename >
  157.             
  158.             Describes a palette file. Palette files are numbered as
  159.             0,1,2... in the order of appearance.
  160.             
  161.             All colors in the palette file #0 are used. But the first
  162.             (transparent) color in the other palette files is ignored.
  163.             Total number of colors must be less than or equal to 256.
  164.             
  165.             All palette files must be described before description about
  166.             cel files.
  167.             
  168.             Example:
  169.             
  170.  
  171. |
  172. |%COL.KCF
  173. |%COL2.KCF
  174. |
  175.  
  176.           + _'['_ _ Border color_
  177.             
  178.             Description: [ <Border color's pixel code >
  179.             
  180.             Outside of the screen is filled with this pixel code.
  181.             Example:
  182.             
  183.  
  184. |
  185. |[12
  186. |
  187.  
  188.           + _'#'_ _ Cel file_
  189.             
  190.             Description: #<Mark >.<Fix > <Cel filename > [* <Palette
  191.             number >] [: <Set number >...]
  192.             
  193.               <Mark >:
  194.                       Identification number to specify object. Cels of
  195.                       the same Mark are unified and make an object.
  196.                       Object number is from 0 to 255 on KISS/GS2. (->7
  197.                       KISS/GS Ranks)
  198.                       
  199.               <Fix >:
  200.                       Fixed value. Specify this for fixed objects such as
  201.                       the doll's body. An object with a big value is hard
  202.                       to move. Value is a number from 0 to 32767. If
  203.                       omitted, treated as 0 (not fixed).
  204.                       
  205.               <Cel filename >:
  206.                       Describes the filename with suffix.
  207.                       
  208.               <Palette number >:
  209.                       Indicates which palette file this cel uses. If
  210.                       omitted, treated as 0.
  211.                       
  212.               <Set number >:
  213.                       The cel is drawn only in the sets specified here. 0
  214.                       - 9 is available. If omitted, this cel is drawn in
  215.                       all sets. The order of cel file descriptions
  216.                       determines the priority in drawing cels. The number
  217.                       of cels is max 256. (- >7 KISS/GS Ranks)
  218.                       
  219.         Example:
  220.             
  221.  
  222. |
  223. |#2     data1.cel               ; forward (near)
  224. |#3     data2.cel       :2 3 4  ;
  225. |#4.255 data3.cel               ; fixed
  226. |#5     data4.cel  *1   :5      ;
  227. |#2     data1_.cel              ; backward (far)
  228. |
  229.  
  230.         data1.cel and data1_.cel make one object.
  231.             
  232.           + _'$'_ _ Set information_
  233.             
  234.             Description: $ <Palette group > [ <xpos,ypos >...]
  235.             
  236.             Palette group and positions of object for each set. There are
  237.             max 10 sets. This section can be overwritten by KISS save
  238.             function.
  239.             
  240.             A long description is folded, and the following lines start
  241.             with a ' ' (blank) character to indicate that the lines are
  242.             continued from the previous line.
  243.             
  244.               <Palette group >:
  245.                       Palette group number. 0 ... 9.
  246.                       
  247.               <xpos,ypos >:
  248.                       Position of object (from object mark 0). Max 256
  249.                       positions are described on KISS/GS2. (- >7 KISS/GS
  250.                       Ranks) '*' means a non-existent object.
  251.                       
  252.         Example:
  253.             
  254.  
  255. |
  256. |$2 192,11 * 56,176 55,21 259,62 15,24 375,63
  257. |$3 43,115 154,62 372,108 253,156 * * * 165,207
  258. | * 162,198 * 119,56 152,44 * * *
  259. | 16,355 394,362 108,355 * * * 125,261
  260. |$0 192,11 * 56,176 55,21 259,62 15,24 375,63
  261. |
  262.  
  263.           + _';'_ _ Comment_
  264.             
  265.             Description: ; <Comment >
  266.             
  267.             This line is ignored.
  268.             
  269.             Future extension may determine how to include various
  270.             information of the data (title, author etc.) as comments.
  271.             
  272.           + Others
  273.             
  274.             Reserved for extention.
  275.             
  276.     6. _ Details of cel files _
  277.        
  278.        Cel files have a 32-byte header.
  279.        
  280.  
  281. offset  size    contents
  282. +0      4B      Identifier 'KiSS' ( 4Bh 69h 53h 53h )
  283. +4      B       Cel file mark ( 20h )
  284. +5      B       bits per pixel ( 4 or 8 )
  285. +6      W       Reserved
  286. +8      W(L,H)  Width ( 1 ... XMAX )
  287. +10     W(L,H)  Height ( 1 ... YMAX )
  288. +12     W(L,H)  x-offset ( 0 ... XMAX-1 )
  289. +14     W(L,H)  y-offset ( 0 ... YMAX-1 )
  290. +16     16B     Reserved
  291.  
  292.    Caution: the reserved field must be filled with 0.
  293.        
  294.        Cels of the same object are aligned at the top left corner.
  295.        X,y-offsets are the offsets from this alignment point.
  296.        
  297.        +32... _Pixel data_
  298.        
  299.           + Pixel data order (4 bits/pixel)
  300.             
  301.             One raster:
  302.             
  303.  
  304. ||  ||  ||
  305. MSB         LSB  MSB         LSB  MSB         LSB
  306.  
  307. | pix0 | pix1 |  | pix2 | pix3 |  | pix4 | pix5 |  ......... | pixN |
  308.  
  309.         If the width is odd, add a padding pixel of color 0. The number
  310.             of rasters is indicated in the height field.
  311.             
  312.           + Pixel data order (8 bits/pixel)
  313.             
  314.             One raster:
  315.             
  316.  
  317. ||  ||  ||
  318. MSB         LSB  MSB         LSB  MSB         LSB
  319.  
  320. |     pix0    |  |     pix1    |  |     pix2    | ...  |     pixN    |
  321.  
  322.         The number of rasters is indicated in the height field.
  323.    
  324.        
  325.        If the top 4-byte identifier is not 'KiSS', the file format is as
  326.        follows:
  327.        
  328.  
  329. +0      W(L,H)  Width
  330. +2      W(L,H)  Height
  331. +4...   Pixel data
  332.  
  333.    4 bits/pixel. X and y-offset are 0. This is the conventional format.
  334.        
  335.     7. _Palette file detail _
  336.        
  337.        Palette files have a 32-byte header.
  338.        
  339.  
  340. offset  size    contents
  341. +0      4B      Identifier 'KiSS' ( 4Bh 69h 53h 53h )
  342. +4      B       Palette file mark ( 10h )
  343. +5      B       bits per color ( 12 or 24 )
  344. +6      W       Reserved
  345. +8      W(L,H)  number of colors in one palette group ( 1 ... 256 )
  346. +10     W(L,H)  number of palette groups ( 1 ... 10 )
  347. +12     W       Reserved
  348. +14     W       Reserved
  349. +16     16B     Reserved
  350.  
  351.    Caution: the reserved fields must be filled with 0.
  352.        
  353.        +32... _Palette data_
  354.        
  355.           + Palette data order (12 bits = 4096 colors)
  356.             
  357.             A color consists of 2 bytes. 4 bits each for red, green,
  358.             blue.
  359.             
  360.  
  361. ||  ||
  362. MSB         LSB  MSB         LSB
  363.  
  364. | rrrr | bbbb |  | 0000 | gggg | ....
  365.  
  366.           + Palette data order (24 bit = 16,777,216 colors) A color
  367.             consists of 3 bytes. 8 bits each for red, green, blue.
  368.             
  369.  
  370. ||  ||  ||
  371. MSB         LSB  MSB         LSB  MSB         LSB
  372.  
  373. |  rrrrrrrr   |  |  gggggggg   |  |  bbbbbbbb   | ...
  374.  
  375.         If the number of palette groups is less than 10, colors of the
  376.             remaining palette groups will be copied from Group 0.
  377.             
  378.    If the top 4-byte identifier is not 'KiSS', the file format is as
  379.        follows:
  380.        
  381.        +0... palette data
  382.        
  383.        12 bits/color, 16 colors in a palette group, 10 groups. This is
  384.        the conventional format.
  385.        
  386.     8. _ KISS/GS Ranks _
  387.        
  388.  
  389. Rank            size      colors max cels
  390. --------------- ---------- ---- ----------
  391.   KISS/GS1      640 x 400   16     128          ; KISS v2.24c
  392.   KISS/GS2      640 x 400   256    256          ; KISS v2.37
  393.   KISS/GS3      768 x 480   256    256          ; draft
  394.   KISS/GS4      768 x 480   256    512          ; draft
  395. --------------- ---------- ---- ----------
  396.  
  397.    These are just standards. When you implement a KISS program on your
  398.        system, you should support the maximum ability of the hardware.
  399.        When you create KISS data you are encouraged to consider these
  400.        ranks. The lower rank the data conforms to, the more users can
  401.        play with it. However, you don't have to conform it to
  402.        unnecessarily low ranks.
  403.        
  404.     9. _ Appendix _
  405.        
  406.        This document is in public domain. Send bug reports, questions,
  407.        comments and problems to _ UHD98984@pcvan.or.jp _ (yav). Thank
  408.        you.
  409.        
  410.        
  411.          _____________________________________________________________
  412.        
  413.      _ ITO Takayuki <yuki@is.s.u-tokyo.ac.jp >
  414.      Graduate student, Department of Information Science,
  415.      Faculty of Science, University of Tokyo, Japan.
  416.      _
  417.  
  418.