https://bugs.winehq.org/show_bug.cgi?id=8653
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|Desperados v1.01 won't run: |Desperados v1.01 fails to |ADPCM sound codec is |start, reports 'ADPCM sound |missing |codec is missing' (Wine's | |MS-ADPCM needs to report as | |Pid = 1, Mid = 33)
--- Comment #28 from Anastasius Focht focht@gmx.net --- Hello folks,
a user in #winehq asked about this.
Unfortunately comment #24 didn't provide the required detail to help people further here.
Multiple solutions (could have been solved many years ago).
--- snip --- ... 0031:Call msacm32.acmDriverEnum(00401060,00000000,c0000000) ret=0040101f 0031:Call msacm32.acmDriverDetailsA(006a0138,0033f684,00000000) ret=00401083 ... 0031:Ret msacm32.acmDriverDetailsA() retval=00000000 ret=00401083 0031:Ret msacm32.acmDriverEnum() retval=00000000 ret=0040101f 0031:Call user32.MessageBoxA(00000000,00682d60 "ADPCM sound codec is missing !\n Please install it and restart Desperados.",00682dac "Fatal error",00000010) ret=0059ff50 0031:Call winex11.drv.GetDC(0006002a,00010020,00010020,0033f398,0033f388,00000013) ret=7ec9acf0 --- snip ---
The code in question, a filter in application supplied callback:
--- snip --- 00401060 81EC 98030000 SUB ESP,398 00401066 56 PUSH ESI 00401067 8BB424 A0030000 MOV ESI,DWORD PTR SS:[ESP+3A0] 0040106E 6A 00 PUSH 0 00401070 8D4424 08 LEA EAX,DWORD PTR SS:[ESP+8] 00401074 50 PUSH EAX 00401075 56 PUSH ESI 00401076 C74424 10 98030000 MOV DWORD PTR SS:[ESP+10],398 0040107E E8 BB4B1A00 CALL <JMP.&MSACM32.acmDriverDetailsA> 00401083 85C0 TEST EAX,EAX 00401085 75 31 JNZ SHORT game.004010B8 00401087 B8 01000000 MOV EAX,1 0040108C 66:394424 10 CMP WORD PTR SS:[ESP+10],AX ; wPid 00401091 75 27 JNZ SHORT game.004010BA 00401093 66:837C24 12 21 CMP WORD PTR SS:[ESP+12],21 ; wMid 00401099 75 1F JNZ SHORT game.004010BA 0040109B F78424 A8030000 ... TEST DWORD PTR SS:[ESP+3A8],80000000 004010A6 A2 65166900 MOV BYTE PTR DS:[691665],AL 004010AB 8935 60166900 MOV DWORD PTR DS:[691660],ESI 004010B1 75 05 JNZ SHORT game.004010B8 004010B3 A2 64166900 MOV BYTE PTR DS:[691664],AL 004010B8 33C0 XOR EAX,EAX 004010BA 5E POP ESI 004010BB 81C4 98030000 ADD ESP,398 004010C1 C2 0C00 RETN 0C --- snip ---
Wine source: https://source.winehq.org/git/wine.git/blob/5e7416e5c8610dd362af2d8934ded3d6...
Another option is to apply a 1-byte patch to the executable without the need to modify/rebuild Wine (cond -> uncond. jmp). The exact location depends on the game flavour/version though.
$ wine --version wine-1.7.43-123-g90ed96a
Regards