GUIs and Novag Sapphire

This forum is for general discussions and questions, including Collectors Corner and anything to do with Computer chess.

Moderators: Harvey Williamson, Steve B, Watchman

Forum rules
This textbox is used to restore diagrams posted with the fen tag before the upgrade.
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

GUIs and Novag Sapphire

Post by kalatov »

I'm having some fun connecting my Novag Sapphire to things now that I've successfully built an alternative to the Super Distributor, which I don't own.

By setting the (Citrine) baud rate in Arena to 9600 I've had the Sapphire being walloped by Stockfish, which is admittedly rather cruel. I'm presently waiting for the arrival of a second USB/Serial adapter so that I can try getting the Sapphire to play my Citrine via the old Com2Com bit of software which I think originated with the UCB (which I don't have either).

What I have so far failed to get working, hence the post, is using a GUI, either Arena or Scid so I can play against the Sapphire using the onscreen board. I edited the source code of Scid to set the baud rate to 9600 and in both cases, Arena & Scid, the Sapphire can send its output fine to the GUI, I see Sapphire's moves appearing on the console and also on the onscreen board, but when I make a move on screen it doesn't seem to get sent to the Sapphire. This is particularly strange in the case of Arena as I have, as mentioned, had it playing an automated game with the Sapphire so I know it can send moves, but it seems to only want to do this if there is an engine engaged on the PC side.

If anybody knows the magical incantations required to get this working I'd be very grateful to know.

I'd also be very grateful to get my hands on the DOS drivers which came with the UCB as I'd be interested to see if I can get the Citrine and Sapphire playing WChess etc.

Thanks in advance

Phil
User avatar
Murat
Member
Posts: 189
Joined: Fri Nov 20, 2015 7:49 pm
Location: Canada

Post by Murat »

Drivers on there way.

All the best
Celadus
Member
Posts: 256
Joined: Sun May 06, 2012 11:29 am

Post by Celadus »

Murat wrote:Drivers on there way.

All the best
DriverS on THEIR way
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

Post by kalatov »

Murat wrote:Drivers on there way.

All the best
Much appreciated and thank you for the speedy response.

Phil
User avatar
Murat
Member
Posts: 189
Joined: Fri Nov 20, 2015 7:49 pm
Location: Canada

Post by Murat »

Celadus wrote:
Murat wrote:Drivers on there way.

All the best
DriverS on THEIR way
How kind of you to correct my spelling
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

Re: GUIs and Novag Sapphire

Post by kalatov »

kalatov wrote:I'm presently waiting for the arrival of a second USB/Serial adapter so that I can try getting the Sapphire to play my Citrine via the old Com2Com bit of software which I think originated with the UCB (which I don't have either).
In case anyone's interested, I know have the second USB/Serial adapter and have connected the Citrine and Sapphire via Com2Com. What works fine is that I can use the Citrine to enter moves agains the Sapphire by having the Citrine in Referee mode and the Sapphire in Xmit off so that it doesn't respond with it's reply via the serial connection. Of course the disadvantage is that I have to read the reply off the Sapphire's display and move it on the Citrine. I had been hoping the Citrine would be able to display the Sapphire's moves via LED but if I have the Sapphire set to Xmit On the Citrine seems to get very confused by the input for some reason. I don't know why as it looks fine in the Com2Com window. Also trying to have them play against each other soon breaks down with errors. I don't think Com2Com buffers the communication very well.

Anyway it is a nicer way to play against the Sapphire than pressing the buttons.

On another issue, I now have most of the drivers which came with the UCB (thank you Murat) but I think there must have been a later version as it is missing the TWCHESS.EXE driver mentioned in some editions of the UCB manual. If anyone has that driver they could let me have I'd be very grateful as of course WChess being a David Kittenger program I'd like to try it against his dedicated units.

Thanks in advance.

Phil
JeffB
Member
Posts: 420
Joined: Sat Mar 07, 2015 6:36 pm
Location: Seattle, WA USA

Post by JeffB »

I have twchess.exe. What's the best way to get it to you? (You can send a PM with details if you'd prefer.)
Cheers,

Jeff B.
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

Re: GUIs and Novag Sapphire

Post by kalatov »

kalatov wrote:
On another issue, I now have most of the drivers which came with the UCB (thank you Murat) but I think there must have been a later version as it is missing the TWCHESS.EXE driver mentioned in some editions of the UCB manual. If anyone has that driver they could let me have I'd be very grateful as of course WChess being a David Kittenger program I'd like to try it against his dedicated units.

