I really appreciate your awesome work. It's GREAT!
However Munt still sound wrong in some games, so I made an attempt to correct them.
Problem in detail:
X68000 version of Akumajo Dracula (Castlevania) uses MT-32 for its music. But with Munt, most custom patch didn't applied to the module and default patch was used instead.
After doing some investigation, I found that the problem lies in the Munt's sysex implementation, ignoring some messages completely.
MT-32 Owner's Manual indicates that there is two data transfer mode:
- One-way Transfer Procedure (RQ1 / DT1)
- Handshake-Transfer Procedure (WSD / RQD / DAT / ACK / EOD / ERR)
Akumajo Dracula makes extensive use of the latter, but Munt implements the former only.
I think it needs to be done properly, but since raw data of the Handshake Procedure seems identical to the One-way Procedure except additional consistency check messages (in most case, there's no need to check errors anyway) I made a quick hack to treat RQD/DAT identical to RQ1/DT1.
This makes Munt sound almost perfect for the game, though I still can identify slight difference of LFO in some instruments between real MT-32 and Munt.
PS. Hello VOGONS! 😀