From 01d4ed0bc3692ad1ea366f20d94b519bf9a3c41b Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Sun, 17 Mar 2019 18:04:05 -0700
Subject: [PATCH 01/15] Change some error message boxes to warnings

---
 Source/Project64-core/Multilanguage.h         |  3 ++-
 .../Multilanguage/LanguageClass.cpp           |  3 ++-
 .../N64System/Interpreter/InterpreterOps.cpp  |  2 +-
 Source/Project64-core/Notification.h          |  3 +++
 .../Project64/UserInterface/CheatClassUI.cpp  |  2 +-
 .../Debugger/Debugger-MemoryDump.cpp          |  2 +-
 .../UserInterface/EnhancementConfig.cpp       |  2 +-
 Source/Project64/UserInterface/MainMenu.cpp   |  4 ++--
 Source/Project64/UserInterface/MainWindow.cpp |  6 +++---
 .../Project64/UserInterface/Notification.cpp  | 19 +++++++++++++++++--
 Source/Project64/UserInterface/Notification.h |  3 +++
 .../UserInterface/RomBrowserClass.cpp         |  2 +-
 .../Settings/SettingsPage-Game-Plugin.cpp     |  8 +++-----
 .../SettingsPage-KeyboardShortcuts.cpp        | 14 +++++++-------
 .../Settings/SettingsPage-Plugin.cpp          |  6 ++----
 Source/Project64/main.cpp                     |  2 +-
 16 files changed, 50 insertions(+), 31 deletions(-)

diff --git a/Source/Project64-core/Multilanguage.h b/Source/Project64-core/Multilanguage.h
index b6eae4ed4..f9aa8bf0e 100644
--- a/Source/Project64-core/Multilanguage.h
+++ b/Source/Project64-core/Multilanguage.h
@@ -523,7 +523,7 @@ enum LanguageStringID
     MSG_UNHANDLED_OP = 2022,
     MSG_NONMAPPED_SPACE = 2023,
     MSG_SAVE_STATE_HEADER = 2024,
-    MSG_MSGBOX_TITLE = 2025,
+    MSG_MSGBOX_ERROR_TITLE = 2025,
     MSG_PIF2_ERROR = 2026,
     MSG_PIF2_TITLE = 2027,
     MSG_PLUGIN_CHANGE = 2028,
@@ -558,6 +558,7 @@ enum LanguageStringID
     MSG_SET_HLE_AUD_MSG = 2057,
     MSG_FAIL_IMAGE_IPL = 2058,
     MSG_IPL_REQUIRED = 2059,
