diff --git a/src/game/client/application/SwgClient/src/win32/WinMain.cpp b/src/game/client/application/SwgClient/src/win32/WinMain.cpp index 8e304b4c2..6d5ac63f7 100644 --- a/src/game/client/application/SwgClient/src/win32/WinMain.cpp +++ b/src/game/client/application/SwgClient/src/win32/WinMain.cpp @@ -50,7 +50,7 @@ static bool SetUserSelectedMemoryManagerTarget() static void SetDefaultMemoryManagerTargetSize() { int megabytes = 0; - MEMORYSTATUSEX memoryStatus; + MEMORYSTATUSEX memoryStatus = { sizeof memoryStatus }; megabytes = memoryStatus.ullTotalPhys / 1048576; // clamp it between 250 and 2048MB diff --git a/src/game/client/application/SwgClientSetup/build/win32/SwgClientSetup.vcxproj b/src/game/client/application/SwgClientSetup/build/win32/SwgClientSetup.vcxproj index d0af638e5..49e889a3d 100644 --- a/src/game/client/application/SwgClientSetup/build/win32/SwgClientSetup.vcxproj +++ b/src/game/client/application/SwgClientSetup/build/win32/SwgClientSetup.vcxproj @@ -232,4 +232,9 @@ - \ No newline at end of file + + + + + + diff --git a/src/game/client/application/SwgClientSetup/src/win32/ClientMachine.cpp b/src/game/client/application/SwgClientSetup/src/win32/ClientMachine.cpp index 97cf3af53..9bb29ab5f 100644 --- a/src/game/client/application/SwgClientSetup/src/win32/ClientMachine.cpp +++ b/src/game/client/application/SwgClientSetup/src/win32/ClientMachine.cpp @@ -214,13 +214,9 @@ void ClientMachine::install () { //-- detect memory { - MEMORYSTATUS memoryStatus; - GlobalMemoryStatus (&memoryStatus); - ms_physicalMemorySize = memoryStatus.dwTotalPhys / (1024 * 1024); - -#if defined(_DEBUG) && DEBUGGING_OPTIONS - ms_physicalMemorySize = ms_debugPhysicalMemorySize; -#endif + MEMORYSTATUSEX memoryStatus = { sizeof memoryStatus }; + GlobalMemoryStatusEx(&memoryStatus); + ms_physicalMemorySize = (memoryStatus.ullTotalPhys / 1048576); } //-- detect cpu @@ -352,7 +348,7 @@ void ClientMachine::install () memset (&caps, 0, sizeof (DDCAPS)); caps.dwSize = sizeof (DDCAPS); if (SUCCEEDED (directDraw->GetCaps (&caps, 0))) - ms_videoMemorySize = caps.dwVidMemTotal / (1024 * 1024); + ms_videoMemorySize = caps.dwVidMemTotal / 1048576; directDraw->Release (); directDraw = 0; @@ -410,20 +406,10 @@ void ClientMachine::install () for (int i = 0; i < numberOfDisplayModes; ++i) { hresult = direct3d->EnumAdapterModes (D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8, i, &displayMode); -#ifdef _DEBUG - temp.Format (_T("D3DDISPLAYMODE: width=%d height=%d refresh=%d format=%d\n"), displayMode.Width, displayMode.Height, displayMode.RefreshRate, displayMode.Format); - OutputDebugString (temp); -#endif - //Disable modes above 1280x1024 with 64MB, and modes above 1024x768 with 32MB - if ((ms_videoMemorySize < 32) && ((displayMode.Width > 1024) || (displayMode.Height > 768))) - continue; - - if ((ms_videoMemorySize < 64) && ((displayMode.Width > 1280) || (displayMode.Height > 1024))) - continue; - - if (displayMode.Width >= 1024 && displayMode.Height >= 720 && displayMode.RefreshRate >= 57 && displayMode.RefreshRate <= 75) - ms_displayModeList.push_back (displayMode); + if (displayMode.Width >= 1024 && displayMode.Height >= 720 && displayMode.RefreshRate >= 57) { + ms_displayModeList.push_back(displayMode); + } } } @@ -451,76 +437,6 @@ void ClientMachine::install () query3dProviders (ms_soundProviderList); } - //-- detect cd / dvd - { - // get all the drive letters in the system - wchar_t drives[4096]; - int drivesWritten = GetLogicalDriveStrings(sizeof(drives), drives); - if (drivesWritten > 0 && drivesWritten <= sizeof(drives)) - { - // iterate over all the drives in the system - for (wchar_t const * currentDrive = drives; *currentDrive; currentDrive += wcslen(currentDrive) + 1) - { - // see if the drive is CD or DVD based - if (GetDriveType(currentDrive) == DRIVE_CDROM) - { - // Get a handle to the device - wchar_t createFileBuffer[256]; - _stprintf(createFileBuffer, _T("\\\\.\\%c:"), currentDrive[0]); - HANDLE handle = CreateFile(createFileBuffer, 0, 0, NULL, OPEN_EXISTING, 0, 0); - if (handle != INVALID_HANDLE_VALUE) - { - // Check its media types - wchar_t buffer[32 * 1024]; - DWORD written = 0; - if (DeviceIoControl(handle, IOCTL_STORAGE_GET_MEDIA_TYPES_EX, NULL, 0, buffer, sizeof(buffer), &written, 0) && written > 0 && written <= sizeof(buffer)) - { - GET_MEDIA_TYPES const * const mediaTypes = reinterpret_cast(buffer); - - if (mediaTypes->DeviceType == FILE_DEVICE_CD_ROM) - { - ++ms_numberOfCdDrives; - } - else if (mediaTypes->DeviceType == FILE_DEVICE_DVD) - { - ++ms_numberOfDvdDrives; - } - } - - CloseHandle(handle); - } - } - } - } - } - - { - CRegKey regKey; - if (regKey.Open (HKEY_LOCAL_MACHINE, _T("Software\\microsoft\\windows\\currentversion\\app paths\\StarWarsGalaxies")) == ERROR_SUCCESS) - { - DWORD value = 0; - if (regKey.QueryValue (value, _T("SoeBits")) == ERROR_SUCCESS) - { - switch (value) - { - case 0: - ms_bitsStatus = _T("unavailable"); - break; - case 1: - ms_bitsStatus = _T("enabled"); - break; - case 2: - ms_bitsStatus = _T("disabled"); - break; - default: - ms_bitsStatus = _T("invalid"); - break; - - } - } - } - } - //-- detect .NET framework { HRESULT const hr = DirectInput8Create(AfxGetInstanceHandle(), DIRECTINPUT_VERSION, IID_IDirectInput8W, reinterpret_cast(&ms_directInput), 0); @@ -982,7 +898,7 @@ CString const ClientMachine::getHardwareInformationString () result += getDeviceDriverVersionText (); result += '\n'; - buffer.Format (_T("Video Memory Size: %i MB"), getVideoMemorySize ()); + buffer.Format (_T("Video Memory Size: %i GB"), getVideoMemorySize ()); buffer += '\n'; result += buffer; diff --git a/src/game/client/application/SwgClientSetup/src/win32/PageAdvanced.cpp b/src/game/client/application/SwgClientSetup/src/win32/PageAdvanced.cpp index 27ac24343..afab45771 100644 --- a/src/game/client/application/SwgClientSetup/src/win32/PageAdvanced.cpp +++ b/src/game/client/application/SwgClientSetup/src/win32/PageAdvanced.cpp @@ -21,25 +21,6 @@ static char THIS_FILE[] = __FILE__; // ====================================================================== -static int DetermineMemoryManagerSize () -{ - MEMORYSTATUS memoryStatus; - GlobalMemoryStatus (&memoryStatus); - - //-- memory status returns bytes - const int numberOfMegabytes = (memoryStatus.dwTotalPhys / 4) * 3; - - if (numberOfMegabytes > 2000 * 1024 * 1024) - return 2000 * 1024 * 1024; - - if (numberOfMegabytes < 250 * 1024 * 1024) - return 250 * 1024 * 1024; - - return numberOfMegabytes; -} - -// ====================================================================== - IMPLEMENT_DYNCREATE(PageAdvanced, CPropertyPage) PageAdvanced::PageAdvanced() : CPropertyPage(PageAdvanced::IDD) @@ -48,7 +29,6 @@ PageAdvanced::PageAdvanced() : CPropertyPage(PageAdvanced::IDD) m_disableWorldPreloading = FALSE; m_skipL0Characters = FALSE; m_skipL0Meshes = FALSE; - m_gameMemorySize = _T(""); m_disableTextureBaking = FALSE; m_disableFileCaching = FALSE; m_disableAsynchronousLoader = FALSE; @@ -60,8 +40,6 @@ PageAdvanced::PageAdvanced() : CPropertyPage(PageAdvanced::IDD) m_lblDisableTextureBaking = _T(""); m_lblDisableFileCaching = _T(""); m_lblDisableAsynchronousLoader = _T(""); - m_lblGameMemorySize = _T(""); - m_lblGameMemoryInfo = _T(""); //}}AFX_DATA_INIT } @@ -78,7 +56,6 @@ void PageAdvanced::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_CHECK_DISABLEWORLDPRELOADING, m_disableWorldPreloading); DDX_Check(pDX, IDC_CHECK_SKIPL0CHARACTERS, m_skipL0Characters); DDX_Check(pDX, IDC_CHECK_SKIPL0MESHES, m_skipL0Meshes); - DDX_Text(pDX, IDC_STATIC_GAMEMEMORY, m_gameMemorySize); DDX_Check(pDX, IDC_CHECK_DISABLETEXTUREBAKING, m_disableTextureBaking); DDX_Check(pDX, IDC_CHECK_DISABLEFILECACHING, m_disableFileCaching); DDX_Check(pDX, IDC_CHECK_DISABLEASYNCHRONOUSLOADER, m_disableAsynchronousLoader); @@ -90,8 +67,6 @@ void PageAdvanced::DoDataExchange(CDataExchange* pDX) DDX_Text(pDX, IDC_CHECK_DISABLETEXTUREBAKING, m_lblDisableTextureBaking); DDX_Text(pDX, IDC_CHECK_DISABLEFILECACHING, m_lblDisableFileCaching); DDX_Text(pDX, IDC_CHECK_DISABLEASYNCHRONOUSLOADER, m_lblDisableAsynchronousLoader); - DDX_Text(pDX, IDC_LBL_ADVANCED_GAME_MEMORY_SIZE, m_lblGameMemorySize); - DDX_Text(pDX, IDC_LBL_ADVANCED_GAME_MEMORY_INFO, m_lblGameMemoryInfo); //}}AFX_DATA_MAP } @@ -119,8 +94,6 @@ void PageAdvanced::initializeDialog() VERIFY(m_lblDisableTextureBaking.LoadString(IDS_ADVANCED_DISABLE_TEXTURE_BAKING)); VERIFY(m_lblDisableFileCaching.LoadString(IDS_ADVANCED_DISABLE_FILE_CACHING)); VERIFY(m_lblDisableAsynchronousLoader.LoadString(IDS_ADVANCED_DISABLE_ASYNCHRONOUS_LOADER)); - VERIFY(m_lblGameMemorySize.LoadString(IDS_ADVANCED_GAME_MEMORY_SIZE)); - VERIFY(m_lblGameMemoryInfo.LoadString(IDS_ADVANCED_GAME_MEMORY_INFO)); // TODO: Add extra initialization here m_disableWorldPreloading = Options::getDisableWorldPreloading (); @@ -130,9 +103,6 @@ void PageAdvanced::initializeDialog() m_disableFileCaching = Options::getDisableFileCaching (); m_disableAsynchronousLoader = Options::getDisableAsynchronousLoader (); - const int size = DetermineMemoryManagerSize (); - m_gameMemorySize.Format (_T("%i MB"), size / (1024 * 1024)); - if (ClientMachine::getPhysicalMemorySize() < 260) { //Set low detail meshes to true, and disable that control diff --git a/src/game/client/application/SwgClientSetup/src/win32/PageInformation.cpp b/src/game/client/application/SwgClientSetup/src/win32/PageInformation.cpp index a7828fcb8..8cf704050 100644 --- a/src/game/client/application/SwgClientSetup/src/win32/PageInformation.cpp +++ b/src/game/client/application/SwgClientSetup/src/win32/PageInformation.cpp @@ -181,13 +181,16 @@ VERIFY(m_lblNumProcessors.LoadString(IDS_INFO_NUM_PROCESSORS)); CString MB; VERIFY(MB.LoadString(IDS_MB)); + CString GB; + VERIFY(GB.LoadString(IDS_GB)); + CString Mhz; VERIFY(Mhz.LoadString(IDS_Mhz)); CString Unknown; VERIFY(Unknown.LoadString(IDS_UNKNOWN)); - m_physicalMemorySize.Format (_T("%i %s"), ClientMachine::getPhysicalMemorySize(), MB); + m_physicalMemorySize.Format (_T("%i %s"), (ClientMachine::getPhysicalMemorySize()/1024+1), GB); m_numberOfProcessors.Format (_T("%i physical, %i logical"), ClientMachine::getNumberOfPhysicalProcessors (), ClientMachine::getNumberOfLogicalProcessors ()); @@ -208,7 +211,7 @@ VERIFY(m_lblNumProcessors.LoadString(IDS_INFO_NUM_PROCESSORS)); m_videoDriverVersion = ClientMachine::getDeviceDriverVersionText (); - m_videoMemorySize.Format (_T("%i %s"), ClientMachine::getVideoMemorySize (), MB); + m_videoMemorySize.Format (_T("%i %s"), (ClientMachine::getVideoMemorySize ()/1024+1), GB); if (ClientMachine::getVertexShaderMajorVersion () != 0) m_vertexShaderVersion.Format (_T("%i.%i"), ClientMachine::getVertexShaderMajorVersion (), ClientMachine::getVertexShaderMinorVersion ()); diff --git a/src/game/client/application/SwgClientSetup/src/win32/PageInformation.h b/src/game/client/application/SwgClientSetup/src/win32/PageInformation.h index 04ff067f7..24e3b8879 100644 --- a/src/game/client/application/SwgClientSetup/src/win32/PageInformation.h +++ b/src/game/client/application/SwgClientSetup/src/win32/PageInformation.h @@ -75,6 +75,8 @@ protected: private: void initializeDialog(); +public: + afx_msg void OnStnClickedStaticPhysical(); }; // ====================================================================== diff --git a/src/game/client/application/SwgClientSetup/src/win32/SwgClientSetup.rc b/src/game/client/application/SwgClientSetup/src/win32/SwgClientSetup.rc index 9123f91fd..573c5f1a6 100644 --- a/src/game/client/application/SwgClientSetup/src/win32/SwgClientSetup.rc +++ b/src/game/client/application/SwgClientSetup/src/win32/SwgClientSetup.rc @@ -359,10 +359,10 @@ BEGIN LTEXT "x",IDC_SOUNDVERSION,68,27,117,8 END -IDD_PROPPAGE_ADVANCED DIALOG 0, 0, 199, 178 +IDD_PROPPAGE_ADVANCED DIALOGEX 0, 0, 199, 178 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Advanced" -FONT 8, "MS Sans Serif" +FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN CONTROL "Disable World Preloading",IDC_CHECK_DISABLEWORLDPRELOADING, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,29,95,10 @@ -376,9 +376,6 @@ BEGIN CONTROL "Disable Asynchronous Loader",IDC_CHECK_DISABLEASYNCHRONOUSLOADER, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,94,110,10 LTEXT "These are debugging and/or troubleshooting options only.",IDC_LBL_ADVANCED_HEADER,7,7,185,22 - LTEXT "Game Memory Size",IDC_LBL_ADVANCED_GAME_MEMORY_SIZE,18,113,62,8 - LTEXT "MB",IDC_STATIC_GAMEMEMORY,85,113,95,8 - LTEXT "This value should be 75% of your total system RAM up to 1 GB (reserving memory for Direct3D and the OS).",IDC_LBL_ADVANCED_GAME_MEMORY_INFO,85,125,107,34 END IDD_PROPPAGE_DEBUG DIALOG 0, 0, 212, 183 diff --git a/src/game/client/application/SwgClientSetup/src/win32/resource.h b/src/game/client/application/SwgClientSetup/src/win32/resource.h index 67fe60768..402b1d8e4 100644 --- a/src/game/client/application/SwgClientSetup/src/win32/resource.h +++ b/src/game/client/application/SwgClientSetup/src/win32/resource.h @@ -1,5 +1,5 @@ //{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. +// Microsoft Visual C++ generated include file. // Used by SwgClientSetup.rc // #define IDS_STRING1 10