home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 3 / Chip_Hitware_Vol_03.iso / chiphit3 / lernen / wkiss / kissgs18.txt < prev    next >
Text File  |  1995-11-29  |  15KB  |  447 lines

  1. KISS/GS        ( KISS General Specification ) Manual        by K.O.S.
  2.  
  3. <<<<<<<<    KISS/GS (v1.80) $Date: 1994/09/23 23:30:37 $    >>>>>>>>
  4.                 revised:1995/10/18
  5.           by:             yav <UHD98984@pcvan.or.jp>
  6.           translated by: ITO Takayuki <yuki@is.s.u-tokyo.ac.jp>
  7.                   Edited by:     Hitoshi Ozawa <h_ozawa@bekkoame.or.jp>
  8.  
  9. DISCLAIMER
  10. KISS General Specification is public domain and is provided free of
  11. charge to all users on an AS IS basis without warranty of any kind,
  12. including without limitations the fitness of this specification to your
  13. needs. The entire risk of using and developing software based on this
  14. specification is borne to you. IN NO WAYS WILL DEVELOPERS AND AUTHORS
  15. OF THIS SPECIFICATION BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY
  16. DAMAGE OR LOSS FROM CONTENT OF THIS SPECIFICATION.
  17.  
  18.     Content of this document is subject to change without notice.
  19.     Furthermore, there are topics that are not still not fully
  20.     defined in the KISS specification. They will be covered as
  21.     they are defined.
  22.  
  23.     ***********************************************************
  24.  
  25. 1.    Introduction
  26.  
  27.     KISS is a paper doll program came to existence on March 1991 when
  28.     it was initially developed to run on Japanese NEC PC-9801VM2 computer.
  29.     The initial program was dependent on the NEC computer architecture
  30.     but due to its popularity, it was soon appearing on other platforms.
  31.  
  32.     To help further spread KISS, this KISS data format reference manual,
  33.         KISS General Specification : KISS/GS
  34.     containing the most recent specification, was written as a PUBLIC
  35.     DOMAIN document.
  36.  
  37.     This new specification was developed to be independent of NEC
  38.     computers and portable across all computers platforms.
  39.  
  40. 2.    Changes in Specification
  41.  
  42.     New specification is fully upward compatible with the old specification.
  43.     However, following limitations have been changed:
  44.  
  45.                 OLD        NEW
  46.     * color (cel)        16 colors   ->    16 or 256 colors
  47.     * color (palette)    4096 colors ->    4096 or 16,777,216 colors
  48.     * screen size        640 x 400   ->    768 x 480 or more
  49.     * maximum number of    128         ->  256 or more
  50.       cels and objects
  51.  
  52.     Furthermore, the multiple color palette files are now supported.
  53.     (Refer to section -> 4-1 Multi-Palette)
  54.  
  55.     With this change, a header containing necessary information are now
  56.     inserted in cel and color palette files.
  57.  
  58.     All these changes, nevertheless, may actually be limited
  59.     during implementation by hardware and software specifications.
  60.     To distinguish these levels, KISS/GS specifies the following levels:
  61.         KISS/GSn (where n = 1,2,3,... )
  62.     (Refer to section -> 7 KISS/GS Levels)
  63.  
  64. 3.    Basic Concepts
  65.  
  66.     3-1    KISS functions
  67.  
  68.     KISS is an image viewer program supporting transparency processing and
  69.     display object layering. To enable it to be used as a doll clothing
  70.     changing program, these objects are made to be moveable in real-time
  71.     using a mouse.
  72.  
  73.     3-2    Files
  74.  
  75.     KISS uses the following files:
  76.  
  77.     * Cel file
  78.         Cel files (files ending with CEL extensions) contain images of
  79.         individual pictures. 
  80.         It consists of array defining each color of a pixel (color code)
  81.         with the first pixel (0th pixel code) defining the transparent
  82.         color.
  83.  
  84.     * Palette file
  85.         Defines relationship between the color code used in the CEL
  86.         file with the actual screen color code that is used to display
  87.         them. Maximum of color palettes for 10 settings may be defined.
  88.  
  89.     * Configuration file
  90.         Defines the cel layer ordering and coordinates.
  91.         This is the first file KISS opens to find what other files
  92.         need to be opened.
  93.         Configuration files, also, are ordinary text files that may be
  94.         created with a text editor.
  95.         Some KISS program may update some definitions when [Save]
  96.         is selected.
  97.  
  98.     3-3    Glossary of Technical Terms
  99.  
  100.     * Cel        Minimal picture element manageable by KISS
  101.     * Object    Unit of moveable pictures.
  102.             Composed of one or more cels.
  103.     * Palette group    Color information pertaining to a screen.
  104.     * Set        Group of palette group and object coordinates.
  105.  
  106. 4.    GS-KISS Special Feature
  107.  
  108.     4-1    Multi-palette
  109.         Standard computer system only support one color palette.
  110.         KISS, by supporting several colors palette files, lessens
  111.         picture elements dependencies. Thus, parts like clothes
  112.         and accessories may exist individually as a separate file
  113.         (cel file). These parts may be paired with a background
  114.         to create a complete picture. Furthermore, because each
  115.         piece of a picture may have independent color palette,
  116.         they may be created by different developers.
  117.  
  118.         However, each cell must specify which color palette to use.
  119.  
  120.         The only limitation that exists now is that the total
  121.         number of color must be less than or equal to 256 colors.
  122.  
  123. 5.    Configuration File
  124.  
  125.     Each line in a configuration file must be shorter than 256 bytes.
  126.  
  127.     Furthermore, cel and palette filenames must be composed of basename
  128.     (max 8 bytes) + extension (max 3 bytes) with upper and lower cases
  129.     characters treated identically (MS-DOS limitations).
  130.     Characters that may be used in filenames are [_0-9a-z].
  131.  
  132.     The first character of each line specifies the content of the line.
  133.  
  134.       Character    Content
  135.     *   '='    Data memory size in kilobytes
  136.             Format:     =<memory size>K
  137.  
  138.             Specifies how much memory to allocate for KISS data.
  139.             Is used in KISS v1.0 for compatibility but is ignored
  140.             by KISS v2.0 or later.
  141.             Usage is discouraged.
  142.  
  143.             Example:
  144.             |
  145.             |=260K
  146.             |
  147.  
  148.     *   '('    Screen size
  149.             Format: (<horizontal size>,<vertical size>)
  150.  
  151.             Defines screen size.
  152.             When omitted, KISS v2.18 compatible size of
  153.             (448,320) is assumes.
  154.             Maximum screen size supported by KISS/GS2 is (640,400).
  155.             (Refer to section-> 7 KISS/GS Ranks)
  156.  
  157.             Example:
  158.             |
  159.             |(640,400)
  160.             |
  161.  
  162.     *   '%'    Palette filename
  163.             Format: %<Palette filename>
  164.  
  165.             Defines palette files to open.
  166.             Several palette files may be defines. When they
  167.             are, they numbered 0,1,2... in order of usage. 
  168.  
  169.             All colors defined in the first palette file are
  170.             used, but the first color (transparent) color in
  171.             the remaining files are ignored and palette are
  172.             shifted left one place.
  173.             Additionally, the total number colors defined by all
  174.             file palettes must be less than 256 colors.
  175.     
  176.             Furthermore, all color palette files must be defined
  177.             prior to cel file definition.
  178.  
  179.             Example:
  180.             |
  181.             |%COL.KCF
  182.             |%COL2.KCF
  183.             |
  184.  
  185.     *   '['    Border color
  186.             Format: [<Border color's pixel code>
  187.  
  188.             Defines the color of screen where color is
  189.             not explicitly defined by the cel data.
  190.             Pixel code is the color code defined in the
  191.             cel file.
  192.  
  193.             Example:
  194.             |
  195.             |[12
  196.             |
  197.  
  198.  
  199.     *   '#'    Cel file
  200.             Format: #<Mark>[.<Fix>] <Cel filename>
  201.                 [*<Palette number>] [:<Set number>...]
  202.  
  203.             where
  204.                <Mark> : Unique ID number to specify an object.
  205.                     Cels with a same Mark are combined as
  206.                     an object.
  207.                     KISS/GS2 supports Marks between 0 to 255.
  208.                     (refer to section -> 7 KISS/GS Ranks)
  209.                <Fix> :  A number indicating object movement
  210.                     fluidity. Usually used to fix an object
  211.                     to a location. A number from 0 to 32767
  212.                     may be specified with larger number
  213.                     requiring more operations to move an 
  214.                     object.
  215.                     When omitted, an object is assigned a
  216.                     value of 0 (ie. totally mobile).
  217.                <Cel filename> :
  218.                     Specifies the cel file name to assign
  219.                     to the Mark.
  220.                <Palette number> :
  221.                     Specifies palette file corresponding to
  222.                     the cel file when multiple palette files
  223.                     are defined.
  224.                     When omitted, palette file 0 is assigned.
  225.                <Set number> :
  226.                     Assign an object to a particular set.
  227.                     There may be 10 sets which are numbered
  228.                     from 0 to 9.
  229.                     When omitted, an object will become available
  230.                     in all sets.
  231.         Cels are layered in order of definition with first definition being
  232.         the top layered cel and last being the bottom layered cel.
  233.         Up to 256 cels may be defined in KISS/GS2.
  234.         (refer to section -> 7 KISS/GS Ranks)
  235.  
  236.  
  237.         Example:
  238.         |
  239.         |#2    data1.cel            ; top (shown in front of other cells)
  240.          |#3    data2.cel    :2 3 4        ; available only in sets 2,3,4
  241.         |#4.255    data3.cel            ; fix object location
  242.         |#5    data4.cel  *1   :5        ; use palette 1. only in set 5
  243.         |#2    data1_.cel            ; bottom (shown behind other cels)
  244.         |
  245.  
  246.         In the following example, data1.cel and data1_.cel are combined as an
  247.         object.
  248.  
  249.  
  250.     * '$' Set Information
  251.             Format: $<Palette group> [<xpos,ypos> ...]
  252.  
  253.             Defines palette group and position of objects in each set.
  254.             Up to 10 sets, numbered from 0 to 9, may be defined.
  255.             Set Information section are usually automatically
  256.             generated when [Save] is selected from KISS so there
  257.             probably isn't any need to directly modify them.
  258.  
  259.             When definition extends through multiple lines, continued
  260.             rows start with a space.
  261.  
  262.         <Palette group>    : Palette group number. 0 - 9.
  263.         <xpos,ypos>    : Position of object (ordered in accordance
  264.                               with Mark definition).
  265.                   KISS/GS2 supports up to 256 positions definitions.
  266.                   (see also section -> 7 KISS/GS Ranks)
  267.                   Undefined objects are denoted by an asterisk (*).
  268.  
  269.         Example:
  270.         |
  271.         |$2 192,11 * 56,176 55,21 259,62 15,24 375,63
  272.         |$3 43,115 154,62 372,108 253,156 * * * 165,207
  273.         | * 162,198 * 119,56 152,44 * * *
  274.         | 16,355 394,362 108,355 * * * 125,261
  275.         |$0 192,11 * 56,176 55,21 259,62 15,24 375,63
  276.         |
  277.  
  278.  
  279.     * ';' Comment
  280.             Format: ;<Comment>
  281.  
  282.             Igonores content of this line.
  283.             Future KISS/GS versions may specify to enable some
  284.             information such as title and author names in comments
  285.             lines to be a read into a program.
  286.  
  287.     * Others
  288.         Reserved for future extensions
  289.  
  290. 5.    Cel File Layout
  291.  
  292.     In new KISS/GS, cel files each contain a 32-byte header.
  293.  
  294.     offset    size    contents
  295.     +0    4B    KiSS data Identifier ( 4Bh 69h 53h 53h )
  296.     +4    B    cel file Mark ( 20h )
  297.     +5    B    number of bits to represent a pixel (either 4 or 8 )
  298.     +6    W    Reserved
  299.     +8    W(L,H)    Width ( 1 ... XMAX )
  300.     +10    W(L,H)    Height ( 1 ... YMAX )
  301.     +12    W(L,H)    x-offset ( 0 ... XMAX-1 )
  302.     +14    W(L,H)    y-offset ( 0 ... YMAX-1 )
  303.     +16    16B    Reserved
  304.  
  305.         WARNING: All reserved fields must be filled with 0.
  306.  
  307.     Cels defined in the same object are aligned by their top left corners.
  308.     When offsets are defined, a cel are moved to coordinate    (x,y) from this
  309.     top left corner.
  310.  
  311.     +32...    Pixel data
  312.  
  313.  
  314.     * Data Layout of 4 bits per pixel data (16 colors) 
  315.       -when bit 5 in the header is 4
  316.  
  317.     One raster layout:
  318.  
  319.     |<-  byte   ->|  |<-  byte   ->|  |<-  byte   ->|
  320.     MSB         LSB  MSB         LSB  MSB         LSB
  321.  
  322.     | pix0 | pix1 |  | pix2 | pix3 |  | pix4 | pix5 |  ......... |
  323. pixN |
  324.  
  325.     When there are only odd number of pixels in a line, the end pixel is
  326.     padded with a '0'.
  327.  
  328.     Pixel data consists of concatenation of these arrays defining each line
  329.     in a cel.
  330.  
  331.     * Data Layout of 8 bits per pixel data (256 colors) 
  332.       -when bit 5 in the header is 8
  333.  
  334.     One raster layout:
  335.  
  336.     |<-  byte   ->|  |<-  byte   ->|  |<-  byte   ->|
  337.     MSB         LSB  MSB         LSB  MSB         LSB
  338.  
  339.     |     pix0    |  |     pix1    |  |     pix2    | ...  |
  340. pixN    |
  341.  
  342.     Pixel data consists of concatenation of these arrays defining each line
  343.     in a cel.
  344.  
  345.     An old KISS format may not have 'KiSS' in the first 4-byte identification
  346.     field. In such a case, the file layout is as follows:
  347.  
  348.     offset    size    contents
  349.     +0    W(L,H)    Width
  350.     +2    W(L,H)    Height
  351.  
  352.     +4...    Pixel data
  353.  
  354.     Pixel data are in the 4 bits per pixel data (16 colors) format which
  355.     is the same as those defined above. Furthermore, x and y offsets should
  356.     both be treated as 0 (ie. no offset).
  357.  
  358. 6.    Palette File Layout
  359.  
  360.     Palette files have a 32-byte header.
  361.  
  362.     offset    size    contents
  363.     +0    4B    KiSS data Identifier ( 4Bh 69h 53h 53h )
  364.     +4    B    Palette file mark ( 10h )
  365.     +5    B    number of bits per color ( 12 or 24 )
  366.     +6    W    Reserved
  367.     +8    W(L,H)    number of colors in one palette group ( 1 ... 256 )
  368.     +10    W(L,H)    number of palette groups ( 1 ... 10 )
  369.     +12    W    Reserved
  370.     +14    W    Reserved
  371.     +16    16B    Reserved
  372.  
  373.         WARNING: All reserved fields must be filled with 0.
  374.  
  375.     +32...    Palette data
  376.  
  377.  
  378.     * Palette Data Layout (12 bits = 4096 colors)
  379.        -when bit 5 in the header is 12
  380.  
  381.     Each color is defined by 4 bit primary colors - red, green, and blue - 
  382.     in the following 2 byte layout:
  383.  
  384.     |<-  byte   ->|  |<-  byte   ->|
  385.     MSB         LSB  MSB         LSB
  386.  
  387.     | rrrr | bbbb |  | 0000 | gggg | ....
  388.  
  389.     When there are less than 10 palette groups, group 0 data are replicated
  390.     to fill to form 10 groups.
  391.  
  392.     * Palette Data Layout (24 bit = 16,777,216 colors)
  393.        -when bit 5 in the header is 24
  394.  
  395.     Each color is defined by 1 byte primary colors - red, green, and blue - 
  396.     in the following 3 byte layout:
  397.  
  398.     |<-  byte   ->|  |<-  byte   ->|  |<-  byte   ->|
  399.     MSB         LSB  MSB         LSB  MSB         LSB
  400.  
  401.     |  rrrrrrrr   |  |  gggggggg   |  |  bbbbbbbb   | ...
  402.  
  403.     When there are less than 10 palette groups, group 0 data are replicated
  404.     to fill to form 10 groups.
  405.  
  406.     An old KISS format may not have 'KiSS' in the first 4-byte identification
  407.     field. In such a case, the file layout is as follows:
  408.  
  409.     +0...    palette data
  410.  
  411.     Palette data are in the 12 bits per each color with 16 colors in a palette
  412.     groups with 10 groups. Refer to Palette Data Layout above for palette data
  413.     layout.
  414.  
  415.     NOTE: KISS data identification purposely consists of lower case 'i' to
  416.          reduce possibility of conflicting with other file formats.
  417.  
  418. 7.    KISS/GS Levels
  419.  
  420.     Rank        size      colors max cels      Status
  421.     --------------- ---------- ---- ----------
  422.       KISS/GS1    640 x 400   16     128        ;      KISS v2.24c
  423.       KISS/GS2    640 x 400   256    256        ;      KISS v2.37
  424.       KISS/GS3    768 x 480   256    256        ; draft
  425.       KISS/GS4    768 x 480   256    512        ; draft
  426.     --------------- ---------- ---- ----------
  427.     Degree of data portability was increased with generalization of
  428.     specification. Nevertheless, differences in hardwares still limits
  429.     some computers from running KISS programs and displaying KISS data.
  430.     Above ranks are specified as a guideline to allow developers to
  431.     write programs and for users to display data on their platforms.
  432.     We encourage programmers to implement the highest KISS rank capable
  433.     on their system and for users to use highest ranks program to view
  434.     them while keeping in mind that the lower ranks have more users
  435.     base.
  436.  
  437. *    Miscellaneous
  438.  
  439.     This document is in public domain.
  440.     Please send bug reports, questions, comments and problems to
  441.  
  442.         UHD98984@pcvan.or.jp
  443.                 yav
  444.  
  445.     Thank you.
  446.  
  447.