home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 57
/
Amiga_Dream_57.iso
/
Amiga
/
Jeux
/
Reflexion
/
Crafty-15.19.lha
/
crafty-15.19
/
doc
/
README.amiga
< prev
Wrap
Text File
|
1998-10-01
|
6KB
|
176 lines
Short: Crafty Chess program V 15.19
Author: hyatt@cis.uab.edu (Robert M. Hyatt)
Uploader: dlorre@caramail.com (Dominique Lorre)
Type: game/board
From Crafty.FAQ (author : Anil Mungal (amungal@vnet.ibm.com)) :
---
[1] What is Crafty?
Crafty is a chess program written by Bob Hyatt (hyatt@cis.uab.edu).
It is modeled after Cray Blitz (also written by Bob).
Crafty has the following features:
- written in C
- can be compiled with the GNU C compiler on various platforms
- has a customizable opening book
- supports tablebases (Steven Edward's endgame database)
- text interface
Crafty is a work in progress, and is frequently updated/enhanced by Bob.
-----
[1.1] What platforms can Crafty run on?
---
Now, on the Amiga !
Crafty is really strong. It wins 2-0 again UChess which was the strongest
until now. It has also a lot a features, is PGN aware and also maintain an
internal list of IM/GM ! I noticed it was particularly good in endings:
White : Pc7, Kd7
Black: Pb7, Bg6, Kg3
White to move.
Crafty found the draw in 20 minutes on 68030/28Mhz !
THE GOOD NEWS
Crafty is now stable and the new version seems stronger. Also the book
creation needs much less memory.
THE BAD NEWS
Crafty still not works with AmyBoard and now only supports XBoard 4.0.
This means that we have either to use it with X11 and XBoard-4.0 or to
update AmyBoard to the 4.0 version (I say we because if you are working on it
I would appreciate to be informed about this).
There are also some memory problems. In resume : if you don't have enough
memory for the hash size, your system might crash. This will not happen
on startup since I have put some special code for handling this but only
if you declare a big hash size later or if your book is too big. The author
of crafty, Mr. Hyatt, recommends that you don't allocate more than the
half of your available memory for the hash size and if you follow this
recommendation you should not have any problem.
SYSTEM REQUIREMENTS
I think crafty would run on a 2Mb system.
Due to the way I compiled it, crafty requires a 68020 and a 2.0 system.
INSTALLATION
First, you must have a minimal Geek Gadgets distribution. If you don't,
please do the following :
Makedir <YourPath>/GG
Assign GG: <YourPath>/GG
Assign GNU: GG:
Assign ADE: GG
The two Assigns for ADE and GNU are for ancient names of the ADE distribution.
If you do this you will not have any trouble in the future.
Makedir GG:lib
Makedir GG:bin
Makedir GG:Sys
A few words of explanation : The geek gagdets is providing a library named
ixemul.library which is a NetBSD kernel. So it is very Unix-like. I don't want
to go into details but when you want to install a new Geek-Gagdets utility
it will have to be installed here, in the GG: drawer.
Now, install the ixemul.library, the name depends on the flavor you choose :
Cd GG:
Copy <SrcPath>ixemul-bin.lha ""
Lha x ixemul-bin
And ixemul will be extracted to your Sys directory
If the archive is in the form tar.gz :
Cd G::
copy <SrcPath>ixemul-bin.tar.gz ""
gunzip ixemul-bin.tar.gz
tar xvf ixemul-bin.tar
Of course, in this case you will need tar and gzip in your path.
If the ixemul is a special flavor you may need to rename it :
Cd GG:Sys/Libs
Rename ixemul020.library as ixemul.library
Rename ixnet020.library as ixnetlibrary
Now, all you need is to add the following in your user-startup :
Assign GG: <YourPath>/GG
Assign GNU: GG
Assign ADE: GG:
Path GG:bin ADD
Assign LIBS: GG:Sys/Libs ADD
As I said, this is minimal, you might need other assigns such as info:
for GG:info but this is not needed by Crafty. If your are interested,
you should have look on the Geek gadgets docs on the Aminet in dev/gg or
on the geek Gadgets site at http://www.ninemoons.com.
When you have done this, or if you have already a suitable Geek Gadgets
installation, crafty can be installed :
Cd <CraftyPath>
Copy <SrcPath>crafty-15.19.lha ""
Lha x crafty-15.19
The directory crafty-15.19 will be created.
It is better to use crafty on its directory. I have made a cleanup script
that will remove all the extra files
Just pay attention to the fact that crafty is creating two files each time
you play a game, so starting it from any directory will create a lot of
CLp files. Always starting Crafty from the same drawer is a good habit.
DEVELOPER INFORMATION
This is the list of modifications I have done for making the Amiga version
of Crafty-15.19.
1) I did not used the code I made for the 15.9 but started from the
15.19 official version. Anyway the author of Crafty seems to have integrated
some of my changes.
2) I have modified some of the init.c file because crafty was requiring
about 7M on startup. The Amiga code uses AvailMem to check how many memory
Crafty can use.
3) I removed the old _kbhit function from a previous version of Crafty
because the ixemul.library is good enough to handle the keyboard like
an UNIX system.
4) I discovered a bug when Crafty was compiled with -fomit-frame-pointer
(egcs-1.0.2). The file test.pgn reproduces it : Enter analyze mode,
then read test.pgn and try the following moves : Qxa2 and Kxc3.
If compiled with -fomit-frame-pointer the reply is :
2 0.68 Mat03 31. ... Rxb3+ 32. Kd4 Qa1+ 33. Kd5
Qe5#
which is false because the knight can take the queen !
If not compiled with -fomit-frame-pointer the reply is:
2 0.63 Mat04 31. ... Rxb3+ 32. Kd4 Qf2+ 33. Kd5
Rc5+ 34. Ke4 Qe3#
which is correct. Anyway the program is stable because it will reproduce
the same output when given this position to analyze.
5) If you try some options such as compiling without -mc68020 you might have
some compiler errors in attacks.c and movgen.c.
This is due to the complexity of the code and you will have to live with it.
6) After some tests it appeared that COMPACT_ATTACKS and SPLIT_SHIFTS were
giving the best results.
7) Compiled with egcs and stuff from the Geek Gadgets May 98 Snapshot.
8) Crafty will not compile on SAS/C because it needs 8 bytes long long.
If you really want to do that you will have to switch to C++, create
a BITBOARD class and perform an heavy modification to the sources (mainly
casting) and do the work again when you will you want to upgrade to the
next version. You can look at the ulonglong.h file if you are interested.
Dominique Lorre (dlorre@craramail.com) 1-Oct-98