Reply 20 of 26, by KainXVIII
- 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.
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.
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.
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.
UCyborg wrote on 2025-05-16, 13:01:So crazyc meant to write "without", not "with".
That's how i read it 😅
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.
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?
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.
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: […]
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 chunkSo, 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
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.