(Irrelevant?) background: I'm working on a project that makes NES peripherals and accessories USB plug-and-play capable out-of-the-box. Basically you plug your joypad / Power Pad / Power Glove / U-Force / Piano / whatever into one of the four ports on this little USB box, then bam, you instantly have a fully functioning and configured HID device available to your OS. It automagically detects what exactly you just plugged in (!), and it shows up on your computer in the appropriate device location, fully named and everything. The working prototype is sitting right here on a solderless breadboard, happily blinking away right next to my keyboard.
Anyway, I have come to the point where I'm looking at my old (NES-flavored) Miracle Piano Teaching System in an attempt to incorporate support in my code. The problem is that I can find very little information on the matter; see here and here. I'm attempting to reverse-engineer the details myself, but it's exceedingly difficult because: a.) my project itself lives on a rickety solderless breadboard, b.) my logic analyzer consists of the very basic 1 MHz 3-channel probe that comes built into the PICkit 2 (which is also extremely difficult to use for this purpose, hooking rigid little wires on small metal contacts inside an open NES chassis), and 3.) I'm starting to run into some time constraints / pressure to focus on other areas.
In a nutshell, I need to figure out how to at least read the MIDI data from the Miracle Piano in the same fashion as a genuine NES. Sending data back to it would be icing. If nothing else I've confirmed for myself that the bundled DB25 -> NES adapter plug only connects pins to clock, latch, and the D0 line. I assume it transmits and receives standard MIDI messages with the NES, and it's obviously bidirectional, so it remains to be seen what, if anything, this means special for the NES hardware. I just simply don't have the equipment I need to tackle this problem...
Yeah, so now that I'm reflecting on what it is that I'm actually attempting here, it's not surprising that there's so little Miracle info around. Figures I find literally the sole remaining niche purpose to hook up a really old keyboard using an even older interface when a completely perfect standard interface is literally built-in right next to it... haha. It makes zero sense, in every conceivable situation, except the one where I'm trying to provide universal NES interface support.
If anyone has hints, suggestions, or can point me in a better direction it would be super duper appreciated. And the practical upshot is that if I can get this done, then at the very least schematics and firmware and/or code for this bad boy will be available to the NESing community at large before long.
Anyway, I have come to the point where I'm looking at my old (NES-flavored) Miracle Piano Teaching System in an attempt to incorporate support in my code. The problem is that I can find very little information on the matter; see here and here. I'm attempting to reverse-engineer the details myself, but it's exceedingly difficult because: a.) my project itself lives on a rickety solderless breadboard, b.) my logic analyzer consists of the very basic 1 MHz 3-channel probe that comes built into the PICkit 2 (which is also extremely difficult to use for this purpose, hooking rigid little wires on small metal contacts inside an open NES chassis), and 3.) I'm starting to run into some time constraints / pressure to focus on other areas.
In a nutshell, I need to figure out how to at least read the MIDI data from the Miracle Piano in the same fashion as a genuine NES. Sending data back to it would be icing. If nothing else I've confirmed for myself that the bundled DB25 -> NES adapter plug only connects pins to clock, latch, and the D0 line. I assume it transmits and receives standard MIDI messages with the NES, and it's obviously bidirectional, so it remains to be seen what, if anything, this means special for the NES hardware. I just simply don't have the equipment I need to tackle this problem...
Yeah, so now that I'm reflecting on what it is that I'm actually attempting here, it's not surprising that there's so little Miracle info around. Figures I find literally the sole remaining niche purpose to hook up a really old keyboard using an even older interface when a completely perfect standard interface is literally built-in right next to it... haha. It makes zero sense, in every conceivable situation, except the one where I'm trying to provide universal NES interface support.
If anyone has hints, suggestions, or can point me in a better direction it would be super duper appreciated. And the practical upshot is that if I can get this done, then at the very least schematics and firmware and/or code for this bad boy will be available to the NESing community at large before long.