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

📄 config.cpp

📁 著名的任天堂FC游戏机模拟器VirtuaNes 085版的源码!
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	emulator.bAutoFrameSkip = (BOOL)CRegistry::GetProfileInt( section.c_str(), "AutoFrameSkip", emulator.bAutoFrameSkip );
	emulator.bThrottle      = (BOOL)CRegistry::GetProfileInt( section.c_str(), "Throttle",      emulator.bThrottle );
	emulator.nThrottleFPS   =       CRegistry::GetProfileInt( section.c_str(), "ThrottleFPS",   emulator.nThrottleFPS );
	emulator.bBackground    = (BOOL)CRegistry::GetProfileInt( section.c_str(), "Background",    emulator.bBackground );
	emulator.nPriority      =       CRegistry::GetProfileInt( section.c_str(), "Priority",      emulator.nPriority );
	emulator.bFourPlayer    = (BOOL)CRegistry::GetProfileInt( section.c_str(), "FourPlayer",    emulator.bFourPlayer );
	emulator.bCrcCheck      = (BOOL)CRegistry::GetProfileInt( section.c_str(), "CrcCheck",      emulator.bCrcCheck );
	emulator.bDiskThrottle  = (BOOL)CRegistry::GetProfileInt( section.c_str(), "DiskThrottle",  emulator.bDiskThrottle );
	emulator.bLoadFullscreen= (BOOL)CRegistry::GetProfileInt( section.c_str(), "LoadFullscreen",emulator.bLoadFullscreen );
	emulator.bPNGsnapshot   = (BOOL)CRegistry::GetProfileInt( section.c_str(), "PNGsnapshot",   emulator.bPNGsnapshot );

// Graphic
	section = "Graphics";

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

	graphics.bLeftClip      = (BOOL)CRegistry::GetProfileInt( section.c_str(), "LeftClip",      graphics.bLeftClip );

	graphics.bWindowVSync   = (BOOL)CRegistry::GetProfileInt( section.c_str(), "WindowVSync",   graphics.bWindowVSync );
	graphics.bSyncNoSleep   = (BOOL)CRegistry::GetProfileInt( section.c_str(), "SyncNoSleep",   graphics.bSyncNoSleep );

	graphics.bDiskAccessLamp= (BOOL)CRegistry::GetProfileInt( section.c_str(), "DiskAccessLamp",graphics.bDiskAccessLamp );

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

	graphics.bNoSquareList  = (BOOL)CRegistry::GetProfileInt( section.c_str(), "NoSquareList",  graphics.bNoSquareList );

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

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

	graphics.bPaletteFile = (BOOL)CRegistry::GetProfileInt( section.c_str(), "PaletteUse", graphics.bPaletteFile );

	if( CRegistry::GetProfileString( section.c_str(), "PaletteFile", szTemp, sizeof(szTemp) ) )
		::strcpy( graphics.szPaletteFile, szTemp );

// Sound
	section = "Sound";

	sound.bEnable     = (BOOL)CRegistry::GetProfileInt( section.c_str(), "Enable",       sound.bEnable );
	sound.nRate       =       CRegistry::GetProfileInt( section.c_str(), "SamplingRate", sound.nRate );
	sound.nBits       =       CRegistry::GetProfileInt( section.c_str(), "SamplingBits", sound.nBits );
	sound.nBufferSize =       CRegistry::GetProfileInt( section.c_str(), "BufferSize",   sound.nBufferSize );
	sound.nFilterType =       CRegistry::GetProfileInt( section.c_str(), "FilterType",   sound.nFilterType );

	sound.bChangeTone = (BOOL)CRegistry::GetProfileInt( section.c_str(), "ChangeTone",   sound.bChangeTone );

	sound.bDisableVolumeEffect = (BOOL)CRegistry::GetProfileInt( section.c_str(), "DisableVolumeEffect",   sound.bDisableVolumeEffect );
	sound.bExtraSoundEnable = (BOOL)CRegistry::GetProfileInt( section.c_str(), "ExtraSoundEnable",   sound.bExtraSoundEnable );

	if( CRegistry::GetProfileBinary( section.c_str(), "Volume", szTemp, sizeof(sound.nVolume) ) )
		::memcpy( sound.nVolume, szTemp, sizeof(sound.nVolume) );

