KeppySoftware / OmniMIDI

A software MIDI synthesizer for professional use.
https://keppysoftware.github.io/
Other
371 stars 40 forks source link

After upgrading to Windows 10 20H2 and Omnimidi 12.1.0.0, some softwares don`t work anymore #175

Closed FoxyBuddy closed 3 years ago

FoxyBuddy commented 3 years ago

Problem Some softwares don`t work properly anymore on Windows 10 20H2 with Omnimidi 12.1.0.0. Steps to reproduce

  1. Play some MIDIs on PFA.
  2. PFA loaded the midis correctly but crashed when it tried to open without a warning or an error.
  3. Then tried to play midis on Kiva to make sure if there were an error in the driver.
  4. It threw an error BASSMIDI Driver an invaild handle.
  5. After reinstalling the driver a few times it still didn`t work. Unpatch and repatch didn`t work either. Expected behavior The PFA and Kiva should be worked properly as the computer didn`t updated.

Screenshots/Videos Picture when Kiva threw the error Kiva error above, PFA only crashes and exits. Environment

Additional context The updater doesn`t work properly either. It said 12.0.0.0 even after I manually updating to 12.1.0.0.

FoxyBuddy commented 3 years ago

Now I reinstall the driver using the commend /rei, PFA worked correctly again but Kiva still doesnt work. How to fix it?

KaleidonKep99 commented 3 years ago

Try updating OM again, and remember to restart the computer after the install.

KaleidonKep99 commented 3 years ago

Apparently it's caused by a broken update by Microsoft... I'll add a failsafe to make it disappear.

FoxyBuddy commented 3 years ago

I used your solutions above (I used Windows 8.1 vm for convenience and try to work out the problem was caused by either system update or the driver itself) and repeated my reproduce steps. PFA threw a General Protection Fault with an exception BEX64 while Kiva threw the same error mentioned above. PFA GPF error on Win8,1 So I think it might be a bug in the driver.

KaleidonKep99 commented 3 years ago

It is a bug in the driver apparently, but it's not my fault either.

Microsoft pushed an update that completely broke FreeLibrary in the latest VC++, which makes the function free the lib properly without setting the lib's pointers to NULL. Because of this, OM is fooled into thinking that the libs are still present (Since the pointers still have a value), and crashes when trying to run a function from the missing libs.

I'll fix this issue in OM13, sorry for the trouble!