Thanks in advance.

Phil
Thanks to Jeff I've been able to try connecting my Sapphire to WChess running on a DOS VM. And the results are...
... it sort of works. They can definitely communicate although only if the Sapphire starts the game it appears. Like when I connected the Citrine and Sapphire via Com2Com they play 3 or 4 moves and then seem to lose synchronisation. It seems to be mainly the Sapphire not seeing a reply from the PC. I can then enter WChess' move on the Sapphire and they will carry on playing for another few moves untill getting stuck again. The problem, not surprisiningly, is worse when there is a fast exchange, or they are in their books and replying immediately. The fact that it is usually the Sapphire that misses an incoming move I guess suggests that the serial implementation on the dedicated unit is somewhat ropey.

Unfortunately I don't think I can easily try the Citrine against WChess without getting involved with all sorts of virtual serial ports so that I can insert Com2Com in to the affair as I think the UCB driver for WChess probably only supports 9600 baud. I'll give it a go at some point.

What it seems I need is something that will buffer the communications and then send the moves to each side at a steady rate. Not sure how to do that though. The other thing I am wondering is whether the issue is because I'm using a replacement cable instead of an actual Novag Distributor. Is there anyone who has tried playing a Sapphire (or Super VIP) against WChess using the UCB driver with a Distributor in between?
JeffB
Member
Posts: 420
Joined: Sat Mar 07, 2015 6:36 pm
Location: Seattle, WA USA

Post by JeffB »

Have you tried hanging Wireshark (or another protocol analyser) on the comm port to see what's going back and forth? Maybe an ACK of some sort is not being sent so one of the sides just sits there waiting for it.
Cheers,

Jeff B.
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

Post by kalatov »

JeffB wrote:Have you tried hanging Wireshark (or another protocol analyser) on the comm port to see what's going back and forth? Maybe an ACK of some sort is not being sent so one of the sides just sits there waiting for it.
That's a good thought Jeff, I'll have a look at that. I was also wondering whether a couple of levels of abstraction (DOS VM and USB/Serial adapter) might be introducing delays or dropped characters. I'm thinking about seeing if I can get an old laptop with a real serial port fired up running DOS 6.22 or perhaps Win98 to see if that helps.
JeffB
Member
Posts: 420
Joined: Sat Mar 07, 2015 6:36 pm
Location: Seattle, WA USA

Post by JeffB »

