Port: Add override keyword.
Port: Add override keyword.

--- a/src/in_2sf/XSFConfig_2SF.cpp
+++ b/src/in_2sf/XSFConfig_2SF.cpp
@@ -34,15 +34,15 @@
 	std::bitset<16> mutes;
 
 	XSFConfig_2SF();
-	void LoadSpecificConfig();
-	void SaveSpecificConfig();
-	void GenerateSpecificDialogs();
-	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
-	void ResetSpecificConfigDefaults(HWND hwndDlg);
-	void SaveSpecificConfigDialog(HWND hwndDlg);
-	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad);
+	void LoadSpecificConfig() override;
+	void SaveSpecificConfig() override;
+	void GenerateSpecificDialogs() override;
+	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) override;
+	void ResetSpecificConfigDefaults(HWND hwndDlg) override;
+	void SaveSpecificConfigDialog(HWND hwndDlg) override;
+	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad) override;
 public:
-	void About(HWND parent);
+	void About(HWND parent) override;
 };
 
 unsigned XSFConfig::initSampleRate = DESMUME_SAMPLE_RATE;

--- a/src/in_2sf/XSFPlayer_2SF.cpp
+++ b/src/in_2sf/XSFPlayer_2SF.cpp
@@ -31,10 +31,10 @@
 	bool Load2SF(XSFFile *xSFToLoad);
 public:
 	XSFPlayer_2SF(const std::filesystem::path &path);
-	~XSFPlayer_2SF() { this->Terminate(); }
-	bool Load();
-	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples);
-	void Terminate();
+	~XSFPlayer_2SF() override { this->Terminate(); }
+	bool Load() override;
+	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples) override;
+	void Terminate() override;
 };
 
 const char *XSFPlayer::WinampDescription = "2SF Decoder";

--- a/src/in_gsf/XSFConfig_GSF.cpp
+++ b/src/in_gsf/XSFConfig_GSF.cpp
@@ -32,15 +32,15 @@
 	std::bitset<6> mutes;
 
 	XSFConfig_GSF();
-	void LoadSpecificConfig();
-	void SaveSpecificConfig();
-	void GenerateSpecificDialogs();
-	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
-	void ResetSpecificConfigDefaults(HWND hwndDlg);
-	void SaveSpecificConfigDialog(HWND hwndDlg);
-	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad);
+	void LoadSpecificConfig() override;
+	void SaveSpecificConfig() override;
+	void GenerateSpecificDialogs() override;
+	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) override;
+	void ResetSpecificConfigDefaults(HWND hwndDlg) override;
+	void SaveSpecificConfigDialog(HWND hwndDlg) override;
+	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad) override;
 public:
-	void About(HWND parent);
+	void About(HWND parent) override;
 };
 
 unsigned XSFConfig::initSampleRate = 44100;

--- a/src/in_gsf/XSFPlayer_GSF.cpp
+++ b/src/in_gsf/XSFPlayer_GSF.cpp
@@ -28,10 +28,10 @@
 {
 public:
 	XSFPlayer_GSF(const std::filesystem::path &path);
-	~XSFPlayer_GSF() { this->Terminate(); }
-	bool Load();
-	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples);
-	void Terminate();
+	~XSFPlayer_GSF() override { this->Terminate(); }
+	bool Load() override;
+	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples) override;
+	void Terminate() override;
 };
 
 const char *XSFPlayer::WinampDescription = "GSF Decoder";

--- a/src/in_ncsf/SSEQPlayer/INFOEntry.h
+++ b/src/in_ncsf/SSEQPlayer/INFOEntry.h
@@ -30,7 +30,7 @@
 
 	INFOEntrySEQ();
 
-	void Read(PseudoFile &file);
+	void Read(PseudoFile &file) override;
 };
 
 struct INFOEntryBANK : INFOEntry
@@ -40,7 +40,7 @@
 
 	INFOEntryBANK();
 
-	void Read(PseudoFile &file);
+	void Read(PseudoFile &file) override;
 };
 
 struct INFOEntryWAVEARC : INFOEntry
@@ -49,7 +49,7 @@
 
 	INFOEntryWAVEARC();
 
