Page 1 of 1

SharpDVD - bug fix for protocols.ini

Posted: Thu Apr 04, 2019 9:28 am
by The Robman
re: https://www.hifi-remote.com/forums/viewt ... 921#p135921

I have a fix for the SharpDVD executor in protocols.ini

The following line:
CmdTranslator=Translator(lsb,comp) XorCheck(4,12,0,2,0;3,4)

Should be changed to this in all 3 versions:
CmdTranslator=Translator(lsb,comp) XorCheck(4,12,1,2,0;3,4)

See the thread linked above for a description of WHY this change is needed.

Posted: Thu Apr 04, 2019 3:45 pm
by The Robman
I have come up with a new fix for the XOR calculation, it should be replaced with the following:

XorCheck(lsb,comp,4,12,7,2,0;4,0)

But while this change works, I do seek the advice of experts here.

The code originally had "3,4" after the semi-colon, which meant it should skip the first 4 bits of the device code data and use the next 12 bits (ie, 3 units of 4-bits each). However, the result of this was that the device code itself was getting skipped in the calculation. If I just change the devSourceOffset from 4 to 0, it brings in the device code but skips the top half of the sub-device code. If I also change the devCount it brings in both halves of the sub-device code but also brings in the top half of the device code, which results in the result being complimented.

So, what I did was, in addition to adding the LSB and COMP non-positional keyword arguments, I added a seed value of 7 to cover the E value. The true E value is 1 but because all the other numbers are LSB, I should add it as 8, but now I also need to complement it, so I found that using value 7 works (ie, binary 0111 representing a decimal value of 1 in lsb-comp format).

Is there a better way to do this?