예제 #1
0
void dc_term()
{
	sh4_cpu.Term();
	plugins_Term();
	_vmem_release();

	SaveSettings();
	SaveRomFiles(GetPath("/data/"));
}
예제 #2
0
void dc_term()
{
	sh4_cpu.Term();
	plugins_Term();
	_vmem_release();

#ifndef _ANDROID
	SaveSettings();
#endif
	SaveRomFiles(GetPath("/data/"));
}
예제 #3
0
void Term_DC()
{
	if (dc_inited)
	{
		Stop_DC();
        
        aica_Term();
        pvr_Term();
        mem_Term();
        sh4_cpu->Term();
        plugins_Term();

        Release_Sh4If(sh4_cpu);
        sh4_cpu=NULL;

		dc_inited=false;
        dc_reseted=false;
	}
}
예제 #4
0
//Init mainly means allocate
//Reset is called before first run
//Init is called olny once
//When Init is called , cpu interface and all plugins configurations myst be finished
//Plugins/Cpu core must not change after this call is made.
bool Init_DC()
{
	if (dc_inited)
		return true;

	if(settings.dynarec.Enable)
	{
		sh4_cpu=Get_Sh4Recompiler();
		log("Using Recompiler\n");
	}
	else
	{
		sh4_cpu=Get_Sh4Interpreter();
		log("Using Interpreter\n");
	}
	
	if (!plugins_Load())
		return false;

    if (!plugins_Init())
    { 
        //log("Emulation thread : Plugin init failed\n"); 	
        plugins_Term();
        return false;
    }
    
    sh4_cpu->Init();


    mem_Init();
    pvr_Init();
    aica_Init();
    mem_map_defualt();


	dc_inited=true;
	return true;
}