Browse code

Update snes9x code from 1.53 to 1.6.0.

Notable differences from upstream:
* Did not use the same #include setup for the new byuu apu and instead chose to do things more traditionally, as the latter is also much easier to deal with in Visual Studio than just including .cpp files into other .cpp files...
* MSU1 support not included (I see no need for this in a plugin meant to be used for original SNES music).
* The dynamic rate control on the APU not included (I also see no need for it in this plugin).
* The extra resamplers I added in were removed as the original hermite resampler was folded into a single non-inhertiable resampler.
* Bits of cleanup.

Naram Qashat authored on 2021/04/19 21:20:36
Showing 1 changed files
... ...
@@ -31,19 +31,19 @@
31 31
 
32 32
 XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &newConfig, wxWindow *parent, const wxString &title) : XSFConfigDialog(newConfig, parent, title)
33 33
 {
34
-	auto reverseStereoCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Reverse Stereo", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->reverseStereo });
35
-	this->outputSizer->Add(reverseStereoCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
34
+	auto separateEchoBufferCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Separate Echo Buffer", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->separateEchoBuffer });
35
+	this->outputSizer->Add(separateEchoBufferCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
36 36
 
37
-	auto resamplerLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Resampler");
38
-	this->outputSizer->Add(resamplerLabel, { 5, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
39
-	wxArrayString resamplerChoices;
40
-	resamplerChoices.Add("Linear Resampler");
41
-	resamplerChoices.Add("Hermite Resampler");
42
-	resamplerChoices.Add("Bspline Resampler");
43
-	resamplerChoices.Add("Osculating Resampler");
44
-	resamplerChoices.Add("Sinc Resampler");
45
-	auto resamplerChoice = new wxChoice(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, resamplerChoices, 0, wxGenericValidator{ &this->resampler });
46
-	this->outputSizer->Add(resamplerChoice, { 5, 1 }, { 1, 1 }, wxALL, 5);
37
+	auto interpolationLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Interpolation");
38
+	this->outputSizer->Add(interpolationLabel, { 5, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
39
+	wxArrayString interpolationChoices;
40
+	interpolationChoices.Add("None");
41
+	interpolationChoices.Add("Linear");
42
+	interpolationChoices.Add("Guassian");
43
+	interpolationChoices.Add("Cubic");
44
+	interpolationChoices.Add("Sinc");
45
+	auto interpolationChoice = new wxChoice(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, interpolationChoices, 0, wxGenericValidator{ &this->interpolation });
46
+	this->outputSizer->Add(interpolationChoice, { 5, 1 }, { 1, 1 }, wxALL, 5);
47 47
 
48 48
 	auto muteLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Mute");
49 49
 	this->outputSizer->Add(muteLabel, { 6, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
Browse code

Add warnings to building with GCC/Clang.

* These were mostly copied from the old Makefile.
* The files including wxWidgets need -Wno-old-style-cast done in the code via pragmas because I do not want to disable that warning for the rest of the files. (It might've been overkill for some places where wxWidgets was included, but whatever.)

Naram Qashat authored on 2021/04/04 23:35:09
Showing 1 changed files
... ...
@@ -6,6 +6,13 @@
6 6
  */
7 7
 
8 8
 #include <string>
9
+#ifdef __GNUC__
10
+# pragma GCC diagnostic push
11
+# pragma GCC diagnostic ignored "-Wold-style-cast"
12
+#elif defined(__clang__)
13
+# pragma clang diagnostic push
14
+# pragma clang diagnostic ignored "-Wold-style-cast"
15
+#endif
9 16
 #include <wx/arrstr.h>
10 17
 #include <wx/checkbox.h>
11 18
 #include <wx/choice.h>
... ...
@@ -13,11 +20,16 @@
13 20
 #include <wx/listbox.h>
14 21
 #include <wx/stattext.h>
15 22
 #include <wx/valgen.h>
23
+#ifdef __GNUC__
24
+# pragma GCC diagnostic pop
25
+#elif defined(__clang__)
26
+# pragma clang diagnostic pop
27
+#endif
16 28
 #include "XSFConfig.h"
17 29
 #include "XSFConfigDialog.h"
18 30
 #include "XSFConfigDialog_SNSF.h"
19 31
 
20
-XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &config, wxWindow *parent, const wxString &title) : XSFConfigDialog(config, parent, title)
32
+XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &newConfig, wxWindow *parent, const wxString &title) : XSFConfigDialog(newConfig, parent, title)
21 33
 {
22 34
 	auto reverseStereoCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Reverse Stereo", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->reverseStereo });
23 35
 	this->outputSizer->Add(reverseStereoCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
Browse code

Add wxWidgets-based configuration dialog boxes.

* Removes the configuration dialog boxes that used my DialogBuilder.
* Move default configuration values to be inlined within the headers.
* Moved 2SF's and GSF's XSFConfig classes to their own headers to accommodate the new wxWidgets dialog boxes.
* Make it so NCSF's SoundView dialog can be toggled on or off from the configuration dialog box.

Naram Qashat authored on 2021/04/04 12:46:14
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,43 @@
1
+/*
2
+ * xSF - SNSF configuration dialog
3
+ * By Naram Qashat (CyberBotX) [cyberbotx@cyberbotx.com]
4
+ *
5
+ * Partially based on the vio*sf framework
6
+ */
7
+
8
+#include <string>
9
+#include <wx/arrstr.h>
10
+#include <wx/checkbox.h>
11
+#include <wx/choice.h>
12
+#include <wx/gbsizer.h>
13
+#include <wx/listbox.h>
14
+#include <wx/stattext.h>
15
+#include <wx/valgen.h>
16
+#include "XSFConfig.h"
17
+#include "XSFConfigDialog.h"
18
+#include "XSFConfigDialog_SNSF.h"
19
+
20
+XSFConfigDialog_SNSF::XSFConfigDialog_SNSF(XSFConfig &config, wxWindow *parent, const wxString &title) : XSFConfigDialog(config, parent, title)
21
+{
22
+	auto reverseStereoCheckBox = new wxCheckBox(this->outputPanel, wxID_ANY, "Reverse Stereo", wxDefaultPosition, wxDefaultSize, 0, wxGenericValidator{ &this->reverseStereo });
23
+	this->outputSizer->Add(reverseStereoCheckBox, { 4, 0 }, { 1, 2 }, wxALL, 5);
24
+
25
+	auto resamplerLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Resampler");
26
+	this->outputSizer->Add(resamplerLabel, { 5, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
27
+	wxArrayString resamplerChoices;
28
+	resamplerChoices.Add("Linear Resampler");
29
+	resamplerChoices.Add("Hermite Resampler");
30
+	resamplerChoices.Add("Bspline Resampler");
31
+	resamplerChoices.Add("Osculating Resampler");
32
+	resamplerChoices.Add("Sinc Resampler");
33
+	auto resamplerChoice = new wxChoice(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, resamplerChoices, 0, wxGenericValidator{ &this->resampler });
34
+	this->outputSizer->Add(resamplerChoice, { 5, 1 }, { 1, 1 }, wxALL, 5);
35
+
36
+	auto muteLabel = new wxStaticText(this->outputPanel, wxID_ANY, "Mute");
37
+	this->outputSizer->Add(muteLabel, { 6, 0 }, { 1, 1 }, wxALIGN_CENTER_VERTICAL | wxALL, 5);
38
+	wxArrayString muteChoices;
39
+	for (int i = 0; i < 16; ++i)
40
+		muteChoices.Add("BRRPCM " + std::to_string(i + 1));
41
+	auto muteListBox = new wxListBox(this->outputPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, muteChoices, wxLB_MULTIPLE, wxGenericValidator{ &this->mute });
42
+	this->outputSizer->Add(muteListBox, { 6, 1 }, { 1, 1 }, wxALL, 5);
43
+}