HAL9000

HAL9000
"It just isn't conceivable that you can design a program strong enough to beat players like me."
Showing posts with label C64. Show all posts
Showing posts with label C64. Show all posts

February 28, 2015

Colossus 4.0 C64 finally meets Rapidroid!

I've been waiting since long ago to see that day. Now it's done. At least started...

Rapidroid is an experiment i'd invented in order to remedy the lack of serious chess engine rankings dedicated to Android, the way it's being done since decades for PC programs. However, no matter how accurate it becomes, the fun remains limited if you concentrate it to a single platform.

I believe multiplatform lists are more fun. Even SSDF, after all these recent top engines missing, is still a reference. You like it or not but you can't look elsewhere to see how comparable perform mobile programs vs PC's vs tabletops of the past etc.

Well, okay, but where is Android in SSDF? Nope...

To stop repeating the same question, i'd decided in the very beginning, to introduce a few PC engines as trustable anchors and besides these, especially as much retro programs as i can. I never had the opportunity. And recently in 2015 Jim Ablett compiles have taken away the first spare time chance.

After 8 months of wait, i finally said "Ok. I won't wait anymore and i'll do it right here right now!". The first one i'm finally injecting into Rapidroid is hereby COLOSSUS 4.0, released exactly 30 years ago, acknowledged as the strongest Commodore-64 program ever.
One funny micro-experiment of last year is to remember here. That was Colossus running at 24 hours per game vs Stockfish DD at 15 seconds per game, thus the most unbalanced settings in order to favor the oldie goody against the current World #1. The odds ratio was 24*60*60 / 15 = 5760 times more time for Colossus. Time heals many things but can't recover 30 years. As expected, the two games hadn't last even 50 moves. Paralyzed superchild had easily overcome the turbocharged grand grandfather.

Today, i played 4 games using two different Colossus configurations: One at 100X this time (more and more turbocharge please) and another with usual equal time control vs the weakest Android engine available, which is OliveChess. Olive looks like under 800 ELO, a great tool for all of us to achieve a victory against a computer in chess. Lol.

100X of Colossus might be equivalent to log (100) / log (2) * 60 = almost 400 ELO more, using the very rough and speculative formula. Since i expect standard Colossus to play 1300 ELO, can i expect then 1700 ELO at 100X? Although i strongly doubt about this but we'll see the difference in future Rapidroid lists thanks to the introduction of both configs.

Makes too much paragraphs for my poor fingers. Let's better take a look at the first games vs OliveChess, specially choosen to let Colossus with a victory. Colossus played on VICE emulator while Olive was running on a tablet with Rockchip 3066 dual core processor. For Olive, single, dual, quad cores don't count and only GHz matters. It's a single core engine.
* Time control for Colossus 100X was set to 100 * 10 sec/move = 16 mins 40 secs / move
* Time control for Colossus standard and Olive was set to usual 10 secs / move because Olive can't play with mins / game.
* The opening was the same for all 4 games, an 8 moves Sicilian taken from the first game of TCEC-
* Book and prediction was set to 0 for Colossus.
* Colossus clock was set to 8 x average time setting and not zero, to prevent extra time usage.

GAME-1: OliveChess 0-1 Colossus 4.0 C64 100X


GAME-2: Colossus 4.0 C64 100X 1-0 OliveChess


GAME-3: OliveChess 0-1 Colossus 4.0 C64


GAME-4: Colossus 4.0 C64 1-0 OliveChess

February 24, 2015

Colossus 4.0 C64 to revive soon in RAPIDROID!

You think it's a joke? Yes and no. I had not foreseen a Commodore-64 program from 1985 to be the first non-Android to appear on Rapidroid ratings. Though the idea looks weird and stupid at first sight, it may be interesting to find out if it can still find an opponent to play after so long time.

Colossus was my first serious computer rival in late 80's after Grand Master which had quickly became my whipping boy in no more than 30 games. Colossus, in contrast, was not that easy for me to beat and it has remained the best chess memory of my childhood. I still remember Chessmaster 2000 too but Colossus was unique with a lot of professional features.

Today is 2015 and it's possible to have Colossus running almost hundred times faster than on a C64, using warp setting in WinVICE emulator, thanks to Intel Core i7. Therefore, it won't be foolish to give a try with it face to the recent engines below 1500 ELO.

So, stay tuned for a pleasant retro-chess encounter to be included in Rapidroid very soon. Now you wanna guess how high Colossus Turbo can reach 30 years after its birth?

August 25, 2014

How to detect a clone engine 25 years ago?

I felt very happy when i find out 3D Scacchi Emulator, a new C64 program was available for download and i thought that adding another candidate to the ongoing retro tournament would be good. But it seemed to be a clone of MyChess II.

3D board, a luxorious option in 80's

