There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v14: dmime: Create a band track for MIDI segments.
dmime/test: Add test for getting band track from midi file.
dmime: Implement IDirectMusicTrack_Play for MIDI tracks.
dmime: Implement getting/setting TempoParam for MIDI tracks.
dmime: Parse MIDI tracks.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v13: dmime: Create a band track for MIDI segments.
dmime/test: Add test for getting band track from midi file.
dmime: Implement IDirectMusicTrack_Play for MIDI tracks.
dmime: Implement getting/setting TempoParam for MIDI tracks.
dmime: Parse MIDI tracks.
dmime: Add stubs for MIDI tracks
dmime: Parse MIDI headers.
dmime/test: add MIDI loading test
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v12: dmime: Create a band track for MIDI segments.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
While using [x64dbg](https://x64dbg.com/) I was experiencing incredibly strange issue - `int3` was swallowed and `KiUserExceptionDispatcher` was never invoked.
Turns out that x64dbg ([TitanEngine](https://github.com/x64dbg/TitanEngine/blob/x64dbg/TitanEngine/…) expects system breakpoint to be first breakpoint that will be triggered and it always swallows it (it's hardcoded no setting to change it's behavior).
That means if you have a DLL with `int3` for example
```c
LONG ExceptionHandler(EXCEPTION_POINTERS *ExceptionInfo) {
ExceptionInfo->ContextRecord->Rip++;
return EXCEPTION_CONTINUE_EXECUTION;
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH)
{
AddVectoredExceptionHandler(1, ExceptionHandler);
asm("int $0x03; nop; nop;");
}
return TRUE;
}
```
That `int3` would be swallowed and `ExceptionHandler` never invoked when running under x64dbg.
Now with this MR applied it works correctly and as expected (same as on Windows).
Another interesting thing is that without this MR it wouldn't just swallow `int3` but even skip first `nop` aswell and RIP would end up on 2nd `nop`.
--
v3: ntdll: loader_init() invoke breakpoint before loading dlls
https://gitlab.winehq.org/wine/wine/-/merge_requests/4655
This allows to declare SRV buffers in the shader tests using `[buffer srv n]` blocks, and passing them to the different backends.
Also, 1/2 includes a missing bit required to parse `Buffer<>` types in the HLSL compiler.
This is a step towards supporting StructuredBuffer types in further patches.
--
v5: vkd3d-shader/hlsl: Parse Buffer types.
tests/shader-runner: Change probe directive syntax on shader_test files.
tests/shader-runner: Change resource declaration syntax on shader_test files.
tests/shader-runner: Support SRV buffers.
tests/shader-runner: Separate resource_type into type and dimension.
vkd3d-shader/hlsl: Use positive logic on add_*_method_call() functions.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/569
On Tue Feb 6 18:17:58 2024 +0000, Piotr Caban wrote:
> That's a shame, I was hoping that there will be correlation between
> maximum values. I'm OK with current patch in this case.
Note that most "extreme" differences from UTC time zone are:
- +14 hours at Line Islands (Kiribati)
- -12 hours in and around Baker Islands
I guess that may by the cause of 14 hours range difference.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5024#note_60424
--
v4: win32u: Don't move an owned window on top of its owner if it's not activated ever.
user32/tests: Test the z-order for an owned window that's not activated ever.
win32u: Skip windows that are not activated even once in activate_other_window().
user32/tests: Add window activation tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4066