CHESSBD 2.3 ICS RELATED PROBLEMS AND BUGS
=========================================
February 1996

This file contains information about bugs and deficiencies in CHESSBD,
as well as some problems you might have.  There are some outright
bugs, and there are some anomalies i don't understand yet.  If in your
usage of CHESSBD you encounter anomalous behavior that is repeatable,
please drop me a line (dfong@igc.apc.org).  The program also has
deficiencies.  I welcome constructive criticism and suggestions.
To report bugs, please use the bug report form bugform.txt in the
distribution.

In no particular order:

Q: My opponent's moves don't show up on the board,
   all i get is a bunch of ascii stuff in the Telnet window.

A: You probably neglected to tell ICS to use style 12.  Try this:
   right after you login to ICS, enter "style 12" in the Telnet window.
   Thereafter, your opponent's moves should appear automatically in
   the board diagram.

Q: I lost on time when CHESSBD showed i had over a minute left!
   And my opponent's clock was running to boot!

A: This happens due to "lag".  Communication between the server and your PC
   can incur arbitrarily long delays.  TMSTAMP (or TMSEAL on FICS) partially
   compensates for the problem.  Use it if you can.

Q: I am trying to use TMSTAMP, but it just tries 3 times to connect and
   i never get through.

A: This means that CHESSBD was unable to execute the TMSTAMP program.
   Make sure you have put the tmstamp.exe in the same directory as SLICS.

Q: I ran TMSTAMP and logged in to the server just fine, but it says i'm
   not running a timestamp client!

A: You probably forgot to connect to "localhost" instead of "chess.lm.com".
   With version 2.2a or higher, this won't happen anymore. (:-)

Q: The text is too tiny to be readable!

A: Click on the textport (whichever one you want to change) and type
   Alt+M.  This pops up a dialog that lets you configure the font
   and color.

Q: Why doesn't CHESSBD have a builtin command for XYZ?

A: ICS has too many commands, and there is too little documentation about
   them, for me to provide GUI support for them all.  And they're
   constantly adding new ones.  So instead of providing wired-in
   support for my own favorite commands, CHESSBD provides a bank of 16
   programmable buttons in the Arena dialog.  You can setup a button to
   execute any ICS command.  You can also program up to 50 menu items
   in the ICS User menu.

Q: How can i save my games to a file?

A: CHESSBD automatically saves your games to the file "icsgames.pgn",
   as you play them.  See also the online help for the "icssave" option
   variable.

Q: The gamesfile is called "icsgames.pgn" but it isn't in PGN format.

A: That's true.  If you really want PGN, you can quit ICS mode and
   read the file back in using the viewer features of CHESSBD.
   Or, you use the Alt+T capture feature, capture the output of
   the ICC "oldmoves" command, then save the captured output to
   a file (click on the system menu of the capture window).

Q: I can't stand the click-and-drag way of moving pieces.

A: Try setting the undocumented option variable dragmove=0
   in your "chessbd.ini" file.  Or try dragmove=-1 if you don't want
   the moved piece to track the mouse.

Q: I hope you can find better looking pieces someday.

A: Send in your registration fee, and you will receive a key that
   enables the program to use beautiful bitmapped pieces.

   You can also use alternative piece sets (even without registering).
   Thanks to Nico Koolsbergen (nicok.ini), Eric Churchill
   (ericch.ini), and Harry J. Toups (toups.ini).  If you don't like my
   "minimalist" pieces, go to the program manager and change the SLICS
   command line (for the SLICS icon).  Change it to "chessbd toups.ini"
   for "classic chess assistant like" pieces.  Try "chessbd nicok.ini"
   for "baroque" pieces; or "chessbd ericch.ini" for "staunton like"
   pieces.  Or design your own.

   See any of the above piece files for an example of how to do this.
   Each piece type corresponds to an option variable, the value of
   which is a polygon which is drawn and filled to represent that piece
   in the board diagram.  Eg, PawnOutline is the variable for a pawn.
   A polygon is represented as a list of pairs deltax,deltay drawn
   clockwise from the lower left corner.  The last (closing) segment
   does not have to be specified.  Eg,
	PawnOutline=0,10 10,0 0,-10
   makes the pawn graphic a 10x10 square.  You also need to set the
   variable "squaresize=XXxYY" to the nominal square size for your
   piece set.  Eg, "squaresize=48x48" if your pieces are designed to
   match squares of dimension 48x48.  This is needed so your pieces can
   be correctly scaled.

   To test your piece designs, put your piece definitions in a separate
   FILE.ini, then run "%prof -g FILE.ini" in the main textport.

   UPDATE: you can now specify a "poly polygon" in your piece descriptions.
   If an x-y pair is followed by a vertical bar (|), with no spaces,
   then it starts an additional polygon.  Note, you must explicitly
   specify the closing segment of the polygon before the vertical bar.
   Then the next x-y pair after the vertical bar specifies an *offset*
   from that position.  In other words, the first segment after the
   vertical bar is NOT drawn.

   Essentially, this feature allows you to specify the points in
   a windows "poly polygon".

   You can specify up to 8 polygons in this way.

   Example:
