示例#1
0
	static void								ModuleCloseGame			()
	{
		EmuShutdown();
		ClosePlugins();

		//Kill resampler
		Resampler::Kill();

		//Close the cheat engine
		MDFNMP_Kill();
	}
示例#2
0
static void	CloseGame ()
{
    //Resampler::Kill();
    
    //TODO: Is anything else needed here?
    delete mdfnStella;
    mdfnStella = 0;
    
    //Stop cheats
    MDFNMP_Kill();
}
示例#3
0
void MDFNI_CloseGame(void)
{
    if(MDFNGameInfo)
    {
        if(MDFNnetplay)
            MDFNI_NetplayStop();

        MDFNMOV_Stop();

        if(MDFNGameInfo->GameType != GMT_PLAYER)
            MDFN_FlushGameCheats(0);

        MDFNGameInfo->CloseGame();
        if(MDFNGameInfo->name)
        {
            free(MDFNGameInfo->name);
            MDFNGameInfo->name=0;
        }
        MDFNMP_Kill();

        MDFNGameInfo = NULL;
        MDFN_StateEvilEnd();

        for(unsigned i = 0; i < CDInterfaces.size(); i++)
            delete CDInterfaces[i];
        CDInterfaces.clear();
    }
    TBlur_Kill();

#ifdef WANT_DEBUGGER
    MDFNDBG_Kill();
#endif

    for(unsigned int x = 0; x < sizeof(PortDeviceCache) / sizeof(char *); x++)
    {
        if(PortDeviceCache[x])
        {
            free(PortDeviceCache[x]);
            PortDeviceCache[x] = NULL;
        }
    }

    memset(PortDataCache, 0, sizeof(PortDataCache));
    memset(PortDataLenCache, 0, sizeof(PortDataLenCache));
    memset(PortDeviceCache, 0, sizeof(PortDeviceCache));
}
示例#4
0
void MDFNI_CloseGame(void)
{
   if(!MDFNGameInfo)
      return;

   MDFN_FlushGameCheats(0);

   MDFNGameInfo->CloseGame();

   if(MDFNGameInfo->name)
      free(MDFNGameInfo->name);
   MDFNGameInfo->name = NULL;

   MDFNMP_Kill();

   MDFNGameInfo = NULL;
}