⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.cpp

📁 著名的任天堂FC游戏机模拟器VirtuaNes 085版的源码!
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	CRegistry::WriteProfileInt( section.c_str(), "WavePathUse",     path.bWavePath );
	CRegistry::WriteProfileInt( section.c_str(), "CheatPathUse",    path.bCheatPath );

	CRegistry::WriteProfileString( section.c_str(), "RomPath",      path.szRomPath );
	CRegistry::WriteProfileString( section.c_str(), "SavePath",     path.szSavePath );
	CRegistry::WriteProfileString( section.c_str(), "StatePath",    path.szStatePath );
	CRegistry::WriteProfileString( section.c_str(), "SnapshotPath", path.szSnapshotPath );
	CRegistry::WriteProfileString( section.c_str(), "MoviePath",    path.szMoviePath );
	CRegistry::WriteProfileString( section.c_str(), "WavePath",     path.szWavePath );
	CRegistry::WriteProfileString( section.c_str(), "CheatPath",    path.szCheatPath );

// Emulation
	section = "Emulation";

	CRegistry::WriteProfileInt( section.c_str(), "IllegalOp",     emulator.bIllegalOp );
	CRegistry::WriteProfileInt( section.c_str(), "AutoFrameSkip", emulator.bAutoFrameSkip );
	CRegistry::WriteProfileInt( section.c_str(), "Throttle",      emulator.bThrottle );
	CRegistry::WriteProfileInt( section.c_str(), "ThrottleFPS",   emulator.nThrottleFPS );
	CRegistry::WriteProfileInt( section.c_str(), "Background",    emulator.bBackground );
	CRegistry::WriteProfileInt( section.c_str(), "Priority",      emulator.nPriority );
	CRegistry::WriteProfileInt( section.c_str(), "FourPlayer",    emulator.bFourPlayer );
	CRegistry::WriteProfileInt( section.c_str(), "CrcCheck",      emulator.bCrcCheck );
	CRegistry::WriteProfileInt( section.c_str(), "DiskThrottle",  emulator.bDiskThrottle );
	CRegistry::WriteProfileInt( section.c_str(), "LoadFullscreen",emulator.bLoadFullscreen );
	CRegistry::WriteProfileInt( section.c_str(), "PNGsnapshot",   emulator.bPNGsnapshot );

// Graphic
	section = "Graphics";

	CRegistry::WriteProfileInt( section.c_str(), "Aspect",        graphics.bAspect );
	CRegistry::WriteProfileInt( section.c_str(), "SpriteMax",     graphics.bAllSprite );
	CRegistry::WriteProfileInt( section.c_str(), "AllLine",       graphics.bAllLine );
	CRegistry::WriteProfileInt( section.c_str(), "FPSDisp",       graphics.bFPSDisp );
	CRegistry::WriteProfileInt( section.c_str(), "TVFrameMode",   graphics.bTVFrame );
	CRegistry::WriteProfileInt( section.c_str(), "ScanlineMode",  graphics.bScanline );
	CRegistry::WriteProfileInt( section.c_str(), "ScanlineColor", graphics.nScanlineColor );
	CRegistry::WriteProfileInt( section.c_str(), "SyncDraw",      graphics.bSyncDraw );
	CRegistry::WriteProfileInt( section.c_str(), "MaxZoom",       graphics.bFitZoom );

	CRegistry::WriteProfileInt( section.c_str(), "LeftClip",      graphics.bLeftClip );

	CRegistry::WriteProfileInt( section.c_str(), "WindowVSync",   graphics.bWindowVSync );

	CRegistry::WriteProfileInt( section.c_str(), "DiskAccessLamp",graphics.bDiskAccessLamp );

	CRegistry::WriteProfileInt( section.c_str(), "DoubleSize",    graphics.bDoubleSize );
	CRegistry::WriteProfileInt( section.c_str(), "SystemMemory",  graphics.bSystemMemory );
	CRegistry::WriteProfileInt( section.c_str(), "UseHEL",        graphics.bUseHEL );

	CRegistry::WriteProfileInt( section.c_str(), "NoSquareList",  graphics.bNoSquareList );

	CRegistry::WriteProfileInt( section.c_str(), "GraphicsFilter",graphics.nGraphicsFilter );

	CRegistry::WriteProfileInt( section.c_str(), "DisplayWidth",  graphics.dwDisplayWidth );
	CRegistry::WriteProfileInt( section.c_str(), "DisplayHeight", graphics.dwDisplayHeight );
	CRegistry::WriteProfileInt( section.c_str(), "DisplayDepth",  graphics.dwDisplayDepth );
	CRegistry::WriteProfileInt( section.c_str(), "DisplayRate",   graphics.dwDisplayRate );

	CRegistry::WriteProfileInt( section.c_str(), "PaletteUse",   graphics.bPaletteFile );
	CRegistry::WriteProfileString( section.c_str(), "PaletteFile", graphics.szPaletteFile );

