Yeah the clock was unreliable and also has a performance hit, so therefore completely useless and I removed it on the LSDJ side.
The limits of 0x00 - 0x6F have to do with using an external clock (Ardunioboy side) to get faster data rates. Had to compromise the first bit for use as a start bit, aka a "hey there is data here!" trigger. Therefore only values of 0x00 to 0x7F can be received without packing it into several bytes- which would make it slower. This wouldn't be on issue on a CGB, but on a DMG everything counts.
Therefore any byte received that is 0x70 to 0x7F is a command, and 0x00 to 0x6F is the value for the last command received.
0x70 to 0x73 represents a note message on one of 4 channels (N & Q command on PU1 to NOI)
0x74 to 0x77 represents a CC message on one of 4 channels (X command on PU1 to NOI)
0x78 to 0x7B represents a PG change on one of 4 channels (Y command on PU1 to NOI)
and the rest were going to be used for sequencer messages (start, stop, and clock)
One could in theory make some custom commands on the Arduinoboy side to have LSDJ send a encoded tempo, and the Arduinoboy could send a MIDI clock tick when it receives the start message. *I believe* LSDJ still sends a start and stop message. Still kind of a pain but better than nothing if you have to have a clock tick.