strelka 2.0

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

rfadden

Re: strelka 2.0

Post by rfadden »

GenoM wrote:so the logical conclusion of your post, Rick, is:

Vasik has to explain why his Rybka code has so much of Fruit in it.
Yes, and I'm thinking we should dive into this subject. In other words I can work more on showing how Strelka is a perfect reverse engineering of Rybka 1.0 Beta, and you and Dann and others can bring up some of the points about the algorithms and where you've seen them in earlier work.

On my machine locally I'm changing Strelka to exactly match Rybka 1.0 Beta. This is not hard, I'm just carefully adding the few missing lines of code, and I am carefully commenting and removing anything in Strelka that is not in Rybka 1.0. As I mentioned as far as removing code the only thing I have to remove is the simple MultiPV gather and display, and the one line of code in Full_Search that Jury either added or that he took from Fruit.

As I mentioned the estimated 50 lines of code or so will have to be protected and not released to the public. That represents the little bit of Rybka 1.0 not available yet.

I feel that it's ok for me to roughly describe the little that was left out of Strelka, but I would never release the source code that I create in private as part of this experimental work.

Just to be clear, after we do finish showing that Strelka is a perfect reverse engineer of Rybka 1.0, then we all will have the proof to then be rather unhappy with Jury Osipov. In other words I do not condone what he has done. I don't condone reverse engineering a piece of work and then releasing the source. Others could put this into words better than I can. Right now all I can think of is "that's stealing" or "that's dishonest."

Looking inside Rybka is like a hobby for me (no, it now *is* a real hobby for me) but I would never produce or send out source code (I mentioned showing this code to Dann Corbit but we all have to be very careful that this source does not get released to the public...)

Thanks.
rfadden

Re: strelka 2.0

Post by rfadden »

By the way, my posting of the Rybka 1.0 Beta Patch that removes all of the Obfuscation that Vasic added... that is on this forum under:

Computer Chess:

Rybka 1.0 Beta Node Count Patch

and also...

Retry: Rybka 1.0 Beta Node Count Patch

---------------------

See here's what I ran into. I posted my text that describes how to use DZA Patcher v1.3, and then I included the set of text that DZA Patcher needs to control the patches and I put this glob of characters within a /code and /uncode section. Since there were no <cr> carriage return characters in this long blob of text the unfortunately tricked the forum display to make the window as wide as this file is long... Ughhh!

So that was what happened within the post topic: "Rybka 1.0 Beta Node Count Patch."

So I started over with the "Retry: Rybka..." thread and there I added artificial <cr> characters inside the glob of text in order to prevent the forum display from being whacked out...

The file that I'm communicating is all ASCII but it is one long line of text and so the forum display doesn't seem to like that.

So anyway between these two attempts to convey the information, we did receive a reply from Matthias Gemuh where he says he was able to get this information from the Forum, use the instructions, apply the patch, and the program works for him as I have described. Good...

I mentioned in text earlier that I myself might be a little wary in trying a Patch like this and that is why I am going to include my Notes next.

I realize this is going to look pretty ugly the way that the forum displays Tabs that are included in text. Keep in mind that this text looks fine here. So perhaps you could cut my notes from this site and paste this text into Notepad, and then see it the way I see it.

Within the /code /nocode block you would think that this site should use a non-proportional spaced font, but NO...... no..... So as far as I can tell I can't get my nicely layed out notes to display here layed out the way I see it because even when I remove Tabs and replace them with the "proper" number of spaces, the text still is displayed here using a proprtional font and my lined-up fields show up all "caterwompus..."

Code: Select all

Send_Best_Move&#58;

40939D	lea  esi, &#91;eax+edx*8&#93;	3	8D 34 D0	&#58;Old

40939D	mov  esi, edx		2	* 8B F2		&#58;New
	noop			1	* 90

------------------------------
Command_Interpretter

Fix "go depth x" command to not add 2 to depth.

4096DB	add  eax, 2		3	83 C0  02	&#58;Old
4096DB	add  eax, 2		3	83 C0 *00	&#58;New

4096DD	1	*00


4096FE	add  eax, 2		3	83 C0  02	&#58;Old
4096FE	add  eax, 0		3	83 C0 *00	&#58;New