// Sound
	section = "Sound";

	CRegistry::WriteProfileInt( section.c_str(), "Enable",       sound.bEnable );

	CRegistry::WriteProfileInt( section.c_str(), "DisableVolumeEffect", sound.bDisableVolumeEffect );
	CRegistry::WriteProfileInt( section.c_str(), "ExtraSoundEnable",    sound.bExtraSoundEnable );

	CRegistry::WriteProfileInt( section.c_str(), "SamplingRate", sound.nRate );
	CRegistry::WriteProfileInt( section.c_str(), "SamplingBits", sound.nBits );
	CRegistry::WriteProfileInt( section.c_str(), "BufferSize",   sound.nBufferSize );
	CRegistry::WriteProfileInt( section.c_str(), "FilterType",   sound.nFilterType );

	CRegistry::WriteProfileBinary( section.c_str(), "Volume", (LPBYTE)sound.nVolume, sizeof(sound.nVolume) );

// ShortCut
	section = "ShortCut";
	for( i = 0; i < sizeof(shortcut.nShortCut)/(16*sizeof(WORD)); i++ ) {
		::wsprintf( keys, "TBL%02d", i );
		CRegistry::WriteProfileBinary( section.c_str(), keys, (LPBYTE)&shortcut.nShortCut[i*16], 16*sizeof(WORD) );
	}

// Controllers
	for( i = 0; i < 4; i++ ) {
		::wsprintf( keys, "Controller %01d", i+1 );
		CRegistry::WriteProfileBinary( keys, "Keys", (LPBYTE)controller.nButton[i], 64*sizeof(WORD) );
		CRegistry::WriteProfileBinary( keys, "Rapid", (LPBYTE)controller.nRapid[i], 2*sizeof(WORD) );
	}

// ExControllers
	section = "Crazy Climber";
	CRegistry::WriteProfileBinary( section.c_str(), "Keys", (LPBYTE)controller.nExButton[0], 64*sizeof(WORD) );
	section = "Family Trainer";
	CRegistry::WriteProfileBinary( section.c_str(), "Keys", (LPBYTE)controller.nExButton[1], 64*sizeof(WORD) );
	section = "Exciting Boxing";
	CRegistry::WriteProfileBinary( section.c_str(), "Keys", (LPBYTE)controller.nExButton[2], 64*sizeof(WORD) );
	section = "Mahjang";
	CRegistry::WriteProfileBinary( section.c_str(), "Keys", (LPBYTE)controller.nExButton[3], 64*sizeof(WORD) );

// NSF Contoller
	section = "NSF controller";
	CRegistry::WriteProfileBinary( section.c_str(), "Keys", (LPBYTE)controller.nNsfButton, 64*sizeof(WORD) );

// VS-Unisystem
	section = "VS-Unisystem";
	CRegistry::WriteProfileBinary( section.c_str(), "Keys", (LPBYTE)controller.nVSUnisystem, 64*sizeof(WORD) );

