http://bugs.winehq.org/show_bug.cgi?id=19317
--- Comment #6 from Joel Parker joeljkparker@gmail.com 2009-08-18 21:50:18 --- Here's my interpretation of what's failing:
1. mmioOpen opens file ENATIONS.DAT (RIFF file)
2. mmioDescend searches for 'RIFF' from beginning of file
3. finds WSDF (first chunk) of size 0x184; skips to 0x0 (file beg.) + 0x8 (const offset) + 0x184 (chunk size) -> next word aligned = 0x18C
4. finds RIFF of size 0x5E; skips to 0x18C + 0x8 + 0x5E -> next word aligned = 0x1F2
5. doesn't find anything at 0x1F2 and craps out (the actual next RIFF chunk is at 0x1F4)
The RIFF chunk size at step 4 appears to be wrong in the file; the length is actually 0x60, not 0x5E.
What's Microsoft's mmioRead doing to get around this?