Here's one thing I'd check in your FL Studio MIDI settings:
"Send master sync - Master sync tells connected MIDI devices to follow FL Studio's start/stop/play commands, etc. FL Studio will send a 'Master sync' signal only if the button is selected (orange).
NOTE: Make sure Enable MIDI master sync is selected in the Options menu, 'Send master sync' will be disabled otherwise."
"Note : all sysex stuff has been removed because it need much more time to port it, and not sure if it is a lot used by chipmusicians. (sysex stuff seems to add config via maxmsp patch)"
I think that depends on how loosely you are willing to define 'MIDI'.
Surely there would be somewhere on the PCB to tap the data signal before digital-to-analogue conversion, or even just take the analogue modem signal feed it into an audio input on the other end to convert it back to digital using a software solution like minimodem.
mGB mode is listed as "finished and seems working need further tests"?!
Tweaking the value of the line 'delayMicroseconds(100);' in the Mode_MidiGb_teensy.ino file (see below) might help?
void sendByteToGameboy(byte send_byte)
{
delayMicroseconds(100); // NIB : delay needed otherwise this function is triggered too fast for the gameboy
for(countLSDJTicks=0;countLSDJTicks!=8;countLSDJTicks++) { //we are going to send 8 bits, so do a loop 8 times
if(send_byte & 0x80) {
PORTF = B00000010;
PORTF = B00000011;
} else {
PORTF = B00000000;
PORTF = B00000001;
}
send_byte <<= 1;
}
}
I've hooked up a simple cmos clock up to the controller and found that hooking it straight up to the brown and yellow wires works. I couldn't really tell what pin on the shift register you had the clip connected to, and while prodding around I found the out wire (yellow) made it work for me.
You want the 'Start' button pin on the shift register, here is the relevant part of the FamiSlayer source:
LDA b_state2 ;GET BUTTON STATE OF CONTROLLER 2
AND #%00001000 ;CHECK IF TRIGGER BUTTON IS PRESSED
BEQ chk_joy ;IF TRIGGER BUTTON NOT PRESSED THEN SKIP AND READ CONTROLLER 1
JSR PlayAddy ;RUN NEXT STEP OF NSF
The yellow wire is the 'data' signal being sent to the NES, so if you are sending a continuous clock down that wire then it will appear to the NES as if every button on the controller is being pressed - but since FamiSlayer only cares if the 'Start' button is being pressed, it will ignore seven out of every eight of your clock pulses...
I've seen somewhere around the interwebs that somebody did a new custom PCB that you can just drop a PPU and CPU from an NES onto and it supplies the rest, and it's really tiny. I can't seem to find it at the moment though.
Whoa... Apparently my idea was far from original. This is fortuitous, though! It makes troubleshooting so much easier... That being said, this looks right up my alley (although, after reading the description, I worry about being able to get accurate control on-stage (perhaps this is the shittiness of which herr_prof spoke) given the likely presence of microphones, stage monitors, and other audio peripherals.
Yes, trying to use its directional sensing would probably be painful and troublesome - but that still leaves the finger flex sensors and all of the buttons to play with!