409700	1	*00

------------------------------
Make_Move&#58;

40A774	retn			1	C3		  &#58;Old

40A774	call 41AA50		5	* E8 D7 02 01 00  &#58;New
40A779	retn			1	* C3

// 102D7

------------------------------
Start_Search&#58;

Print all Depths during search&#58;

40C03E	cmp  edi, 5		5	83 FF  05
40C03E	cmp  edi, 1		5	83 FF *01

40C040	1	*01

Avoid Subtracting 2 from Depth Display&#58;

40C043	lea  eax, &#91;edi-2&#93;	3	8D 47  FE
40C043	lea  eax, &#91;edi-0&#93;	3	8D 47 *00

40C045	1	*00

------------------------------
Full_Search&#58;

40C6B6	call Trans_Max_Store
40C6BB	add  esp, 8		3	* 83 C4 08
40C6BE	jmp  loc_40C249		5	* E9 86 FB FF FF
40C6C3

...

40C6D3	add  nodeTickHigh, 1	7	83 05 74 7A 66 00 01

...

40C70D&#58;	cmp clockFlag, 0	7	80 3D   88 7? 66 00 00	
40C714&#58;	jz  41AA65		6	0F 84 * 4B E3 00 00
40C71A&#58;

40C716	4	* 4B E3 00 00	// 0000E34B


40C71A&#58;	cmp ignoreClockFlag, 0	7	80 3D   24 7A 66 00 00
40C721&#58;	jnz 41AA65		6	0F 85 * 3E E3 00 00
40C727&#58;

40C723	4	* 3E E3 00 00	// 0000E33E

-------------------------------
Full_Root&#58;

Enable the PV display at Ply 1

40D60F	cmp  eax, 5		3	83 F8  05
40D60F	cmp  eax, 1		3	83 F8 *01

40D611	1	*01

---

40D798	lea  esi, &#91;eax+edx*8&#93;	3	8D 34 D0

40D798	mov  esi, edx		2	* 8B F2
	noop			1	* 90

---

40D7C9	add  ecx, 0FEh		3	83 C1 FE

40D7C9	add  ecx, 0		3	83 C1 *00

40D7CB	1	*00

---

Disable limiting display to searchDepth >= 5&#58;

40D8CF	cmp  searchDepth, 5	7	83 3D 68 BC 66 00  05
40D8CF	cmp  searchDepth, 1	7	83 3D 68 BC 66 00 *01

40D8D5	1	*01

Skip the Munge of Node Count&#58;

40D900	lea  esi, &#91;eax+edx*8&#93;	3	8D 34 D0

40D900  mov  esi, edx		2	* 8B F2
	noop			1	* 90

---

Skip the -2 of info depth display&#58;

40D925	add  eax, 0FFFFFFFEh	3	83 C0 FE

40D925	add  eax, 0		3	83 C0 *00

40D927	1	*00

------------------------------

New Patch using unused memory at the end of the program
Put this in the padding space at the end of the code section&#58; 0041AA50

41AA50	mov eax, nodeTickLow	5	* A1 6C 7A 66 00
	sub eax, 1		3	* 83 E8 01
	test eax, eax		2	* 85 C0
	mov nodeTickLow, eax	5	* A3 6C 7A 66 00
	jle 40C6D3		6	* 0F 8E 6E 1C FF FF  ; FFFF1C6E
41AA65&#58;	retn			1	* C3

------------------------------
Modified ID String&#58;

661FF8&#58;	8	* 50 61 74 63 68 20 33 32
How does that look? Terrible, right?

Thanks.
Uri Blass
Posts: 10409
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: strelka 2.0

Post by Uri Blass »

GenoM wrote:so the logical conclusion of your post, Rick, is:

Vasik has to explain why his Rybka code has so much of Fruit in it.
No it is not the logical conslusion.

The post of Rick is not about fruit but about strelka and rybka.

He claims that Strelka is almost identical to Rybka beta.
He does not claim that Strelka has much of Fruit in it so he does not claim that rybka has much fruit in it.

Fabien also see no problem with strelka based on Dann Corbit's code

Fabien words from Dann's post:
"No worries as far as I am concerned.
Ideas are not a legal property.
The code was rewritten so it's OK with me.
Tournament organisers might think differently."


