NTSC: fix rare crash in NTSC_SetVideoMode() after a VM restart

This commit is contained in:
tomcw 2020-10-11 21:29:26 +01:00
parent 6f39869f8c
commit cfe482cd52
3 changed files with 10 additions and 0 deletions

View File

@ -2191,6 +2191,13 @@ _mono:
void GenerateVideoTables( void );
void GenerateBaseColors(baseColors_t pBaseNtscColors);
void NTSC_Destroy(void)
{
// After a VM restart, this will point to an old g_pFramebufferbits
// - if it's now unmapped then this can cause a crash in NTSC_SetVideoMode()!
g_pVideoAddress = 0;
}
void NTSC_VideoInit( uint8_t* pFramebuffer ) // wsVideoInit
{
make_csbits();

View File

@ -11,6 +11,7 @@
extern void NTSC_VideoClockResync( const DWORD dwCyclesThisFrame );
extern uint16_t NTSC_VideoGetScannerAddress( const ULONG uExecutedCycles );
extern uint16_t NTSC_VideoGetScannerAddressForDebugger(void);
extern void NTSC_Destroy(void);
extern void NTSC_VideoInit( uint8_t *pFramebuffer );
extern void NTSC_VideoReinitialize( DWORD cyclesThisFrame, bool bInitVideoScannerAddress );
extern void NTSC_VideoInitAppleType();

View File

@ -385,6 +385,8 @@ void VideoDestroy () {
DeleteObject(g_hLogoBitmap);
g_hLogoBitmap = (HBITMAP)0;
}
NTSC_Destroy();
}
//===========================================================================