// ShortCuts
	section = "ShortCut";
	for( i = 0; i < sizeof(shortcut.nShortCut)/(16*sizeof(WORD)); i++ ) {
		::wsprintf( keys, "Tbl%02d", i );
		if( CRegistry::GetProfileBinary( section.c_str(), keys, szTemp, 16*sizeof(WORD) ) )
			::memcpy( &shortcut.nShortCut[i*16], szTemp, 16*sizeof(WORD) );
	}

// Controllers
	for( i = 0; i < 4; i++ ) {
		::wsprintf( keys, "Controller %d", i+1 );
		if( CRegistry::GetProfileBinary( keys, "Keys", szKeyTemp, 64*sizeof(WORD) ) ) {
			::memcpy( controller.nButton[i], szKeyTemp, 64*sizeof(WORD) );
		} else if( CRegistry::GetProfileBinary( keys, "Keys", szKeyTemp, 32*sizeof(WORD) ) ) {
			// 屆偄愝掕傪堷偒宲偖堊偺慬抲
			::memcpy( &controller.nButton[i][ 0], &szKeyTemp[ 0], 16*sizeof(WORD) );
			::memcpy( &controller.nButton[i][32], &szKeyTemp[16], 16*sizeof(WORD) );
			::memcpy( controller.nButton[i], szKeyTemp, 32*sizeof(WORD) );
		} else if( CRegistry::GetProfileBinary( keys, "Keys", szKeyTemp, 20*sizeof(WORD) ) ) {
			// 屆偄愝掕傪堷偒宲偖堊偺慬抲
			::memcpy( &controller.nButton[i][ 0], &szKeyTemp[ 0], 10*sizeof(WORD) );
			::memcpy( &controller.nButton[i][32], &szKeyTemp[10], 10*sizeof(WORD) );
			// Mic偺曄峏
			if( i == 1 ) {
				controller.nButton[i][10] = szKeyTemp[ 8];
				controller.nButton[i][ 8] = 0;
				controller.nButton[i][42] = szKeyTemp[18];
				controller.nButton[i][40] = 0;
			}
		} else if( CRegistry::GetProfileBinary( keys, "Keys", szKeyTemp, 10*sizeof(WORD) ) ) {
			// 屆偄愝掕傪堷偒宲偖堊偺慬抲
			::memcpy( controller.nButton[i], szKeyTemp, 10*sizeof(WORD) );
			// Mic偺曄峏
			if( i == 1 ) {
				controller.nButton[i][10] = szKeyTemp[ 8];
				controller.nButton[i][ 8] = 0;
			}
		}
		if( CRegistry::GetProfileBinary( keys, "Rapid", szTemp, 2*sizeof(WORD) ) )
			::memcpy( controller.nRapid[i], szTemp, 2*sizeof(WORD) );
	}

// ExControllers
	for( i = 0; i < 4; i++ ) {
		if( i == 0 ) section = "Crazy Climber";
		if( i == 1 ) section = "Family Trainer";
		if( i == 2 ) section = "Exciting Boxing";
		if( i == 3 ) section = "Mahjang";

		if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 64*sizeof(WORD) ) ) {
			::memcpy( controller.nExButton[i], szKeyTemp, 64*sizeof(WORD) );
		} else if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 32*sizeof(WORD) ) ) {
			::memcpy( &controller.nExButton[i][ 0], &szKeyTemp[ 0], 16*sizeof(WORD) );
			::memcpy( &controller.nExButton[i][32], &szKeyTemp[16], 16*sizeof(WORD) );
		} else if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 20*sizeof(WORD) ) ) {
			// 屆偄愝掕傪堷偒宲偖堊偺慬抲
			::memcpy( &controller.nExButton[i][ 0], &szKeyTemp[ 0], 10*sizeof(WORD) );
			::memcpy( &controller.nExButton[i][32], &szKeyTemp[10], 10*sizeof(WORD) );
		} else if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 10*sizeof(WORD) ) ) {
			// 屆偄愝掕傪堷偒宲偖堊偺慬抲
			::memcpy( controller.nExButton[i], szKeyTemp, 10*sizeof(WORD) );
		}
	}

