📄 config.cpp
字号:
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 + -