VOGONS


New DirectMusic breakage in Windows 11

Topic actions

Reply 20 of 26, by KainXVIII

User metadata
Rank Oldbie
Rank
Oldbie
UCyborg wrote on 2025-05-16, 12:42:

Wait, in which cases is this necessary? I don't have the problem with music playback with old DLL.

I guess this is useful if you don't wanna replace DLL files.

Reply 21 of 26, by UCyborg

User metadata
Rank Oldbie
Rank
Oldbie

So crazyc meant to write "without", not "with". And if this is an error in Music.rrc, why is it suddenly the problem? Is MS fixing random bugs in old deprecated components? Assuming it was meant to error out in the first place in such case.

Arthur Schopenhauer wrote:

A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.

Reply 22 of 26, by KainXVIII

User metadata
Rank Oldbie
Rank
Oldbie
UCyborg wrote on 2025-05-16, 13:01:

So crazyc meant to write "without", not "with".

That's how i read it 😅

Reply 23 of 26, by crazyc

User metadata
Rank Member
Rank
Member

Yes, I meant without.

So crazyc meant to write "without", not "with". And if this is an error in Music.rrc, why is it suddenly the problem? Is MS fixing random bugs in old deprecated components? Assuming it was meant to error out in the first place in such case.

I suspect they fixed some other bug but forgot to check if the INFO chunk was empty. It then searches for the INAM chunk but ends up reading to the end of the file and then errors out.

Reply 24 of 26, by UCyborg

User metadata
Rank Oldbie
Rank
Oldbie

If we're being pedantic, if I'm understating this right, we should be looking for the following sequences:

4C49535404000000494E464F

Breaking this down:

4C495354 - ASCII "LIST"
04000000 - length of the chunk - 4 bytes - 32-bit integer in little-endian
494E464F - ASCII "INFO" - start and at the same time end of 4 byte chunk

So, replace 4C49535404000000494E464F with eg. 4C49535404000000004E464F. I like zero terminating string at the start, turning it into empty string. This search pattern yields 168 results while search for INFOLIST yields 159. 🤔

Thoughts?

Arthur Schopenhauer wrote:

A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.

Reply 25 of 26, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
UCyborg wrote on Yesterday, 20:01:
If we're being pedantic, if I'm understating this right, we should be looking for the following sequences: […]
Show full quote

If we're being pedantic, if I'm understating this right, we should be looking for the following sequences:

4C49535404000000494E464F

Breaking this down:

4C495354 - ASCII "LIST"
04000000 - length of the chunk - 4 bytes - 32-bit integer in little-endian
494E464F - ASCII "INFO" - start and at the same time end of 4 byte chunk

So, replace 4C49535404000000494E464F with eg. 4C49535404000000004E464F. I like zero terminating string at the start, turning it into empty string. This search pattern yields 168 results while search for INFOLIST yields 159. 🤔

Thoughts?

Just since I had a case, have you checked the INFOLIST search from the top of the file, instead of stopping somewhere in the middle and searching the next instances?

previously known as Discrete_BOB_058

Reply 26 of 26, by crazyc

User metadata
Rank Member
Rank
Member

The ones I've found problematic have LIST\x04\x00\x00\x00INFOLIST\x??\x??\x??\x??ins\x20insh where the "ins insh" LIST chunk has any size. The rest seem to be followed by a ptbl chunk, I don't know if those need to be fixed too.