-	void Read(PseudoFile &file);
+	void Read(PseudoFile &file) override;
 };
 
 struct INFOEntryPLAYER : INFOEntry
@@ -58,6 +58,6 @@
 
 	INFOEntryPLAYER();
 
-	void Read(PseudoFile &file);
+	void Read(PseudoFile &file) override;
 };
 

--- a/src/in_ncsf/XSFConfig_NCSF.h
+++ b/src/in_ncsf/XSFConfig_NCSF.h
@@ -50,13 +50,13 @@
 	std::bitset<16> mutes;
 
 	XSFConfig_NCSF();
-	void LoadSpecificConfig();
-	void SaveSpecificConfig();
-	void GenerateSpecificDialogs();
-	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
-	void ResetSpecificConfigDefaults(HWND hwndDlg);
-	void SaveSpecificConfigDialog(HWND hwndDlg);
-	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad);
+	void LoadSpecificConfig() override;
+	void SaveSpecificConfig() override;
+	void GenerateSpecificDialogs() override;
+	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) override;
+	void ResetSpecificConfigDefaults(HWND hwndDlg) override;
+	void SaveSpecificConfigDialog(HWND hwndDlg) override;
+	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad) override;
 
 #ifdef _DEBUG
 	std::unique_ptr<SoundViewData> soundViewData;
@@ -64,7 +64,7 @@
 	static INT_PTR CALLBACK SoundViewDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
 #endif
 public:
-	void About(HWND parent);
+	void About(HWND parent) override;
 
 #ifdef _DEBUG
 	void CallSoundView(XSFPlayer *xSFPlayer, HINSTANCE hInstance, HWND hwndParent);

--- a/src/in_ncsf/XSFPlayer_NCSF.h
+++ b/src/in_ncsf/XSFPlayer_NCSF.h
@@ -38,10 +38,10 @@
 	bool LoadNCSF();
 public:
 	XSFPlayer_NCSF(const std::filesystem::path &path);
-	~XSFPlayer_NCSF();
-	bool Load();
-	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples);
-	void Terminate();
+	~XSFPlayer_NCSF() override;
+	bool Load() override;
+	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples) override;
+	void Terminate() override;
 
 	void SetInterpolation(unsigned interpolation);
 	void SetMutes(const std::bitset<16> &newMutes);

--- a/src/in_snsf/XSFConfig_SNSF.h
+++ b/src/in_snsf/XSFConfig_SNSF.h
@@ -30,16 +30,16 @@
 	std::bitset<8> mutes;
 
 	XSFConfig_SNSF();
-	void LoadSpecificConfig();
-	void SaveSpecificConfig();
-	void GenerateSpecificDialogs();
-	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
-	void ResetSpecificConfigDefaults(HWND hwndDlg);
-	void SaveSpecificConfigDialog(HWND hwndDlg);
-	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad);
+	void LoadSpecificConfig() override;
+	void SaveSpecificConfig() override;
+	void GenerateSpecificDialogs() override;
+	INT_PTR CALLBACK ConfigDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) override;
+	void ResetSpecificConfigDefaults(HWND hwndDlg) override;
+	void SaveSpecificConfigDialog(HWND hwndDlg) override;
+	void CopySpecificConfigToMemory(XSFPlayer *xSFPlayer, bool preLoad) override;
 public:
 	unsigned resampler;
 
-	void About(HWND parent);
+	void About(HWND parent) override;
 };
 

--- a/src/in_snsf/XSFPlayer_SNSF.cpp
+++ b/src/in_snsf/XSFPlayer_SNSF.cpp
@@ -38,10 +38,10 @@
 {
 public:
 	XSFPlayer_SNSF(const std::filesystem::path &path);
-	~XSFPlayer_SNSF() { this->Terminate(); }
-	bool Load();
-	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples);
-	void Terminate();
+	~XSFPlayer_SNSF() override { this->Terminate(); }
+	bool Load() override;
+	void GenerateSamples(std::vector<std::uint8_t> &buf, unsigned offset, unsigned samples) override;
+	void Terminate() override;
 };
 
 const char *XSFPlayer::WinampDescription = "SNSF Decoder";

