ZellSF wrote on 2020-01-28, 20:19:
Second was Nectaris, which is a bit more interesting. Supposedly freeware too. The western (PC release was Japan only) version w […]
Second was Nectaris, which is a bit more interesting. Supposedly freeware too. The western (PC release was Japan only) version was known as Military Madness and was a fairly popular turn based strategy game for the PC Engine/Turbografx. It got a Windows release which had some nice features not available in all ports: a map editor, mouse control and the ability to save mid-game. It had two issues on newer Windows versions. One (broken fullscreen) was easy to fix with dgVoodoo. Dialog windows forcing the game windowed until manually set to fullscreen again might seem like a dgVoodoo bug, but it's how the game behaves on Windows 95 too.
The second problem was new to me. Whenever the game tried to play a new midi file, it would freeze for a few seconds. This got infuriating fast. Apparently, it's a known issue with playing midi files through MCI on systems newer than XP, documented here:
The documentation is lacking why Microsoft implemented this delay, but there's instructions on that page on how to remove it. In case the link dies I followed this advice by Phaeron (talking about editing mciseq.dll):
The code that foxyshadis patched is in the LeaveSeq() function whose disassembly is above — so you are looking for a hex pattern of 68 __ __ __ __ FF 15 __ __ __ __ 6A 04 __ __ __ __ C3. Underscores represent bytes that may be different due to a different base address. The 04 should be patched to 00, and then the PE header checksum at 00000130 should be cleared by patching to 00 00 00 00.
Once I did that, Nectaris started playing back midi instantly, without freezing the game for seconds. I actually found this page first:
Indicating that Transport Tycoon Deluxe also has this problem. I have to assume other games have this problem too, but I haven't run into any.
I would like to write more about this since I had this problem for years in the past, until I followed the instructions in 2014 and they worked for me;
Actually, this problem affected also Windows XP and Windows 2000 (windows 95 and 98 worked fine. I can't say for ME or NT, I never used them)
WIth WinXP I used the already modified file posted by j7n in that Transport Tycoon Forums, but as he says his .rar contained a few more 32bit versions. Since his link is down, I'll upload the .rar in this post (the file is exactly as it was uploaded in that forum, I haven't modified it). I took the xp32_sp3_patch version, and it worked. I had to use safe mode with command prompt though, otherwise I couldn't delete mciseq.dll in \system32 (they were automatically restored like 10 seconds after);
For Windows 7 64bit I manually did the modify in mciseq.dll in the Syswow64 folder. For some reason, the Syswow64 version was the SAME as "seven_32_sp1" patched from the rar, but it was DIFFERENT than mciseq.dll present in system32 of MY windows 7 64bit system. So I only modified the one in Syswow64 and ignored system32 (and also ignored amd64 / x86 folders). Again I used a third part program to get permission for modifying the .dll
Another annoying thing was the fact that windows update somehow messed up with the modified dll and I had to re-do the process again each time (there should be better solutions to this...).
About the games, it's interesting to quote this from that original post in that blog:
"and although it is avoided by playing MIDI files through DirectShow, that doesn't help old programs that use Media Control Interface (MCI) to play their music."
In fact i had some games that did NOT have this problem, while others had. I even have some (very oldschool) screensavers with midi files inside them, that had this problem, and were fixed after the dll change.