+    MSG_MSGBOX_WARNING_TITLE = 2060,
 
     /*********************************************************************************
     * Android                                                                        *
diff --git a/Source/Project64-core/Multilanguage/LanguageClass.cpp b/Source/Project64-core/Multilanguage/LanguageClass.cpp
index d8c070a0b..602e7fa74 100644
--- a/Source/Project64-core/Multilanguage/LanguageClass.cpp
+++ b/Source/Project64-core/Multilanguage/LanguageClass.cpp
@@ -489,7 +489,8 @@ void CLanguage::LoadDefaultStrings(void)
     DEF_STR(MSG_UNHANDLED_OP, "Unhandled R4300i opcode at");
     DEF_STR(MSG_NONMAPPED_SPACE, "Executing from non-mapped space.\n\nVerify ROM and its settings.");
     DEF_STR(MSG_SAVE_STATE_HEADER, "This saved state does not appear to match the running ROM.\n\nStates must be saved & loaded between 100% identical ROMs.\nIn particular, the REGION and VERSION need to be the same.\nLoading this state is likely to cause the game and/or emulator to crash.\n\nAre you sure you want to continue loading?");
-    DEF_STR(MSG_MSGBOX_TITLE, "Error");
+    DEF_STR(MSG_MSGBOX_WARNING_TITLE, "Warning");
+    DEF_STR(MSG_MSGBOX_ERROR_TITLE, "Error");
     DEF_STR(MSG_PIF2_ERROR, "Copyright sequence not found in LUT. Game will no longer function.");
     DEF_STR(MSG_PIF2_TITLE, "Copy Protection Failure");
     DEF_STR(MSG_PLUGIN_CHANGE, "Changing a plugin requires Project64 to reset a running ROM.\nIf you don't want to lose your place, answer No and save the current state first.\n\nChange plugins and reset ROM now?");
diff --git a/Source/Project64-core/N64System/Interpreter/InterpreterOps.cpp b/Source/Project64-core/N64System/Interpreter/InterpreterOps.cpp
index d1647e0f6..0bc60a890 100644
--- a/Source/Project64-core/N64System/Interpreter/InterpreterOps.cpp
+++ b/Source/Project64-core/N64System/Interpreter/InterpreterOps.cpp
@@ -3006,7 +3006,7 @@ void R4300iOp::UnknownOpcode()
 
         strcat(Message, "\n\nDo you wish to enter the debugger ?");
 
-        response = MessageBox(NULL, Message, GS(MSG_MSGBOX_TITLE), MB_YESNO | MB_ICONERROR);
+        response = MessageBox(NULL, Message, GS(MSG_MSGBOX_ERROR_TITLE), MB_YESNO | MB_ICONERROR);
         if (response == IDYES)
         {
             Enter_R4300i_Commands_Window();
diff --git a/Source/Project64-core/Notification.h b/Source/Project64-core/Notification.h
index 176409f47..fd14bfb19 100644
--- a/Source/Project64-core/Notification.h
+++ b/Source/Project64-core/Notification.h
@@ -17,6 +17,9 @@ public:
     virtual void FatalError(LanguageStringID StringID) const = 0;
 
     //User Feedback
+    virtual void DisplayWarning(const char * Message) const = 0;
+    virtual void DisplayWarning(LanguageStringID StringID) const = 0;
+
     virtual void DisplayMessage(int DisplayTime, const char * Message) const = 0;
     virtual void DisplayMessage(int DisplayTime, LanguageStringID StringID) const = 0;
     virtual void DisplayMessage2(const char * Message) const = 0;
diff --git a/Source/Project64/UserInterface/CheatClassUI.cpp b/Source/Project64/UserInterface/CheatClassUI.cpp
index fc5cb35a7..b7196fba6 100644
--- a/Source/Project64/UserInterface/CheatClassUI.cpp
+++ b/Source/Project64/UserInterface/CheatClassUI.cpp
@@ -301,7 +301,7 @@ int CALLBACK CCheatsUI::CheatAddProc(HWND hDlg, uint32_t uMsg, uint32_t wParam,
                 }
                 if (_stricmp(CheatName.c_str(), NewCheatName.c_str()) == 0)
                 {
-                    g_Notify->DisplayError(GS(MSG_CHEAT_NAME_IN_USE));
+                    g_Notify->DisplayWarning(GS(MSG_CHEAT_NAME_IN_USE));
                     SetFocus(GetDlgItem(hDlg, IDC_CODE_NAME));
                     return true;
                 }
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp b/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp
index 2d2aec9a3..0263c62e4 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp
@@ -112,7 +112,7 @@ LRESULT	CDumpMemory::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/,
         GetDlgItemText(IDC_FILENAME, FileName, sizeof(FileName));
         if (strlen(FileName) == 0)
         {
-            g_Notify->DisplayError("Please Choose target file");
+            g_Notify->DisplayWarning("Please Choose target file");
             ::SetFocus(GetDlgItem(IDC_FILENAME));
             return false;
         }
diff --git a/Source/Project64/UserInterface/EnhancementConfig.cpp b/Source/Project64/UserInterface/EnhancementConfig.cpp
index f6f038234..4528d100b 100644
--- a/Source/Project64/UserInterface/EnhancementConfig.cpp
+++ b/Source/Project64/UserInterface/EnhancementConfig.cpp
@@ -577,7 +577,7 @@ LRESULT CEditEnhancement::OnOkCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl
 		}
 		if (_stricmp(Name.c_str(), NewName.c_str()) == 0)
 		{
-			g_Notify->DisplayError(GS(MSG_CHEAT_NAME_IN_USE));
+			g_Notify->DisplayWarning(GS(MSG_CHEAT_NAME_IN_USE));
 			GetDlgItem(IDC_CODE_NAME).SetFocus();
 			return true;
 		}
diff --git a/Source/Project64/UserInterface/MainMenu.cpp b/Source/Project64/UserInterface/MainMenu.cpp
index bcb439e30..d324abb53 100644
--- a/Source/Project64/UserInterface/MainMenu.cpp
+++ b/Source/Project64/UserInterface/MainMenu.cpp
@@ -128,7 +128,7 @@ void CMainMenu::OnOpenRom(HWND hWnd)
     // Open Disk
     if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(File.c_str()))
     {
-        if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
+        if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
         CPath FileNameIPL;
         const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
         if (FileNameIPL.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@@ -553,7 +553,7 @@ bool CMainMenu::ProcessMessage(HWND hWnd, DWORD /*FromAccelerator*/, DWORD MenuI
                 {
                     if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(FileName.c_str()))
                     {
-                        if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
+                        if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
                         CPath FileNameIPL;
                         const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
                         if (FileNameIPL.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
diff --git a/Source/Project64/UserInterface/MainWindow.cpp b/Source/Project64/UserInterface/MainWindow.cpp
index 6bdd600e5..adc3d4d22 100644
--- a/Source/Project64/UserInterface/MainWindow.cpp
+++ b/Source/Project64/UserInterface/MainWindow.cpp
@@ -991,7 +991,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
                     {
                         if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(_this->CurrentedSelectedRom()))
                         {
-                            if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
+                            if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
                             CPath FileName;
                             const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
                             if (FileName.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@@ -1011,7 +1011,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
                     {
                         if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskComboImage(_this->CurrentedSelectedRom(), FileName))
                         {
-                            if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
+                            if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
                             CPath FileNameIPL;
                             const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
                             if (FileNameIPL.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@@ -1179,7 +1179,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
                 // Open Disk
                 if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(filename))
                 {
-                    if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
+                    if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
                     CPath FileName;
                     const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
                     if (FileName.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
diff --git a/Source/Project64/UserInterface/Notification.cpp b/Source/Project64/UserInterface/Notification.cpp
index 2ea0996c5..8a1fbca37 100644
--- a/Source/Project64/UserInterface/Notification.cpp
+++ b/Source/Project64/UserInterface/Notification.cpp
@@ -49,6 +49,21 @@ void CNotificationImp::WindowMode(void) const
     InsideFunc = false;
 }
 
+void CNotificationImp::DisplayWarning(const char * Message) const
+{
+    HWND Parent = NULL;
+    if (m_hWnd)
+    {
+        Parent = reinterpret_cast<HWND>(m_hWnd->GetWindowHandle());
+    }
+    MessageBoxW(Parent, stdstr(Message).ToUTF16().c_str(), wGS(MSG_MSGBOX_WARNING_TITLE).c_str(), MB_OK | MB_ICONWARNING | MB_SETFOREGROUND);
+}
+
+void CNotificationImp::DisplayWarning(LanguageStringID StringID) const
+{
+    DisplayWarning(g_Lang->GetString(StringID).c_str());
+}
+
 void CNotificationImp::DisplayError(LanguageStringID StringID) const
 {
     DisplayError(g_Lang->GetString(StringID).c_str());
@@ -64,7 +79,7 @@ void CNotificationImp::DisplayError(const char * Message) const
     {
         Parent = reinterpret_cast<HWND>(m_hWnd->GetWindowHandle());
     }
-    MessageBoxW(Parent, stdstr(Message).ToUTF16().c_str(), wGS(MSG_MSGBOX_TITLE).c_str(), MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
+    MessageBoxW(Parent, stdstr(Message).ToUTF16().c_str(), wGS(MSG_MSGBOX_ERROR_TITLE).c_str(), MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
 }
 
 void CNotificationImp::DisplayMessage(int DisplayTime, LanguageStringID StringID) const
@@ -125,7 +140,7 @@ bool CNotificationImp::AskYesNoQuestion(const char * Question) const
     {
         Parent = reinterpret_cast<HWND>(m_hWnd->GetWindowHandle());
     }
-    int result = MessageBoxW(Parent, stdstr(Question).ToUTF16().c_str(), wGS(MSG_MSGBOX_TITLE).c_str(), MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2 | MB_SETFOREGROUND);
+    int result = MessageBoxW(Parent, stdstr(Question).ToUTF16().c_str(), wGS(MSG_MSGBOX_WARNING_TITLE).c_str(), MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_SETFOREGROUND);
     return result == IDYES;
 }
 
diff --git a/Source/Project64/UserInterface/Notification.h b/Source/Project64/UserInterface/Notification.h
index a48f65cdc..02fcb66d6 100644
--- a/Source/Project64/UserInterface/Notification.h
+++ b/Source/Project64/UserInterface/Notification.h
@@ -35,6 +35,9 @@ public:
     virtual void FatalError(LanguageStringID StringID) const;
 
     //User Feedback
+    virtual void DisplayWarning(const char * Message) const;
+    virtual void DisplayWarning(LanguageStringID StringID) const;
+
     virtual void DisplayMessage(int DisplayTime, const char * Message) const;
     virtual void DisplayMessage(int DisplayTime, LanguageStringID StringID) const;
 
diff --git a/Source/Project64/UserInterface/RomBrowserClass.cpp b/Source/Project64/UserInterface/RomBrowserClass.cpp
index e6281fcb9..0bfd6713e 100644
--- a/Source/Project64/UserInterface/RomBrowserClass.cpp
+++ b/Source/Project64/UserInterface/RomBrowserClass.cpp
@@ -813,7 +813,7 @@ void CRomBrowser::RomList_OpenRom(uint32_t /*pnmh*/)
     {
         if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(pRomInfo->szFullFileName))
         {
-            if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
+            if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
             CPath FileName;
             const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
             if (FileName.SelectFile(m_MainWindow, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-Game-Plugin.cpp b/Source/Project64/UserInterface/Settings/SettingsPage-Game-Plugin.cpp
index 64f3c5d27..df31d4754 100644
--- a/Source/Project64/UserInterface/Settings/SettingsPage-Game-Plugin.cpp
+++ b/Source/Project64/UserInterface/Settings/SettingsPage-Game-Plugin.cpp
@@ -312,8 +312,7 @@ void CGamePluginPage::HleGfxChanged(UINT /*Code*/, int id, HWND /*ctl*/)
         }
         if ((Button->GetCheck() & BST_CHECKED) == 0)
         {
-            int res = MessageBoxW(m_hWnd, wGS(MSG_SET_LLE_GFX_MSG).c_str(), wGS(MSG_SET_LLE_GFX_TITLE).c_str(), MB_YESNO | MB_ICONWARNING);
-            if (res != IDYES)
+            if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_LLE_GFX_MSG).c_str()))
             {
                 Button->SetCheck(BST_CHECKED);
                 return;
@@ -335,9 +334,8 @@ void CGamePluginPage::HleAudioChanged(UINT /*Code*/, int id, HWND /*ctl*/)
             continue;
         }
         if ((Button->GetCheck() & BST_CHECKED) != 0)
-        {
-            int res = MessageBoxW(m_hWnd, wGS(MSG_SET_HLE_AUD_MSG).c_str(), wGS(MSG_SET_HLE_AUD_TITLE).c_str(), MB_ICONWARNING | MB_YESNO);
-            if (res != IDYES)
+        {          
+            if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_HLE_AUD_MSG).c_str()))
             {
                 Button->SetCheck(BST_UNCHECKED);
                 return;
diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-KeyboardShortcuts.cpp b/Source/Project64/UserInterface/Settings/SettingsPage-KeyboardShortcuts.cpp
index 23f591203..aa15acd2f 100644
--- a/Source/Project64/UserInterface/Settings/SettingsPage-KeyboardShortcuts.cpp
+++ b/Source/Project64/UserInterface/Settings/SettingsPage-KeyboardShortcuts.cpp
@@ -137,13 +137,13 @@ void COptionsShortCutsPage::OnRemoveClicked(UINT /*Code*/, int /*id*/, HWND /*ct
     HTREEITEM hSelectedItem = m_MenuItems.GetSelectedItem();
     if (hSelectedItem == NULL)
     {
-        g_Notify->DisplayError(GS(MSG_NO_SEL_SHORTCUT));
+        g_Notify->DisplayWarning(GS(MSG_NO_SEL_SHORTCUT));
         return;
     }
     HTREEITEM hParent = m_MenuItems.GetParentItem(hSelectedItem);
     if (hParent == NULL)
     {
-        g_Notify->DisplayError(GS(MSG_NO_SEL_SHORTCUT));
+        g_Notify->DisplayWarning(GS(MSG_NO_SEL_SHORTCUT));
         return;
     }
 
@@ -153,7 +153,7 @@ void COptionsShortCutsPage::OnRemoveClicked(UINT /*Code*/, int /*id*/, HWND /*ct
     int index = m_CurrentKeys.GetCurSel();
     if (index < 0)
     {
-        g_Notify->DisplayError(GS(MSG_NO_SEL_SHORTCUT));
+        g_Notify->DisplayWarning(GS(MSG_NO_SEL_SHORTCUT));
         return;
     }
     ShortCut->RemoveItem((CMenuShortCutKey *)m_CurrentKeys.GetItemData(index));
@@ -176,7 +176,7 @@ void COptionsShortCutsPage::OnAssignClicked(UINT /*Code*/, int /*id*/, HWND /*ct
     int index = m_VirtualKeyList.GetCurSel();
     if (index < 0)
     {
-        g_Notify->DisplayError(GS(MSG_NO_SHORTCUT_SEL));
+        g_Notify->DisplayWarning(GS(MSG_NO_SHORTCUT_SEL));
         return;
     }
 
@@ -190,13 +190,13 @@ void COptionsShortCutsPage::OnAssignClicked(UINT /*Code*/, int /*id*/, HWND /*ct
     HTREEITEM hSelectedItem = m_MenuItems.GetSelectedItem();
     if (hSelectedItem == NULL)
     {
-        g_Notify->DisplayError(GS(MSG_NO_MENUITEM_SEL));
+        g_Notify->DisplayWarning(GS(MSG_NO_MENUITEM_SEL));
         return;
     }
     HTREEITEM hParent = m_MenuItems.GetParentItem(hSelectedItem);
     if (hParent == NULL)
     {
-        g_Notify->DisplayError(GS(MSG_NO_MENUITEM_SEL));
+        g_Notify->DisplayWarning(GS(MSG_NO_MENUITEM_SEL));
         return;
     }
 
@@ -204,7 +204,7 @@ void COptionsShortCutsPage::OnAssignClicked(UINT /*Code*/, int /*id*/, HWND /*ct
     LanguageStringID strid = m_ShortCuts.GetMenuItemName(key, bCtrl, bAlt, bShift, RunningState);
     if (strid != EMPTY_STRING)
     {
-        g_Notify->DisplayError(GS(MSG_MENUITEM_ASSIGNED));
+        g_Notify->DisplayWarning(GS(MSG_MENUITEM_ASSIGNED));
         return;
     }
 
diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-Plugin.cpp b/Source/Project64/UserInterface/Settings/SettingsPage-Plugin.cpp
index c6697dd52..84f6f047c 100644
--- a/Source/Project64/UserInterface/Settings/SettingsPage-Plugin.cpp
+++ b/Source/Project64/UserInterface/Settings/SettingsPage-Plugin.cpp
@@ -296,8 +296,7 @@ void COptionPluginPage::HleGfxChanged(UINT /*Code*/, int id, HWND /*ctl*/)
         }
         if ((Button->GetCheck() & BST_CHECKED) == 0)
         {
-            int res = MessageBoxW(m_hWnd, wGS(MSG_SET_LLE_GFX_MSG).c_str(), wGS(MSG_SET_LLE_GFX_TITLE).c_str(), MB_YESNO | MB_ICONWARNING);
-            if (res != IDYES)
+            if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_LLE_GFX_MSG).c_str()))
             {
                 Button->SetCheck(BST_CHECKED);
                 return;
@@ -320,8 +319,7 @@ void COptionPluginPage::HleAudioChanged(UINT /*Code*/, int id, HWND /*ctl*/)
         }
         if ((Button->GetCheck() & BST_CHECKED) != 0)
         {
-            int res = MessageBoxW(m_hWnd, wGS(MSG_SET_HLE_AUD_MSG).c_str(), wGS(MSG_SET_HLE_AUD_TITLE).c_str(), MB_ICONWARNING | MB_YESNO);
-            if (res != IDYES)
+            if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_HLE_AUD_MSG).c_str()))
             {
                 Button->SetCheck(BST_UNCHECKED);
                 return;
diff --git a/Source/Project64/main.cpp b/Source/Project64/main.cpp
index e3b160b93..51bd98369 100644
--- a/Source/Project64/main.cpp
+++ b/Source/Project64/main.cpp
@@ -39,7 +39,7 @@ int WINAPI WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /
                 //Ext is *.ndd, so it should be a disk file.
                 if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(g_Settings->LoadStringVal(Cmd_RomFile).c_str()))
                 {
-                    if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
+                    if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
                     CPath FileNameIPL;
                     const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
                     if (FileNameIPL.SelectFile(NULL, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))

From 2555485eb9d1eb03263ccbd6213bcc2082061bd3 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Sun, 17 Mar 2019 19:45:05 -0700
Subject: [PATCH 02/15] [Debugger UI] Center CPU Exception Breakpoints dialog
 Also fix capitalization in menu

---
 Source/Project64/UserInterface/MainMenu.cpp   | 2 +-
 Source/Project64/UserInterface/UIResources.rc | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Source/Project64/UserInterface/MainMenu.cpp b/Source/Project64/UserInterface/MainMenu.cpp
index d324abb53..1a13ec2ce 100644
--- a/Source/Project64/UserInterface/MainMenu.cpp
+++ b/Source/Project64/UserInterface/MainMenu.cpp
@@ -1152,7 +1152,7 @@ void CMainMenu::FillOutMenu(HMENU hMenu)
 
         /* Debug - Exception breakpoints
         *******************/
-        Item.Reset(ID_DEBUGGER_EXCBREAKPOINTS, EMPTY_STRING, EMPTY_STDSTR, NULL, L"CPU Exception breakpoints...");
+        Item.Reset(ID_DEBUGGER_EXCBREAKPOINTS, EMPTY_STRING, EMPTY_STDSTR, NULL, L"CPU Exception Breakpoints...");
         //Item.SetItemEnabled(CPURunning);
         DebugMenu.push_back(Item);
 
diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc
index 61a26fd2a..7673efe25 100644
--- a/Source/Project64/UserInterface/UIResources.rc
+++ b/Source/Project64/UserInterface/UIResources.rc
@@ -1333,7 +1333,7 @@ BEGIN
 END
 
 IDD_Debugger_ExceptionBP DIALOGEX 0, 0, 213, 107
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "CPU Exception Breakpoints"
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN

From 564ac883a4d02f79f5d0096a0d076b3d4130fedb Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Mon, 15 Apr 2019 09:35:46 -0700
Subject: [PATCH 03/15] Revert "Delete Project64.exe.manifest"

This reverts commit 3a7de999309d2afe3660527a4e34b3a38af173ea.
---
 Source/Project64/Project64.exe.manifest    | 28 ++++++++++++++++++++++
 Source/Project64/Project64.vcxproj         |  5 +++-
 Source/Project64/Project64.vcxproj.filters |  3 +++
 3 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 Source/Project64/Project64.exe.manifest

diff --git a/Source/Project64/Project64.exe.manifest b/Source/Project64/Project64.exe.manifest
new file mode 100644
index 000000000..5cfc9b622
--- /dev/null
+++ b/Source/Project64/Project64.exe.manifest
@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+  <trustInfo xmlns='urn:schemas-microsoft-com:asm.v3'>
+    <security>
+      <requestedPrivileges>
+        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+  <assemblyIdentity
+    version='2.1.0.1'
+    processorArchitecture='x86'
+    name='Project64'
+    type='win32'
+  />
+  <dependency>
+  <dependentAssembly>
+    <assemblyIdentity
+      type='win32'
+      name='Microsoft.Windows.Common-Controls'
+      version='6.0.0.0'
+      processorArchitecture='X86'
+      publicKeyToken='6595b64144ccf1df'
+      language='*'
+    />
+  </dependentAssembly>
+  </dependency>
+</assembly>
diff --git a/Source/Project64/Project64.vcxproj b/Source/Project64/Project64.vcxproj
index 880497dbf..7ba01bbe8 100644
--- a/Source/Project64/Project64.vcxproj
+++ b/Source/Project64/Project64.vcxproj
@@ -32,7 +32,7 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <PropertyGroup>
-    <GenerateManifest>true</GenerateManifest>
+    <GenerateManifest>false</GenerateManifest>
   </PropertyGroup>
   <ItemDefinitionGroup>
     <Link>
@@ -247,6 +247,9 @@
   <ItemGroup>
     <ResourceCompile Include="UserInterface\UIResources.rc" />
   </ItemGroup>
+  <ItemGroup>
+    <Manifest Include="Project64.exe.manifest" />
+  </ItemGroup>
   <ProjectExtensions>
     <VisualStudio>
       <UserProperties RESOURCE_FILE="UserInterface\UIResources.rc" />
diff --git a/Source/Project64/Project64.vcxproj.filters b/Source/Project64/Project64.vcxproj.filters
index a415c7c12..8d220cd82 100644
--- a/Source/Project64/Project64.vcxproj.filters
+++ b/Source/Project64/Project64.vcxproj.filters
@@ -499,4 +499,7 @@
       <Filter>Resource Files</Filter>
     </ResourceCompile>
   </ItemGroup>
+  <ItemGroup>
+    <Manifest Include="Project64.exe.manifest" />
+  </ItemGroup>
 </Project>
\ No newline at end of file

From b377f48440f6d03e57d7c565d32ba4087fe6a6ff Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Mon, 15 Apr 2019 10:24:42 -0700
Subject: [PATCH 04/15] Use Per monitor scaling where supported

Fixes blurriness in higher DPI systems
---
 Source/Project64/Project64.exe.manifest | 41 +++++++++++--------------
 1 file changed, 18 insertions(+), 23 deletions(-)

diff --git a/Source/Project64/Project64.exe.manifest b/Source/Project64/Project64.exe.manifest
index 5cfc9b622..275e30b0a 100644
--- a/Source/Project64/Project64.exe.manifest
+++ b/Source/Project64/Project64.exe.manifest
@@ -1,28 +1,23 @@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
-  <trustInfo xmlns='urn:schemas-microsoft-com:asm.v3'>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+  <dependency>
+    <dependentAssembly>
+      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
+    </dependentAssembly>
+  </dependency>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
     <security>
       <requestedPrivileges>
-        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
       </requestedPrivileges>
     </security>
   </trustInfo>
-  <assemblyIdentity
-    version='2.1.0.1'
-    processorArchitecture='x86'
-    name='Project64'
-    type='win32'
-  />
-  <dependency>
-  <dependentAssembly>
-    <assemblyIdentity
-      type='win32'
-      name='Microsoft.Windows.Common-Controls'
-      version='6.0.0.0'
-      processorArchitecture='X86'
-      publicKeyToken='6595b64144ccf1df'
-      language='*'
-    />
-  </dependentAssembly>
-  </dependency>
-</assembly>
+    <asmv3:application>
+    <asmv3:windowsSettings>
+      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
+      <!-- Fallback for Windows XP, Vista, 7 and 8 -->
+      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness>
+      <!-- Win10 Only: Falls back to per-monitor if per-monitor v2 is not supported -->
+    </asmv3:windowsSettings>
+  </asmv3:application>
+</assembly>
\ No newline at end of file

From a27b3440e015b4f39873f0042915d90a8c4c368a Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Mon, 15 Apr 2019 20:48:33 -0700
Subject: [PATCH 05/15] Get rid of ugly WS_EX_CLIENTEDGE

---
 Source/Project64/UserInterface/UIResources.rc | 26 +++++++++----------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc
index 7673efe25..507b1e463 100644
--- a/Source/Project64/UserInterface/UIResources.rc
+++ b/Source/Project64/UserInterface/UIResources.rc
@@ -176,27 +176,27 @@ BEGIN
     DEFPUSHBUTTON   "&Close",IDC_CLOSE_BUTTON,169,186,64,14
     GROUPBOX        "",IDC_STATIC,6,5,228,177
     LTEXT           "ROM Name:",IDC_ROM_NAME,11,16,64,10
-    EDITTEXT        IDC_INFO_ROMNAME,77,15,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_ROMNAME,77,15,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "File Name:",IDC_FILE_NAME,11,31,64,10
-    EDITTEXT        IDC_INFO_FILENAME,77,30,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_FILENAME,77,30,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "Rom Size:",IDC_ROM_SIZE,11,74,64,10
-    EDITTEXT        IDC_INFO_ROMSIZE,77,74,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_ROMSIZE,77,74,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "Cartridge ID:",IDC_CART_ID,11,90,64,10
-    EDITTEXT        IDC_INFO_CARTID,77,89,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CARTID,77,89,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "Manufacturer:",IDC_MANUFACTURER,11,106,64,10
-    EDITTEXT        IDC_INFO_MANUFACTURER,77,104,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_MANUFACTURER,77,104,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "Country:",IDC_COUNTRY,11,122,64,10
-    EDITTEXT        IDC_INFO_COUNTRY,77,119,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_COUNTRY,77,119,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "CRC1:",IDC_CRC1,11,135,64,10
-    EDITTEXT        IDC_INFO_CRC1,77,134,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CRC1,77,134,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "CRC2:",IDC_CRC2,11,151,64,10
-    EDITTEXT        IDC_INFO_CRC2,77,149,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CRC2,77,149,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "CIC Chip:",IDC_CIC_CHIP,11,167,64,10
-    EDITTEXT        IDC_INFO_CIC,77,164,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CIC,77,164,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "Location:",IDC_LOCATION,11,45,64,10
-    EDITTEXT        IDC_INFO_LOCATION,77,45,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_LOCATION,77,45,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
     LTEXT           "MD5:",IDC_ROM_MD5,11,60,64,10
-    EDITTEXT        IDC_INFO_MD5,77,59,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_MD5,77,59,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
 END
 
 IDD_Settings_GameGeneral DIALOGEX 0, 0, 218, 169
@@ -294,8 +294,8 @@ BEGIN
     EDITTEXT        IDC_CHEAT_OPTIONS,82,50,101,90,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_DISABLED | WS_VSCROLL | WS_HSCROLL
     GROUPBOX        "Cheat Notes",IDC_CHEATNOTES,2,150,188,45
     EDITTEXT        IDC_NOTES,7,160,176,30,ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL
-    PUSHBUTTON      "New Cheat",IDC_NEWCHEAT,21,198,70,15,0,WS_EX_CLIENTEDGE
-    PUSHBUTTON      "Add Cheat",IDC_ADD,98,198,70,15,WS_DISABLED,WS_EX_CLIENTEDGE
+    PUSHBUTTON      "New Cheat",IDC_NEWCHEAT,21,198,70,15,0
+    PUSHBUTTON      "Add Cheat",IDC_ADD,98,198,70,15,WS_DISABLED
 END
 
 IDD_Cheats_CodeEx DIALOGEX 0, 0, 186, 153

From b42e61f50537e86edabb52ba2e0e81634890d6b6 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Mon, 15 Apr 2019 20:55:49 -0700
Subject: [PATCH 06/15] Remove black border around Cheat separator button

---
 Source/Project64/UserInterface/UIResources.rc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc
index 507b1e463..0d61669f2 100644
--- a/Source/Project64/UserInterface/UIResources.rc
+++ b/Source/Project64/UserInterface/UIResources.rc
@@ -264,7 +264,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER |
 CAPTION "Cheats"
 FONT 8, "MS Shell Dlg", 0, 0, 0x1
 BEGIN
-    PUSHBUTTON      "Button1",IDC_STATE,195,5,20,20,BS_ICON | BS_FLAT,WS_EX_TRANSPARENT
+    PUSHBUTTON      "Button1",IDC_STATE,195,5,20,20,BS_ICON | WS_EX_TRANSPARENT
 END
 
 IDD_Cheats_List DIALOGEX 0, 0, 201, 221

From d83c8597b65587aa4c2f8850405a151f4eacfa56 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Thu, 18 Apr 2019 14:10:04 -0700
Subject: [PATCH 07/15] [Debugger] Make Debugger DPI-Aware

Thanks @Shygoo for the class code
---
 .../UserInterface/Debugger/DebugDialog.h      | 20 +++++++++++++++++++
 .../Debugger/Debugger-CPULogView.cpp          |  2 +-
 .../Debugger/Debugger-CPULogView.h            |  4 ++--
 .../Debugger/Debugger-Commands.cpp            |  2 +-
 .../Debugger/Debugger-Commands.h              |  2 +-
 .../Debugger/Debugger-DMALogView.h            |  2 +-
 .../Debugger/Debugger-MemorySearch.cpp        |  4 ++--
 .../Debugger/Debugger-MemorySearch.h          |  6 +++---
 .../UserInterface/Debugger/Debugger-Scripts.h |  2 +-
 .../Debugger/Debugger-StackTrace.h            |  2 +-
 .../Debugger/Debugger-StackView.h             |  2 +-
 .../UserInterface/Debugger/Debugger-Symbols.h |  2 +-
 12 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/Source/Project64/UserInterface/Debugger/DebugDialog.h b/Source/Project64/UserInterface/Debugger/DebugDialog.h
index 5e3e327b0..f766bbd86 100644
--- a/Source/Project64/UserInterface/Debugger/DebugDialog.h
+++ b/Source/Project64/UserInterface/Debugger/DebugDialog.h
@@ -123,3 +123,23 @@ private:
     LONG        m_SaveWndTop;
     LONG        m_SaveWndLeft;
 };
+
+class CListViewCtrlVarDPI : public CListViewCtrl
+{
+private:
+    float m_ScaleX;
+
+public:
+    CListViewCtrlVarDPI() :
+        CListViewCtrl()
+    {
+        HDC screen = ::GetDC(0);
+        m_ScaleX = GetDeviceCaps(screen, LOGPIXELSX) / 96.0f;
+        ::ReleaseDC(0, screen);
+    }
+
+    BOOL SetColumnWidth(int nColumn, int nWidth)
+    {
+        return CListViewCtrl::SetColumnWidth(nColumn, nWidth * m_ScaleX);
+    }
+};
\ No newline at end of file
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
index 0d68c149c..7ca6bd94f 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
@@ -412,7 +412,7 @@ void CDebugCPULogView::Export(void)
 
 // util
 
-int CDebugCPULogView::GetNumVisibleRows(CListViewCtrl& list)
+int CDebugCPULogView::GetNumVisibleRows(CListViewCtrlVarDPI& list)
 {
     CHeaderCtrl header = list.GetHeader();
     CRect listRect, headRect;
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h
index f54d449ae..e1a0767aa 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h
@@ -22,7 +22,7 @@ private:
     int           m_RowHeight;
     int           m_LogStartIndex;
 
-    CListViewCtrl m_CPUListView;
+    CListViewCtrlVarDPI m_CPUListView;
     CEdit         m_StateInfoEdit;
     CEditNumber32 m_BuffSizeEdit;
     CButton       m_EnabledChk;
@@ -50,7 +50,7 @@ private:
     void ShowRegStates(size_t stateIndex);
     void Export(void);
 
-    int GetNumVisibleRows(CListViewCtrl& list);
+    int GetNumVisibleRows(CListViewCtrlVarDPI& list);
     bool MouseHovering(WORD ctrlId, int xMargin = 0, int yMargin = 0);
 
     BEGIN_MSG_MAP_EX(CDebugCPULogView)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
index 33db63dcc..92fef2526 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
@@ -21,7 +21,7 @@
 
 void CCommandList::Attach(HWND hWndNew)
 {
-    CListViewCtrl::Attach(hWndNew);
+    CListViewCtrlVarDPI::Attach(hWndNew);
 
     ModifyStyle(LVS_OWNERDRAWFIXED, 0, 0);
     SetExtendedListViewStyle(LVS_EX_FULLROWSELECT | LVS_EX_DOUBLEBUFFER | LVS_EX_LABELTIP);
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Commands.h b/Source/Project64/UserInterface/Debugger/Debugger-Commands.h
index 0841a5e35..ed2550ce8 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Commands.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Commands.h
@@ -18,7 +18,7 @@
 #include <Project64/UserInterface/WTLControls/TooltipDialog.h>
 
 class CCommandList :
-    public CWindowImpl<CCommandList, CListViewCtrl>
+    public CWindowImpl<CCommandList, CListViewCtrlVarDPI>
 {
 public:
     enum
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h b/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h
index d3a07a817..07f3e56ad 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h
@@ -44,7 +44,7 @@ private:
     // Return true if entry meets requirements
     bool FilterEntry(int dmaLogIndex);
 
-    CListViewCtrl m_DMAList;
+    CListViewCtrlVarDPI m_DMAList;
     CEdit         m_DMARamEdit;
     CEdit         m_DMARomEdit;
     CStatic       m_BlockInfo;
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
index fc35096c1..033da7bf5 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
@@ -1487,7 +1487,7 @@ void CDebugMemorySearch::SeparatorMoveCtrl(WORD ctrlId, int yChange, bool bResiz
     ::InvalidateRect(hControl, NULL, true);
 }
 
-int CDebugMemorySearch::GetNumVisibleRows(CListViewCtrl& list)
+int CDebugMemorySearch::GetNumVisibleRows(CListViewCtrlVarDPI& list)
 {
     CHeaderCtrl header = list.GetHeader();
     CRect listRect, headRect;
@@ -2139,7 +2139,7 @@ void CDebugMemorySearch::LoadWatchList(void)
     
 }
 
-void CDebugMemorySearch::FixListHeader(CListViewCtrl& listCtrl)
+void CDebugMemorySearch::FixListHeader(CListViewCtrlVarDPI& listCtrl)
 {
     CRect listRect, headRect;
     CHeaderCtrl listHead = listCtrl.GetHeader();
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h
index 035f32e64..61b38efe9 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h
@@ -241,10 +241,10 @@ private:
     CPath GetWatchListPath(void);
 
     /* generic ui util */
-    void FixListHeader(CListViewCtrl& listCtrl);
+    void FixListHeader(CListViewCtrlVarDPI& listCtrl);
     void SetComboBoxSelByData(CComboBox& cb, DWORD_PTR data);
     bool MouseHovering(WORD ctrlId, int hMargin = 0, int vMargin = 0);
-    int  GetNumVisibleRows(CListViewCtrl& list);
+    int  GetNumVisibleRows(CListViewCtrlVarDPI& list);
     /*******************/
 
     bool m_bJalSelected;
@@ -261,7 +261,7 @@ private:
     CEditMixed    m_SearchValue;
     CEditNumber32 m_AddrStart, m_AddrEnd;
     CComboBox     m_SearchTypeOptions, m_ValueTypeOptions;
-    CListViewCtrl m_ResultsListCtrl, m_WatchListCtrl;
+    CListViewCtrlVarDPI m_ResultsListCtrl, m_WatchListCtrl;
     CScrollBar    m_ResultsScrollbar, m_WatchListScrollbar;
     CButton       m_PhysicalCheckbox, m_HexCheckbox;
     CButton       m_UnsignedCheckbox, m_IgnoreCaseCheckbox, m_UnkEncodingCheckbox;
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h b/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h
index c65d343b5..4377a65bd 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h
@@ -13,7 +13,7 @@
 #include "DebuggerUI.h"
 #include "ScriptSystem.h"
 
-class CScriptList : public CListViewCtrl
+class CScriptList : public CListViewCtrlVarDPI
 {
 public:
     BEGIN_MSG_MAP_EX(CScriptList)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h b/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h
index a7f3f5681..dea72b697 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h
@@ -44,7 +44,7 @@ private:
     HANDLE m_AutoRefreshThread;
     static DWORD WINAPI AutoRefreshProc(void* _this);
 
-    CListViewCtrl m_List;
+    CListViewCtrlVarDPI m_List;
 
     LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
     LRESULT OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-StackView.h b/Source/Project64/UserInterface/Debugger/Debugger-StackView.h
index f1b1fe3f9..479fe634a 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-StackView.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-StackView.h
@@ -24,7 +24,7 @@ public:
     void Refresh();
 
 private:
-    CListViewCtrl m_StackList;
+    CListViewCtrlVarDPI m_StackList;
     CStatic m_SPStatic;
 
     LRESULT	OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h b/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h
index 06ccb71e5..bfbc90176 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h
@@ -20,7 +20,7 @@ class CDebugSymbols :
     public CDialogResize<CDebugSymbols>
 {
 private:
-    CListViewCtrl m_SymbolsListView;
+    CListViewCtrlVarDPI m_SymbolsListView;
     CAddSymbolDlg m_AddSymbolDlg;
 
     HANDLE m_AutoRefreshThread;

From d21e7c8684dbbcd6d92b3b15f860b877b1dc6eab Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Thu, 18 Apr 2019 15:35:54 -0700
Subject: [PATCH 08/15] Fix warning

---
 Source/Project64/UserInterface/Debugger/DebugDialog.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Source/Project64/UserInterface/Debugger/DebugDialog.h b/Source/Project64/UserInterface/Debugger/DebugDialog.h
index f766bbd86..170ea80a6 100644
--- a/Source/Project64/UserInterface/Debugger/DebugDialog.h
+++ b/Source/Project64/UserInterface/Debugger/DebugDialog.h
@@ -140,6 +140,6 @@ public:
 
     BOOL SetColumnWidth(int nColumn, int nWidth)
     {
-        return CListViewCtrl::SetColumnWidth(nColumn, nWidth * m_ScaleX);
+        return CListViewCtrl::SetColumnWidth(nColumn, int (nWidth * m_ScaleX));
     }
 };
\ No newline at end of file

From df9967b782e330b6009d9f94c5a1351d7ce173b3 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Thu, 18 Apr 2019 16:29:07 -0700
Subject: [PATCH 09/15] [Debugger] Change Commands and Registers font to Lucida
 Console

---
 .../Debugger/Debugger-Commands.cpp            |  8 +++---
 Source/Project64/UserInterface/UIResources.rc | 28 +++++++++----------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
index 92fef2526..e0a2e00f6 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
@@ -30,16 +30,16 @@ void CCommandList::Attach(HWND hWndNew)
     SetColumnWidth(COL_ARROWS, 30);
 
     AddColumn("Address", COL_ADDRESS);
-    SetColumnWidth(COL_ADDRESS, 65);
+    SetColumnWidth(COL_ADDRESS, 70);
 
     AddColumn("Command", COL_COMMAND);
-    SetColumnWidth(COL_COMMAND, 60);
+    SetColumnWidth(COL_COMMAND, 65);
 
     AddColumn("Parameters", COL_PARAMETERS);
-    SetColumnWidth(COL_PARAMETERS, 120);
+    SetColumnWidth(COL_PARAMETERS, 130);
 
     AddColumn("Symbol", COL_SYMBOL);
-    SetColumnWidth(COL_SYMBOL, 140);
+    SetColumnWidth(COL_SYMBOL, 180);
 }
 
 CDebugCommandsView* CDebugCommandsView::_this = NULL;
diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc
index 0d61669f2..7f83932b1 100644
--- a/Source/Project64/UserInterface/UIResources.rc
+++ b/Source/Project64/UserInterface/UIResources.rc
@@ -677,7 +677,7 @@ END
 IDD_Debugger_Commands DIALOGEX 0, 0, 489, 327
 STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
 CAPTION "Commands"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     EDITTEXT        IDC_ADDR_EDIT,311,2,45,14,ES_UPPERCASE | ES_AUTOHSCROLL
     PUSHBUTTON      "�",IDC_BACK_BTN,286,1,11,15,WS_DISABLED
@@ -703,7 +703,7 @@ END
 
 IDD_Debugger_RegGPR DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "R0",IDC_R0_LBL,3,15,10,8,SS_NOTIFY
     LTEXT           "AT",IDC_R1_LBL,3,26,10,8,SS_NOTIFY
@@ -792,7 +792,7 @@ END
 
 IDD_Debugger_RegFPR DIALOGEX 0, 0, 125, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "F0",IDC_STATIC,3,15,14,8
     LTEXT           "F1",IDC_STATIC,3,26,14,8
@@ -879,7 +879,7 @@ END
 
 IDD_Debugger_RegPI DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 PI_DRAM_ADDR_REG",IDC_STATIC,3,29,94,8
     LTEXT           "04 PI_CART_ADDR_REG",IDC_STATIC,3,39,94,8
@@ -965,7 +965,7 @@ END
 
 IDD_Debugger_RegCOP0 DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "Index",-1,3,15,33,8
     LTEXT           "Random",-1,3,26,33,8
@@ -1021,7 +1021,7 @@ END
 
 IDD_Debugger_RegSP DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 SP_MEM_ADDR_REG",IDC_STATIC,3,29,94,8
     LTEXT           "04 SP_DRAM_ADDR_REG",IDC_STATIC,3,39,94,8
@@ -1048,7 +1048,7 @@ END
 
 IDD_Debugger_RegMI DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 MI_INIT_MODE/MODE_REG",-1,3,29,102,8
     LTEXT           "04 MI_VERSION/NOOP_REG",-1,3,39,92,8
@@ -1064,7 +1064,7 @@ END
 
 IDD_Debugger_RegAI DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 AI_DRAM_ADDR_REG",IDC_STATIC,3,29,94,8
     LTEXT           "04 AI_LEN_REG",IDC_STATIC,3,39,94,8
@@ -1084,7 +1084,7 @@ END
 
 IDD_Debugger_RegSI DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 SI_DRAM_ADDR_REG",-1,3,29,94,8
     LTEXT           "04 SI_PIF_ADDR_RD64B_REG",-1,3,39,98,8
@@ -1100,7 +1100,7 @@ END
 
 IDD_Debugger_RegRI DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 RI_MODE_REG",-1,3,29,94,8
     LTEXT           "04 RI_CONFIG_REG",-1,3,39,94,8
@@ -1124,7 +1124,7 @@ END
 
 IDD_Debugger_RegDPC DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 DPC_START_REG",-1,3,29,94,8
     LTEXT           "04 DPC_END_REG",-1,3,39,94,8
@@ -1148,7 +1148,7 @@ END
 
 IDD_Debugger_RegRDRAM DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 RDRAM_CONFIG/DEVICE_TYPE_REG",-1,3,29,128,8
     LTEXT           "04 RDRAM_DEVICE_ID_REG",-1,3,39,94,8
@@ -1176,7 +1176,7 @@ END
 
 IDD_Debugger_RegVI DIALOGEX 0, 0, 190, 210
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 VI_STATUS/CONTROL_REG",IDC_STATIC,3,29,103,8
     LTEXT           "04 VI_ORIGIN/DRAM_ADDR_REG",IDC_STATIC,3,39,117,8
@@ -1212,7 +1212,7 @@ END
 
 IDD_Debugger_RegDD DIALOGEX 0, 0, 190, 238
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
+FONT 9, "Lucida Console", 400, 0, 0x1
 BEGIN
     LTEXT           "00 ASIC_DATA",IDC_STATIC,3,29,103,8
     LTEXT           "04 ASIC_MISC_REG",IDC_STATIC,3,39,68,8

From b9025667f8f0b736f182772dc2faf915d078a909 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Thu, 18 Apr 2019 18:18:55 -0700
Subject: [PATCH 10/15] [Debugger UI] Save window size only when the window is
 resizable.

Prevents some dialogs from becoming clipped at high DPI
---
 .../Project64/UserInterface/Debugger/DebugDialog.h | 14 ++++++++++++--
 .../UserInterface/Debugger/Debugger-CPULogView.cpp |  2 +-
 .../UserInterface/Debugger/Debugger-Commands.cpp   |  2 +-
 .../UserInterface/Debugger/Debugger-DMALogView.cpp |  2 +-
 .../Debugger/Debugger-ExceptionBreakpoints.cpp     |  2 +-
 .../UserInterface/Debugger/Debugger-MemoryDump.cpp |  2 +-
 .../Debugger/Debugger-MemorySearch.cpp             |  2 +-
 .../UserInterface/Debugger/Debugger-Scripts.cpp    |  2 +-
 .../UserInterface/Debugger/Debugger-StackTrace.cpp |  2 +-
 .../UserInterface/Debugger/Debugger-StackView.cpp  |  2 +-
 .../UserInterface/Debugger/Debugger-Symbols.cpp    |  2 +-
 .../UserInterface/Debugger/Debugger-TLB.cpp        |  2 +-
 .../UserInterface/Debugger/Debugger-ViewMemory.cpp |  2 +-
 13 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/Source/Project64/UserInterface/Debugger/DebugDialog.h b/Source/Project64/UserInterface/Debugger/DebugDialog.h
index 170ea80a6..e0fdb898f 100644
--- a/Source/Project64/UserInterface/Debugger/DebugDialog.h
+++ b/Source/Project64/UserInterface/Debugger/DebugDialog.h
@@ -47,18 +47,28 @@ protected:
             pT->SetWindowPos(NULL, left, top, width, height, 0);
             pT->RedrawWindow();
         }
+        if (nParams == 2) {
+            pT->SetWindowPos(NULL, left, top, width, height, 1);
+            pT->RedrawWindow();
+        }
 	}
 
-	void SaveWindowPos()
+	void SaveWindowPos(bool bSaveSize)
 	{
         if (!m_bInitialized)
         {
             return;
         }
+
         T* pT = static_cast<T*>(this);
         CRect rect;
         pT->GetWindowRect(&rect);
-        UISettingsSaveString(m_UISettingID, stdstr_f("%d,%d,%d,%d", rect.left, rect.top, rect.Width(), rect.Height()).c_str());
+        if (!bSaveSize) {
+            UISettingsSaveString(m_UISettingID, stdstr_f("%d,%d", rect.left, rect.top).c_str());
+        }
+        else {
+            UISettingsSaveString(m_UISettingID, stdstr_f("%d,%d,%d,%d", rect.left, rect.top, rect.Width(), rect.Height()).c_str());
+        }
 	}
 
 public:
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
index 7ca6bd94f..ecddce9e0 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
@@ -243,7 +243,7 @@ void CDebugCPULogView::InterceptMouseWheel(WPARAM wParam, LPARAM /*lParam*/)
 void CDebugCPULogView::OnExitSizeMove(void)
 {
     RefreshList(false);
-    SaveWindowPos();
+    SaveWindowPos(true);
 }
 
 void CDebugCPULogView::ToggleLoggingEnabled(void)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
index e0a2e00f6..6bbde1fc8 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
@@ -150,7 +150,7 @@ LRESULT CDebugCommandsView::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARA
 
 void CDebugCommandsView::OnExitSizeMove(void)
 {
-	SaveWindowPos();
+	SaveWindowPos(true);
 }
 
 LRESULT CDebugCommandsView::OnDestroy(void)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.cpp b/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.cpp
index 7ad287e5c..1c8231277 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.cpp
@@ -206,7 +206,7 @@ LRESULT CDebugDMALogView::OnRefresh(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lPara
 
 void CDebugDMALogView::OnExitSizeMove(void)
 {
-    SaveWindowPos();
+    SaveWindowPos(true);
 }
 
 LRESULT CDebugDMALogView::OnDestroy(void)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-ExceptionBreakpoints.cpp b/Source/Project64/UserInterface/Debugger/Debugger-ExceptionBreakpoints.cpp
index 4ec0c39e6..e396294ac 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-ExceptionBreakpoints.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-ExceptionBreakpoints.cpp
@@ -96,5 +96,5 @@ LRESULT CDebugExcBreakpoints::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND, BO
 
 void CDebugExcBreakpoints::OnExitSizeMove(void)
 {
-    SaveWindowPos();
+    SaveWindowPos(0);
 }
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp b/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp
index 0263c62e4..4153bf430 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-MemoryDump.cpp
@@ -59,7 +59,7 @@ LRESULT	CDumpMemory::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPa
 
 void CDumpMemory::OnExitSizeMove(void)
 {
-    SaveWindowPos();
+    SaveWindowPos(0);
 }
 
 LRESULT	CDumpMemory::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
index 033da7bf5..0343e41cd 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
@@ -216,7 +216,7 @@ LRESULT CALLBACK CDebugMemorySearch::HookProc(int nCode, WPARAM wParam, LPARAM l
 void CDebugMemorySearch::OnExitSizeMove(void)
 {
     UpdateWatchList(true);
-    SaveWindowPos();
+    SaveWindowPos(true);
 }
 
 void CDebugMemorySearch::OnSizing(UINT /*fwSide*/, LPRECT /*pRect*/)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Scripts.cpp b/Source/Project64/UserInterface/Debugger/Debugger-Scripts.cpp
index cf2ee6189..815f8166a 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Scripts.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Scripts.cpp
@@ -64,7 +64,7 @@ LRESULT CDebugScripts::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*l
 
 void CDebugScripts::OnExitSizeMove(void)
 {
-    SaveWindowPos();
+    SaveWindowPos(true);
 }
 
 void CDebugScripts::ConsolePrint(const char* text)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.cpp b/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.cpp
index 51352e3e4..9d7108242 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.cpp
@@ -70,7 +70,7 @@ LRESULT CDebugStackTrace::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM
 
 void CDebugStackTrace::OnExitSizeMove(void)
 {
-    SaveWindowPos();
+    SaveWindowPos(true);
 }
 
 LRESULT CDebugStackTrace::OnActivate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-StackView.cpp b/Source/Project64/UserInterface/Debugger/Debugger-StackView.cpp
index a4cc480cd..8962b5858 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-StackView.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-StackView.cpp
@@ -51,7 +51,7 @@ LRESULT CDebugStackView::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /
 
 void CDebugStackView::OnExitSizeMove(void)
 {
-    SaveWindowPos();
+    SaveWindowPos(true);
 }
 
 LRESULT CDebugStackView::OnDestroy(void)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Symbols.cpp b/Source/Project64/UserInterface/Debugger/Debugger-Symbols.cpp
index 043718198..7cc5be1cf 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Symbols.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Symbols.cpp
@@ -53,7 +53,7 @@ LRESULT CDebugSymbols::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*l
 
 void CDebugSymbols::OnExitSizeMove(void)
 {
-    SaveWindowPos();
+    SaveWindowPos(true);
 }
 
 LRESULT CDebugSymbols::OnDestroy(void)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-TLB.cpp b/Source/Project64/UserInterface/Debugger/Debugger-TLB.cpp
index 63ec05317..1a089533c 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-TLB.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-TLB.cpp
@@ -85,7 +85,7 @@ LRESULT	CDebugTlb::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara
 
 void CDebugTlb::OnExitSizeMove(void)
 {
-	SaveWindowPos();
+	SaveWindowPos(0);
 }
 
 LRESULT CDebugTlb::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND, BOOL& /*bHandled*/)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp b/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp
index 186a6d8ae..4d390be55 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp
@@ -152,7 +152,7 @@ DWORD WINAPI CDebugMemoryView::AutoRefreshProc(void* _self)
 
 void CDebugMemoryView::OnExitSizeMove()
 {
-	SaveWindowPos();
+	SaveWindowPos(0);
 }
 
 void CDebugMemoryView::InterceptMouseWheel(WPARAM wParam, LPARAM /*lParam*/)

From 2f9529a2cf699563a6d55ee4c05393ff4e250b47 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Thu, 18 Apr 2019 22:34:27 -0700
Subject: [PATCH 11/15] [Cheats] Improved UI layout

---
 .../Project64/UserInterface/CheatClassUI.cpp  | 14 ++---
 Source/Project64/UserInterface/UIResources.rc | 58 +++++++++----------
 2 files changed, 34 insertions(+), 38 deletions(-)

diff --git a/Source/Project64/UserInterface/CheatClassUI.cpp b/Source/Project64/UserInterface/CheatClassUI.cpp
index b7196fba6..269146d48 100644
--- a/Source/Project64/UserInterface/CheatClassUI.cpp
+++ b/Source/Project64/UserInterface/CheatClassUI.cpp
@@ -188,7 +188,6 @@ int CALLBACK CCheatsUI::CheatAddProc(HWND hDlg, uint32_t uMsg, uint32_t wParam,
         CCheatsUI   * _this = (CCheatsUI *)lParam;
         SetProp(hDlg, "Class", _this);
 
-        SetWindowTextW(hDlg, wGS(CHEAT_ADDCHEAT_FRAME).c_str());
         SetWindowTextW(GetDlgItem(hDlg, IDC_NAME), wGS(CHEAT_ADDCHEAT_NAME).c_str());
         SetWindowTextW(GetDlgItem(hDlg, IDC_CODE), wGS(CHEAT_ADDCHEAT_CODE).c_str());
         SetWindowTextW(GetDlgItem(hDlg, IDC_LABEL_OPTIONS), wGS(CHEAT_ADDCHEAT_OPT).c_str());
@@ -452,18 +451,17 @@ int CALLBACK CCheatsUI::CheatListProc(HWND hDlg, uint32_t uMsg, uint32_t wParam,
         RECT rcList;
         RECT rcButton;
 
-        SetWindowTextW(GetDlgItem(hDlg, IDC_CHEATSFRAME), wGS(CHEAT_LIST_FRAME).c_str());
         SetWindowTextW(GetDlgItem(hDlg, IDC_NOTESFRAME), wGS(CHEAT_NOTES_FRAME).c_str());
         SetWindowTextW(GetDlgItem(hDlg, IDC_UNMARK), wGS(CHEAT_MARK_NONE).c_str());
 
-        GetWindowRect(GetDlgItem(hDlg, IDC_CHEATSFRAME), &rcList);
+        GetWindowRect(hDlg, &rcList);
         GetWindowRect(GetDlgItem(hDlg, IDC_UNMARK), &rcButton);
 
         _this->m_hCheatTree = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, "",
             WS_CHILD | WS_VISIBLE | WS_VSCROLL | TVS_HASLINES |
             TVS_HASBUTTONS | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | WS_TABSTOP |
-            TVS_FULLROWSELECT, 8, 15, rcList.right - rcList.left - 16,
-            rcButton.top - rcList.top - 22, hDlg, (HMENU)IDC_MYTREE, GetModuleHandle(NULL), NULL);
+            TVS_FULLROWSELECT, 6, 4, rcList.right - rcList.left - 13,
+            rcButton.top - rcList.top - 8, hDlg, (HMENU)IDC_MYTREE, GetModuleHandle(NULL), NULL);
         Style = GetWindowLong(_this->m_hCheatTree, GWL_STYLE);
         SetWindowLong(_this->m_hCheatTree, GWL_STYLE, TVS_CHECKBOXES | TVS_SHOWSELALWAYS | Style);
 
@@ -944,7 +942,7 @@ int CALLBACK CCheatsUI::ManageCheatsProc(HWND hDlg, uint32_t uMsg, uint32_t wPar
         if (g_Settings->LoadDword(UserInterface_BasicMode))
         {
             RECT * rcList = (RECT *)_this->m_rcList;
-            GetWindowRect(GetDlgItem(_this->m_hSelectCheat, IDC_CHEATSFRAME), rcList);
+            GetWindowRect(_this->m_hSelectCheat, rcList);
             _this->m_MinSizeDlg = rcList->right - rcList->left + 16;
             _this->m_MaxSizeDlg = _this->m_MinSizeDlg;
 
@@ -961,8 +959,8 @@ int CALLBACK CCheatsUI::ManageCheatsProc(HWND hDlg, uint32_t uMsg, uint32_t wPar
             ShowWindow(_this->m_AddCheat, SW_HIDE);
 
             RECT * rcAdd = (RECT *)_this->m_rcAdd, *rcList = (RECT *)_this->m_rcList;
-            GetWindowRect(GetDlgItem(_this->m_hSelectCheat, IDC_CHEATSFRAME), rcList);
-            GetWindowRect(GetDlgItem(_this->m_AddCheat, IDC_ADDCHEATSFRAME), rcAdd);
+            GetWindowRect(_this->m_hSelectCheat, rcList);
+            GetWindowRect(_this->m_AddCheat, rcAdd);
             _this->m_MinSizeDlg = rcList->right - rcList->left + 32;
             _this->m_MaxSizeDlg = rcAdd->right - rcList->left + 32;
 
diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc
index 7f83932b1..98a1ee64e 100644
--- a/Source/Project64/UserInterface/UIResources.rc
+++ b/Source/Project64/UserInterface/UIResources.rc
@@ -176,27 +176,27 @@ BEGIN
     DEFPUSHBUTTON   "&Close",IDC_CLOSE_BUTTON,169,186,64,14
     GROUPBOX        "",IDC_STATIC,6,5,228,177
     LTEXT           "ROM Name:",IDC_ROM_NAME,11,16,64,10
-    EDITTEXT        IDC_INFO_ROMNAME,77,15,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_ROMNAME,77,15,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "File Name:",IDC_FILE_NAME,11,31,64,10
-    EDITTEXT        IDC_INFO_FILENAME,77,30,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_FILENAME,77,30,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "Rom Size:",IDC_ROM_SIZE,11,74,64,10
-    EDITTEXT        IDC_INFO_ROMSIZE,77,74,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_ROMSIZE,77,74,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "Cartridge ID:",IDC_CART_ID,11,90,64,10
-    EDITTEXT        IDC_INFO_CARTID,77,89,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CARTID,77,89,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "Manufacturer:",IDC_MANUFACTURER,11,106,64,10
-    EDITTEXT        IDC_INFO_MANUFACTURER,77,104,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_MANUFACTURER,77,104,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "Country:",IDC_COUNTRY,11,122,64,10
-    EDITTEXT        IDC_INFO_COUNTRY,77,119,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_COUNTRY,77,119,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "CRC1:",IDC_CRC1,11,135,64,10
-    EDITTEXT        IDC_INFO_CRC1,77,134,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CRC1,77,134,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "CRC2:",IDC_CRC2,11,151,64,10
-    EDITTEXT        IDC_INFO_CRC2,77,149,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CRC2,77,149,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "CIC Chip:",IDC_CIC_CHIP,11,167,64,10
-    EDITTEXT        IDC_INFO_CIC,77,164,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_CIC,77,164,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "Location:",IDC_LOCATION,11,45,64,10
-    EDITTEXT        IDC_INFO_LOCATION,77,45,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_LOCATION,77,45,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
     LTEXT           "MD5:",IDC_ROM_MD5,11,60,64,10
-    EDITTEXT        IDC_INFO_MD5,77,59,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_EX_STATICEDGE
+    EDITTEXT        IDC_INFO_MD5,77,59,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
 END
 
 IDD_Settings_GameGeneral DIALOGEX 0, 0, 218, 169
@@ -264,7 +264,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER |
 CAPTION "Cheats"
 FONT 8, "MS Shell Dlg", 0, 0, 0x1
 BEGIN
-    PUSHBUTTON      "Button1",IDC_STATE,195,5,20,20,BS_ICON | WS_EX_TRANSPARENT
+    PUSHBUTTON      "Button1",IDC_STATE,195,5,20,20,BS_LEFTTEXT | BS_ICON
 END
 
 IDD_Cheats_List DIALOGEX 0, 0, 201, 221
@@ -272,9 +272,8 @@ STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
 EXSTYLE WS_EX_CONTROLPARENT
 FONT 8, "MS Shell Dlg", 0, 0, 0x1
 BEGIN
-    GROUPBOX        "Cheats",IDC_CHEATSFRAME,0,0,199,160
-    PUSHBUTTON      "Unmark All",IDC_UNMARK,145,145,49,11
-    GROUPBOX        " Notes: ",IDC_NOTESFRAME,0,165,199,51
+    PUSHBUTTON      "Unmark All",IDC_UNMARK,148,152,49,11
+    GROUPBOX        " Notes: ",IDC_NOTESFRAME,3,165,194,48
     EDITTEXT        IDC_NOTES,5,175,188,36,ES_MULTILINE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL
 END
 
@@ -283,19 +282,18 @@ STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD | WS_VISIBLE
 EXSTYLE WS_EX_CONTROLPARENT
 FONT 8, "MS Shell Dlg", 0, 0, 0x1
 BEGIN
-    GROUPBOX        "",IDC_ADDCHEATSFRAME,2,0,188,145
-    LTEXT           "Name:",IDC_NAME,7,13,25,10
-    EDITTEXT        IDC_CODE_NAME,37,12,146,12,ES_AUTOHSCROLL
-    LTEXT           "Code:",IDC_CODE,7,30,25,10
-    LTEXT           "<address> <value>",IDC_CODE_DES,7,40,60,10
-    LTEXT           "Options:",IDC_LABEL_OPTIONS,82,30,30,10,WS_DISABLED
-    LTEXT           "<value> <label>",IDC_LABEL_OPTIONS_FORMAT,82,40,80,10,WS_DISABLED
-    EDITTEXT        IDC_CHEAT_CODES,7,50,70,90,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL
-    EDITTEXT        IDC_CHEAT_OPTIONS,82,50,101,90,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_DISABLED | WS_VSCROLL | WS_HSCROLL
-    GROUPBOX        "Cheat Notes",IDC_CHEATNOTES,2,150,188,45
-    EDITTEXT        IDC_NOTES,7,160,176,30,ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL
-    PUSHBUTTON      "New Cheat",IDC_NEWCHEAT,21,198,70,15,0
-    PUSHBUTTON      "Add Cheat",IDC_ADD,98,198,70,15,WS_DISABLED
+    LTEXT           "Name:",IDC_NAME,4,6,25,10
+    EDITTEXT        IDC_CODE_NAME,38,4,146,12,ES_AUTOHSCROLL
+    LTEXT           "Code:",IDC_CODE,4,24,31,10
+    LTEXT           "<address> <value>",IDC_CODE_DES,4,34,74,10
+    LTEXT           "Options:",IDC_LABEL_OPTIONS,86,24,38,10,WS_DISABLED
+    LTEXT           "<value> <label>",IDC_LABEL_OPTIONS_FORMAT,86,34,80,10,WS_DISABLED
+    EDITTEXT        IDC_CHEAT_CODES,4,44,75,96,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL
+    EDITTEXT        IDC_CHEAT_OPTIONS,86,44,98,96,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_DISABLED | WS_VSCROLL | WS_HSCROLL
+    LTEXT           "Cheat Notes",IDC_CHEATNOTES,3,149,60,10
+    EDITTEXT        IDC_NOTES,4,160,180,32,ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL
+    PUSHBUTTON      "New Cheat",IDC_NEWCHEAT,16,198,75,15
+    PUSHBUTTON      "Add Cheat",IDC_ADD,98,198,75,15,WS_DISABLED
 END
 
 IDD_Cheats_CodeEx DIALOGEX 0, 0, 186, 153
@@ -1457,9 +1455,9 @@ BEGIN
 
     IDD_Cheats_Add, DIALOG
     BEGIN
-        LEFTMARGIN, 7
+        LEFTMARGIN, 4
         RIGHTMARGIN, 184
-        TOPMARGIN, 7
+        TOPMARGIN, 4
     END
 
     IDD_Cheats_CodeEx, DIALOG

From 05f98f8c09c9de2a6192fbfb0af8e976f5aa6618 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Fri, 19 Apr 2019 12:13:37 -0700
Subject: [PATCH 12/15] Make Status Bar, About Dialog and Language Selector DPI
 Aware

---
 .../Multilanguage/LanguageSelector.cpp        |   8 +++++--
 .../Bitmaps/AboutScreenLogoHDPI.bmp           | Bin 0 -> 504056 bytes
 Source/Project64/UserInterface/MainWindow.cpp |  22 ++++++++++++------
 Source/Project64/UserInterface/MainWindow.h   |   1 +
 Source/Project64/UserInterface/UIResources.rc |   2 ++
 Source/Project64/UserInterface/resource.h     |   1 +
 6 files changed, 25 insertions(+), 9 deletions(-)
 create mode 100644 Source/Project64/UserInterface/Bitmaps/AboutScreenLogoHDPI.bmp

diff --git a/Source/Project64/Multilanguage/LanguageSelector.cpp b/Source/Project64/Multilanguage/LanguageSelector.cpp
index af1d36d98..d0cb97b2d 100644
--- a/Source/Project64/Multilanguage/LanguageSelector.cpp
+++ b/Source/Project64/Multilanguage/LanguageSelector.cpp
@@ -52,8 +52,11 @@ LRESULT CALLBACK CLanguageSelector::LangSelectProc(HWND hDlg, UINT uMsg, WPARAM
             SendMessage(GetDlgItem(hDlg, IDC_LANG_SEL), CB_SETCURSEL, 0, 0);
         }
 
+        //Get Windows DPI Scale
+        float DPIScale = CClientDC(hDlg).GetDeviceCaps(LOGPIXELSX) / 96.0f;
+
         // Use the size of the image
-        hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_ABOUT_LOGO));
+        hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), DPIScale <= 1.0f ? MAKEINTRESOURCE(IDB_ABOUT_LOGO) : MAKEINTRESOURCE(IDB_ABOUT_LOGO_HDPI));
         BITMAP bmTL;
         GetObject(hbmpBackgroundTop, sizeof(BITMAP), &bmTL);
 
@@ -99,7 +102,8 @@ LRESULT CALLBACK CLanguageSelector::LangSelectProc(HWND hDlg, UINT uMsg, WPARAM
 
             HDC     memdc = CreateCompatibleDC(ps.hdc);
             HGDIOBJ save = SelectObject(memdc, hbmpBackgroundTop);
-            BitBlt(ps.hdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, memdc, 0, 0, SRCCOPY);
+            SetStretchBltMode(ps.hdc, HALFTONE);
+            StretchBlt(ps.hdc, 0, 0, rcClient.right, (int)(bmTL_top.bmHeight * rcClient.right / bmTL_top.bmWidth), memdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, SRCCOPY);
             SelectObject(memdc, save);
             DeleteDC(memdc);
 
diff --git a/Source/Project64/UserInterface/Bitmaps/AboutScreenLogoHDPI.bmp b/Source/Project64/UserInterface/Bitmaps/AboutScreenLogoHDPI.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..c0b0dd331b2c6c8144c23ef9b6973c48aabca82c
GIT binary patch
literal 504056
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

literal 0
HcmV?d00001

diff --git a/Source/Project64/UserInterface/MainWindow.cpp b/Source/Project64/UserInterface/MainWindow.cpp
index adc3d4d22..2e795455f 100644
--- a/Source/Project64/UserInterface/MainWindow.cpp
+++ b/Source/Project64/UserInterface/MainWindow.cpp
@@ -526,7 +526,7 @@ void CMainGui::Resize(DWORD /*fwSizeType*/, WORD nWidth, WORD nHeight)
     GetClientRect((HWND)m_hStatusWnd, &swrect);
 
     int Parts[2];
-    Parts[0] = (nWidth - (int)(clrect.right * 0.25));
+    Parts[0] = (int) (nWidth - 140 * DPIScale(m_hStatusWnd));
     Parts[1] = nWidth;
 
     SendMessage((HWND)m_hStatusWnd, SB_SETPARTS, 2, (LPARAM)&Parts[0]);
@@ -573,6 +573,10 @@ int CMainGui::Width(void)
     return rect.right - rect.left;
 }
 
+float CMainGui::DPIScale(HWND hWnd) {
+    return CClientDC(hWnd).GetDeviceCaps(LOGPIXELSX) / 96.0f;
+}
+
 void CMainGui::SetPos(int X, int Y)
 {
     SetWindowPos(m_hMainWindow, NULL, X, Y, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
@@ -1222,6 +1226,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
 
 DWORD CALLBACK AboutBoxProc(HWND hWnd, DWORD uMsg, DWORD wParam, DWORD /*lParam*/)
 {
+    CMainGui * Gui = NULL;
     static HBITMAP hbmpBackgroundTop = NULL;
     static HFONT   hPageHeadingFont = NULL;
     static HFONT   hTextFont = NULL;
@@ -1233,16 +1238,18 @@ DWORD CALLBACK AboutBoxProc(HWND hWnd, DWORD uMsg, DWORD wParam, DWORD /*lParam*
             //Title
             SetWindowTextW(hWnd, wGS(PLUG_ABOUT).c_str());
 
-            // Use the size of the image
-            hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_ABOUT_LOGO));
+            // Get Windows DPI Scale
+            float DPIScale = Gui->DPIScale(hWnd);
 
+            // Use the size of the image
+            hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), DPIScale <= 1.0f ? MAKEINTRESOURCE(IDB_ABOUT_LOGO) : MAKEINTRESOURCE(IDB_ABOUT_LOGO_HDPI));
             BITMAP bmTL;
             GetObject(hbmpBackgroundTop, sizeof(BITMAP), &bmTL);
 
-            hTextFont = ::CreateFont(18, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
-            hAuthorFont = ::CreateFont(18, 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
+            hTextFont = ::CreateFont((int)(18 * DPIScale), 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
+            hAuthorFont = ::CreateFont((int)(18 * DPIScale), 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
 
-            hPageHeadingFont = ::CreateFont(24, 0, 0, 0, FW_BOLD, 0, FALSE, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Bold");
+            hPageHeadingFont = ::CreateFont((int)(24 * DPIScale), 0, 0, 0, FW_BOLD, 0, FALSE, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Bold");
 
             SendDlgItemMessage(hWnd, IDC_VERSION, WM_SETFONT, (WPARAM)hTextFont, TRUE);
             SendDlgItemMessage(hWnd, IDC_TEAM, WM_SETFONT, (WPARAM)hPageHeadingFont, TRUE);
@@ -1302,7 +1309,8 @@ DWORD CALLBACK AboutBoxProc(HWND hWnd, DWORD uMsg, DWORD wParam, DWORD /*lParam*
 
                 HDC     memdc = CreateCompatibleDC(ps.hdc);
                 HGDIOBJ save = SelectObject(memdc, hbmpBackgroundTop);
-                BitBlt(ps.hdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, memdc, 0, 0, SRCCOPY);
+                SetStretchBltMode(ps.hdc, HALFTONE);
+                StretchBlt(ps.hdc, 0, 0, rcClient.right, (int)(bmTL_top.bmHeight * rcClient.right/bmTL_top.bmWidth), memdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, SRCCOPY);
                 SelectObject(memdc, save);
                 DeleteDC(memdc);
 
diff --git a/Source/Project64/UserInterface/MainWindow.h b/Source/Project64/UserInterface/MainWindow.h
index 34b483819..32db17cbd 100644
--- a/Source/Project64/UserInterface/MainWindow.h
+++ b/Source/Project64/UserInterface/MainWindow.h
@@ -60,6 +60,7 @@ public:
     //Get Information about the window
     int Height(void); //Get the Height of the window
     int Width(void); //Get the Width of the window
+    float DPIScale(HWND hWnd);
 
     //Manipulate the state of the window
     void SetPos(int X, int Y);    //Move the window to this screen location
diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc
index 98a1ee64e..5b126ace5 100644
--- a/Source/Project64/UserInterface/UIResources.rc
+++ b/Source/Project64/UserInterface/UIResources.rc
@@ -1847,6 +1847,8 @@ IDB_LISTITEMS           BITMAP                  "Bitmaps\\ListItems.bmp"
 
 IDB_ABOUT_LOGO          BITMAP                  "Bitmaps\\AboutScreenLogo.bmp"
 
+IDB_ABOUT_LOGO_HDPI     BITMAP                  "Bitmaps\\AboutScreenLogoHDPI.bmp"
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
diff --git a/Source/Project64/UserInterface/resource.h b/Source/Project64/UserInterface/resource.h
index 23f39913d..a7e4a9163 100644
--- a/Source/Project64/UserInterface/resource.h
+++ b/Source/Project64/UserInterface/resource.h
@@ -35,6 +35,7 @@
 #define IDD_About_UserInfo              141
 #define IDD_About_Ini                   143
 #define IDB_ABOUT_LOGO                  143
+#define IDB_ABOUT_LOGO_HDPI             144
 #define IDD_Settings_General            144
 #define IDD_Settings_Accelerator        145
 #define IDD_Settings_Config             149

From de29d0c15776aefa84fc766e83485e6171dbb0ac Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Fri, 19 Apr 2019 14:41:13 -0700
Subject: [PATCH 13/15] [Icon] Add 256x256 size It should be XP-compatible. XP
 is just going to take the 48x48 and ignore this one.

---
 Source/Project64/UserInterface/Icons/pj64.ico | Bin 26582 -> 91558 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/Source/Project64/UserInterface/Icons/pj64.ico b/Source/Project64/UserInterface/Icons/pj64.ico
index 3fcaf4b2cd043ba43e44efab2b8d610bef9cef53..acd3a708be12811718d6b64adaadb9028720d67e 100644
GIT binary patch
delta 65615
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
Y?adJ#fO*uFb(AU;Y{I@WKdzJdAJNWW_W%F@

delta 144
zcmZ2>n)TXw#(D+@Mg}$p0Ra##!H~hsz>vnkz@VT2;jiFfU^oX9GcbViWf&OBfNCM?
z6&NyD7#QSqVd@naRsiMN3}Nbld{qVpJtqbR4WOAoDF&diV0(ZRg9Ff9hK>F6b+*6L
IV%%W`02P4}RR910


From b1e950be203aaaf5107c2c171d976ceec7b33578 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Fri, 19 Apr 2019 16:48:53 -0700
Subject: [PATCH 14/15] Move CListViewCtrlVarDPI class code into ATL

---
 Source/3rdParty/WTL/atlctrls.h                |  6 ++++--
 .../UserInterface/Debugger/DebugDialog.h      | 20 -------------------
 .../Debugger/Debugger-CPULogView.cpp          |  2 +-
 .../Debugger/Debugger-CPULogView.h            |  4 ++--
 .../Debugger/Debugger-Commands.cpp            |  2 +-
 .../Debugger/Debugger-Commands.h              |  2 +-
 .../Debugger/Debugger-DMALogView.h            |  2 +-
 .../Debugger/Debugger-MemorySearch.cpp        |  4 ++--
 .../Debugger/Debugger-MemorySearch.h          |  6 +++---
 .../UserInterface/Debugger/Debugger-Scripts.h |  2 +-
 .../Debugger/Debugger-StackTrace.h            |  2 +-
 .../Debugger/Debugger-StackView.h             |  2 +-
 .../UserInterface/Debugger/Debugger-Symbols.h |  2 +-
 13 files changed, 19 insertions(+), 37 deletions(-)

diff --git a/Source/3rdParty/WTL/atlctrls.h b/Source/3rdParty/WTL/atlctrls.h
index cfa5e7f18..dca3df58c 100644
--- a/Source/3rdParty/WTL/atlctrls.h
+++ b/Source/3rdParty/WTL/atlctrls.h
@@ -656,8 +656,9 @@ public:
 	// Settable only attributes
 	void SetColumnWidth(int cxWidth)
 	{
+        float DPIScale = CClientDC(m_hWnd).GetDeviceCaps(LOGPIXELSX) / 96.0f;
 		ATLASSERT(::IsWindow(m_hWnd));
-		::SendMessage(m_hWnd, LB_SETCOLUMNWIDTH, cxWidth, 0L);
+		::SendMessage(m_hWnd, LB_SETCOLUMNWIDTH, int (cxWidth * DPIScale), 0L);
 	}
 
 	BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
@@ -3068,8 +3069,9 @@ public:
 
 	BOOL SetColumnWidth(int nCol, int cx)
 	{
+        float DPIScale = CClientDC(m_hWnd).GetDeviceCaps(LOGPIXELSX) / 96.0f;
 		ATLASSERT(::IsWindow(m_hWnd));
-		return (BOOL)::SendMessage(m_hWnd, LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(cx, 0));
+		return (BOOL)::SendMessage(m_hWnd, LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(int(cx * DPIScale), 0));
 	}
 
 	BOOL GetViewRect(LPRECT lpRect) const
diff --git a/Source/Project64/UserInterface/Debugger/DebugDialog.h b/Source/Project64/UserInterface/Debugger/DebugDialog.h
index e0fdb898f..69067e33d 100644
--- a/Source/Project64/UserInterface/Debugger/DebugDialog.h
+++ b/Source/Project64/UserInterface/Debugger/DebugDialog.h
@@ -132,24 +132,4 @@ private:
     bool        m_SaveWnd;
     LONG        m_SaveWndTop;
     LONG        m_SaveWndLeft;
-};
-
-class CListViewCtrlVarDPI : public CListViewCtrl
-{
-private:
-    float m_ScaleX;
-
-public:
-    CListViewCtrlVarDPI() :
-        CListViewCtrl()
-    {
-        HDC screen = ::GetDC(0);
-        m_ScaleX = GetDeviceCaps(screen, LOGPIXELSX) / 96.0f;
-        ::ReleaseDC(0, screen);
-    }
-
-    BOOL SetColumnWidth(int nColumn, int nWidth)
-    {
-        return CListViewCtrl::SetColumnWidth(nColumn, int (nWidth * m_ScaleX));
-    }
 };
\ No newline at end of file
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
index ecddce9e0..87a5c4e19 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.cpp
@@ -412,7 +412,7 @@ void CDebugCPULogView::Export(void)
 
 // util
 
-int CDebugCPULogView::GetNumVisibleRows(CListViewCtrlVarDPI& list)
+int CDebugCPULogView::GetNumVisibleRows(CListViewCtrl& list)
 {
     CHeaderCtrl header = list.GetHeader();
     CRect listRect, headRect;
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h
index e1a0767aa..f54d449ae 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-CPULogView.h
@@ -22,7 +22,7 @@ private:
     int           m_RowHeight;
     int           m_LogStartIndex;
 
-    CListViewCtrlVarDPI m_CPUListView;
+    CListViewCtrl m_CPUListView;
     CEdit         m_StateInfoEdit;
     CEditNumber32 m_BuffSizeEdit;
     CButton       m_EnabledChk;
@@ -50,7 +50,7 @@ private:
     void ShowRegStates(size_t stateIndex);
     void Export(void);
 
-    int GetNumVisibleRows(CListViewCtrlVarDPI& list);
+    int GetNumVisibleRows(CListViewCtrl& list);
     bool MouseHovering(WORD ctrlId, int xMargin = 0, int yMargin = 0);
 
     BEGIN_MSG_MAP_EX(CDebugCPULogView)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
index 6bbde1fc8..f1795b108 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Commands.cpp
@@ -21,7 +21,7 @@
 
 void CCommandList::Attach(HWND hWndNew)
 {
-    CListViewCtrlVarDPI::Attach(hWndNew);
+    CListViewCtrl::Attach(hWndNew);
 
     ModifyStyle(LVS_OWNERDRAWFIXED, 0, 0);
     SetExtendedListViewStyle(LVS_EX_FULLROWSELECT | LVS_EX_DOUBLEBUFFER | LVS_EX_LABELTIP);
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Commands.h b/Source/Project64/UserInterface/Debugger/Debugger-Commands.h
index ed2550ce8..0841a5e35 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Commands.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Commands.h
@@ -18,7 +18,7 @@
 #include <Project64/UserInterface/WTLControls/TooltipDialog.h>
 
 class CCommandList :
-    public CWindowImpl<CCommandList, CListViewCtrlVarDPI>
+    public CWindowImpl<CCommandList, CListViewCtrl>
 {
 public:
     enum
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h b/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h
index 07f3e56ad..d3a07a817 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-DMALogView.h
@@ -44,7 +44,7 @@ private:
     // Return true if entry meets requirements
     bool FilterEntry(int dmaLogIndex);
 
-    CListViewCtrlVarDPI m_DMAList;
+    CListViewCtrl m_DMAList;
     CEdit         m_DMARamEdit;
     CEdit         m_DMARomEdit;
     CStatic       m_BlockInfo;
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
index 0343e41cd..a4c3a5e9e 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
+++ b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.cpp
@@ -1487,7 +1487,7 @@ void CDebugMemorySearch::SeparatorMoveCtrl(WORD ctrlId, int yChange, bool bResiz
     ::InvalidateRect(hControl, NULL, true);
 }
 
-int CDebugMemorySearch::GetNumVisibleRows(CListViewCtrlVarDPI& list)
+int CDebugMemorySearch::GetNumVisibleRows(CListViewCtrl& list)
 {
     CHeaderCtrl header = list.GetHeader();
     CRect listRect, headRect;
@@ -2139,7 +2139,7 @@ void CDebugMemorySearch::LoadWatchList(void)
     
 }
 
-void CDebugMemorySearch::FixListHeader(CListViewCtrlVarDPI& listCtrl)
+void CDebugMemorySearch::FixListHeader(CListViewCtrl& listCtrl)
 {
     CRect listRect, headRect;
     CHeaderCtrl listHead = listCtrl.GetHeader();
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h
index 61b38efe9..035f32e64 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-MemorySearch.h
@@ -241,10 +241,10 @@ private:
     CPath GetWatchListPath(void);
 
     /* generic ui util */
-    void FixListHeader(CListViewCtrlVarDPI& listCtrl);
+    void FixListHeader(CListViewCtrl& listCtrl);
     void SetComboBoxSelByData(CComboBox& cb, DWORD_PTR data);
     bool MouseHovering(WORD ctrlId, int hMargin = 0, int vMargin = 0);
-    int  GetNumVisibleRows(CListViewCtrlVarDPI& list);
+    int  GetNumVisibleRows(CListViewCtrl& list);
     /*******************/
 
     bool m_bJalSelected;
@@ -261,7 +261,7 @@ private:
     CEditMixed    m_SearchValue;
     CEditNumber32 m_AddrStart, m_AddrEnd;
     CComboBox     m_SearchTypeOptions, m_ValueTypeOptions;
-    CListViewCtrlVarDPI m_ResultsListCtrl, m_WatchListCtrl;
+    CListViewCtrl m_ResultsListCtrl, m_WatchListCtrl;
     CScrollBar    m_ResultsScrollbar, m_WatchListScrollbar;
     CButton       m_PhysicalCheckbox, m_HexCheckbox;
     CButton       m_UnsignedCheckbox, m_IgnoreCaseCheckbox, m_UnkEncodingCheckbox;
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h b/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h
index 4377a65bd..c65d343b5 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Scripts.h
@@ -13,7 +13,7 @@
 #include "DebuggerUI.h"
 #include "ScriptSystem.h"
 
-class CScriptList : public CListViewCtrlVarDPI
+class CScriptList : public CListViewCtrl
 {
 public:
     BEGIN_MSG_MAP_EX(CScriptList)
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h b/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h
index dea72b697..a7f3f5681 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-StackTrace.h
@@ -44,7 +44,7 @@ private:
     HANDLE m_AutoRefreshThread;
     static DWORD WINAPI AutoRefreshProc(void* _this);
 
-    CListViewCtrlVarDPI m_List;
+    CListViewCtrl m_List;
 
     LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
     LRESULT OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-StackView.h b/Source/Project64/UserInterface/Debugger/Debugger-StackView.h
index 479fe634a..f1b1fe3f9 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-StackView.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-StackView.h
@@ -24,7 +24,7 @@ public:
     void Refresh();
 
 private:
-    CListViewCtrlVarDPI m_StackList;
+    CListViewCtrl m_StackList;
     CStatic m_SPStatic;
 
     LRESULT	OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
diff --git a/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h b/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h
index bfbc90176..06ccb71e5 100644
--- a/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h
+++ b/Source/Project64/UserInterface/Debugger/Debugger-Symbols.h
@@ -20,7 +20,7 @@ class CDebugSymbols :
     public CDialogResize<CDebugSymbols>
 {
 private:
-    CListViewCtrlVarDPI m_SymbolsListView;
+    CListViewCtrl m_SymbolsListView;
     CAddSymbolDlg m_AddSymbolDlg;
 
     HANDLE m_AutoRefreshThread;

From c7a6e51d6221629b6dfefdc31cbd17c539fd88f8 Mon Sep 17 00:00:00 2001
From: oddMLan <oddMLan2@gmail.com>
Date: Fri, 19 Apr 2019 16:49:25 -0700
Subject: [PATCH 15/15] Make Rom Browser DPI Aware

---
 Source/Project64/Settings/UISettings.cpp           | 8 ++++++--
 Source/Project64/Settings/UISettings.h             | 1 +
 Source/Project64/UserInterface/MainWindow.cpp      | 2 +-
 Source/Project64/UserInterface/RomBrowserClass.cpp | 2 +-
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/Source/Project64/Settings/UISettings.cpp b/Source/Project64/Settings/UISettings.cpp
index 68c6e7eb4..c7ffeb106 100644
--- a/Source/Project64/Settings/UISettings.cpp
+++ b/Source/Project64/Settings/UISettings.cpp
@@ -48,8 +48,8 @@ void RegisterUISettings (void)
     g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_ColoumnsChanged), new CSettingTypeTempBool(false));
     g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Top), new CSettingTypeApplication("Rom Browser", "Top", Default_None));
     g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Left), new CSettingTypeApplication("Rom Browser", "Left", Default_None));
-    g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Width), new CSettingTypeApplication("Rom Browser", "Width", (uint32_t)640));
-    g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Height), new CSettingTypeApplication("Rom Browser", "Height", (uint32_t)480));
+    g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Width), new CSettingTypeApplication("Rom Browser", "Width", (uint32_t)(640 * DPIScale())));
+    g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Height), new CSettingTypeApplication("Rom Browser", "Height", (uint32_t)(480 * DPIScale())));
     g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_PosIndex), new CSettingTypeApplicationIndex("Rom Browser\\Field Pos", "Field", Default_None));
     g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_WidthIndex), new CSettingTypeApplicationIndex("Rom Browser\\Field Width", "Field", Default_None));
     g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_SortFieldIndex), new CSettingTypeApplicationIndex("Rom Browser", "Sort Field", Default_None));