Today, many techniques to analyze and verify if a chess engine is the exact copy of another exist and they are scientifically reliable. Although this reminds me of the false (false for me after tons of articles i've read about it) accusations to Rybka followed by bans and title withdraws some years ago, i keep thinking this kind of precise comparisons can be accurately done if fairly adopted with good will.

But what you would do with something coming from the "stone age" of computer chess?

At first sight, 3D Scacchi looked nice and strong to me within the conditions of that era but it was said the engine is a copy of MyChess II. Ooops, disappointment!

The program was released in 1989, that's way after MyChess of 1984. Why those Italians would be willing to repack and probably pay a fee to Dave Kittinger for his engine of 5 years ago? Or was 3D Schacchi an illegal clone?

To check this out, i could find no other way than forcing both programs to play at the same time vs a third program (3 VICE emulator windows running at once...), at the same move timings, so that they can not go into different variations using their thought-ahead analysis made on my thinking time. Different moves should be only based on their evaluation differences, in case they are not the same engine.

The result, shown in attached screenshot, was convincing enough for me. They both played the same moves after same thinking times, move by move. Therefore, there was no added value of injecting 3D Scacchi into C64 Revisited experiment.

They think the same, they move the same

But if i was to make a more serious decision to ban or not this program or cancel its previous world championships (if any), i don't think i would easily do that, unless i am 100.00% sure of it.

As a dramatic case, some people did that to Rybka, number 1 chess engine of late 2000's. Rybka is abandoned and no more maintained since the verdict. That's why today, a highly potential engine is still missing from computer chess competition again the lonely topper Stockfish.

I think an updated and improved Rybka would be another color in the whole picture for sure, meaning more fun, for us, chess freaks.

C64 Revisited: Chessmaster 2100 and Colossus 4 lead after round 5

In pursuit on my childhood memories with C64, i'm back in time to 80's via software emulation. It feels crazy but still fun to find ways (uh!) to make these fossiles play chess the way we want. Most of them don't have any time control but just levels. It's just hard to establish equal time controls between these oldies.

One may pass a week with these old chess programs to understand better how it's comfortable to call dozens of engines into Arena on a PC and just watch the games automatically played with all moves recorded into PGNs or just the standings once a day!

Now, my insanity counter shows 220 games manually played by 23 programs.

After my last post, i've found and introduced two additional programs i was not aware of before: Coffee House Chess Monster and Schach64. The latter is probably the weakest chess program ever released. It's a kamikaze built to make you feel like Magnus Carlsen.

While adding two new programs, i disqualified Cesar which crashed all the time and redid the pairings to restart from scrath using already played games when necessary.

Thanks to time saving smart swiss system, there's almost no useless game played and even after 5 rounds, results are speaking: Colossus 4 and Chessmaster 2100 rule and will be fighting for the C64 crown. Their predecessors Colossus 2 and Chessmaster 2000 perform well too and cause serious harm to other candidates like MyChess II, Cyrus II, Sargon III and Chess 7.5. 

You better click on below chart to see the standings and sorry for the optical trouble caused.
As expected, the ranking is different here, due to various factors like different active chess (30 sec/move) levels i selected for some programs, disabling deep thinking option and the fact that i try to increase games between programs of closer strength.

ELO performances are given without calibration for the moment. I've just fixed the leader Chessmaster 2100 to 1600, though i feel it's too much. I think it plays around 1400. But the ranking matters more than  calibration in closed tournaments. One can add or remove as much elo as he wants to list anyways.

The experiment is not over yet due to still wide elo error margins. Maybe it will be better to start 3 divisions after round-7, given that the swiss pairing matrix will probably reach its limit soon.

The results by rounds can be found below and a PGN collection of the games will be soon uploaded to box.com.

ROUND-1:
Cluster-High
Colossus 4.0 - MyChess II: 2½-1½ (=110)
Chessmaster 2100 - Sargon III: 4-0 (1111)
Chessmaster 2000 - Cyrus II: 2-2 (0011)
Chess 7.5 - Chess 7.0: 4-0 (1111)
Falken Schach - Colossus 2.0: 1-3 (0010)
Grand Master - Coffee House CM: 1-3 (==00)
Cluster-Low
Hypra Chess - Caissa 5.2: 2½-1½ (=110)
Master Chess - Schach64: 3-1 (=1=1)
Battle Chess - Sargon II: ½-3½ (0=00)
Kempelen 2.0 - Petchess 4000: 4-0 (1111)
Super Schack - Grobi 1.0: 2-2 (0110)
Microchess 3: unpaired

ROUND-2:
Cluster-High
Colossus 4.0 - Chessmaster 2100: 2½-1½ (01=1)
Chess 7.5 - Colossus 2.0: ½-3½ (000=)
Chessmaster 2000 - Coffee House CM: 3-1 (0111)
MyChess II - Cyrus II: 3½-½ (11=1)
Sargon III - Chess 7.0: 1½-2½ (10=0)
Falken Schach - Grand Master: 2½-1½ (011=)
Cluster-Low
Hypra Chess - Sargon II: 2-2 (01==)
Kempelen 2.0 - Master Chess: 3-1 (1==1)
Super Schack - Microchess 3: 4-0 (1111)
Caissa 5.2 - Grobi 1.0: 3-1 (0111)
Battle Chess - Petchess 4000: 2½-1½ (10=1)
Schach64: unpaired

ROUND-3:
Colossus 4.0 - Colossus 2.0: 2½-1½ (=011)
Chessmaster 2100 - Chessmaster 2000: 2-2 (0101)
MyChess II - Chess 7.5: 3½-½ (1=11)
Chess 7.0 - Coffee House CM: ½-3½ (000=)
Falken Schach - Kempelen 2.0: 2-2 (0=1=)
Cyrus II - Sargon II: 4-0 (1111)
Hypra Chess - Super Schack: 2-2 (=01=)
Sargon III - Grand Master: 4-0 (1111)
Caissa 5.2 - Battle Chess: 2-2 (==01)
Grobi 1.0 - Master Chess: 4-0 (1111)
Microchess 3 - Schach64: 4-0 (1111)
Petchess 4000: unpaired

ROUND-4:
Colossus 4.0 - Chessmaster 2000: 2½-1½ (1=10)
MyChess II - Chessmaster 2100: ½-3½ (=000)
Cyrus II - Colossus 2.0: 1-3 (0001)
Chess 7.5 - Coffee House CM: 2-2 (0101)
Sargon III - Falken Schach: 3½-½ (111=)
Sargon II - Superschack: 2-2 (1100)
Chess 7.0 - Hypra Chess: 3-1 (0111)
Caissa 5.2 - Kempelen 2.0: 2-2 (1=0=)
Grandmaster - Grobi 1.0: 3½-½ (1=11)
Battle Chess - Microchess 3: 4-0 (1111)
Petchess 4000 - Schach64: 3½-½ (1=11)
Master Chess: unpaired

ROUND-5:
Chessmaster 2100 - Colossus 2.0: 3-1 (1==1)
Colossus 4.0 - Cyrus II: 3½-½ (11=1)
MyChess II - Chessmaster 2000: 1-3 (1000)
Sargon III - Chess 7.5: 3-1 (0111)
Falken Schach - Coffee House CM: 3½-½ (11=1)
Chess 7.0 - Grand Master: 3½-½ (1=11)
Caissa 5.2 - Sargon II: 1-3 (0=0=)
Hypra Chess - Kempelen 2.0: 2½-1½ (1=01)
Super Schak-Petchess 4000: 3-1 (11==)
Microchess 3 - Master Chess: 3-1 (1101)
Battle Chess - Schach54: 4-0 (1111)

Grobi 1.0: unpaired

ROUND-6:
Pairings shown above, on standings chart, marked red.

Tournament conditions:
* Performance elo based Swiss pairing & ranking
* 4 games per pairing
* 30 seconds/move or closest level setting
* Ponder disabled or prevented by pausing the emulator.

June 6, 2014

C64 Revisited: Round-2 starts


After one day of rest, i feel like freaking again about C64 zombies and their moves. Now it's another 44 games after which all 22 programs will have played 8 games against 2 others.

I'm not a Swiss pairing specialist at all but i know it's better to keep close rivals together and to avoid top programs vs weak ones, the way we see in many round robin tournaments.

But why not play only one game and not four in a row? That's how i started altering the swiss method.

Therefore, i have no doubt the ranking will be readable as early as after two rounds. And 7 rounds will be very decisive.

My bet is always on Colossus 4.0 for the leadership. I think MyChess-II and Chessmaster-2100 will likely fight for second place.

But let's play and see if practice meets theory.

June 5, 2014

C64 Revisited: Round-1 finished

22 programs, 4 games per pairing and an altered version of swiss tournament for better elo calculation...

I believe this method is much better than a huge round robin with a lot of useless "high gap" pairings. Instead i wanted to replace all possible high gap pairings with more games between programs of close strength.

We will see the outcome if i can survive more than 7 rounds like that, bearing in mind those zombie programs are very difficult to efficiently control because of different commands and entry modes.

In any case, the experiment is scientifically interesting because it's fun to find ways to port today's trends and methods to a fully historical environment.

The major difference of this project is the ellimination of pondering regardless of the program options, by pausing the emulation in the worst case. This was never done before.

Pondering (aka deep thinking, permanent brain) means the program continues to think ahead when it's the opponent's turn. This leads to a stronger gameplay when next opponent move is correctly guessed. Therefore it's vital to use pondering in a real tournament. But in a testing environment or when two programs are not connected for auto-play, manual move entries cause delays and turn to extra time in favor of the program who's waiting its turn. Testers avoid pondering since a long time ago when two programs share same hardware ressources too. Though it's not the case with C64 emulation and we can run many VICE instances without ressource conflicts.

I had to change level settings on Chessmaster 2100, Sargon, Cyrus II, Petchess and Microcess (all from L5 to L4). I think the settings used in other tournaments do not comply to 30m/60' rapidchess timing, maybe due to no more pondering. Stopwatch checked and verified :-)

Regarding the results, as seen (unseen?) below with a magnifier or by clicking on the image, the first round did not bring extraordinary surprises, hopefully. A clearer overview should be available as soon as two more rounds thanks to the quickest ranking system i want to reach.

May 6, 2014

Commodore-64 Revisited: A retro-chess experiment

Here's another project to refresh our childhood memories.

Once there was no internet, no free engines, no daily updates, no multi cores but just chess programs we were searching all around to find a copy on tape!

That was the 80's when C64 was awesome as first computer experience. Having a chess partner always ready to play as many times as you want, whenever you want, was something so extraodinary for the young and willing amateur chess enthousiasts we were, some 30 years ago.

Each new program release added to our libraries used to taste like bitter chocolate during months. It's not shocking to see today's hyper threaded engine freaks hardly imagine this.

Therefore, i wanted to repeat a C64 experiment done before by other C64 freaks, but in a different manner. I can't deny the enourmous efforts made during these old tournaments managed by crazy people. But there may be an added value to reflect back and forth, after thousands of games and many rating measurements i've been generating on a single smartphone.

Does discovering America once again make sense? Maybe not. Maybe yes. I just wanna see the outcome.

It would be also interesting to test how these programs which can only analyze 3 or 4 plies deep would stand against today's weak UCI engines rated 1200 to 1700. Kind of "Old Tigers vs New Kitties" tournament ???

At the bottom of the post lies the list of 22 available C64 chess programs, my old friends i've been calling back on duty since a while and their elo ratings based on previous tournaments. These elo ratings are not mine and can be easily found on sites like this fave of mine: www.spacious-mind.com

Now it's time to go for a rating competition, measurement, test, whatever you may call it and verify if a new approach will change the rankings.

In fact, it's not a round robin tournament at all. Briefly, games like 1600 elo vs 1000 elo seem like wasting time to me. Besides, this kind of large gap pairings distort the average of the opponents, resulting to a shrinking rating list with some amount of error. If all above facts are true, using previous elo ratings (be they accurate or not...) to directly focus on probably well balanced pairings should be the quickest way to hit the target.

So, here are the conditions:
* Time control: 30 sec/move setting that German colleagues call Activschach sounds suitable. There was no blitz clocks at the time the progs were written, so the alternatives, where applicable, may be 60m/30' or game in 30 mins.
* Ponder: This is the major change i will adopt. Pondering will not be enabled. When there's no option to dissable, the emulator can be paused to prevent deep thinking. It's a workaround which works unless you are in warp (turbo) mode.
* Device: I have no C64 anymore but VICE is a perfect emulator. Model setting must be NTSC and not PAL because due to VIC timing cycles, the clocks slow down by 20% in PAL mode, though the moves played are the same. Weird... This is an issue i could not understand in detail but after all, the NTSC mode is safe for accurate clock displays.
* PGN recorder: Winboard portable set to tiny board is excellent. Takes very little space on the screen.
* Speed: No WARP mode on emulator but 200% max. I've verified it's quick enough to follow and record the moves fluently.
* Pairing: It's not a tournament and the objective is to achieve quickly an accurate elo ranking. Thus, an alteration of swiss method suits well. This is done by allowing repeated pairings when there's no new opponent in 400 elo range while trying to maximize the number of opponents played. Each pair always plays at least twice with different colors.
* Duration: The number of rounds can be unlimited until elo changes stabilize in a narrow margin.

Games and results to follow soon. Long live retro freaking!!!

C64 REVISITED COMPETITION
## Program          elo*
-- ---------------- ----
01 Colossus 4.0     1676
02 Mychess II       1648
03 Chessmaster 2100 1621
04 Sargon III       1569
05 Chessmaster 2000 1552
06 Cyrus II         1525
07 Chess 7.5        1489
08 Chess 7.0        1426
09 Falken Schach    1419
10 Colossus 2.0     1401
11 Grandmaster      1341
12 Kaissa 5.2       1278
13 Hypra            1285
14 Battle Chess     1272
15 Sargon II        1170
16 Kempelen         1156
17 Petchess         1148
18 Super Schak      1133
19 Grobi            1126
20 Microchess       1118
21 Cesar            1086
22 Master Chess      919
* elo ratings are collected on internet as reference indicators