KnightOutline=8,4 0,1 -2,4 -1,0 -4,-4 -2,0 -4,4 7,14 -3,2 13,0 8,-5 3,-9 -3,-8 3,-3 -23,0| 4,16 0,3 3,0

   The above example creates a knight polygon with an eye.

   Caveat: the above information is strictly FYI, and is subject to change
   without notice.  

Q: The board is too tiny.  The dialogs are too big.  Etc.

A: In the latest version, almost everything is scalable.
   If it doesn't scale, please send me a report, using bugform.txt .

Q: Can i use SLICS through a raw serial connection?

A: Yes, the latest version has experimental support for raw serial
   connections.  You can fill in the Com port number and parameters
   in the ConnectInfo dialog.  Click the "Modem" radio button.
   Then you need to enter the modem commands to initialize the modem
   and dial your service provider.  It's best to create a script to
   do this.  See the example login script "dial_ics.rc" .

Q: Can i use ICC timestamp?  Timeseal?

A: Yes.  See the online help, "Using ICC Timestamp".
   Also read the file tmstamp.txt .

Q: Can i login thru a firewall?

A: Yes, see the online help.

Q: How do i create a login script?

A: See the online help.  Look at the example login script "ex_ics.rc" .

Q: Why does SLICS cause GPF's?

A: Because users don't report bugs!  SLICS should not ever GPF.
   And it does not GPF on my system.  If you find a way to make
   it GPF repeatedly, please send me email.  Use the form in bugform.txt .

Q: The program GPF's when i try to move a piece with the mouse.

A: This is not supposed to happen.  If it does happen to you, please
   do the following.  Turn on logging with File|Logging in the main
   chessbd window.  Then select User|info.  This will dump a bunch of
   information about your system.  Email the log file "chessbd.log"
   to dfong@igc.apc.org .

Q: How can i make it play a sound when my opponent moves?

A1: Make sure you have set your "bell" variable to 1 on the server.
   This will cause the server to send the ascii "bel" character
   with each move update.

A2: Check your sound configuration under the Windows control panel.
   By default, SLICS calls MessageBeep(-1) whenever it receives
   an ascii "bel" character from the server.  This causes Windows
   to issue the "default beep" sound.  You may configure Windows
   to play this sound on the PC speaker, or to play it thru your
   sound card.  Whichever you choose, make sure the corresponding
   hardware is functioning correctly.

Q: Why does all the documentation call the program CHESSBD instead of SLICS?

A: The earlier version (before adding the ICS features) was called CHESSBD,
   and i'm too lazy to change the documentation.

Q: How can i program the ICS User menu and the ICS Arena buttons?

A: Look in the chessbd.ini file.  See ics_luNN (for arena button NN)
   and ics_mNN (for menu item NN).  Do thou likewise.  See the online help
   for further details.

Q: Can i use the SLICS as a NETSCAPE or MOSAIC helper?  Yes.  If you pass
   SLICS a filename on the command line, it will automatically treat it as
   a games file and "open" it for you.  (Unless the filename has the
   extension ".ini", in which case SLICS will treat it like a .ini file.)
   See the NETSCAPE or MOSAIC documentation for info on how to set it up.

Q: The helpfile sucks.

A: Sorry, i don't have time to write a good one.

Q: I already registered the beta release, SLICS20c.  Do i have to
   re-register SLICS21a?

A: No, if you already sent me $$ for SLICS2?[a-z], you are entitled
   to free upgrades as long as i keep calling it SLICS2?.

Q: How do i get and use TMSTAMP? or TMSEAL?

A: Please read the file tmstamp.txt .

Q: Why can't i use TMSTAMP and TMSEAL with NETCOM.

A: There is a bug in NETCOM's implementation of Winsock.
   If you use NETCOM, you must use a 3rd party Winsock in order
   to succesfully use TMSTAMP or TMSEAL.  Please read the file netcom.txt .

