Minor bug in RM (Tivo Unit Codes)

Discussion forum for JP1 software tools currently in use, or being developed, such as IR, KM, RemoteMaster, and other misc apps/tools.

Moderator: Moderators

eferz
Expert
Posts: 1078
Joined: Thu Jun 03, 2010 1:25 am
Location: Austin, Texas

Post by eferz »

I guess both Morac's and Alan's issues could have been avoided if the Tivo (Original) protocol was used instead of the 2-byte version to create the bins.
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

The Robman wrote: The reason the 2-byte version doesn't import properly is because the unit code is not stored in the fixed data, it's stored in the variable data on each button.
Most Bins that I have imported have not matched the RDMU (that's one of the reasons that it bugs me when there is only a Bin file for testing, without the accompanying RDMU *ahem*).

I don't think there is anything that can be done to correct this situation when a custom protocol is involved.

But what about these protocols that are in the protocols.ini?
Is there any Protocols.ini setting that can be set to get them to import correctly?
Last edited by vickyg2003 on Fri Sep 24, 2010 8:50 am, edited 1 time in total.
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
The Robman
Site Owner
Posts: 21924
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

OK, I've just taken a closer look at the various versions of the Tivo protocol as implemented in RM and KM.

Just FYI, the Tivo protocol looks just like the NEC1 protocol (which is device, device comp, OBC, OBC comp) except that the left nibble of the OBC comp byte is replaced with the unit code.

1) The Tivo (Official 2-byte) protocol.
This is broken in RM. The 2nd byte of variable data is supposed to contain the unit code in the left nibble, and the remainder of the complement of the OBC in the right nibble. RM formats the unit code nibble correctly, but it sets the OBC complement nibble to zeroes. (It's OK in KM)

2) The Tivo (Official) (ie, 1-byte) protocol.
This one appears to be OK in both RM and KM.

3) The Tivo (Advanced) (ie, 1-byte) protocol.
This is a redundant protocol that only exists in RM, further more, it appears that it has the nibbles of the last byte reversed (ie, the unit code is where the OBC comp should be, and vice versa).

So, bottom line, you should ONLY use the Tivo (Official) protocol at this time.
Last edited by The Robman on Fri Sep 24, 2010 5:30 pm, edited 1 time in total.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
mr_d_p_gumby
Expert
Posts: 1370
Joined: Sun Aug 03, 2003 12:13 am
Location: Newbury Park, CA

Post by mr_d_p_gumby »

The Robman wrote:3) The Tivo (Advanced) (ie, 1-byte) protocol.
This is a redundant protocol that only exists in RM...
It also used to exist in KM, but I retired it in v9.17 (Feb 2009). KM now automatically redirects any loaded upgrade using Tivo (Advanced) to use the Tivo (Official) 1-byte protocol.
The Robman wrote:1) The Tivo (Official 2-byte) protocol.
This is broken in both RM and KM. The 2nd byte of variable data is supposed to contain the unit code in the left nibble, and the remainder of the complement of the OBC in the right nibble. RM/KM format the unit code nibble correctly, but they both set the OBC complement nibble to zeroes.
I'm surprised this has not caused any problems. I checked, and the last time I did anything to the Tivo protocols in KM was in v8.22, which would have been sometimne back in 2005.
alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

Post by alanrichey »

Good, thanks for the explanation. I will start using the 1-byte version from now on.

What's the difference between (Official) and (Advanced) ?
The Robman
Site Owner
Posts: 21924
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

The main difference is that the Official version works and the Advanced version doesn't.

If you're interested in the history, when UEI initially created their executor for Tivo, they didn't bother to figure out how to generate the 2nd byte, so they used a 2-byte executor. Here in the JP1 world, we don't like to waste memory, so we wrote our own executor that generated the 2nd byte and therefore only needed 1 byte of variable data. We called this version "Tivo (hacked)" but eventually it got renamed "Tivo (Advanced)" because some people were scared to use it due to the worked "hacked" being in it's name.

Unfortunately, it looks like that when the Hacked/Advanced executor got ported over to RM, the data in the unit code byte got swapped so it's now reversed.

Eventually, UEI modified the official executor to use 1 variable byte of data, which made the hacked/advanced homemade executor redundant, so it was deleted from KM but still remains in RM.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

Post by alanrichey »

Interesting, but it begs the question: Why are the non-working versions still in PROTOCOLS.INI ?
The Robman
Site Owner
Posts: 21924
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Because (a) we didn't know they weren't working until 09:46 am today and (b) nobody's deleted them yet.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
alanrichey
Expert
Posts: 3533
Joined: Mon Mar 24, 2008 7:14 am
Location: UK/USA

Post by alanrichey »

Ah, Sorry. I got the impression from your posting that those facts had been know for some time.
The Robman
Site Owner
Posts: 21924
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

mr_d_p_gumby wrote:
The Robman wrote:1) The Tivo (Official 2-byte) protocol.
This is broken in both RM and KM. The 2nd byte of variable data is supposed to contain the unit code in the left nibble, and the remainder of the complement of the OBC in the right nibble. RM/KM format the unit code nibble correctly, but they both set the OBC complement nibble to zeroes.
I'm surprised this has not caused any problems. I checked, and the last time I did anything to the Tivo protocols in KM was in v8.22, which would have been some time back in 2005.
Sorry, I was mistaken, I just rechecked it and it works fine in KM.

I got fooled by the fact that the hex for most of the low number OBCs ends in "F" so therefore the byte2 hex was a constant "F0". When you test OBCs > 31 you can see that it works.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Post Reply