Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Shredder not fair judging auto232 player results

Author: Robert Hyatt

Date: 08:50:12 03/30/01

Go up one level in this thread


On March 30, 2001 at 09:14:35, Vincent Diepeveen wrote:

>
>I have had bunches of problems implementing xboard/winboard protocol.
>I'm not saying the protocol is bad, but basically winboard protocol is
>a CONSOLE protocol. It works perfect for console engines.
>
>It has no error correction or whatever build in. Using this to communicate
>between 2 machines would be a disaster without a proper way of shipping
>commands. Remember, hardly anyone with 2 or more computers has a network,
>even though it costs nothing nowadays. People simply can't install it!
>
>They can however put a nullmodem cable between 2 computers. No problems
>there.
>
>The auto232 protocol is very easy, but it has of course serious flaws
>if you look to it in a theoretic way. From practical viewpoint it's very
>good for slow level matches. Winboard protocol would already fail here
>as it would set both computers at the same level for example, where definitely
>most persons have different speed computers!

I play "odds" matches all the time.  Nothing says you can not use winboard to
talk between the engines, but let each engine do its own time-keeping and ignore
the winboard time messages.  Works fine.



>
>The basic idea of the auto232 protocol is that you just ship a move to it
>and get moves from it. Also starting a search command.
>
>That's it.
>
>So the principles of it are VERY EASY.

Winboard is just as easy, programming-wise..



>
>The biggest part of the protocol is how it ships things to the other
>computer. I DON'T DOUBT THERE ARE BIG IMPROVEMENTS POSSIBLE THERE.
>
>Especially under NT 4.0 i couldn't get the chrilly auto232 player to work!
>
>Note it said in header file: "auto232 for win95,98".
>
>So it's incompatible, it's a big pain in the ass for a lot of different
>things, but it's very easy to get to work, even for a beginning programmer!
>
>The winboard protocol has more commands how to adress the ENGINE.
>
>Where here you need to adress the windows INTERFACE of course. you have shit
>to do with the engine. You want a module that simply handles all things
>for you!
>
>A big problem for winboard engines for example is if i put one on
>computer A and one on computer B i have NO IDEA how to let them play
>against each other without using an auto232 player!!!!!!!!!!!!!!!!!!!!!

winboard /fcp crafty.exe /fh node1  /scp ncrafty.exe /sh node2

works perfectly, running 'crafty' on node1, ncrafty on node2.




>
>Auto232 handles right that. Auto232 is nothing more as a small file
>that connects a computer A to a computer B.
>
>The command set to ship is of course very small but sufficient.
>it ships the move basically, that's it.
>
>In DOS the auto232 player was even easier. Just write and read
>from the parallel port!!

That is a gross simplification.  What about the timing issues?  You can't
send characters too quickly.  I/O interrupts cause the thing to lock up.
etc.




>
>So definitely auto232 is a bit outdated when looking to the possibilities
>nowadays, but it works more than ok.


It worked fine for crafty until I added tablebases.  Then it started locking
up when I probed.  I added a delay facility.  But it had to be tuned for each
different machine.

That is "easy"???  Not compared to winboard which has no timing problems to
worry with.




>
>>Some of the auto232 ideas were definitely neat.  Grabbing a chess move by
>>watching video RAM.  Sending it over an RS232C port.  But Jesus, this can be
>>done without making it highly sensitive to various timing issues.
>
>Without doubts the way in which both programs communicate can be done
>better. Also the implementation of chrilly is eating loads of system time
>at startup. My complete interface is parallellized by just that auto232 thread
>(if it's a single cpu computer).
>
>Also i would like to have something that works in both win2000, NT, 98, ME
>and 95. Linux is no big deal as crafty can be loaded as winboard engine
>anyway.
>
>>I will certainly say one thing.  Anybody that writes code with that many timing
>>holes had better _never_ try to write a parallel chess engine.  It will _never_
>>be debugged with those kinds of critical design flaws included.
>
>Here we agree completely.
>
>>Writing code to handle asynchronous events is not difficult.  In fact, if I
>>were trying to write a driver that misbehaves as badly as auto232, I really
>>would not know where to start.  It would be very hard for me to write code
>>that fails or works depending on lots of random timing considerations.
>>
>>So conceptually, yes auto232 is great.  But its implementation sucks with two
>>straws.  :)
>
>That's just implementation level and protocol level. The basic idea
>is that you link a C file to your interface and you only cut'n paste in
>WndProc() handler a few catches of auto232.
>
>So linking a C file and adding 10 lines of C code you can already start using
>auto232 player.
>
>This basic concept should NEVER be changed. Of course recognizing more
>commands would be cool, but the bottom line remains the same!
>
>On the other hand the winboard protocol is simply STEERING the engine,
>which is a bad idea IMHO, as i get all kind of stupid commands which
>are useless like 'hard' 'white' (though it is already white to move)
>and all kind of silly commands. Like adjusting time a millisecond
>though we have plenty of time left to play the game, why adjust time
>already then? Even worse, why adjust time every move?

If you don't adjust time after every move, you get timing inconsistencies.
A program takes more time than it thinks.  Otherwise we would not use _real_
chess clocks at computer chess matches, we would let each program keep up with
its own time.


>
>then the weird ? command in winboard. i still wonder what it is doing.
>is it forcing a move or is it asking for a move or is it stopping search?

That says "move now".


>
>Further i miss also the current line. I always show every second a current
>line of what diep is seraching now.

I get that in the analysis popup.


>
>On the other hand if i debug winboard protocol using winboard.debug
>from other engines, then after a while it is loaded with all kind of
>nodes a second data!
>
>So there are flaws in both protocols obviously, both aren't bugfree nor
>doing what we want to the full extend.
>
>Basic thing is that auto232 practically works perfectly.

The Titanic "practically" was unsinkable too...



>
>Yet the few 'features' it has like shipping a save game command,
>those are already commercially exploited!
>
>Then there are the weird chessbase commands. Well it's their right
>to communicate between their engines all kind of secret information,
>that's none of my business.
>
>But it gives me a bad feeling that when i play 2 chessbase interfaces
>against each other that they share with each other secret information.
>
>Vincent


That's another nice feature of winboard v2 protocol.  You can control what you
get and don't get, and what you can say or not say.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.