--- a/src/in_xsf_framework/DialogBuilder.h
+++ b/src/in_xsf_framework/DialogBuilder.h
@@ -72,7 +72,7 @@
 {
 public:
 	RelativePositionToParent(const Point<short> &RelPosition, PositionType PosType) : RelativePosition(RelPosition, BaseType::ToParent, PosType) { }
-	RelativePositionToParent *Clone() const { return new RelativePositionToParent(this->relativePosition, this->positionType); }
+	RelativePositionToParent *Clone() const override { return new RelativePositionToParent(this->relativePosition, this->positionType); }
 };
 
 class RelativePositionToSibling : public RelativePosition
@@ -81,7 +81,7 @@
 	short siblingsBack;
 
 	RelativePositionToSibling(const Point<short> &RelPosition, PositionType PosType, short SiblingsBack = 1) : RelativePosition(RelPosition, BaseType::ToSibling, PosType), siblingsBack(SiblingsBack) { }
-	RelativePositionToSibling *Clone() const { return new RelativePositionToSibling(this->relativePosition, this->positionType, this->siblingsBack); }
+	RelativePositionToSibling *Clone() const override { return new RelativePositionToSibling(this->relativePosition, this->positionType, this->siblingsBack); }
 };
 
 enum class DialogControlType
@@ -453,9 +453,9 @@
 		}
 		void CalculatePositions(bool doRightAndBottom = false);
 		void CalculateSize();
-		std::uint16_t GetControlCount() const;
-		std::vector<std::uint8_t> GenerateControlTemplate() const;
-		DialogGroup *Clone() const { return new DialogGroup(*this); }
+		std::uint16_t GetControlCount() const override;
+		std::vector<std::uint8_t> GenerateControlTemplate() const override;
+		DialogGroup *Clone() const override { return new DialogGroup(*this); }
 	};
 
 	class DialogControlWithoutLabel : public DialogControl
@@ -484,8 +484,8 @@
 
 			return control;
 		}
-		virtual std::vector<std::uint8_t> GenerateControlTemplate() const;
-		virtual DialogControlWithoutLabel *Clone() const { return new DialogControlWithoutLabel(*this); }
+		virtual std::vector<std::uint8_t> GenerateControlTemplate() const override;
+		virtual DialogControlWithoutLabel *Clone() const override{ return new DialogControlWithoutLabel(*this); }
 	};
 
 	class DialogControlWithLabel : public DialogControl
@@ -517,8 +517,8 @@
 
 			return control;
 		}
-		virtual std::vector<std::uint8_t> GenerateControlTemplate() const;
-		virtual DialogControlWithLabel *Clone() const { return new DialogControlWithLabel(*this); }
+		virtual std::vector<std::uint8_t> GenerateControlTemplate() const override;
+		virtual DialogControlWithLabel *Clone() const override { return new DialogControlWithLabel(*this); }
 	};
 
 	class DialogEditBox : public DialogControlWithoutLabel
@@ -584,7 +584,7 @@
 		{
 			return DialogControlWithoutLabel::CreateControl<DialogComboBox>(builder, 0x0085);
 		}
-		short GetControlHeight() const { return (this->style & CBS_SIMPLE && !(this->style & CBS_DROPDOWNLIST)) ? this->rect.size.height : 14; }
+		short GetControlHeight() const override { return (this->style & CBS_SIMPLE && !(this->style & CBS_DROPDOWNLIST)) ? this->rect.size.height : 14; }
 	};
 
 	std::wstring title;

--- a/src/in_xsf_framework/XSFConfig_Winamp.cpp
+++ b/src/in_xsf_framework/XSFConfig_Winamp.cpp
@@ -26,10 +26,10 @@
 
 	XSFConfigIO_Winamp();
 public:
-	void SetValueString(const std::string &name, const std::string &value);
-	std::string GetValueString(const std::string &name, const std::string &defaultValue) const;
-	void SetHInstance(HINSTANCE hInstance);
-	HINSTANCE GetHInstance() const;
+	void SetValueString(const std::string &name, const std::string &value) override;
+	std::string GetValueString(const std::string &name, const std::string &defaultValue) const override;
+	void SetHInstance(HINSTANCE hInstance) override;
+	HINSTANCE GetHInstance() const override;
 };
 
 XSFConfigIO *XSFConfigIO::Create()