// NSF Contoller
	section = "NSF controller";
	if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 64*sizeof(WORD) ) ) {
		::memcpy( controller.nNsfButton, szKeyTemp, 64*sizeof(WORD) );
	} else if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 32*sizeof(WORD) ) ) {
		::memcpy( &controller.nNsfButton[ 0], &szKeyTemp[ 0], 16*sizeof(WORD) );
		::memcpy( &controller.nNsfButton[32], &szKeyTemp[16], 16*sizeof(WORD) );
	} else if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 20*sizeof(WORD) ) ) {
		// 屆偄愝掕傪堷偒宲偖堊偺慬抲
		::memcpy( &controller.nNsfButton[ 0], &szKeyTemp[ 0], 10*sizeof(WORD) );
		::memcpy( &controller.nNsfButton[32], &szKeyTemp[10], 10*sizeof(WORD) );
	}

// VS-Unisystem
	section = "VS-Unisystem";
	if( CRegistry::GetProfileBinary( section.c_str(), "Keys", szKeyTemp, 64*sizeof(WORD) ) ) {
		::memcpy( controller.nVSUnisystem, szKeyTemp, 64*sizeof(WORD) );
	}

// Movie
	section = "Movie";
	if( CRegistry::GetProfileBinary( section.c_str(), "UsePlayer", szTemp, sizeof(movie.bUsePlayer) ) )
		::memcpy( movie.bUsePlayer, szTemp, sizeof(movie.bUsePlayer) );
	movie.bResetRec = (BOOL)CRegistry::GetProfileInt( section.c_str(), "ResetRec", movie.bResetRec );
	movie.bRerecord = (BOOL)CRegistry::GetProfileInt( section.c_str(), "Rerecord", movie.bRerecord );
	movie.bLoopPlay = (BOOL)CRegistry::GetProfileInt( section.c_str(), "LoopPlay", movie.bLoopPlay );
	movie.bPadDisplay = (BOOL)CRegistry::GetProfileInt( section.c_str(), "PadDisplay", movie.bPadDisplay );

// Launcher
	section = "Launcher";

	if( CRegistry::GetProfileBinary( section.c_str(), "WindowPos", (LPBYTE)&rc, sizeof(RECT) ) )
		launcher.rcWindowPos = rc;
	if( CRegistry::GetProfileBinary( section.c_str(), "ColumnView", szTemp, sizeof(launcher.bHeaderView) ) )
		::memcpy( launcher.bHeaderView, szTemp, sizeof(launcher.bHeaderView) );
	if( CRegistry::GetProfileBinary( section.c_str(), "ColumnOrder", szTemp, sizeof(launcher.nHeaderOrder) ) )
		::memcpy( launcher.nHeaderOrder, szTemp, sizeof(launcher.nHeaderOrder) );
	if( CRegistry::GetProfileBinary( section.c_str(), "ColumnWidth", szTemp, sizeof(launcher.nHeaderWidth) ) )
		::memcpy( launcher.nHeaderWidth, szTemp, sizeof(launcher.nHeaderWidth) );

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

	launcher.bSortDir  = (BOOL)CRegistry::GetProfileInt( section.c_str(), "SortDir",  launcher.bSortDir );
	launcher.nSortType =       CRegistry::GetProfileInt( section.c_str(), "SortType", launcher.nSortType );

	if( CRegistry::GetProfileBinary( section.c_str(), "ColumnSort", szTemp, sizeof(launcher.nHeaderWidth) ) )
		::memcpy( launcher.nHeaderWidth, szTemp, sizeof(launcher.nHeaderWidth) );

	if( CRegistry::GetProfileBinary( section.c_str(), "FolderUse", szTemp, sizeof(launcher.bFolderUse) ) )
		::memcpy( launcher.bFolderUse, szTemp, sizeof(launcher.bFolderUse) );

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

	if( CRegistry::GetProfileString( section.c_str(), "LastSelect", szTemp, sizeof(szTemp) ) )
		::strcpy( launcher.szLastSelect, szTemp );

// ExtraSound
	section = "ExtraSound";

	for( i = ESF_MOEPRO_STRIKE; i <= ESF_MOEPRO_WA; i++ ) {
		::wsprintf( keys, "Moepro%02d", i );
		if( CRegistry::GetProfileString( section.c_str(), keys, szTemp, sizeof(szTemp) ) )
			::strcpy( extsound.szExtSoundFile[i], szTemp );
	}

	for( i = ESF_DISKSYSTEM_BOOT, j = 0; i <= ESF_DISKSYSTEM_SEEKEND; i++, j++ ) {
		::wsprintf( keys, "DiskSound%02d", j );
		if( CRegistry::GetProfileString( section.c_str(), keys, szTemp, sizeof(szTemp) ) )
			::strcpy( extsound.szExtSoundFile[i], szTemp );
	}

