mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-12-29 08:30:04 +00:00
Cmd line: -m and -no-mb: fix crash
This commit is contained in:
parent
5792107dce
commit
d92eca5068
@ -1447,6 +1447,11 @@ void MB_InitializeForLoadingSnapshot() // GH#609
|
||||
{
|
||||
MB_Reset();
|
||||
InitSoundcardType();
|
||||
|
||||
if (g_bDisableDirectSound || g_bDisableDirectSoundMockingboard)
|
||||
return;
|
||||
|
||||
_ASSERT(MockingboardVoice.lpDSBvoice);
|
||||
MockingboardVoice.lpDSBvoice->Stop(); // Reason: 'MB voice is playing' then loading a save-state where 'no MB present'
|
||||
}
|
||||
|
||||
@ -1701,6 +1706,9 @@ void MB_InitializeIO(LPBYTE pCxRomPeripheral, UINT uSlot4, UINT uSlot5)
|
||||
|
||||
MB_SetSoundcardType(g_Slot[4]);
|
||||
|
||||
if (g_bDisableDirectSound || g_bDisableDirectSoundMockingboard)
|
||||
return;
|
||||
|
||||
// Sound buffer may have been stopped by MB_InitializeForLoadingSnapshot().
|
||||
// NB. DSZeroVoiceBuffer() also zeros the sound buffer, so it's better than directly calling IDirectSoundBuffer::Play():
|
||||
// - without zeroing, then the previous sound buffer can be heard for a fraction of a second
|
||||
|
@ -235,6 +235,7 @@ bool DSZeroVoiceBuffer(PVOICE Voice, char* pszDevName, DWORD dwBufferSize)
|
||||
DWORD dwDSLockedBufferSize = 0; // Size of the locked DirectSound buffer
|
||||
SHORT* pDSLockedBuffer;
|
||||
|
||||
_ASSERT(Voice->lpDSBvoice);
|
||||
HRESULT hr = Voice->lpDSBvoice->Stop();
|
||||
if(FAILED(hr))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user