libretro / px68k-libretro

Portable SHARP X68000 Emulator for Libretro
http://hissorii.blog45.fc2.com
GNU General Public License v2.0
45 stars 41 forks source link

win32: Fix instruments not initializing (kinda) #175

Closed negativeExponent closed 1 month ago

negativeExponent commented 2 months ago

This should be enough of a fix. but the winmm midi driver appears to behave differently (maybe incorrectly) to initialize SC-55 and MT-32 properly.

SC-55 for example will have missing pitch/bend effects ans sometimes will hold notes longer than it should. in MT-32 it totally does not set some instruments properly. This issue is only a problem with using windows midi driver using the libretro API. Linux implementation works fine for the most part.

In anycase, short msg write should only be 3 bytes (suppose to be 2 bytes for midi status 0xC0 and 0xD0 but api does not like shorter than 3 writes) so this PR is still valid.

negativeExponent commented 1 month ago

deprecated by this PR https://github.com/libretro/px68k-libretro/pull/177

negativeExponent commented 1 month ago

this can be safely merge as-is. but a more complete fix for midi will be when this PR for winmm_midi.c is checked/verified/merged. https://github.com/libretro/RetroArch/pull/16804 @LibretroAdmin

LibretroAdmin commented 1 month ago

@negativeExponent Alright, I merged this and also the PR on RetroArch.