Uri
rfadden

Re: strelka 2.0

Post by rfadden »

Uri Blass wrote:
GenoM wrote:so the logical conclusion of your post, Rick, is:

Vasik has to explain why his Rybka code has so much of Fruit in it.
No it is not the logical conslusion.

The post of Rick is not about fruit but about strelka and rybka.

He claims that Strelka is almost identical to Rybka beta.
He does not claim that Strelka has much of Fruit in it so he does not claim that rybka has much fruit in it.

Fabien also see no problem with strelka based on Dann Corbit's code

Fabien words from Dann's post:
"No worries as far as I am concerned.
Ideas are not a legal property.
The code was rewritten so it's OK with me.
Tournament organisers might think differently."


Uri
I agree with Uri and I think I should clarify my contribution to this topic:

As Uri is saying, I am only writing about Strelka being an *exact* match with Rybka 1.0 beta (with so few differences as to be shocking).

I leave any talk about implications of algorithms to you guys.

My primary interest is with the Rybka/Strelka thing.

I hope I don't end up contradicting this statement later...

Over on the Rybka Forum I wrote at length on my guesses as to how Fruit 2.1 source and Fruit 2.2 success might have motivated Vas, but there I give my guess about how these results would likely have served as motivation to do further R&D... I haven't written about any direct copying.

Over there my handle is "ExperiMental." This is just a carry-over from registering there long ago...

Hmmm, I'm hoping Vas doesn't get mad at me for being in close proximity to this discussion... Maybe I should back away a bit...

Thanks.
User avatar
M ANSARI
Posts: 3707
Joined: Thu Mar 16, 2006 7:10 pm

Re: strelka 2.0

Post by M ANSARI »

Vas has never denied that he learned a lot from Fruit code and that he went through it with a fine tooth comb from top to bottom. He also gave an estimate to how much that information added to the strength of Rybka. Using general ideas and writing your own original code learnt from ideas is NOTHING like stealing and copying and pasting someone else's work and claiming it as your own. Even Fabien has mentioned that he had no problem with it since it was entirely re-written in a different format. After all ... that was the original intent of Fabien when he released Fruit code. Please do not compare what the author of Strelka did to what the author of Rybka did as it is not a valid comparison. One used an idea to create his own original work, while the other put all his effort at simply copying it and then claiming it was original work. Let us not forget that for a long time the author of Strelka continued denying anything to do with Rybka ... and only after some very gifted people on this forum started showing proof of copying (especially when even bugs were the same) did he admit the truth. Also do not forget that he tried to weasel out some financial gain from this from Vas ... not a very ethical thing to do ... some might even call it blackmail.
ozziejoe
Posts: 811
Joined: Wed Mar 08, 2006 10:07 pm

Re: strelka 2.0

Post by ozziejoe »

I agree, M.. The strelka "author" has acted like a real weasel from the begining....And now fabian has looked at the code (strelka/rybka 1) and said it was fine, then I think that ends the argument about rybka. its dead.


I wonder about the people that keep defending strelka and assailing rybka 1.0. could this be the author of strelka, or a friend? I have not seen this sort of resistance to evidence for awhile.....

So, to sum up, according to uri's quote, fabian says strelka (does not equal) fruit. other posts say strelka = rybka beta 1.

Please lets put this thing to rest and give the attention back to those who are actually creating engines (go glaurung and romi, two of my favourites). and uri, I hope we see a new movei soon too:)
User avatar
GenoM
Posts: 910
Joined: Wed Mar 08, 2006 9:46 pm
Location: Plovdiv, Bulgaria

Re: strelka 2.0

Post by GenoM »

M ANSARI wrote:One used an idea to create his own original work, while the other put all his effort at simply copying it and then claiming it was original work.
Are you a software engineer? I know programmers whos opinion is absolutely contrary to yours.
M ANSARI wrote:Let us not forget that for a long time the author of Strelka continued denying anything to do with Rybka ... and only after some very gifted people on this forum started showing proof of copying (especially when even bugs were the same) did he admit the truth.
That's simply not the case. Osipov from the very begining did not hide Rybka origin of Strelka -- the fact that he chose his engine name to be ...ka 1.0 beta 32-bit is clear to understand.
M ANSARI wrote:Also do not forget that he tried to weasel out some financial gain from this from Vas ... not a very ethical thing to do ... some might even call it blackmail.
You know Vasik version. I know Osipov's. So I claim that's not the whole truth. I assert that there was kind of misunderstanding.
take it easy :)
rfadden

