dwhinham / mt32-pi

🎹🎶 A baremetal kernel that turns your Raspberry Pi 3 or later into a Roland MT-32 emulator and SoundFont synthesizer based on Circle, Munt, and FluidSynth.
https://twitter.com/d0pefish
GNU General Public License v3.0
1.29k stars 81 forks source link

LCD oddness on certain games #23

Closed raelik closed 4 years ago

raelik commented 4 years ago

I'm not sure if this is actually an issue with the mt32-pi/munt implementation, or simply how the MT-32 works, but games that send custom instrument data up to the MT-32 (like Master of Magic) cause the LCD display to change and the part numbers + volume disappear, leaving just the level meters.

raelik commented 4 years ago

I know some games send cheeky little messages to the MT-32 display, could it be something like this that's actually causing the issue?

dwhinham commented 4 years ago

Yes, this is a feature - when mt32-pi (or a real MT-32) receives an LCD message SysEx command, it will show the message instead of the part status. There is a dedicated command for this, it doesn't have anything to do with custom instruments, but many games that are MT-32 aware will put up a message.

ScummVM also does this, you can see it happen at around 20 seconds into this video: https://youtu.be/iJcwZOR3k9Q?t=16

Can you clarify what's 'odd'? Is some game's message not working?

I don't know the real MT-32's exact LCD message behaviour, I'm assuming the message stays there forever or maybe until an instrument is changed or the user presses a button ... my LCD implementation is neither complete nor accurate, so any suggestions on how it should work would be appreciated!

Maybe I could add an option for messages to 'time out' after a few seconds so the display returns to the part activity.

raelik commented 4 years ago

The only odd thing is that the display never goes back to the default.

In the videos I've seen of people using ScummVM with a real MT-32, the ScummVM message is only on the screen for a few seconds (https://youtu.be/TVfntgqRx1o), probably because it gets immediately followed by a message about which instrument it's using on one of the parts, though those are usually only shown briefly before it goes back to the normal part display. You can see that happening with another game here https://youtu.be/PQt6CC5FFb4?t=330

raelik commented 4 years ago

Oh, here's a video of the exact game I was trying on a real MT-32: https://youtu.be/fWHO77nMc5U

Those instrument messages never display on my mt32-pi. When I actually load and start the game (after going to the main menu), it just blanks out the part numbers and never shows them again (even when starting another game). That video doesn't show this part unfortunately.

dwhinham commented 4 years ago

Right, instrument change messages are just not implemented yet. It's on the to-do list.

raelik commented 4 years ago

No problem, just wanted to make sure I wasn't seeing something unexpected.

olliraa commented 4 years ago

Right, instrument change messages are just not implemented yet. It's on the to-do list.

I guess this applies also for displaying the current instrument name on the LCD in general?

dwhinham commented 4 years ago

That's correct, yes. I'll add all of this in the next release as I can finally move onto more exciting features now that that showstopper of a MIDI note bug has been fixed, and this will be quite a nice thing to have. 😃

dwhinham commented 4 years ago

This has now been implemented in version 0.5.0. 😃