These patches are prerequisites for getting DualShock 4 controllers to work via USB in Tekken 8.
--
v3: winebus: Override device instance enumerator string if bus type is known.
winebus: Generate unique container IDs when adding devices.
winebus: Generate unique serial numbers when adding devices.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8769
This pull request fixes Wine's MIDI synthesizer reset process to be the same as Windows'.
When playing Touhou Project games in MIDI BGM mode, the music playback becomes buggy when the BGM changes.
The video below is an example of an anomaly that occurs when playing The Fantastic Tales from Tono after playing Crystallized Silver in Touhou 7.
https://youtu.be/O69sndJ45Ag
Here's a correct example of The Fantastic Tales from Tono playback:
https://youtu.be/XlFAQEbbNDg
Piano sound is clearly missing on Wine.
This issue occurs due to an Wine's incorrect reset process for MIDI synthesizer.
When I ran FluidSynth on Windows and checked the log, I found that CC123 and CC121 were executed for each MIDI channel when switching songs.
CC123 means All Notes Off, CC121 means Reset All Controllers.
--
v5: wineoss: Send All Notes Off and Reset Controllers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8808
On Fri Aug 22 10:41:14 2025 +0000, Ivan Lyugaev wrote:
> Saving settings in a configuration file allows ordinary users to change
> them directly in the file itself. Use the same configuration on
> different devices. In my opinion, saving the settings in the registry
> complicates this decision from the point of view of the average user.
> For example, in Windows, for the canon 3010 scanner, the driver saved
> the settings in the configuration file along the path
> **%AppData%\Roaming\Canon\G3010 Series **
> Taking into account the above, do I need to change the location where
> the settings are saved, or should I stick with this solution?
The registry can be edited by ordinary users as well.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8778#note_113600
On Thu Aug 21 20:44:13 2025 +0000, Esme Povirk wrote:
> Alternative configurations could be stored in named keys in the registry
> though. This might be an easier UI, since you could select them with a
> combo box.
Saving settings in a configuration file allows ordinary users to change them directly in the file itself. Use the same configuration on different devices. In my opinion, saving the settings in the registry complicates this decision from the point of view of the average user.
For example, in Windows, for the canon 3010 scanner, the driver saved the settings in the configuration file along the path **%AppData%\Roaming\Canon\G3010 Series **
Taking into account the above, do I need to change the location where the settings are saved, or should I stick with this solution?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8778#note_113599
Supersedes https://gitlab.winehq.org/wine/wine/-/merge_requests/8338
The header cannot seem to be generated easily from an IDL, gameinput has some unfortunate versioning which reuses the same identifiers across versions, in an incompatible way and sometimes sharing only a subset of them (for instance enum values), and uses C++ namespaces to separate versions.
The implementation needs to support every interface version at the same time, which is implemented by wrapping identifiers and adding version suffixes whenever it is included by the implementing code. The tests are also using that so we can tests multiple versions in the same file.
--
v7: dinput/tests: Add some gameinput tests.
gameinput: Introduce new DLL.
include: Add gameinput.idl.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8733
This pull request fixes Wine's MIDI synthesizer reset process to be the same as Windows'.
When playing Touhou Project games in MIDI BGM mode, the music playback becomes buggy when the BGM changes.
The video below is an example of an anomaly that occurs when playing The Fantastic Tales from Tono after playing Crystallized Silver in Touhou 7.
https://youtu.be/O69sndJ45Ag
Here's a correct example of The Fantastic Tales from Tono playback:
https://youtu.be/XlFAQEbbNDg
Piano sound is clearly missing on Wine.
This issue occurs due to an Wine's incorrect reset process for MIDI synthesizer.
When I ran FluidSynth on Windows and checked the log, I found that CC123 and CC121 were executed for each MIDI channel when switching songs.
CC123 means All Notes Off, CC121 means Reset All Controllers.
--
v4: winecoreaudio: Send All Notes Off and Reset Controllers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8808
This pull request fixes Wine's MIDI synthesizer reset process to be the same as Windows'.
When playing Touhou Project games in MIDI BGM mode, the music playback becomes buggy when the BGM changes.
The video below is an example of an anomaly that occurs when playing The Fantastic Tales from Tono after playing Crystallized Silver in Touhou 7.
https://youtu.be/O69sndJ45Ag
Here's a correct example of The Fantastic Tales from Tono playback:
https://youtu.be/XlFAQEbbNDg
Piano sound is clearly missing on Wine.
This issue occurs due to an Wine's incorrect reset process for MIDI synthesizer.
When I ran FluidSynth on Windows and checked the log, I found that CC123 and CC121 were executed for each MIDI channel when switching songs.
CC123 means All Notes Off, CC121 means Reset All Controllers.
--
v3: winealsa: Send All Notes Off and Reset Controllers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8808
Generally looks good, thanks! However, could you reword the commit message to be something like:
`winealsa: Send All Notes Off and Reset Controllers.` ?
Also, could you update the similar code in `winecoreaudio.drv/coremidi.c`? There, we already send 0x7b first, so it's just a question of replacing the 0x40 with a 0x79 and updating the comment. This change can go as a second commit in this same MR. I appreciate that you probably can't compile on macOS, but the CI will catch any errors in this trivial change.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8808#note_113589
Supersedes https://gitlab.winehq.org/wine/wine/-/merge_requests/8338
The header cannot seem to be generated easily from an IDL, gameinput has some unfortunate versioning which reuses the same identifiers across versions, in an incompatible way and sometimes sharing only a subset of them (for instance enum values), and uses C++ namespaces to separate versions.
The implementation needs to support every interface version at the same time, which is implemented by wrapping identifiers and adding version suffixes whenever it is included by the implementing code. The tests are also using that so we can tests multiple versions in the same file.
--
v6: dinput/tests: Add some gameinput tests.
gameinput: Introduce new DLL.
include: Add gameinput.idl.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8733