Originally Posted By hap
See Mr. Challenger patent pdf page 45, source code says:

set R12 (is CS)
set R6 (is M0)
read K
reset R6
<-- I assume DATA is still readable here too
reset R12

If I do a quick hack in tms6100.cpp(MAME), the jingles and beeps work fine in the game. Otherwise sound is buggy.

I haven't looked at the disassembly, but maybe that's the M0 rising edge for the next byte? The timing diagram from the data sheet shows that the data isn't valid until after the falling edge, but it also shows the next rising edge while the old data is valid.