Wireshark should be able to help you determine if any characters are dropped. It has an optional USB sniffer, which is very helpful (I've used it when developing Linux USB drivers). And it can monitor the connection whether the connection goes through a VM or not.
Cheers,

Jeff B.
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

Post by kalatov »

JeffB wrote:Wireshark should be able to help you determine if any characters are dropped. It has an optional USB sniffer, which is very helpful (I've used it when developing Linux USB drivers). And it can monitor the connection whether the connection goes through a VM or not.
I had a go with that last night and it worked pretty well. Drilling down in to the 'packets' (not quite the right term for serial comms) I could see the moves being sent in text but sometimes one side or the other just didn't reply or rather it wasn't sent over the serial port so I guess sometimes the serial drivers are failing to process what they are getting from the chess engines properly.

However after that I decided to dust off some old hardware and software and have got Win98SE installed on Pentium 4 era Compaq PC with two real serial ports. To cut to the chase WChess runs better on that in terms of it properly displays the little chess piece icons next to the moves which it doesn't in the VM for some reason, but more importantly the serial comms seem to work much better. I still need to prompt things along for the first couple of moves (or it's probably while they're in book) but once they're off and running it's working nicely. I've just watched two games at T1 (40 moves in 5m) with Sapphire being somewhat beaten up by WChess in 50 odd moves. Saying that having WChess running on a P4 with 512MB of RAM is hardly fair. I suppose if I put WChess in Easy mode it might even things up a bit.

The next thing on the list to try is to see if I can get the Sapphire and Citrine playing via Com2Com.
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

Post by kalatov »

Well, getting them talking via Com2Com didn't go so well, the Citrine seems to get confused about why its pieces haven't been physically moved. The strange thing is this doesn't happen when it is playing against an engine in Arena, so I'll need to capture what's going on there to see how Arena does it.

Thinking about that gave me another idea. I remembered reading about some UCI drivers Alain had produced to make it easier to use Novags with Arena. Tracking them down elsewhere in this forum the link is http://alain.zanchetta.free.fr/softs/Al ... .Setup.msi (thank you Alain) the one for the Diamond works, not surprisingly, a treat with the Sapphire. I can now have the Sapphire connected and running as an engine and then connect the Citrine using the built in functionality in Arena. It takes a bit of getting it all kicked off in the right order (and making sure that Ref is off on the Citrine) but I'm presently watching what to my eyes looks like a very wild game in the Sicilian Najdorf between the two of them. Interestingly they reeled off the first 24 moves so fast it must have been book for both of them and have now settled down for a long think. I've got them on T5 (40 in 90m). I didn't realise that any of the book openings went that deep.

Another nice aspect of the UCI driver is I can now play the Sapphire using Arena's board. Actually I guess it also should mean that I should be able to play the Sapphire using the Citrine as a board properly, i.e. without having to read the moves off Sapphire's display. Oh, well something for another day, I wouldn't want to disturb this game right now.

By the way, in case anyone passes this way looking how to connect a Novag that needs a Distributor and hasn't got one this replacement works really well and was pretty easy to make even for a soldering novice like me. The most difficult bit for me was ordering the kit from the German site, but meeting up with a German friend one day helped alot with that!
https://www.schach-computer.info/wiki/i ... eplacement

Phil
kalatov
Member
Posts: 149
Joined: Thu Aug 31, 2017 9:11 pm

Post by kalatov »

So, just to complete the story, using Alain's Diamond UCI driver in Arena for the Sapphire and the built in Citrine support, with the Citrine in Referee mode I can use the Citrine very nicely to play the Sapphire, with the LEDs displaying the Sapphire's moves, as well as them being recorded by Arena. I'm guessing that with enough experimentation I could set it up so that I could play black, although so far I've struggled to set up Arena to play with an engine as white against an external player (i.e. an external board such as the Citrine). I just need to read the docs more probably. At some point I'll write all this up as blog post with links to all the info and software I've found useful.

Thanks for people's help, and here is that first game between the Citrine and the Sapphire when they fought each other to a standstill with a draw due to insufficient material:

[Event "Computer chess game"]
[Site "KIGOMA"]
[Date "2017.09.12"]
[Round "?"]
[White "Novag Citrine"]
[Black "Novag Sapphire"]
[Result "1/2-1/2"]
[BlackElo "2000"]
[ECO "B99"]
[Opening "Sicilian"]
[Time "22:13:49"]
[Variation "Najdorf, Modern Main Line, Perenyi, 13.f5 Nc5 14.f6 gxf6 15.gxf6 Bf8 16.Rg1"]
[WhiteElo "2000"]
[TimeControl "40/5400:40/5400:40/5400"]
[Termination "normal"]
[PlyCount "157"]
[WhiteType "program"]
[BlackType "program"]

1. e4 c5 {0.00/1 8} 2. Nf3 d6 {0.00/1 1} 3. d4 cxd4 {0.00/1 1} 4. Nxd4 Nf6
{0.00/1 1} 5. Nc3 a6 {0.00/1 1} 6. Bg5 e6 {0.00/1 1} 7. f4 Be7 {0.00/1 1}
8. Qf3 Qc7 {0.00/1 1} 9. O-O-O Nbd7 {0.00/1 1} 10. g4 b5 {0.00/1 1} 11.
Bxf6 Nxf6 {0.00/1 1} 12. g5 Nd7 {0.00/1 1} 13. f5 Nc5 {0.00/1 1} 14. f6
gxf6 {0.00/1 1} 15. gxf6 Bf8 {0.00/1 1} 16. Rg1 Bd7 {0.00/1 1} 17. Rg7 Bxg7
{0.00/1 1} 18. fxg7 Rg8 {0.00/1 1} 19. e5 O-O-O {0.00/1 1} 20. exd6 Qb6
{0.00/1 1} 21. Ne4 Nxe4 {0.00/1 1} 22. Qxe4 Qb7 {0.00/1 1} 23. Qxh7 Qd5
{0.00/1 1} 24. a4 Qxd6 {(Qd5xd6 Qh7-e4 Rg8xg7 Qe4-a8+ Qd6-b8 Qa8xa6+)
+0.03/8 526} 25. Qe4 Rxg7 {(Rg8xg7) +0.42/9 1300} 26. Qa8+ Qb8 {(Qd6-b8
Qa8xa6+ Qb8-b7 a4xb5 Qb7xa6 b5xa6) +0.50/9 1} 27. Qxa6+ Qb7 {(Qb8-b7 Qa6-a5
Rd8-g8 a4xb5 Rg7-g1 Qa5-c3+) +0.61/9 1} 28. axb5 Qxa6 {(Qb7xa6 b5xa6 e6-e5
Nd4-f3 f7-f6 Rd1-d5) +0.76/8 380} 29. bxa6 e5 {(e6-e5 Nd4-b3 f7-f6 Nb3-c5
Bd7-f5 Rd1xd8+) +0.23/9 135} 30. a7 Kb7 {(Kc8-b7 Nd4-b5 Rg7-g1 c2-c4 e5-e4
Nb5-d6+) +0.23/10 449} 31. Nb3 Kxa7 {(Kb7xa7 Nb3-c5 f7-f6 Nc5-e6 Bd7xe6
Rd1xd8) +0.34/9 255} 32. Nc5 f5 {(f7-f5 h2-h4 Ka7-b6 Nc5-e6 Bd7xe6 Rd1xd8)
+0.26/9 253} 33. Ne6 Bxe6 {(Bd7xe6 Rd1xd8 Rg7-g1 Rd8-d1 Rg1-h1 h2-h3)
+0.57/11 360} 34. Rxd8 Rg1 {(Rg7-g1 Rd8-d1 Rg1-h1 Bf1-b5 Rh1xh2 c2-c4)
+0.61/10 296} 35. Rd1 Rh1 {(Rg1-h1 h2-h3 f5-f4 Bf1-g2 Rh1-h2 Bg2-e4)
+0.46/10 133} 36. h3 e4 {(e5-e4) +0.57/10 153} 37. b3 f4 {(f5-f4 Bf1-g2
Rh1xd1+ Kc1xd1 f4-f3 Bg2-f1) +0.92/10 169} 38. Bg2 Rxd1+ {(Rh1xd1+ Kc1xd1
f4-f3 Bg2-f1 e4-e3 Kd1-e1) +1.15/11 210} 39. Kxd1 f3 {(f4-f3 Bg2-f1 e4-e3
Bf1-e2 Be6-d5 Be2-d3) +0.84/11 106} 40. Bh1 Bxh3 {(Be6xh3 Kd1-e1 Ka7-b6
Ke1-f2 Bh3-g4 Kf2-e3) +0.80/11 250} 41. Ke1 Bc8 {(Bh3-c8) +0.65/12 133} 42.
Kf2 Bb7 {(Bc8-b7 c2-c4 Ka7-b6 b3-b4 Kb6-c7 Kf2-e3) +0.80/12 194} 43. b4 Kb6
{(Ka7-b6) +0.65/12 140} 44. c4 Kc7 {(Kb6-c7) +0.65/12 86} 45. c5 Bd5
{(Bb7-d5 b4-b5 Kc7-d7 Kf2-e3 Kd7-e7 Ke3-f2) +0.38/12 189} 46. b5 Kc8
{(Kc7-c8 Kf2-e3 Kc8-d7 c5-c6+ Kd7-c7 Ke3-d4) 0.00/12 84} 47. Ke3 Kd7
{(Kc8-d7 c5-c6+ Kd7-c7 Ke3-d4 Kc7-d6 Kd4-e3) 0.00/11 63} 48. Kd4 Ke6
{(Kd7-e6 c5-c6 Ke6-d6 Kd4-e3 Kd6-c5 c6-c7) +0.57/11 145} 49. c6 Kd6
{(Ke6-d6 Kd4-e3 Kd6-c7 Ke3-d4 f3-f2 Bh1-g2) 0.00/11 81} 50. Ke3 Kc7
{(Kd6-c7 Ke3-d4 f3-f2 Bh1-g2 e4-e3 Kd4xe3) 0.00/12 1} 51. Kd4 f2 {(f3-f2
Bh1-g2 e4-e3 Kd4xe3 Bd5xg2 Ke3xf2) 0.00/12 23} 52. Bg2 e3 {(e4-e3 Kd4xe3
Bd5xg2 Ke3xf2 Bg2xc6 b5xc6) 0.00/12 234} 53. Bf1 e2 {(e3-e2 Bf1xe2 Bd5xc6
b5xc6 Kc7xc6 Be2-c4) 0.00/13 185} 54. Bxe2 Bxc6 {(Bd5xc6 b5xc6 Kc7xc6
Be2-f3+ Kc6-d7 Bf3-e2) 0.00/12 55} 55. bxc6 Kxc6 {(Kc7xc6 Kd4-e3 f2-f1Q
Be2xf1 Kc6-b7 Bf1-e2) 0.00/13 37} 56. Bf1 Kd6 {(Kc6-d6 Kd4-e4 Kd6-c5 Bf1-e2
f2-f1Q Be2xf1) 0.00/14 223} 57. Ke4 Kc5 {(Kd6-c5 Bf1-e2 f2-f1Q Be2xf1
Kc5-b6 Ke4-e5) 0.00/14 93} 58. Ke5 Kb4 {(Kc5-b4 Ke5-f4 Kb4-c5 Kf4-e4 Kc5-d6
Ke4-f4) 0.00/14 305} 59. Kf4 Kc5 {(Kb4-c5 Kf4-e4 Kc5-d6 Bf1-e2 f2-f1Q
Be2xf1) 0.00/14 239} 60. Ke4 Kd6 {(Kc5-d6 Bf1-e2 f2-f1Q Be2xf1 Kd6-c7
Bf1-e2) 0.00/13 139} 61. Kf5 Kd5 {(Kd6-d5 Bf1-g2+ Kd5-c4 Bg2-f1+ Kc4-d5)
0.00/12 166} 62. Kf4 Kd4 {(Kd5-d4 Kf4-f3 Kd4-c5 Kf3xf2 Kc5-d4 Kf2-g2)
0.00/14 252} 63. Kf5 Ke3 {(Kd4-e3 Kf5-g4 Ke3-e4 Bf1-g2+ Ke4-d3 Kg4-f3)
0.00/13 210} 64. Ke5 Kf3 {(Ke3-f3 Ke5-d4 Kf3-f4 Kd4-d3 Kf4-g5 Bf1-e2)
0.00/12 117} 65. Kf5 Kg3 {(Kf3-g3 Kf5-e4 Kg3-g4 Ke4-e3 Kg4-f5 Ke3xf2)
0.00/13 157} 66. Ke4 Kg4 {(Kg3-g4 Ke4-e3 Kg4-h5 Ke3xf2 Kh5-g6 Kf2-g2)
0.00/12 103} 67. Ke5 Kg3 {(Kg4-g3 Ke5-e4) 0.00/12 101} 68. Kf5 Kf3 {(Kg3-f3
Bf1-c4 Kf3-e3 Bc4-a6 Ke3-d4 Kf5-f4) 0.00/13 123} 69. Ke5 Ke3 {(Kf3-e3
Ke5-f5 Ke3-d4 Kf5-f4 Kd4-d5 Bf1-e2) 0.00/13 207} 70. Kf5 Kd4 {(Ke3-d4
Kf5-f4 Kd4-d5 Bf1-e2 f2-f1Q+ Be2xf1) 0.00/14 103} 71. Kf4 Kd5 {(Kd4-d5
Bf1-e2 f2-f1Q+ Be2xf1 Kd5-c6 Kf4-g4) 0.00/12 56} 72. Kf5 Kd4 {(Kd5-d4)
0.00/25 126} 73. Kf6 Ke4 {(Kd4-e4 Kf6-g5 Ke4-e5 Bf1-e2 f2-f1Q Be2xf1)
0.00/12 145} 74. Ke6 Kf4 {(Ke4-f4 Ke6-f6 Kf4-e3 Kf6-e5) 0.00/13 234} 75.
Kf6 Ke3 {(Kf4-e3 Kf6-e5) 0.00/14 18} 76. Kg5 Ke4 {(Ke3-e4 Kg5-g4 Ke4-e3
Kg4-g5) 0.00/12 121} 77. Kg4 Ke3 {(Ke4-e3 Kg4-f5) 0.00/15 13} 78. Kg3 Kd4
{(Ke3-d4 Kg3xf2 Kd4-e5 Bf1-c4 Ke5-d4 Kf2-f1) 0.00/14 138} 79. Kxf2
{Insufficient material} 1/2-1/2
User avatar
Berger
Member
Posts: 179
Joined: Sun Sep 08, 2013 9:32 pm
Location: Barcelona (Catalonia)
Contact:

Post by Berger »

Hello,

What started as a prototype for a friend, has ended up in a small interface that I think may be of interest to some Novag users, as it allows you to connect any Novag computer to Arena, as if it were a Citrine. I still haven't been able to test it with Diablo 68000 nor Scorpio 68000, but I hope to do it soon.

I know that it is not the most elegant solution (or the cheapest) ...but it is the only thing I can do to solve this requirement.

Here it is:
https://sites.google.com/site/bergerspr ... _interface

Best regards,
Berger
Post Reply