Strelka Reverse Engineered from Rybka: Details Examined

Discussion of chess software programming and technical issues.

Moderator: Ras

rfadden

Re: Strelka Reverse Engineered from Rybka: Details Examined

Post by rfadden »

F. Bluemers wrote:looks almost exactly like the fruit/toga code to me
protocol.cpp if i remember well
strelka using integers instead of (slower) double
Best
Fonzy
Yes, let's check into that, but note that I have matched up the thousands of lines that follow and they are all practically identical between Rybka and Strelka, and this is the one spot where I am showing some slight additions being made to Strelka (start_go).

What I am trying to say is that the next piece of work that I am posting shows Strelka as a pure reverse enginer of Rybka, and these two identical programs are not like Fruit. These two programs have the same constants, Strelka was derived from Rybka, and you do not see these constants or anything like this in Fruit.

I wanted to go through step 1 to get to step 2, but I have already seen the answer in steps 2 through 279 and they all match so all I am doing is bringing out the material that I have seen in great detail, so others can also see this.

Thanks.
Jorge Garcia de Andres

Re: Strelka Reverse Engineered from Rybka: Details Examined

Post by Jorge Garcia de Andres »

Hi Rick,

I appreciate your good job, there's nothing wrong searching for the truth
of things. I really find very interesting your posts of technical details.
Good job Rick.
rfadden

Re: Strelka Reverse Engineered from Rybka: Details Examined

Post by rfadden »

Thank you. This next post should help further our understanding. I'll finish preparing this one and post hopefully later today.
rfadden

Re: Strelka Reverse Engineered from Rybka: Details Examined

Post by rfadden »

Sorry to interrupt this thread but what happened is: I was getting this excellent feedback from the creator of the World Camelot Federation

http://groups.msn.com/worldcamelotfederation

My new program system to play "Inside Moves / Camelot / etc.." called "Chaxx" had some problems, and the few, rare users of my program needed my help. I have been diligently fixing things and adding to the implementation as these guys need things.

So what I'm trying to say is it is exactly as if I had a computer chess program out there for people to use and I started receiving calls for help, to fix things. My efforts here on this subject are just "frozen in time" as I work on my system that plays the game of Camelot.

Would you like to try my program? Take a look at the rules of Camelot. As a longtime fan of Chess the first moment that I ran into the board game of "Inside Moves" (a fresh looking version of Camelot) I just completely fell for this game. I think of this as a great alternative to try when Chess becomes a little stale.

So anyway, things are frozen in time here, but I will come back to this spot and continue. I'm just fixing a few more things in Chaxx.

Chaxx won a game against one of the world's best Camelot players, and the play of the machine was awesome I think (finally) and so this is a very exciting time to work in this field.

Thanks.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Strelka Reverse Engineered from Rybka: Details Examined

Post by kranium »

Hi Rick-

Nice work disassembing these two executables and providing some C code.

The Rybka C code you provided (from which the Strelka code was taken or on which is is based) can be easily identified: it is Fruit 2.1's parse_go() function (found in protocol.cpp). Although there have been a few minor changes (i.e. without the ASSERTs, double -> integer), the code is almost identical.

Many others have suggested that Rybka was based on Fruit, and this has been categorically denied by the author, but that position now seems quite a bit more difficult to mainain...

Keep up the good work!