// Movie
	section = "Movie";
	CRegistry::WriteProfileBinary( section.c_str(), "UsePlayer", (LPBYTE)movie.bUsePlayer, sizeof(movie.bUsePlayer) );
	CRegistry::WriteProfileInt( section.c_str(), "ResetRec", movie.bResetRec );
	CRegistry::WriteProfileInt( section.c_str(), "Rerecord", movie.bRerecord );
	CRegistry::WriteProfileInt( section.c_str(), "LoopPlay", movie.bLoopPlay );
	CRegistry::WriteProfileInt( section.c_str(), "PadDisplay", movie.bPadDisplay );

// Launcher
	section = "Launcher";

	CRegistry::WriteProfileBinary( section.c_str(), "WindowPos", (LPBYTE)&launcher.rcWindowPos, sizeof(RECT) );

	CRegistry::WriteProfileBinary( section.c_str(), "ColumnView",  (LPBYTE)launcher.bHeaderView,  sizeof(launcher.bHeaderView) );
	CRegistry::WriteProfileBinary( section.c_str(), "ColumnOrder", (LPBYTE)launcher.nHeaderOrder, sizeof(launcher.nHeaderOrder) );
	CRegistry::WriteProfileBinary( section.c_str(), "ColumnWidth", (LPBYTE)launcher.nHeaderWidth, sizeof(launcher.nHeaderWidth) );

	CRegistry::WriteProfileInt( section.c_str(), "ListSelect", launcher.nListSelect );

	CRegistry::WriteProfileInt( section.c_str(), "SortDir",  launcher.bSortDir );
	CRegistry::WriteProfileInt( section.c_str(), "SortType", launcher.nSortType );

	CRegistry::WriteProfileBinary( section.c_str(), "FolderUse", (LPBYTE)launcher.bFolderUse, sizeof(launcher.bFolderUse) );

	for( i = 0; i < 16; i++ ) {
		::wsprintf( keys, "Folder%02d", i );
		CRegistry::WriteProfileString( section.c_str(), keys, launcher.szFolder[i] );
	}

	CRegistry::WriteProfileString( section.c_str(), "LastSelect", launcher.szLastSelect );

// NetPlay
	section = "Netplay";

	CRegistry::WriteProfileBinary( section.c_str(), "ChatPos", (LPBYTE)&netplay.rcChatPos, sizeof(RECT) );

	CRegistry::WriteProfileString( section.c_str(), "NickName", netplay.szNick );

	CRegistry::WriteProfileInt( section.c_str(), "RecnetPortNum", netplay.nRecentPort );
	for( i = 0; i < 16; i++ ) {
		::wsprintf( keys, "RecentPort%02d", i );
		CRegistry::WriteProfileString( section.c_str(), keys, netplay.szRecentPort[i] );
	}
	CRegistry::WriteProfileInt( section.c_str(), "RecnetHostNum", netplay.nRecentHost );
	for( i = 0; i < 16; i++ ) {
		::wsprintf( keys, "RecentHost%02d", i );
		CRegistry::WriteProfileString( section.c_str(), keys, netplay.szRecentHost[i] );
	}
}

BOOL	CConfig::ButtonCheck( INT nNo, INT nID )
{
	if( m_bKeyboardDisable ) {
		if( (Config.controller.nButton[nNo][nID+ 0] >= 256) && DirectInput.m_Sw[Config.controller.nButton[nNo][nID+ 0]]
		 || (Config.controller.nButton[nNo][nID+32] >= 256) && DirectInput.m_Sw[Config.controller.nButton[nNo][nID+32]] )
			return	TRUE;
	} else {
		if( Config.controller.nButton[nNo][nID+ 0] && DirectInput.m_Sw[Config.controller.nButton[nNo][nID+ 0]]
		 || Config.controller.nButton[nNo][nID+32] && DirectInput.m_Sw[Config.controller.nButton[nNo][nID+32]] )
			return	TRUE;
	}
	return	FALSE;
}

BOOL	CConfig::ExButtonCheck( INT nNo, INT nID )
{
	if( Config.controller.nExButton[nNo][nID+ 0] && DirectInput.m_Sw[Config.controller.nExButton[nNo][nID+ 0]]
	 || Config.controller.nExButton[nNo][nID+32] && DirectInput.m_Sw[Config.controller.nExButton[nNo][nID+32]] )
		return	TRUE;
	return	FALSE;
}