// NetPlay
	section = "Netplay";

	if( CRegistry::GetProfileBinary( section.c_str(), "ChatPos", (LPBYTE)&rc, sizeof(RECT) ) )
		netplay.rcChatPos = rc;

	if( CRegistry::GetProfileString( section.c_str(), "NickName", szTemp, sizeof(szTemp) ) )
		::strcpy( netplay.szNick, szTemp );

	netplay.nRecentPort = CRegistry::GetProfileInt( section.c_str(), "RecnetPortNum", netplay.nRecentPort );
	for( i = 0; i < netplay.nRecentPort; i++ ) {
		::wsprintf( keys, "RecentPort%02d", i );
		if( CRegistry::GetProfileString( section.c_str(), keys, szTemp, sizeof(szTemp) ) )
			::strcpy( netplay.szRecentPort[i], szTemp );
	}

	netplay.nRecentHost = CRegistry::GetProfileInt( section.c_str(), "RecnetHostNum", netplay.nRecentHost );
	for( i = 0; i < netplay.nRecentHost; i++ ) {
		::wsprintf( keys, "RecentHost%02d", i );
		if( CRegistry::GetProfileString( section.c_str(), keys, szTemp, sizeof(szTemp) ) )
			::strcpy( netplay.szRecentHost[i], szTemp );
	}
}

void	CConfig::Save()
{
INT	i;
string	section;
CHAR	keys[64];

// General
	section = "General";

	CRegistry::WriteProfileInt   ( section.c_str(), "DoubleExecute",   general.bDoubleExecute );
	CRegistry::WriteProfileInt   ( section.c_str(), "StartupLauncher", general.bStartupLauncher );

//	CRegistry::WriteProfileInt( section.c_str(), "WindowPosSave",	general.bWindowSave );
	CRegistry::WriteProfileInt   ( section.c_str(), "WindowZoom",	general.bWindowZoom );
	CRegistry::WriteProfileBinary( section.c_str(), "WindowPos",	(LPBYTE)&general.rcWindowPos, sizeof(RECT) );
	CRegistry::WriteProfileInt   ( section.c_str(), "ScreenZoom",	general.nScreenZoom );

	CRegistry::WriteProfileBinary( section.c_str(), "SearchDialogPos", (LPBYTE)&general.rcSearchDlgPos, sizeof(RECT) );

	CRegistry::WriteProfileBinary( section.c_str(), "PatternViewPos", (LPBYTE)&general.rcPatternViewPos, sizeof(RECT) );
	CRegistry::WriteProfileBinary( section.c_str(), "NameTableViewPos", (LPBYTE)&general.rcNameTableViewPos, sizeof(RECT) );
	CRegistry::WriteProfileBinary( section.c_str(), "PaletteViewPos", (LPBYTE)&general.rcPaletteViewPos, sizeof(RECT) );
	CRegistry::WriteProfileBinary( section.c_str(), "MemoryViewPos", (LPBYTE)&general.rcMemoryViewPos, sizeof(RECT) );

	CRegistry::WriteProfileBinary( section.c_str(), "BarcodePos", (LPBYTE)&general.rcBarcodePos, sizeof(RECT) );

	CRegistry::WriteProfileBinary( section.c_str(), "PaletteEditPos", (LPBYTE)&general.rcPaletteEditPos, sizeof(RECT) );

	CRegistry::WriteProfileInt   ( section.c_str(), "JoyAxisDisable", general.nJoyAxisDisable );
	CRegistry::WriteProfileBinary( section.c_str(), "JoyAxisSetting", (LPBYTE)general.JoyAxisSetting, 16*sizeof(WORD) );

// Paths
	section = "Path";

	CRegistry::WriteProfileInt( section.c_str(), "RomPathUse",      path.bRomPath );
	CRegistry::WriteProfileInt( section.c_str(), "SavePathUse",     path.bSavePath );
	CRegistry::WriteProfileInt( section.c_str(), "StatePathUse",    path.bStatePath );
	CRegistry::WriteProfileInt( section.c_str(), "SnapshotPathUse", path.bSnapshotPath );
	CRegistry::WriteProfileInt( section.c_str(), "MoviePathUse",    path.bMoviePath );

⌨️ 快捷键说明

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