Short: AGA/ECS Chess program Type: game/board Version: 2.89 Requires: KS 2.04; 2M+ RAM; 68020+ Architecture: m68k-amigaos Change History: v2.89 Enhancements to eval and search make for a stronger game, it seems much more consistent against other strong computer pgms now. Also fixed the clearmem routine in 68020 assembler, it had a bug. v2.88 Enhanced clock management for >25 secs/move games Also fixed problems with the hint move and contention between the 2 processes, and made the mvstr large enough for algr, it was too small before, resulting in corrupt data at times. v2.87 Split the game into 2 AmigaDOS processes, one for search/eval another for housekeeping, this allows stronger thinkahead with far fewer side effects, which would damage play in games where thinking was on. Fixed a few draw/ttable bugs, ttable aging is now better than in 2.85/2.86 Enhanced clock management, long games should be stronger. Retuned some pawn evaluations. All changes are transparent to the user. v2.86 Fixed up the repetition code, it was causing mis-scoring and interfering with play quality in many cases. v2.85 Changed the hashtable/evalcache routines, changed search and selectmove, incorporating modified versions of changes from gnuchess 4pl70 Made many changes to eval as well. This version should have improved playing strength vs other versions, from improved eval and much improved speed. Some Black openings added. v2.83 Fixes some bugs in loading games, and in toggling book, bugs that would cause the hint mechanism to fail and always return "I have no idea" as the hint. Also fixed a bad bug that sometimes happened when thinking was on, and you started with 1.e3 Changed the way flashing the screen to signal a move works. Also changed save/load game file to incorporate enpassant information. Old games should still load, but without the enpassant data. v2.81 Gives newlook menu treatment and better more readable menu colors especially for 256 color screens, also allows user to click drag menu selections, as per Amiga standards v2.79 Fixes Magic Menu incompatible COMPLEMENT drawing mode in menus. v2.78 Fixed some NULLMOVE and search bugs, that could cause unusual performance, especially in endgames. New opening books provided, one for white, one for black. Not so deep but more variety and hopefully stronger play that previous versions (which were temporary books) MAJOR Hash table performance boost, much faster eval as a result. Many enhancements to search/recapture extensions in search(), result in deeper searches, better eval per ply as well. This version supports 3rd party graphics cards. It supports them "natively" using the screenmode requestor. DO NOT use any screen promotion utilities like ChangeScreen or whatever, to promote the screens, just choose your graphics modes native screen from the screenmode requestor. For 15Khz monitor users, with AGA chipsets, the 64 and 256 color modes will now come up with DEFAULT_MONITOR screens, rather than forcing PAL mode. The screens will now autoscroll, so you can see the whole 480 pixel high image, even on NTSC monitors. 3rd Party graphics notes: You need OS version 3.0 or later for 3rd party graphics support. GVP Spectrum owners note the NOBOBS CLI option and the NO_BOBS=1 WB tooltype. Do not use the RTG option on AGA/ECS modes, you can if you want, but the displays will use more memory and will be slower... To start with 3rd party graphics cards there are 2 new CLI options, RTG and NOBOBS: UChess RTG will start in RTG 3rd party graphics mode. This will bring up the screenmode requestor and you can pick a screenmode for chess play. It should be 640X480 to fit the bitmap...smaller will autoscroll but 3rd party graphics software may not autoscroll well...so use a 640X480 or larger screenmode The corresponding TOOLTYPE to add in the WB icon is : RTG=1 ******SPECIAL NOTE TO OWNERS OF GVP SPECTRUM EGS CARDS****** (OTHER BOARDS MAY HAVE THIS TROUBLE AS WELL) (IF YOU HAVE LOCKUPS, TRY THIS) The software with these boards will LOCK UP THE PGM when it tries to use BOBS, to prevent this from happening there is a new UChess argument. From the CLI use: UChess 0 RTG NOBOBS this will inhibit UChess from using BOBS to animate/move pieces. Meaning pieces you pick up with the mouse will be invisible until you drop them onto a square. This is due to deficiencies in the GVP software. without the NOBOBS argument, the GVP lack of system BOB support locks up the pgm entirely, so USE THIS OPTION!! The corresponding TOOLTYPE in the WB icon is NO_BOBS=1 v2.72 Fixed a slight time control problem, it was not adding remaining time when # moves was completed. Also fixed a nullmove problem that may have resulted in wierd endgame checks. v2.71 Fixed bugs in search causing selective deepening to be too selective in many cases. Redid the repetition code as per 4PL68 standards, can now recognize perpetual check and other draw situations more readily. Many bug fixes which now make the ideas in 2.69 a reality for all games. This version is more efficient, and makes fewer mistakes vs strong opponents than 2.69 did. Endgame is improved as well. v2.69 Fixed some endgame deficencies, in King-Knight-Bishop vs King endgame. Fixed some lookahead bugs, and some slight mouse vs kbd display bugs. v2.67 Totally new eval/search. This is based on gnuchess 4PL67 with many enhancements. Searchs more nodes per ply, so will get fewer ply on slow machines, but plays better. Also support for Super72 mode 800X600X64 or 256 colors. New CLI arg Super72, new Tooltype SUPER72=1. The L version requires 9M or more of FASTRAM (like before, but this was not clear to everyone). This version plays much more competitively vs skilled players and good computers, less daring against lesser opponents though. May not be as well suited to slower systems (020/030's), but in all tests it seems stronger, even on A3000/25's. (in computer v computer tests this version went 7-1-2 vs Sargon5 on a 486, v2.54 usually went about 3-5-2 or so) v2.54 Fixed some bugs with resign, and a small bug in undo which caused mate msg to be displayed if you undid mate. Plays the same as 2.53 v2.53 Finally after days of effort I managed to find and fix a couple of bugs introduced in 2.50 with the new search on opponents time code... Bug fixes and changes to genmove (movelist) nullmove routines, and especially to search on opponents time logic. v2.52 Bug fixes to load game, and to transposition table routines. Some attempt to deal with eval == 20000 bug. Major speedup of movelist routines, speed of search and eval greatly increased. v2.51 Slight enhancement to endgame eval routines. v2.50 Many changes incorporated from the Gnuchess 4PL64 release. Any changes that did not conflict with UChess specific changes, were merged into this version. Changes to endgame (major) eval and search routines were made, to bring this version up to Gnuchess 4PL64 standards. Many changes to clock handling routine, UChess now manages its clock MUCH better, and thinking on opponents time is MUCH improved, making UChess far better than before when this feature is enabled. NOTE: Rate Pgm is now slower than before, it takes it longer to calc some move situations because of a bug fix to the history table. The older way resulted in missed moves, but could calc some situations faster, but not correctly. This new way results in slower calcs, but correct calc of moves. v2.35 Cleaned up Mating routines, UChess will now choose shortest route to mate and not keep searching beyond that to come up with strange endgame moves. Fixed some eval and search buglets and fixed a side effect in Take Back move. Now take back move will clear out history buffer, so re-eval of moves after takeback will result in best move being made, not necessarily a different move from the last choice. Taking Back a move now takes much more time, but results in steady gameplay. Prior version often chose alternate moves after take back a move was chosen. Redid some of the positional modifiers in eval routines, this version seems to play quite a bit stronger and steadier than previous versions, when pressed. Recompiled using SAS/C 6.51 v2.33 Same as v 2.32 but fixes some problems that prevented 2.32 from running on machines without AmigaDOS 3.0 or later. This version runs on AmigaDOS 2.04 or later. v2.32 (recompiled using SAS/C 6.50) New Display Option for AGA machines, at startup you can specify FASTAGA (or 64) at the CLI or you can use the FASTAGA=1 or COLORS=64 arguments in the Workbench ICON, this opens UCHess on a 640X480 or 640X512 64 Color Screen, for additional speed. Especially helps display speed in the MultiScan Productivity mode. It looks almost as good the 256 color screen and is much faster. Rewrote some routines in 68020+ Assembly language, and re-aligned many data items for more nodes/sec eval speed. Redid the entire opening book code, uchess will now look for uchess:uchesswhite.book when playing as white and uchess:uchessblack.book when playing as black, if it cannot find these it reverts to uchess:uchess.book. Sample white/black/neutral books enclosed, but much improvement/tuning of these books is needed. In general the white/black should work best for now. In the future I hope to come up with really optimal white/black openings and include these, at least for now the pgm will avoid openings that are real detrimental to it by splitting the book into 2 parts. Also made the edit request autoactivate the edit string gadget, for more convenient edit game entry. Also added a resign feature, if you have started the game in a regular manner at advanced level, and you get over 9.5 pts ahead of UChess, it will offer to resign (once). If you load a saved game, or edit the board, it will not offer to resign. It will only offer to resign the game one time. v2.31 Re-Arranged the new game feature so it now pays attention to the skill level when setting up a new board. All new games came up as Advanced before, regardless of skill level chosen v2.30 Added a Level feature for play vs the computer. 3 levels are available, Advanced (same as before) Intermediate (Knight Odds), and Easy (Knight + Queen Odds) Choosing these options will force a new game, with you are white and UChess as black, UChess will have its Knights removed on Intermediate, and its Knights+Queen removed on Easy. Advanced is an equal game, like past versions v2.28 fixed a bug in the initialization and re-initialization of the cache and transposition tables. Makes for more consistent play and a better start for the computer when using the new game option. v2.27 Just recompiled using __USE_SYSBASE for a bit more perfomance of system exec routines. v2.26 Fixed many bugs in the transposition table routines, which would cause crashes during overnight analysis with 2.25, also affected play somewhat, this version can handle overnight analysis, long games with no problems. 2.25 and some earlier versions could corrupt memory if they computed too long (for hours). Redid the compute rating equation, for a bit more realistic rating. With the major speed improvements of 2.25, the old rating equation was a bit off, giving an inflated rating of the pgm. This new equation is somewhat better. v2.25 Major speed enhancements, this version should play FAR stronger thanks to rearrangement of Cache Tables. Major endgame changes as in gnuchess 4 pl 61, for lone king endings. v2.18 Attempted to reduce the number of "wild" moves that the program makes. Under rare circumstances, the pgm would make wild moves based on poorly considering the users response move. This should not happen much any longer. May take more time to come up with a move in these cases though. Should prevent it from throwing games away. v2.17 Fixed a minor bug in thinkahead move choice. v2.16 Finally found a longstanding bug screwing up move selection with thinking on. Thinking on now helps a lot, it also does not screw up judicious use of the clock by the program. v2.15 Further refined conditions when thinkahead move is taken, or additional thinking beyond the current ply is warranted. Refined for more likely choice of the thinkahead move in very short (<10secs/move) games v2.14 Fiddled with timing when thinkahead move is guessed correctly, it was taking its thinkahead move immediately if it was as deep, or deeper, than the previous move it pondered, it now only takes the move immediately if it is as deep or deeper and at least 4 plys in depth. v2.12 Added a rating feature, based on fact that the gnuchess 4pl60 core plays at about 2300 on an IBM/RS6000, and that each doubling of processor speed results in a 75 pt ratings improvement, the pgm will estimate its USCF strength on your machine. On an A4000 the L version is about 2200 USCF or so. v2.11 Fixed a bug in dialog window for depth control. v2.10 Redid time control so that on long matches, it will not try and search too far ahead, if it guessed right. It was trying for real deep searches when it would result in massive overtime for the last level, on some occasions, hurting play later by forcing the pgm to rush too much. Also load/save game now updates clock display when it loads, and sets move now accordingly. v2.09 Fixed bug when depth mode was on, thinking was on, and show thinking was on, it was disabling show thinking in those cases. Cleaned up timing a bit. IT IS NOT CLEAR TO ME THAT THINKING ON HELPS. I am testing this, it may be that with thinking mode off, it plays more consistent chess, I am not sure though. v2.07 Added Depth Control, and Book Control Options To use Depth Control, just set it to # of plys you want the pgm to look ahead, it will then finish its move when it finishes that ply, regardless of time. Book Control just allows you to enable/disable opening book v2.06 Fixes a problem with mem alloc which showed up under Mungwall, it is now 100% enforcer and Mungwall clean. Guards against loading improper game files. Other Minor fixes. V2.05 Redoes the time control routine for thinking mode on. In earlier 2.0x versions, the forced timeout mode when thinking is on could result in poor move selection in some circumstances, this fix should allow fewer mistakes in move selection with thinking on, when computer is forced to stop searching a ply earlier than it would like. V2.04 Fixes a display bug that occurs occasionally when castling with a mouse, asks for a pal screen specifically on 15Khz 256 color systems. V2.03 Fixes a bug in Load game which caused a crash on some machines when pgm is run at pri >0. Move now command is now more immediate. V2.02 Bugs in v2.01 and 2.00 disallowed Move Now, and Underpromotion of pawns. This is now fixed. Move now is enabled for Move times avg 1min or more. V2.01 Added an additional CLI arg and tooltype, from CLI type "UChess 15Khz" if you have an AGA machine and want to force a 640X480X256 color 15Khz screen, may not be enough overscan for whole screen to be visible on monitor. From WB you can use the MONITOR=15KHZ tooltype to force this. Pgm will auto default to 15Khz 256 color screen if you have and AGA machine with no multiscan monitor in devs:monitors, to force 16 colors use 16 color arg. The 16 color screen will fit easily on a 640X400 display, the 256 color screen will not fit on a 640X400 display. People with PAL machines should have no problems fitting it all on a 640X512 15Khz screen. This version fixes MAJOR time control bugs present in v2.0 V2.0 I widened the search for this version and it has defeated version 1.01 head to head 10 out of 10 times. I belive this version plays MUCH stronger chess than version 1.01! -Roger V1.01 This is version 1.01, it cleans up the 16 color graphics and makes them look much better than in version 1.0 That is the onluy change. See Uchess.doc for details -Roger UChess versions which end in L are optimized for the 68040 processor, require 10M or MORE of FAST RAM, and play stronger than the non L versions. Versions which do not end in L require 4M of FAST RAM, and are optimized for 68030 processors, and play slightly weaker than the L versions. Source code for Gnuchess 4p58 which is what this pgm is based on is available from valkyries.andrew.cmu.edu via ftp. This code rearranges some of the function arguments, data structures, and adds an additional level of transposition table caching to Gnuchess 4p58, but uses the same logic as gnuchess 4p58 otherwise. This program is freely distributable. UChess is a powerful version of the program GnuChess version 4 for the Amiga, code has been re-written and data structures re-organized for optimal efficiency on 32 bit 68020 and better Amiga systems. The program fully multitasks, automatically detects and supports 640X480X256 color AGA mode machines, and does not at any time BUSY wait. In head to head competition with Checkmate, on the same machine, UChess has a record of 9 wins, 0 losses, 1 draw. Program requires: A 68020/030/040 based Amiga computer system AmigaDOS version 37 (2.04) or later 4 Megabytes or more of RAM, 3.5M of FREE FAST RAM. (L version requires 8.5M of FREE fast RAM) Program auto-detects AGA capable machines, and will try and use a 640X480X256 color VGA_PRODUCTIVITY screen, if not it defaults to using a 16 color 640X400 HIRES LACE screen. The 16 color screen is not very attractive, the pgm is designed to be run on a 31Khz monitor (multisync or VGA) on an AGA machine. Use of the 640X480X256 color mode (best mode) requires AGA Based Amiga MultiSync Monitor/or Monitor capable of displaying VGA_PRODUCTIVITY mode The Correct monitor type in devs:Monitors on your WB disk To Install UCHESS: Copy the library lh.library to your libs: directory. If you are using an AGA machine, you should make sure that the MULTISYNC monitor is in your devs:monitors directory, if you have a multisync or VGA monitor. In your startup sequence, you should put an ASSIGN UCHESS: , but you do not have to. The program will do the Assign for you as the default directory when you boot up. Make a directory and copy all files (except lh.library, which goes in libs:) to this new directory, using the CLI copy command. You can run this program from the CLI or WorkBench, if run from the workbench. The only CLI argument you can use is "16", this will force the program to open a 16 color screen, regardless of hardware. Using the Program. Startup Options: You can run UChess from the CLI or workbench, from the CLI you can enter 2 optional arguments, one is the priority you want foreground thinking to run at (0-4) the other is if you want to force a 16 color display, you type in 16. So you can type UChess 16 0 to force a 16 color display and a priority of 0. You can also enter 2 TOOLTYPES into the UChess icon, one is PRI= and other is COLORS=16|256 They are the same as the CLI equivalents. <> You can enter moves in algebraic or reduced algebraic notation using the keyboard, or you can use the Mouse to click and HOLD onto the piece you want, let go of the mouse button after you have moved the piece over the square you want it to occupy. The following is a brief of the menus and choices in the program, File Menu - About - shows a brief description of the program New Game - Starts a new game from scratch Load Game - Load a previously saved game Save Game - Save the current game to disk List Game - List the moves of current game to a file Quit - return to AmigaDOS View Menu - 2-D - Only View Available Edit Board - Edit current board. To edit the board you enter the piece character, followed by the square you want it on. Valid piece chars are ' ' for none, 'p', 'n', 'b', 'q', 'k', 'r'. For example pa8 puts a pawn at a8, a8 clears square a8. You can clear the entire board, and color of the piece is determined by the WHITE/BLACK Boolean Gadget. Reverse - Not Implemented Control Menu - Swap Sides - Change Sides with Computer (black <=> white) AutoPlay - Computer Plays Itself Move Now - Implemented when computers avg move is 1 min or more. forces computer to make its move immediately. Undo - Undo Last 1/2 move Thinking - Toggle computer thinking on your time, With this mode on, (checked), the computer will think about its next move while it is your turn, like a person would. When this is on, you will find the computer may be sluggish to respond to your first mouse/keypress, but it will interrupt itself and respond within a second. Be aware of this fact, when you type a key, or press the mouse button, you stop the computers thinking on your time, and it will not resume until next turn. IT MAY TAKE A SECOND OR SO TO PROCESS YOUR KEYPRESS/MENU SELECTION WHEN THIS OPTION IS ON. ShwThnk - Shows computers thinking process, in Depth, Score and move. 100 pts = 1 pawn in this thinking process. Supervisor mode - Allows 2 humans to play each other with computer as sort of a supervisor. Special Menu - Hint - Computer gives advise as to your next move. Test - Test processor speed. This speed of lookup depends on currect board config, so for comparison purposes between machines, test the speed with the exact same board layout, for black and white! An Amiga 4000 gets about 80,000 movelist nodes/sec and 3700 eval nodes/sec on a new board. Sometimes a bit more. Set Time - Brings up a window for you to set time constraints for the computer. It is in the form XX moves in XX minutes. For Tournament conditions people often use 40 moves/120 mins Default is 60 moves in 10 minutes (approx 10 secs/move) Notes on running vs other chess PGMS on the same machine: 1) Make sure thinking on opponents time is DISABLED for each pgm. 2) make sure UChess is at a high priority, UChess DOES NOT BUSY WAIT so it will always make 100% of the processor available to the opposing pgm when it is not UChess's turn. Other chess pgms are not as well written, and will hog 100% of the CPU even when it is NOT their turn and thinking is off. For this reason you should always have UChess running at a higher priority than its opponent, Uchess WILL NEVER steal CPU cycles from an opposing pgm if thinking in UChess is off. 3) Make sure both pgms have suffucient FAST RAM available to them! Please report any problems to me, Roger Uzun at uzun@crash.cts.com or uzun@netcom.netcom.com or on bix as ruzun.