I asked ChatGPT to investigate the curious missing samples, and after disassembling the control ROM it figured it out:
The CM-32L firmware reads bit 5 of the switch/configuration port at address 0x021A. That corresponds to SC0 bit 5, ultimately IC27 SI5, pin 6.
At ROM address 0x518A, the initialization routine does this:
518A ld r78,#8580 ; full CM-32L rhythm table
518E ldb r70,021A ; read SC0/configuration inputs
5193 jbs r70,5,519A ; if SI5 is high, use CM-32L table
5196 ld r78,#5FAE ; otherwise use reduced table
519A ld r76,#E090 ; rhythm setup RAM destination
519E ld r72,#0055 ; copy 85 entries
There are therefore two complete factory rhythm maps inside the same ROM:
0x8580: CM-32L map, including the 33 extra effects
0x5FAE: reduced map, with notes E5 upward set to rhythm timbre 0x7F—effectively unassigned
The tables are identical through the ordinary percussion range. The reduced table replaces all the additional effect assignments with 7F 64 07 01.
Connection to the RA-50 hardware
The RA-50 service schematic shows:
IC27 pin 8 / SI7 pulled high by R70
IC27 pin 7 / SI6 pulled high by R69
IC27 pin 6 / SI5 tied low
That low SI5 is precisely what makes the shared CM-32L ROM select the table at 0x5FAE.
The required modification is not merely disconnecting SI5 from ground: it must be positively pulled high.
The logical fix is:
Disconnect IC27 pin 6/SI5 from its ground strap—apparently the relevant R68 option.
Pull SI5 to +5 V through approximately 22 kΩ, matching R69/R70.
If altering the configuration input is undesirable, the ROM can be patched so both paths use the full table. At offset 0x5196, change:
A1 AE 5F 78
to:
A1 80 85 78
That changes the reduced-table pointer from 0x5FAE to 0x8580. SI5 can then be either state and the effects will always initialize correctly.
Apologies for the formatting. I also must stress that I have not yet tested the above!