5. Fire another arrow. At this point I get the NO INSTRUMENT error.
After testing again, I experienced this as well. The reason being is...
When you fire an arrow, a Program Change message is first sent on MIDI channel 9 to select instrument 33: Acoustic Bass.
When you move your characters, a Bank Select controller is first sent (on MIDI channel 9 again) to switch to variation bank 5, and then a Program Change message is sent to select sound-effect 127: Footsteps.
Notice what's missing for the bowstring effect? Yeah, a Bank Select controller. It needs one.
What happens is that after you've taken a few steps and decide to fire an arrow, you're still in the variation bank when PC33 is sent. There isn't an instrument at that location in bank 5, so you receive a 'NO INSTRUMENT' message.
As you might suspect, the capital-tone fallback feature is the only reason the SCC-1 is spared the effects of this programming travesty.
As you might suspect, the capital-tone fallback feature is the only reason the SCC-1 is spared the effects of this programming travesty.
Yeah ok. Thanks for all the help with this. Really. Without this forum and people like you I am pretty sure I would have believed the unit was malfunctioning. Habit of mine always assuming the worst.

It is possible that this need for the fallback feature is going to rear its ugly head at some point again, so I guess I should never sell the SCC-1. I think New World Computing only tested their midi code on first gen SC-55s where the fallback is present (if I am recalling your other posts about this correctly) so whatever they needed to do to prevent this from happening on the mkII they never put into place.
Hi,
The instrument variation concept of the SC-55 and SCC-1 is clearly explained in the SC-55 manual (page 42) :
http://media.rolandus.com/manuals/SC-55_OM.pdf- On the SCC-1 and SC-55 : when an instrument variation which doesn't exist, is selected, it will fallback to an existing instrument variation, or else the capital instrument will be substituted.
- On the SC-55mkII and SC-88 : Roland has removed (or had to remove ?) the "variation fallback" feature, starting from the SC-55mkII, and when an instrument variation which doesn't exist, is selected, a "no instrument" error message will appear on the LCD display, and there won't be any playback performed on the affected channel(s).
- On the SC-8850 and Virtual Sound Canvas : when an instrument variation which doesn't exist, is selected, it will be even worse, because it will keep the current instrument and perform the playback with it, resulting in a wrong playback, since it may be using a different instrument than the one intended.
Now, being a fan of this great "Might and Magic : World of Xeen" game, especially thanks to its lovely musics, I've always been annoyed by this MIDI sound effect problem, happening on my SC-55mkII, when firing an arrow.
Then, since I've got knowledge in MIDI coding, a few years ago, I've modified the DOSBox's MIDI code, to finally be able to play this game without any problem, using my SC-55mkII.
Also, I intended to submit this fix to the DOSBox author, but since it's a fix useful for one game only, and also only if using either a SC-55mkII, SC-88(Pro), SC-8850 or Virtual Sound Canvas, I thought it wouldn't be included in the official DOSBox build anyway, so I didn't bother to contact the DOSBox author.
However, now I've realised that it would be selfish to not share this fix with other people who may be interested in it, and then, I'm finally sharing what I've done, on this forum.
So, to understand how my fix works, let me first remind you, that to use an instrument variation, you first send a "Bank Select" message, and then a "Program Change" (instrument change) message : the "Bank Select" processing will be suspended until a "Program Change" message is received.
Now, what my fix is doing, is scanning absolutely all of the MIDI messages being sent to the MIDI device, and when a "Program Change" message has been sent, the fix will simply immediately send to the same channel, a "Bank Select" message with a value of 0 (to select the capital instrument).
Since the "Bank Select" message sent by my fix will be suspended until a "Program Change" message is received, it won't change the current instrument selection being used, whether it's a capital instrument or an instrument variation.
Then, when the game will change the instrument, if it's first sending a "Bank Select" message, before sending a "Program Change" message, then the "Bank Select" message sent by the game will replace the suspended "Bank Select" message sent by my fix, but if the game is only sending a "Program Change" message, then the suspended "Bank Select" message sent by my fix will finally be performed to select the capital instrument, avoiding to select an instrument variation which doesn't exist on the MIDI device.
Since attachements seem to be disabled on this forum, here are links to a Windows executable, the modified "midi.cpp" source file, and also a ".diff" file :
dosbox-0.74_xeen.zipdosbox-0.74-src_xeen.zipdosbox-0.74_xeen.diffNow, if you would like to see this fix included in the official DOSBox build, you can contact the DOSBox author : if he receives many requests from many different persons, he may consider including it for the next official DOSBox release.
Also, if this fix is included in the official DOSBox build, it could be enabled with a new option in the DOSBox configuration file.
Finally, is anybody aware of other games having a similar problem, and then for which this fix is also working ?