Q: How do i register SLICS?

A: Send your check to the address given in Help|About . (:-)

Q: Can i get bitmapped pieces?

A: In the newest version of SLICS, you can.
   You must set several variables.
   The file bitmaps.ini shows which variables need to be changed.
	bitmapflag=1
	bitmapprefix=b_
	bitmapsizes=38
   bitmapflag=1 tells SLICS to use external bitmaps.
   bitmapprefix=b_ tells SLICS that the bitmap files have a prefix of "b_".
   bitmapsizes=38 tells SLICS that you have a bitmap file named
   "b_38.bmp" containing bitmaps to use when the squaresize is 38.
   If you have a family of bitmaps covering various sizes, list each
   size in ascending order.  For example,
	bitmapsizes=38 54 100
   says you have b_38.bmp, b_54.bmp and b_100.bmp .

Q: Can i create my own set of bitmapped pieces?

A: Yes, if you know what you're doing.  The following paragraphs contain
   all the information you need.  This is a use-at-your-own-risk feature.
   Please do not ask me for help.

   You need to create a .bmp file for each size you want to support.
   It is simplest to begin with just 1 size, say 38 (pixels).
   Choose a bitmapprefix for you piece set, say "b_" .
   Then your pieces will go in the file "b_38.bmp".
   That file is just a Windows bmp file, which you can create with
   Windows Paintbrush or any other paint application.
   You can use a mono, 16 color, or 256 color format.

   You must layout the bitmap image as follows.
   The image is a 4x6 array of cells.
   Each cell is a square whose width and height is the size you chose.
   The topmost row of cells contains the images of the White pieces,
   in the order Pawn, Knight, Bishop, Rook, Queen, King.
   The second row contains the images of the Black pieces in the same order.
   The third row contains the masks of the White pieces, in the same order.
   The bottom row contains the masks of the Black pieces, in the same order.
   The mask for a piece-image is itself an image, which is white where
   the piece-image is transparent, and black where the piece-image is opaque.

   The piece images and masks must be precisely aligned within the bitmap.
   HINT: If you use Paintbrush, you may find it helps to create a temporary
   grid of lines while you work, and erase the grid just before saving
   the file.  It also helps to enable View|CursorPosition.  First create
   the piece images (top 2 rows); then you can create the masks by
   duplicating the top 2 rows onto the bottom two rows, and using the
   flood fill tool, etc.

   Several user-contributed bitmapped piece sets are available from
   my web page.  If you look at one of them in Paintbrush it will be
   pretty obvious what is going on.

Q: How can I speed up my bitmaps?

A1:The new version of CHESSBD can use bounding box information for
   the bitmap files, if it is present.  The bounding box makes updates
   faster because slightly less of the screen needs to be redrawn.
   For each FILE.bmp in your piece set, the bounding box info is
   in FILE.bmb .  The program "fixbmp.exe" (from my web page, under
   chessbd -> piece sets) creates the .bmb files from your .bmp files.

   Then you need to change the setting of bitmapflag to tell CHESSBD
   to use the bounding box information.  Just add 4 to the value of
   bitmapflag.  Usually this means bitmapflag=5 or 13.  (See below
   for the meaning of 13.)

   Usage: fixbmp PREFIX SIZE1 SIZE2 SIZE3 ...

   Fixbmp is a windows program.  You need to run it in the
   directory where your .bmp files exist, and give it the
   bitmap file prefix (same as the value of the option variable
   bitmapprefix) plus the list of sizes (same as the option
   variable bitmapsizes).

A2:Premask the images.  Normally when CHESSBD starts up, it applies
   the piece masks to the piece images.  You can do this manually
   in advance, so the program doesn't have to.  That is, normally
   it takes the first 2 rows (the piece images) then AND's with the
   negative of the second 2 rows (the piece masks).  You can do this
   in the Windows Paintbrush program, simply by flood filling the
   "background" of the first 2 rows with black.  (Don't flood fill
   the background of the second 2 rows!)  Then you need to change
   the setting of bitmapflag to tell CHESSBD that the images are
   pre-masked.  Just add 8 to the value of bitmapflag.  Usually
   this means bitmapflag=13 (if you have bounding box info).

Q: Help!  I can't observe games.  The server says "You are now observing",
   but the board never appears.

A: This is usually caused by your inadvertantly turning off, or changing,
   your server prompt.  On ICC, make sure you have "prompt=1" in your
   variables.  On FICS, your prompt variable should end with the
   characters "ics% ".  (See "help v_prompt" on FICS.)

