snidely wrote:Are there still only 256 possible functions for each setup code, or did it jump way up using EFC5s?
A simple question, but the answer is not so simple. What determines the number of possible functions is the executor used by the setup code. In your case the executor is Sony Combo (12/15/20). You select this with the "Protocol" drop-down on the Setup tab of the Device Upgrade Editor but "Protocol" here is actually a misnomer, it should really be called "Executor". You select the actual protocol, one of Sony12, Sony15 or Sony20, in the Protocol column on the Functions tab. The protocol is the specification of how the Device, Subdevice (if any) and OBC are encoded into an IR signal. The executor is the software routine that generates this IR signal, but it does so from a hex value.
The relationship between the hex value and the Device, Subdevice and OBC values is something specific to that executor. This is why different executors can have different hex values for the same signal. In RMIR, this relationship for each supported executor is specified in the protocols.ini file and is used to create the values in the Hex column of the Functions tab. It is the hex value that is stored in the remote and is read by the executor. The EFC is an encryption of the hex value as a decimal number. The original 3-digit EFC is modulo 256 and supports the 256 possible values of a 1-byte hex value. The newer 5-digit EFC5 supports 256 1-byte and 65536 2-byte hex values, determining both the length and value of the hex.
So to answer your question. EFC5 values
can support up to 65536 signals for a single setup code, but not all of the EFC5 values may be valid for that setup code. These signals may not all be for the same protocol, and not all signals for an included protocol may be supported. Your case illustrates both these limitations. The Sony Combo (12/15/20) of the 2475 setup code supports three distinct Sony protocols but only four of the possible 256 subdevice values for the Sony20 protocol and those four are determined by the setup code. Generally speaking, "function code" is taken to mean the OBC value as for many executors the device and subdevice values are determined completely by the setup code. In this sense, each of the three Sony protocols supports only 128 functions (their OBC maximum value is 127) yet the 2475 setup code supports over 40000 signals once the allowed ranges of protocol, device and subdevice codes are taken into account.
I hope this has helped but fear it may have only added confusion. And even this is a simplified account of what is a very complicated issue.