Reply 60 of 128, by Falcosoft
- Rank
- l33t
sfryers wrote on 2024-01-05, 18:02:Hi all, […]
Hi all,
I was planning to do some further updates last Autumn but it's ended up being a very busy few months. I'm happy to make an x86 build of the app, but I'll only be able to test it on a 64-bit OS.
Falcosoft wrote on 2024-01-04, 22:37:1. The attached SysEx dump from the DOS game Operation Stealth that contains valid MT-32 SySex messages throws an unhandled exception (index was outside the bounds of the array) when I try to load it.
That's a really strange SysEx file- thanks for sharing! Inspecting it with MIDI Tools shows that the 18th sysex message is missing a checksum byte- removing this message from the SysEx file prevents MT32Editor from crashing but it can still only recognise one of the 42 timbre definitions which appear in the file. Below the timbre definitions there are a large number of patch definitions which seem to repeat over and over again for no purpose. I'll have a look at the code this weekend and see if I can get it to do a better job of interpreting this file without crashing.
Falcosoft wrote on 2024-01-04, 22:37:2. If the current directory is changed by a driver/operation then the save file (MT32Edit.ini) is saved to the arbitrary path that is the actual current directory and not to the start up directory where MT32Edit.exe can be found.
Not quite sure how to duplicate this bug, but it'll be an easy fix to detect the directory at start-up and make sure the .ini file is always saved there.
1. Yes, an x86 release would be great. I do not think that testing it on a real 32-bit OS is necessary.
2. These are only the SysEx messages and the game itself does not load all of them at once. Between the SysEx messages the game sends many short Midi messages that actually result in effects/sounds. The whole sequence is played during the intro that is many minutes long. If it helps I can send you the whole Midi dump of the intro together with short/channel and long/SysEx messages with proper timings.
3. The easiest way to replicate this bug is to create a shortcut to MT32Edit.exe but set the start-up location ("Start in" field of the shortcut) to some different directory and then change one of the Midi In/Out ports after the app is started (by using the shortcut). You will see that the ini file will be created in the "Start in" directory instead of MT32Edit.exe's own directory. You can also create a bat/cmd file with the same logic for testing.
So I suggest that instead of detecting the current directory at start-up (the current directory can be different from MT32Edit.exe's own directory right at the beginning) you should query the exe/assembly path instead before loading/saving the ini file.