Re: strelka 2.0

Post by rfadden »

I agree that it would be nice if we all had "positive" development projects, and we come here and pitch in and help each other...

Given human nature though would you not agree that we will continue a bit with the Rybka/Strelka thing?

I mean I feel like I still have some unfinished business and it's right in the middle of this topic, so in the future when I post my results I am going to ask people to avoid saying "oh not that again!"

I mean I'm doing this development now and it's going to be a while before I'm done, so I'm asking folks to try to understand the motivation of a person who has "other" interests.

Very often we have different interests... People are complex, people become motivated or interested in many different topics.

So I'm adding these chuncks of logic to Strelka and these chunks of logic are really interesting. I mean at least they are really interesting to me... The thing I'm working on is a two year old chess engine that still even though it's old plays really well. When I'm done I'll be able to say that I understand the whole thing and I'm actually continuing to learn quite a bit as I do this.

If/when I finish I can submit an engine (binary only) that will identify itself properly, name, author and all that, and I'm hoping that we will test this engine versus other famous older engines and see if people believe it matches others in the testing positions, etc...

I'd like people to understand that this is a hobby. I also do things like build and fly radio controlled helicopters (and rebuild). Here we wouldn't question that this radio controlled helicopter hobby is legitimate... you know it is. This is my way of saying my messing with antique chess engines is a legitimate hobby. I'm interested in it, this is my hobby, and I'm going to write about my findings.

On these forums, all chess related topics are open for posting, discussion, etc...

Thanks.
Last edited by rfadden on Tue Apr 22, 2008 4:57 am, edited 1 time in total.
Dann Corbit
Posts: 12564
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: strelka 2.0

Post by Dann Corbit »

rfadden wrote:I agree that it would be nice if we all had "positive" development projects, and we come here and pitch in and help each other...

Given human nature though would you not agree that we will continue a bit with the Rybka/Strelka thing?

I mean I feel like I still have some unfinished business and it's right in the middle of this topic, so in the future when I post my results I am going to beg people to avoid saying "oh not that again!"

I mean I'm doing this development now and it's going to be a while before I'm done, so I'm asking folks to try to understand the motivation of a person who has "other" interests.

Very often we have different interests... People are complex, people become motivated or interested in many different topics.

So I'm adding these chuncks of logic to Strelka and these chunks of logic are really interesting. I mean at least they are really interesting to me... The thing I'm working on is an old two year old chess engine that still even though it's old plays really well. When I'm done I'll be able to say that I understand the whole thing and I'm actually continuing to learn quite a bit as I do this.

If/when I finish I can submit an engine (binary only) that will identify itself properly, name, author and all that, and I'm hoping that we will test this engine versus other famous older engines and see if people believe it matches others in the testing positions, etc...
If it is a binary only, how will we know it is not the original engine that you tweaked a bit? I would have no faith in it at all without source code.

Also, I think it would be possible to take an engine and tweak it to emulate the style of another engine. Will that demonstrate anything about clone status? I don't think so.
I'd like people to understand that this is a hobby. I also do things like build and fly radio controlled helicopters (and rebuild). Here we wouldn't question that this radio controlled helicopter hobby is legitimate... you know it is. This is my way of saying my messing with antique chess engines is a legitimate hobby. I'm interested in it, this is my hobby, and I'm going to write about my findings.

On these forums, all chess related topics are open for posting, discussion, etc...

Thanks.
rfadden

Re: strelka 2.0

Post by rfadden »

That's a good point Dann. I forgot the exact words that I used but my intention was to send my source code to you and ask that you not distribute it further. You could compile the source and note that the binary matches. A few key people could check the source but the new source can not be released to the public because that would be like a repeat of the Strelka thing...

Also note the strings that identify the actual author will be correct...

So as I said this is an interesting experiment and it's a learning experience for me. It's a hobby and I'm not working on this as a way to hurt Jury Osipov's reputation...

The truth is going to come out.