Ejemplo n.º 1
0
// RPGRulebookHeader functions
RPGRulebookHeader::RPGRulebookHeader() {
    setCore(true);
    setGameName(QString());
    setVersion(0.0);
    setIcon(QIcon());
    setGameId(QString());
    setGameCopyright(QString());
    setGameDescription(QString());

    setRulebookName(QString());
    setRulebookFilename(QString());
    setRulebookCopyright(QString());
    setRulebookDescription(QString());
}
Ejemplo n.º 2
0
/**
 * setCountry(): Set the current country code.
 * @param newCountry New country code.
 */
void Options::setCountry(const int newCountry)
{
	unsigned char Reg_1[0x200];
	
	Flag_Clr_Scr = 1;
	
	Country = newCountry;
	switch (Country)
	{
		default:
		case -1:
			// Auto-detect.
			if (Genesis_Started || _32X_Started)
				Detect_Country_Genesis();
			else if (SegaCD_Started)
				Detect_Country_SegaCD();
			break;
		
		case 0:
			// Japan (NTSC)
			Game_Mode = 0;
			CPU_Mode = 0;
			break;
		
		case 1:
			// USA (NTSC)
			Game_Mode = 1;
			CPU_Mode = 0;
			break;
		
		case 2:
			// Europe (PAL)
			Game_Mode = 1;
			CPU_Mode = 1;
			break;
		
		case 3:
			// Japan (PAL)
			Game_Mode = 0;
			CPU_Mode = 1;
			break;
	}
	
	// TODO: Combine this with gens.cpp:Set_Clock_Freq().
	if (CPU_Mode)
	{
		CPL_Z80 = roundDouble((((double)CLOCK_PAL / 15.0) / 50.0) / 312.0);
		CPL_M68K = roundDouble((((double)CLOCK_PAL / 7.0) / 50.0) / 312.0);
		CPL_MSH2 = roundDouble(((((((double)CLOCK_PAL / 7.0) * 3.0) / 50.0) / 312.0) *
					(double)MSH2_Speed) / 100.0);
		CPL_SSH2 = roundDouble(((((((double)CLOCK_PAL / 7.0) * 3.0) / 50.0) / 312.0) *
					(double)SSH2_Speed) / 100.0);
		
		VDP_Num_Lines = 312;
		VDP_Status |= 0x0001;
		_32X_VDP.Mode &= ~0x8000;
		
		CD_Access_Timer = 2080;
		Timer_Step = 136752;
	}
	else
	{
		CPL_Z80 = roundDouble((((double)CLOCK_NTSC / 15.0) / 60.0) / 262.0);
		CPL_M68K = roundDouble((((double)CLOCK_NTSC / 7.0) / 60.0) / 262.0);
		CPL_MSH2 = roundDouble(((((((double)CLOCK_NTSC / 7.0) * 3.0) / 60.0) / 262.0) *
					(double)MSH2_Speed) / 100.0);
		CPL_SSH2 = roundDouble(((((((double) CLOCK_NTSC / 7.0) * 3.0) / 60.0) / 262.0) *
					(double)SSH2_Speed) / 100.0);
		
		VDP_Num_Lines = 262;
		VDP_Status &= 0xFFFE;
		_32X_VDP.Mode |= 0x8000;
		
		CD_Access_Timer = 2096;
		Timer_Step = 135708;
	}
	
	if (audio->enabled())
	{
		PSG_Save_State();
		YM2612_Save(Reg_1);
		
		audio->endSound();
		audio->setEnabled(false);
		
		if (CPU_Mode)
		{
			YM2612_Init(CLOCK_PAL / 7, audio->soundRate(), YM2612_Improv);
			PSG_Init(CLOCK_PAL / 15, audio->soundRate());
		}
		else
		{
			YM2612_Init(CLOCK_NTSC / 7, audio->soundRate(), YM2612_Improv);
			PSG_Init(CLOCK_NTSC / 15, audio->soundRate());
		}
		
		if (SegaCD_Started)
			Set_Rate_PCM(audio->soundRate());
		
		YM2612_Restore (Reg_1);
		PSG_Restore_State();
		
		if (!audio->initSound())
			return;
		
		audio->setEnabled(true);
		audio->playSound();
	}
	
	if (Game_Mode)
	{
		if (CPU_Mode)
			MESSAGE_L("Europe system (50 FPS)", "Europe system (50 FPS)", 1500);
		else
			MESSAGE_L("USA system (60 FPS)", "USA system (60 FPS)", 1500);
	}
	else
	{
		if (CPU_Mode)
			MESSAGE_L("Japan system (50 FPS)", "Japan system (50 FPS)", 1500);
		else
			MESSAGE_L("Japan system (60 FPS)", "Japan system (60 FPS)", 1500);
	}
	
	setGameName();
	return;
}