@@ -80,6 +80,10 @@ void RegisterUISettings (void)
     g_Settings->AddHandler((SettingID)(FirstUISettings + DebuggerUI_ExceptionBPPos), new CSettingTypeApplication("Debugger UI", "Exception BP Pos", Default_None));
 }
 
+float DPIScale(void) {
+    return CClientDC(0).GetDeviceCaps(LOGPIXELSX) / 96.0f;
+}
+
 void UISettingsSaveBool(UISettingID Type, bool Value)
 {
     g_Settings->SaveBool((SettingID)(FirstUISettings + Type), Value);
diff --git a/Source/Project64/Settings/UISettings.h b/Source/Project64/Settings/UISettings.h
index 304757206..45d3c4d97 100644
--- a/Source/Project64/Settings/UISettings.h
+++ b/Source/Project64/Settings/UISettings.h
@@ -77,6 +77,7 @@ enum UISettingID
     DebuggerUI_ExceptionBPPos
 };
 
+float DPIScale(void);
 void RegisterUISettings (void);
 void UISettingsSaveBool(UISettingID Type, bool Value);
 void UISettingsSaveBoolIndex(UISettingID Type, int32_t index, bool Value);
diff --git a/Source/Project64/UserInterface/MainWindow.cpp b/Source/Project64/UserInterface/MainWindow.cpp
index 2e795455f..99ca83989 100644
--- a/Source/Project64/UserInterface/MainWindow.cpp
+++ b/Source/Project64/UserInterface/MainWindow.cpp
@@ -682,7 +682,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
 
             _this->SetPos(X, Y);
 