BOOL	CConfig::NsfButtonCheck( INT nID )
{
	if( Config.controller.nNsfButton[nID+ 0] && DirectInput.m_Sw[Config.controller.nNsfButton[nID+ 0]]
	 || Config.controller.nNsfButton[nID+32] && DirectInput.m_Sw[Config.controller.nNsfButton[nID+32]] )
		return	TRUE;
	return	FALSE;
}

BOOL	CConfig::ButtonCheck( INT nID, WORD* pKey )
{
	if( pKey[nID+ 0] && DirectInput.m_Sw[pKey[nID+ 0]]
	 || pKey[nID+32] && DirectInput.m_Sw[pKey[nID+32]] )
		return	TRUE;
	return	FALSE;
}

string	CConfig::ShortcutToKeyName( INT nShortcutKey )
{
	string	str;
	if( nShortcutKey == 0 ) {
		str = "----";
	} else {
		if( nShortcutKey & CCfgShortCut::K_ALT )
			str = str + "Alt+";
		if( nShortcutKey & CCfgShortCut::K_CTRL )
			str = str + "Ctrl+";
		if( nShortcutKey & CCfgShortCut::K_SHIFT )
			str = str + "Shift+";

		str = str + DirectInput.SearchKeyName( nShortcutKey & 0x0FFF );
	}
	return	str;
}

/////////////////////////////////
CGameOption	GameOption;

void	CGameOption::Load( DWORD crc )
{
	CRegistry::SetRegistryKey( "GameOption.ini" );

	CHAR	szSection[256];
	::wsprintf( szSection, "%08X", crc );
	nRenderMethod =       CRegistry::GetProfileInt( szSection, "RenderMethod",    defRenderMethod );
	nIRQtype      =       CRegistry::GetProfileInt( szSection, "IRQtype",         defIRQtype );
	bFrameIRQ     = (BOOL)CRegistry::GetProfileInt( szSection, "FrameIRQ",        defFrameIRQ );
	bVideoMode    = (BOOL)CRegistry::GetProfileInt( szSection, "VideoMode",       defVideoMode );
}

void	CGameOption::Save( LPCSTR name, DWORD crc )
{
	CRegistry::SetRegistryKey( "GameOption.ini" );

	CHAR	szSection[256];
	::wsprintf( szSection, "%08X", crc );
	CRegistry::WriteProfileString( szSection, "Title", name );
	CRegistry::WriteProfileInt( szSection, "RenderMethod",    nRenderMethod );
	CRegistry::WriteProfileInt( szSection, "IRQtype",         nIRQtype );
	CRegistry::WriteProfileInt( szSection, "FrameIRQ",        (INT)bFrameIRQ );
	CRegistry::WriteProfileInt( szSection, "VideoMode",       (INT)bVideoMode );
}

void	CGameOption::Load( DWORD gid, DWORD mid )
{
	CRegistry::SetRegistryKey( "GameOption.ini" );

	CHAR	szSection[256];
	::wsprintf( szSection, "%08X%08X", gid, mid );
	nRenderMethod =       CRegistry::GetProfileInt( szSection, "RenderMethod",    defRenderMethod );
	nIRQtype      =       CRegistry::GetProfileInt( szSection, "IRQtype",         defIRQtype );
	bFrameIRQ     = (BOOL)CRegistry::GetProfileInt( szSection, "FrameIRQ",        defFrameIRQ );
}

void	CGameOption::Save( LPCSTR name, DWORD gid, DWORD mid )
{
	CRegistry::SetRegistryKey( "GameOption.ini" );

	CHAR	szSection[256];
	::wsprintf( szSection, "%08X%08X", gid, mid );
	CRegistry::WriteProfileString( szSection, "Title", name );
	CRegistry::WriteProfileInt( szSection, "RenderMethod",    nRenderMethod );
	CRegistry::WriteProfileInt( szSection, "IRQtype",         nIRQtype );
	CRegistry::WriteProfileInt( szSection, "FrameIRQ",        (INT)bFrameIRQ );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -