Files
AppleWin/source/Configuration/PageConfig.cpp
T
Kelvin Lee 926c592f75 Replace some BOOL usages with proper bool (PR #1500)
1. Registry functions
   The set of functions are changed to consistently use bool arguments.
   The macros are changed to inline functions to improve type checking.
   RegSaveValue() are overloaded with help of templates to reduce
   typecasting at call sites. For instance, bool value would be converted
   consistently instead of relying on call sites to convert bool to int values.
2. Memory functions
   BOOL usages were unnecessary. Mostly internal usages which can simply be bool.
3. FrameBase
   Some member variables are changed to bool.
   BOOL was used because of those Registry functions.

Additional changes:
- Some expressions are forced to be bool when assigning to bool variables.
2026-06-06 14:12:42 +01:00

456 lines
18 KiB
C++

/*
AppleWin : An Apple //e emulator for Windows
Copyright (C) 1994-1996, Michael O'Brien
Copyright (C) 1999-2001, Oliver Schmidt
Copyright (C) 2002-2005, Tom Charlesworth
Copyright (C) 2006-2014, Tom Charlesworth, Michael Pohoreski, Nick Westgate
AppleWin is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
AppleWin is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with AppleWin; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// "Property Sheet Page flow" (same for all tabs):
// . CConfigNeedingRestart::Reload()
// Before PSPs are created, emulator state is captured to m_PropertySheetHelper.GetConfigNew()
// . InitOptions()
// Init based on m_PropertySheetHelper.GetConfigNew()
// . DlgOK() and DlgXXXCardOK()
// Capture new state to m_PropertySheetHelper.GetConfigNew()
// . ApplyConfigAfterClose()
// If user confirms state changes are OK, then save new state to Registry & update emulator state
#include "StdAfx.h"
#include "PageConfig.h"
#include "PropertySheet.h"
#include "../Windows/Win32Frame.h"
#include "../Registry.h"
#include "../CardManager.h"
#include "../Interface.h"
#include "../Speaker.h"
#include "../resource/resource.h"
CPageConfig* CPageConfig::ms_this = 0; // reinit'd in ctor
enum APPLEIICHOICE {MENUITEM_IIORIGINAL, MENUITEM_IIPLUS, MENUITEM_IIJPLUS, MENUITEM_IIE, MENUITEM_ENHANCEDIIE, MENUITEM_CLONE};
const char CPageConfig::m_ComputerChoices[] =
"Apple II (original)\0"
"Apple II Plus\0"
"Apple II J-Plus\0"
"Apple //e (original)\0"
"Apple //e (enhanced)\0"
"Clone\0";
INT_PTR CALLBACK CPageConfig::DlgProc(HWND hWnd, UINT message, WPARAM wparam, LPARAM lparam)
{
// Switch from static func to our instance
return CPageConfig::ms_this->DlgProcInternal(hWnd, message, wparam, lparam);
}
INT_PTR CPageConfig::DlgProcInternal(HWND hWnd, UINT message, WPARAM wparam, LPARAM lparam)
{
switch (message)
{
case WM_NOTIFY:
{
// Property Sheet notifications
switch (((LPPSHNOTIFY)lparam)->hdr.code)
{
case PSN_SETACTIVE:
// About to become the active page
m_PropertySheetHelper.SetLastPage(m_Page);
InitOptions(hWnd);
break;
case PSN_KILLACTIVE:
// About to stop being active page
{
uint32_t NewComputerMenuItem = (uint32_t) SendDlgItemMessage(hWnd, IDC_COMPUTER, CB_GETCURSEL, 0, 0);
SetWindowLongPtr(hWnd, DWLP_MSGRESULT, FALSE); // Changes are valid
}
break;
case PSN_APPLY:
DlgOK(hWnd);
SetWindowLongPtr(hWnd, DWLP_MSGRESULT, PSNRET_NOERROR); // Changes are valid
break;
case PSN_QUERYCANCEL:
// Can use this to ask user to confirm cancel
break;
case PSN_RESET:
DlgCANCEL(hWnd);
break;
}
}
break;
case WM_COMMAND:
switch (LOWORD(wparam))
{
case IDC_AUTHENTIC_SPEED: // Authentic Machine Speed
SendDlgItemMessage(hWnd, IDC_SLIDER_CPU_SPEED, TBM_SETPOS, TRUE, SPEED_NORMAL);
EnableTrackbar(hWnd, FALSE);
break;
case IDC_CUSTOM_SPEED: // Select Custom Speed
SetFocus(GetDlgItem(hWnd, IDC_SLIDER_CPU_SPEED));
EnableTrackbar(hWnd, TRUE);
break;
case IDC_MONOCOLOR:
{
CHOOSECOLOR cc;
memset(&cc, 0, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = GetFrame().g_hFrameWindow;
cc.rgbResult = m_PropertySheetHelper.GetConfigNew().m_monochromeRGB;
cc.lpCustColors = m_customColors + 1;
cc.Flags = CC_RGBINIT | CC_SOLIDCOLOR;
if (ChooseColor(&cc))
{
m_PropertySheetHelper.GetConfigNew().m_monochromeRGB = cc.rgbResult;
}
}
break;
case IDC_CHECK_CONFIRM_REBOOT:
case IDC_CHECK_HALF_SCAN_LINES:
case IDC_CHECK_VERTICAL_BLEND:
case IDC_CHECK_FS_SHOW_SUBUNIT_STATUS:
case IDC_CHECK_50HZ_VIDEO:
case IDC_SCROLLLOCK_TOGGLE:
// Checked in DlgOK()
break;
case IDC_COMPUTER:
if(HIWORD(wparam) == CBN_SELCHANGE)
{
const uint32_t newComputerMenuItem = (uint32_t) SendDlgItemMessage(hWnd, IDC_COMPUTER, CB_GETCURSEL, 0, 0);
const eApple2Type newApple2Type = GetApple2Type(newComputerMenuItem);
m_PropertySheetHelper.GetConfigNew().m_Apple2Type = newApple2Type;
if (newApple2Type != A2TYPE_CLONE)
{
m_PropertySheetHelper.GetConfigNew().m_CpuType = ProbeMainCpuDefault(newApple2Type);
}
else // A2TYPE_CLONE
{
// NB. A2TYPE_CLONE could be either 6502(Pravets) or 65C02(TK3000 //e)
// - Set correctly in PageAdvanced.cpp for IDC_CLONETYPE
m_PropertySheetHelper.GetConfigNew().m_CpuType = CPU_UNKNOWN;
}
if (IsApple2Original(newApple2Type))
m_PropertySheetHelper.GetConfigNew().m_Slot[SLOT0] = CT_Empty;
else if (IsApple2PlusOrClone(newApple2Type))
m_PropertySheetHelper.GetConfigNew().m_Slot[SLOT0] = CT_LanguageCard;
else
m_PropertySheetHelper.GetConfigNew().m_Slot[SLOT0] = CT_LanguageCardIIe;
}
break;
case IDC_VIDEOTYPE:
if(HIWORD(wparam) == CBN_SELCHANGE)
{
const VideoType_e newVideoType = (VideoType_e) SendDlgItemMessage(hWnd, IDC_VIDEOTYPE, CB_GETCURSEL, 0, 0);
EnableWindow(GetDlgItem(hWnd, IDC_CHECK_VERTICAL_BLEND), (newVideoType == VT_COLOR_IDEALIZED) ? TRUE : FALSE);
}
break;
case IDC_CONFIG_ALL_DEFAULT:
if (!m_PropertySheetHelper.IsOkToResetConfig(hWnd))
break;
GetPropertySheet().ResetAllToDefault();
InitOptions(hWnd);
break;
} // switch( (LOWORD(wparam))
break; // WM_COMMAND
case WM_INITDIALOG:
InitOptions(hWnd);
break;
case WM_LBUTTONDOWN:
{
POINT pt = { LOWORD(lparam), HIWORD(lparam) };
ClientToScreen(hWnd,&pt);
RECT rect;
GetWindowRect(GetDlgItem(hWnd,IDC_SLIDER_CPU_SPEED),&rect);
if ((pt.x >= rect.left) && (pt.x <= rect.right) &&
(pt.y >= rect.top) && (pt.y <= rect.bottom))
{
CheckRadioButton(hWnd, IDC_AUTHENTIC_SPEED, IDC_CUSTOM_SPEED, IDC_CUSTOM_SPEED);
EnableTrackbar(hWnd, TRUE);
SetFocus(GetDlgItem(hWnd,IDC_SLIDER_CPU_SPEED));
ScreenToClient(GetDlgItem(hWnd,IDC_SLIDER_CPU_SPEED),&pt);
PostMessage(GetDlgItem(hWnd,IDC_SLIDER_CPU_SPEED),WM_LBUTTONDOWN,wparam,MAKELONG(pt.x,pt.y));
}
break;
}
case WM_SYSCOLORCHANGE:
SendDlgItemMessage(hWnd,IDC_SLIDER_CPU_SPEED,WM_SYSCOLORCHANGE,0,0);
break;
}
return FALSE;
}
//
// For InitOptions(), DlgOK() and ApplyConfigAfterClose(), see comment in PageConfig.cpp about "Property Sheet Page flow"
//
void CPageConfig::InitOptions(HWND hWnd)
{
// Convert Apple2 type to menu item
int nCurrentChoice = 0;
switch (m_PropertySheetHelper.GetConfigNew().m_Apple2Type)
{
case A2TYPE_APPLE2: nCurrentChoice = MENUITEM_IIORIGINAL; break;
case A2TYPE_APPLE2PLUS: nCurrentChoice = MENUITEM_IIPLUS; break;
case A2TYPE_APPLE2JPLUS: nCurrentChoice = MENUITEM_IIJPLUS; break;
case A2TYPE_APPLE2E: nCurrentChoice = MENUITEM_IIE; break;
case A2TYPE_APPLE2EENHANCED:nCurrentChoice = MENUITEM_ENHANCEDIIE; break;
case A2TYPE_PRAVETS82: nCurrentChoice = MENUITEM_CLONE; break;
case A2TYPE_PRAVETS8M: nCurrentChoice = MENUITEM_CLONE; break;
case A2TYPE_PRAVETS8A: nCurrentChoice = MENUITEM_CLONE; break;
case A2TYPE_TK30002E: nCurrentChoice = MENUITEM_CLONE; break;
case A2TYPE_BASE64A: nCurrentChoice = MENUITEM_CLONE; break;
default: _ASSERT(0); break;
}
m_PropertySheetHelper.FillComboBox(hWnd, IDC_COMPUTER, m_ComputerChoices, nCurrentChoice);
CheckDlgButton(hWnd, IDC_CHECK_CONFIRM_REBOOT, m_PropertySheetHelper.GetConfigNew().m_confirmReboot ? BST_CHECKED : BST_UNCHECKED);
// Master Volume
SendDlgItemMessage(hWnd, IDC_SLIDER_MASTER_VOLUME, TBM_SETRANGE, TRUE, MAKELONG(VOLUME_MIN, VOLUME_MAX));
SendDlgItemMessage(hWnd, IDC_SLIDER_MASTER_VOLUME, TBM_SETPAGESIZE, 0, 10);
SendDlgItemMessage(hWnd, IDC_SLIDER_MASTER_VOLUME, TBM_SETTICFREQ, 10, 0);
SendDlgItemMessage(hWnd, IDC_SLIDER_MASTER_VOLUME, TBM_SETPOS, TRUE, VOLUME_MAX - m_PropertySheetHelper.GetConfigNew().m_masterVolume); // Invert: L=MIN, R=MAX
// Video
m_PropertySheetHelper.FillComboBox(hWnd, IDC_VIDEOTYPE, GetVideo().GetVideoChoices(), m_PropertySheetHelper.GetConfigNew().m_videoType);
const VideoStyle_e style = m_PropertySheetHelper.GetConfigNew().m_videoStyle;
CheckDlgButton(hWnd, IDC_CHECK_HALF_SCAN_LINES, GetVideo().IsVideoStyle(style, VS_HALF_SCANLINES) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hWnd, IDC_CHECK_VERTICAL_BLEND, GetVideo().IsVideoStyle(style, VS_COLOR_VERTICAL_BLEND) ? BST_CHECKED : BST_UNCHECKED);
EnableWindow(GetDlgItem(hWnd, IDC_CHECK_VERTICAL_BLEND), (m_PropertySheetHelper.GetConfigNew().m_videoType == VT_COLOR_IDEALIZED) ? TRUE : FALSE);
CheckDlgButton(hWnd, IDC_CHECK_50HZ_VIDEO, (m_PropertySheetHelper.GetConfigNew().m_videoRefreshRate == VR_50HZ) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hWnd, IDC_CHECK_FS_SHOW_SUBUNIT_STATUS, m_PropertySheetHelper.GetConfigNew().m_fullScreen_ShowSubunitStatus ? BST_CHECKED : BST_UNCHECKED);
// Emulation Speed
CheckDlgButton(hWnd, IDC_ENHANCE_DISK_ENABLE, m_PropertySheetHelper.GetConfigNew().m_enhanceDiskAccessSpeed ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hWnd, IDC_SCROLLLOCK_TOGGLE, m_PropertySheetHelper.GetConfigNew().m_scrollLockToggle ? BST_CHECKED : BST_UNCHECKED);
SendDlgItemMessage(hWnd, IDC_SLIDER_CPU_SPEED, TBM_SETRANGE, TRUE, MAKELONG(0, 40));
SendDlgItemMessage(hWnd, IDC_SLIDER_CPU_SPEED, TBM_SETPAGESIZE, 0, 5);
SendDlgItemMessage(hWnd, IDC_SLIDER_CPU_SPEED, TBM_SETTICFREQ, 10, 0);
SendDlgItemMessage(hWnd, IDC_SLIDER_CPU_SPEED, TBM_SETPOS, TRUE, m_PropertySheetHelper.GetConfigNew().m_machineSpeed);
BOOL bCustom = m_PropertySheetHelper.GetConfigNew().m_machineSpeed != SPEED_NORMAL ? TRUE : FALSE;
CheckRadioButton(hWnd, IDC_AUTHENTIC_SPEED, IDC_CUSTOM_SPEED, bCustom ? IDC_CUSTOM_SPEED : IDC_AUTHENTIC_SPEED);
SetFocus(GetDlgItem(hWnd, bCustom ? IDC_SLIDER_CPU_SPEED : IDC_AUTHENTIC_SPEED));
EnableTrackbar(hWnd, bCustom);
}
void CPageConfig::DlgOK(HWND hWnd)
{
// This GetConfigNew() has already been set:
// . m_Apple2Type, m_CpuType, m_monochromeRGB
m_PropertySheetHelper.GetConfigNew().m_confirmReboot = IsDlgButtonChecked(hWnd, IDC_CHECK_CONFIRM_REBOOT) ? true : false;
const uint32_t newMasterVolume = VOLUME_MAX - (uint32_t)SendDlgItemMessage(hWnd, IDC_SLIDER_MASTER_VOLUME, TBM_GETPOS, 0, 0); // Invert: L=MIN, R=MAX
m_PropertySheetHelper.GetConfigNew().m_masterVolume = newMasterVolume;
// Video
const VideoType_e newVideoType = (VideoType_e)SendDlgItemMessage(hWnd, IDC_VIDEOTYPE, CB_GETCURSEL, 0, 0);
m_PropertySheetHelper.GetConfigNew().m_videoType = newVideoType;
UINT newVideoStyle = IsDlgButtonChecked(hWnd, IDC_CHECK_HALF_SCAN_LINES) ? VS_HALF_SCANLINES : VS_NONE;
newVideoStyle |= IsDlgButtonChecked(hWnd, IDC_CHECK_VERTICAL_BLEND) ? VS_COLOR_VERTICAL_BLEND : VS_NONE;
m_PropertySheetHelper.GetConfigNew().m_videoStyle = (VideoStyle_e)newVideoStyle;
m_PropertySheetHelper.GetConfigNew().m_videoRefreshRate = IsDlgButtonChecked(hWnd, IDC_CHECK_50HZ_VIDEO) ? VR_50HZ : VR_60HZ;
m_PropertySheetHelper.GetConfigNew().m_fullScreen_ShowSubunitStatus = IsDlgButtonChecked(hWnd, IDC_CHECK_FS_SHOW_SUBUNIT_STATUS) ? true : false;
// Emulation speed control
m_PropertySheetHelper.GetConfigNew().m_enhanceDiskAccessSpeed = IsDlgButtonChecked(hWnd, IDC_ENHANCE_DISK_ENABLE) ? true : false;
m_PropertySheetHelper.GetConfigNew().m_scrollLockToggle = IsDlgButtonChecked(hWnd, IDC_SCROLLLOCK_TOGGLE) ? 1 : 0;
m_PropertySheetHelper.GetConfigNew().m_machineSpeed = IsDlgButtonChecked(hWnd, IDC_AUTHENTIC_SPEED) ? SPEED_NORMAL
: (uint32_t)SendDlgItemMessage(hWnd, IDC_SLIDER_CPU_SPEED, TBM_GETPOS, 0, 0);
m_PropertySheetHelper.PostMsgAfterClose(hWnd, m_Page);
}
void CPageConfig::ApplyConfigAfterClose()
{
Win32Frame& win32Frame = Win32Frame::GetWin32Frame();
const bool bNewConfirmReboot = m_PropertySheetHelper.GetConfigNew().m_confirmReboot;
if (win32Frame.g_bConfirmReboot != bNewConfirmReboot)
{
REGSAVE(REGVALUE_CONFIRM_REBOOT, bNewConfirmReboot);
win32Frame.g_bConfirmReboot = bNewConfirmReboot;
}
// NB. Volume: 0=Loudest, VOLUME_MAX=Silence
const uint32_t newMasterVolume = m_PropertySheetHelper.GetConfigNew().m_masterVolume;
if (SpkrGetVolume() != newMasterVolume)
{
SpkrSetVolume(newMasterVolume, VOLUME_MAX);
GetCardMgr().GetMockingboardCardMgr().SetVolume(newMasterVolume, VOLUME_MAX);
REGSAVE(REGVALUE_MASTER_VOLUME, newMasterVolume);
}
// Video
// NB. If VideoRefreshRate has changed, then this forces an emulator restart (so no need to check if it's changed here)
bool bVideoReinit = false;
const VideoType_e newVideoType = m_PropertySheetHelper.GetConfigNew().m_videoType;
if (GetVideo().GetVideoType() != newVideoType)
{
GetVideo().SetVideoType(newVideoType);
bVideoReinit = true;
}
const bool newHalfScanLines = ((UINT)m_PropertySheetHelper.GetConfigNew().m_videoStyle & (UINT)VS_HALF_SCANLINES) ? true : false;
const bool currentHalfScanLines = GetVideo().IsVideoStyle(VS_HALF_SCANLINES);
if (currentHalfScanLines != newHalfScanLines)
{
if (newHalfScanLines)
GetVideo().SetVideoStyle((VideoStyle_e)(GetVideo().GetVideoStyle() | VS_HALF_SCANLINES));
else
GetVideo().SetVideoStyle((VideoStyle_e)(GetVideo().GetVideoStyle() & ~VS_HALF_SCANLINES));
bVideoReinit = true;
}
const bool newVerticalBlend = ((UINT)m_PropertySheetHelper.GetConfigNew().m_videoStyle & (UINT)VS_COLOR_VERTICAL_BLEND) ? true : false;
const bool currentVerticalBlend = GetVideo().IsVideoStyle(VS_COLOR_VERTICAL_BLEND);
if (currentVerticalBlend != newVerticalBlend)
{
if (newVerticalBlend)
GetVideo().SetVideoStyle((VideoStyle_e)(GetVideo().GetVideoStyle() | VS_COLOR_VERTICAL_BLEND));
else
GetVideo().SetVideoStyle((VideoStyle_e)(GetVideo().GetVideoStyle() & ~VS_COLOR_VERTICAL_BLEND));
bVideoReinit = true;
}
if (GetVideo().GetMonochromeRGB() != m_PropertySheetHelper.GetConfigNew().m_monochromeRGB)
{
GetVideo().SetMonochromeRGB(m_PropertySheetHelper.GetConfigNew().m_monochromeRGB);
bVideoReinit = true;
}
if (bVideoReinit)
{
win32Frame.FrameRefreshStatus(DRAW_TITLE);
win32Frame.ApplyVideoModeChange();
}
const bool bNewFSSubunitStatus = m_PropertySheetHelper.GetConfigNew().m_fullScreen_ShowSubunitStatus;
if (win32Frame.GetFullScreenShowSubunitStatus() != bNewFSSubunitStatus)
{
REGSAVE(REGVALUE_FS_SHOW_SUBUNIT_STATUS, bNewFSSubunitStatus);
win32Frame.SetFullScreenShowSubunitStatus(bNewFSSubunitStatus);
if (win32Frame.IsFullScreen())
win32Frame.FrameRefreshStatus(DRAW_BACKGROUND | DRAW_LEDS | DRAW_DISK_STATUS);
}
// Emulation speed control
const bool bNewEnhanceDisk = m_PropertySheetHelper.GetConfigNew().m_enhanceDiskAccessSpeed;
if (GetCardMgr().GetDisk2CardMgr().GetEnhanceDisk() != bNewEnhanceDisk)
{
GetCardMgr().GetDisk2CardMgr().SetEnhanceDisk(bNewEnhanceDisk);
REGSAVE(REGVALUE_ENHANCE_DISK_SPEED, bNewEnhanceDisk);
}
const UINT newScrollLockToggle = m_PropertySheetHelper.GetConfigNew().m_scrollLockToggle;
if (m_uScrollLockToggle != newScrollLockToggle)
{
m_uScrollLockToggle = newScrollLockToggle;
REGSAVE(REGVALUE_SCROLLLOCK_TOGGLE, m_uScrollLockToggle);
}
if (g_dwSpeed != m_PropertySheetHelper.GetConfigNew().m_machineSpeed)
{
g_dwSpeed = m_PropertySheetHelper.GetConfigNew().m_machineSpeed;
REGSAVE(REGVALUE_EMULATION_SPEED, g_dwSpeed);
SetCurrentCLK6502();
}
}
// Config->Computer: Menu item to eApple2Type
eApple2Type CPageConfig::GetApple2Type(uint32_t NewMenuItem)
{
switch (NewMenuItem)
{
case MENUITEM_IIORIGINAL: return A2TYPE_APPLE2;
case MENUITEM_IIPLUS: return A2TYPE_APPLE2PLUS;
case MENUITEM_IIJPLUS: return A2TYPE_APPLE2JPLUS;
case MENUITEM_IIE: return A2TYPE_APPLE2E;
case MENUITEM_ENHANCEDIIE: return A2TYPE_APPLE2EENHANCED;
case MENUITEM_CLONE: return A2TYPE_CLONE;
default: return A2TYPE_APPLE2EENHANCED;
}
}
void CPageConfig::EnableTrackbar(HWND hWnd, BOOL enable)
{
EnableWindow(GetDlgItem(hWnd,IDC_SLIDER_CPU_SPEED),enable);
EnableWindow(GetDlgItem(hWnd,IDC_0_5_MHz),enable);
EnableWindow(GetDlgItem(hWnd,IDC_1_0_MHz),enable);
EnableWindow(GetDlgItem(hWnd,IDC_2_0_MHz),enable);
EnableWindow(GetDlgItem(hWnd,IDC_MAX_MHz),enable);
}
void CPageConfig::ui_tfe_settings_dialog(HWND hWnd)
{
DialogBox(GetFrame().g_hInstance, (LPCTSTR)IDD_TFE_SETTINGS_DIALOG, hWnd, CPageConfigTfe::DlgProc);
}
void CPageConfig::ResetToDefault()
{
const eApple2Type apple2Type = A2TYPE_APPLE2EENHANCED;
m_PropertySheetHelper.GetConfigNew().m_Apple2Type = apple2Type;
m_PropertySheetHelper.GetConfigNew().m_CpuType = ProbeMainCpuDefault(apple2Type);
m_PropertySheetHelper.GetConfigNew().m_confirmReboot = kConfirmReboot_Default;
m_PropertySheetHelper.GetConfigNew().m_masterVolume = kUserVolume_Default;
m_PropertySheetHelper.GetConfigNew().m_videoType = VT_DEFAULT;
m_PropertySheetHelper.GetConfigNew().m_videoStyle = VS_DEFAULT;
m_PropertySheetHelper.GetConfigNew().m_videoRefreshRate = VR_DEFAULT;
m_PropertySheetHelper.GetConfigNew().m_monochromeRGB = Video::MONO_COLOR_DEFAULT;
m_PropertySheetHelper.GetConfigNew().m_fullScreen_ShowSubunitStatus = Win32Frame::kFullScreen_ShowSubunitStatus_Default;
m_PropertySheetHelper.GetConfigNew().m_enhanceDiskAccessSpeed = kEnhanceDiskAccessSpeed_Default;
m_PropertySheetHelper.GetConfigNew().m_scrollLockToggle = kScrollLockToggle_Default;
m_PropertySheetHelper.GetConfigNew().m_machineSpeed = kMachineSpeed_Default;
}