[Bug 50515] SofTalk 1.56 doesn't speak continuously after punctuation marks.
WineHQ Bugzilla
wine-bugs at winehq.org
Mon Jan 18 06:13:05 CST 2021
https://bugs.winehq.org/show_bug.cgi?id=50515
--- Comment #2 from Sagawa <sagawa.aki+winebugs at gmail.com> ---
I can confirm SofTalk 1.56 ignores returned mmtime.wType value.
It doesn't test mmtime.wType value after waveOutGetPosition call,
and the duration referred from 0043078B is expressed in bytes.
Here is disassembly:
0043075A | mov ecx,6 | ZeroMemory(&mmtime,
sizeof(MMTIME))
0043075F | xor eax,eax |
00430761 | lea edi,dword ptr ss:[ebp-2C] |
00430764 | rep stosd |
00430766 | lea ecx,dword ptr ss:[ebp-2C] | set &mmtime to ECX
00430769 | push 18 | sizeof(MMTIME)
0043076B | push ecx | LPMMTIME &mmtime
0043076C | push edx | HWAVEOUT
0043076D | mov dword ptr ss:[ebp-30],ebx |
00430770 | mov dword ptr ss:[ebp-2C],1 | mmtime.wType = TIME_MS
00430777 | call softalk.40A8A0 | waveOutGetPosition
0043077C | mov edi,eax |
0043077E | call dword ptr ds:[<&__vbaSetSystemErro |
00430784 | cmp edi,ebx |
00430786 | jne softalk.43079A |
00430788 | mov ecx,dword ptr ss:[ebp-28] | mmtime.u.cb (or
mmtime.u.ms)
0043078B | mov edx,dword ptr ds:[esi+74] | duration in bytes
0043078E | xor eax,eax |
00430790 | cmp ecx,edx | compare...
00430792 | setl al |
00430795 | neg eax | make Visual Basic Boolean
00430797 | mov dword ptr ss:[ebp-30],eax | store the result to local
var.
0043079A | mov eax,dword ptr ss:[ebp+8] |
0043079D | push eax |
0043079E | mov edx,dword ptr ds:[eax] |
004307A0 | call dword ptr ds:[edx+8] | call BASIC_CLASS_Release
004307A3 | mov eax,dword ptr ss:[ebp+C] |
004307A6 | mov cx,word ptr ss:[ebp-30] |
004307AA | mov word ptr ds:[eax],cx | copy the result to the
arg.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list