-            _this->ChangeWinSize(640, 480);
+            _this->ChangeWinSize(int (640 * _this->DPIScale(hWnd)), int (480 * _this->DPIScale(hWnd)));
         }
         break;
     case WM_SYSCOMMAND:
diff --git a/Source/Project64/UserInterface/RomBrowserClass.cpp b/Source/Project64/UserInterface/RomBrowserClass.cpp
index 0bfd6713e..d5da717c5 100644
--- a/Source/Project64/UserInterface/RomBrowserClass.cpp
+++ b/Source/Project64/UserInterface/RomBrowserClass.cpp
@@ -40,7 +40,7 @@ CRomBrowser::~CRomBrowser(void)
 
 void CRomBrowser::AddField(ROMBROWSER_FIELDS_LIST & Fields, LPCSTR Name, int32_t Pos, int32_t ID, int32_t Width, LanguageStringID LangID, bool UseDefault)
 {
-    Fields.push_back(ROMBROWSER_FIELDS(Name, Pos, ID, Width, LangID, UseDefault));
+    Fields.push_back(ROMBROWSER_FIELDS(Name, Pos, ID, Width * DPIScale(), LangID, UseDefault));
 }
 
 void CRomBrowser::GetFieldInfo(ROMBROWSER_FIELDS_LIST & Fields, bool UseDefault /* = false  */)