Philips CD-i RC6 protocol, OR something else uses RC6-M-32!

General JP1 chit-chat. Developing special protocols, decoding IR signals, etc. Also a place to discuss Tips, Tricks, and How-To's.

Moderator: Moderators

Post Reply
Knuckx
Posts: 67
Joined: Wed Jul 15, 2015 9:25 pm
Location: UK

Philips CD-i RC6 protocol, OR something else uses RC6-M-32!

Post by Knuckx »

The Philips Compact Disc Interactive (CD-i) is a old games console. It has support for an IR controller with an analog joystick on it, two buttons, and some transport controls. I have a CD-i 210/25, and wanted my URC7781 to be able to control my CD-i.

I found some old Pronto captures of the remote commands, and with some experimentation have reverse engineered the protocol, and succeeded in making the URC7781 operate my CD-i. The following information is for the RC6 based version of the CD-i protocol; apparently earlier CD-i models (like the CD-i 205/00) use a RC5 based protocol instead.

The gamepad controls (analog joystick + two buttons) use RC6-M-32, but in a strange way (using the subdevice for data), seemingly contradicting the protocol notes in RMIR of "This supports a family of potential protocols of which MCE is the only know example."

Due to the stangeness of the gamepad controls, I have implemented this on my remote as several device upgrades, along with a series of HEX keymoves, attaching these device upgrades to the transport device upgrade.

Device upgrades: https://www.hifi-remote.com/forums/dload ... e_id=13579

Key moves (onto CD4000/transport upgrade):

Code: Select all

Dev	Key#	Type	Code	Raw data	Hex	EFC-5
Dev2	20	CD	4001	8F A1 00 12	00	19159
Dev2	35	CD	4002	8F A2 00 12	00	19159
Dev2	33	CD	4003	8F A3 00 12	00	19159
Dev2	36	CD	4004	8F A4 94 6E	94	42667
Dev2	37	CD	4004	8F A4 14 72	14	43703
Dev2	38	CD	4007	8F A7 00 12	00	19159
Dev2	39	CD	4005	8F A5 00 12	00	19159
Dev2	21	CD	4008	8F A8 FF B5	FF	60784
Dev2	22	CD	4004	8F A4 FF B5	FF	60784
Dev2	23	CD	4006	8F A6 FF B5	FF	60784
Dev2	25	CD	4008	8F A8 00 12	00	19159
Dev2	26	CD	4001	8F A1 00 12	00	19159
Dev2	27	CD	4006	8F A6 00 12	00	19159
Dev2	28	CD	4008	8F A8 7F B9	7F	61820
Dev2	29	CD	4004	8F A4 7F B9	7F	61820
Dev2	30	CD	4006	8F A6 7F B9	7F	61820
Dev2	32	CD	4003	8F A3 00 12	00	19159
Dev2	31	CD	4001	8F A1 00 12	00	19159
Dev2	34	CD	4002	8F A2 00 12	00	19159
CD-i RC6 Transport Controls

RC6, Device=25

OBC/Hex: Key
16 / 0x10 = Vol Up
17 / 0x11 = Vol Down
32 / 0x20 = Next
33 / 0x21 = Previous
44 / 0x2C = Play
48 / 0x30 = Pause
49 / 0x31 = Stop
67 / 0x43 = CDi/TV


CD-i RC6 Gamepad Controls

RC6-2-32, Device=25, T-Bit=0

OBC/Hex: Analog Joystick Y Axis Position
0 / 0x00 = Centered (used)
1 / 0x01 = Down Min
127 / 0x7F = Down Max
128 / 0x80 = Centered (unused)
129 / 0x81 = Up Min
255 / 0xFF = Up Max

Subdevice as binary 100bapppppppp
a: Button I State
b: Button II State
p: Analog Joystick X Axis Position
No buttons pressed, centered X axis = 4096 / 0x1000 / b'1000000000000'

p: Analog Joystick X Axis Position
0 / 0x00 = Centered (used)
1 / 0x01 = Right Min
127 / 0x7F = Right Max
128 / 0x80 = Centered (unused)
129 / 0x81 = Left Min
255 / 0xFF = Left Max
In Use: 3x URC7781 / 2x Nevo C2 / Harmony PS3 -|- Learner: Nevo C2
Post Reply