DoomIhlVaria
Cipher
Has anyone tried Grimoire out on a hardware MIDI module instead of Windows' shitty default synthesizer, like an MT-32, Sound Canvas, or something newer?
So just to be clear, this game IS using MIDI for the music (and it is not pre-recorded sound files)?
I physically own 2 Roland MT-32's and a Sound Canvas.
I was going to ask, what specific sound module this was written for. Based on what I have heard so far, it is for a Sound Canvas. Of which I don't *believe* it is using any of the extra GS sound bank sounds. So the Windows built in Roland sounds are fairly accurate. It would sound MUCH better on an actual Roland Sound canvas (in theory). It seems the music is written specifically for a General MIDI device (since it is NOT using any of the GS extra sound banks).
And since I am 99.9% sure it is General Midi, that then leaves the Roland MT-32 out. You CAN make a GM sound bank on the MT-32, but the sounds on the Sound Canvas are vastly superior.
Also, you no longer can output to MIDI to a different device using current windows (Windows 7 still has this option). So I can't play this through any of my Sound Modules.
You CAN use MIDI sound modules with DOSBox. It allows you to direct MIDI to any output source.
Has anyone tried Grimoire out on a hardware MIDI module instead of Windows' shitty default synthesizer, like an MT-32, Sound Canvas, or something newer?
On Windows 8, there is still a registry entry for default MIDI output, but it only seems to affect Windows Media Player and no other programs. Because of this, old software that relies on the default output device setting to know where to send MIDI messages will be tied to the default synthesizer in Windows 8.
I guess that's always an option. I use Linux for work and nearly everything except games. I really like having my games isolated on a separate machine but Grimoire with even better music could be worth the trouble.Your best bet is to.. use linux and wine
Looking at the disassembler output in IDA Pro, it looks like it's set to use Device 0, which is always the built-in soft MIDI. To use the default device, it would have to be set to use Device -1. That's assuming this isn't some obsolete code and I'm not misinterpreting it. But there's definitely MIDI code of some kind in here. If one of the MIDI selector programs doesn't work when my SC-88 Pro arrives, I'll see if I can patch Grimoire directly. Or maybe we can persuade Cleve to make it an actual config option.I'm not sure that Grimoire uses MIDI. I have an external SC-88 set as my default MIDI device, but Grimoire just plays music on its own.
I am using Win 7 (with Putzlowitschs Vista-MIDIMapper to set default MIDI device).What OS are you using newtmonkey ?
Which windows API are you referring to?Looking at the disassembler output in IDA Pro, it looks like it's set to use Device 0, which is always the built-in soft MIDI. To use the default device, it would have to be set to use Device -1. That's assuming this isn't some obsolete code and I'm not misinterpreting it. But there's definitely MIDI code of some kind in here. If one of the MIDI selector programs doesn't work when my SC-88 Pro arrives, I'll see if I can patch Grimoire directly. Or maybe we can persuade Cleve to make it an actual config option.
Well, looking at things again he's using WINMM.DLL (the Windows Multimedia API) to enumerate the MIDI devices and set the volume. It doesn't look like that enumeration is actually used outside of setting the volume at first glance. He seems to be using DirectSound for normal audio and I would expect references to DirectMusic but I can't seem to find any. So patching wouldn't be as straightforward as I thought because I haven't found what I really need yet. I could override the device for volume control purposes but that isn't very useful.Which windows API are you referring to?Looking at the disassembler output in IDA Pro, it looks like it's set to use Device 0, which is always the built-in soft MIDI. To use the default device, it would have to be set to use Device -1. That's assuming this isn't some obsolete code and I'm not misinterpreting it. But there's definitely MIDI code of some kind in here. If one of the MIDI selector programs doesn't work when my SC-88 Pro arrives, I'll see if I can patch Grimoire directly. Or maybe we can persuade Cleve to make it an actual config option.
Maybe. My current suspicion is leaning toward some kind of Watcom wrapper for a Windows API. I know Cleve loves Watcom.It's from the 1990s, I would imagine he using the Miles Sound System (not sure if I spelled it right...)
Zep--
Maybe. My current suspicion is leaning toward some kind of Watcom wrapper for a Windows API. I know Cleve loves Watcom.
I somehow missed your post the first time around. I've since loaded it into a debugger to actually check the loaded DLLs. dmusic.dll is the one. It also loads a few MIDI-related things like winmm.dll, MIDIMapper.dll, and midimap.dll. Still no luck figuring out how to hijack the device ID though.It uses directmusic. dmusic.dll or dmusic32.dll I believe.
Actually, yea, it might be WINMM.dll. Grimoire.exe imports that and it has some midi related APIs (see below).
I had to install directmusic dlls and gm.dls to get midis to work in wine though. gm.dls has a midi soundfont that I presume the APIs ultimately use for synthesis.
002ae064 002ae0a0 00000000 00000000 002aeebe 002ae55c
DLL Name: DSOUND.dll
vma: Hint/Ord Member-Name Bound-To
80000001 1 <none>
002ae078 002ae4c8 00000000 00000000 002aef86 002ae984
DLL Name: WINMM.dll
vma: Hint/Ord Member-Name Bound-To
2aef54 182 waveOutGetVolume
2aef68 22 auxGetVolume
2aef78 152 timeGetTime
2aeede 78 midiOutGetDevCapsA
2aeeca 90 midiOutSetVolume
2aeef4 191 waveOutSetVolume
2aef08 173 waveOutGetDevCapsA
2aef1e 24 auxSetVolume
2aef2e 19 auxGetDevCapsA
2aef40 84 midiOutGetVolume
Three people (including myself) have requested that Cleve had support for external MIDI hardware in the Steam suggestion threads. I may poke at this some more but I would rather just be playing Grimoire. So if you guys are interested in using hardware MIDI modules, you should post in the pinned suggestion thread on Steam.