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
... ...
@@ -1,19 +1,14 @@
1 1
 set(HEADERS
2 2
 	snes9x/65c816.h
3 3
 	snes9x/apu/apu.h
4
-	snes9x/apu/blargg_common.h
5
-	snes9x/apu/blargg_config.h
6
-	snes9x/apu/blargg_endian.h
7
-	snes9x/apu/bspline_resampler.h
8
-	snes9x/apu/hermite_resampler.h
9
-	snes9x/apu/linear_resampler.h
10
-	snes9x/apu/osculating_resampler.h
4
+	snes9x/apu/bapu/dsp/blargg_common.h
5
+	snes9x/apu/bapu/dsp/blargg_config.h
6
+	snes9x/apu/bapu/dsp/blargg_endian.h
7
+	snes9x/apu/bapu/dsp/sdsp.hpp
8
+	snes9x/apu/bapu/dsp/SPC_DSP.h
9
+	snes9x/apu/bapu/smp/smp.hpp
10
+	snes9x/apu/bapu/snes/snes.hpp
11 11
 	snes9x/apu/resampler.h
12
-	snes9x/apu/ring_buffer.h
13
-	snes9x/apu/sinc_resampler.h
14
-	snes9x/apu/SNES_SPC.h
15
-	snes9x/apu/SPC_CPU.h
16
-	snes9x/apu/SPC_DSP.h
17 12
 	snes9x/cpuaddr.h
18 13
 	snes9x/cpuexec.h
19 14
 	snes9x/cpumacro.h
... ...
@@ -28,9 +23,14 @@ set(HEADERS
28 23
 	XSFConfigDialog_SNSF.h)
29 24
 set(SNES9X_SOURCES
30 25
 	snes9x/apu/apu.cpp
31
-	snes9x/apu/SNES_SPC.cpp
32
-	snes9x/apu/SNES_SPC_misc.cpp
33
-	snes9x/apu/SPC_DSP.cpp
26
+	snes9x/apu/bapu/dsp/sdsp.cpp
27
+	snes9x/apu/bapu/dsp/SPC_DSP.cpp
28
+	snes9x/apu/bapu/smp/algorithms.cpp
29
+	snes9x/apu/bapu/smp/core.cpp
30
+	snes9x/apu/bapu/smp/iplrom.cpp
31
+	snes9x/apu/bapu/smp/memory.cpp
32
+	snes9x/apu/bapu/smp/smp.cpp
33
+	snes9x/apu/bapu/smp/timing.cpp
34 34
 	snes9x/cpu.cpp
35 35
 	snes9x/cpuexec.cpp
36 36
 	snes9x/cpuops.cpp
... ...
@@ -56,6 +56,6 @@ set_target_properties(in_snsf PROPERTIES PREFIX "")
56 56
 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Header Files" FILES ${HEADERS})
57 57
 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Source Files" FILES ${SOURCES})
58 58
 target_compile_options(in_snsf PUBLIC
59
-	$<$<CXX_COMPILER_ID:MSVC>:/wd4127 /wd4245 /wd6385 /wd6386 /wd26453 /wd26495 /wd26812 /wd26819>)
59
+	$<$<CXX_COMPILER_ID:MSVC>:/wd4127 /wd4245 /wd4389 /wd6385 /wd6386 /wd26439 /wd26453 /wd26495 /wd26812 /wd26819>)
60 60
 target_link_libraries(in_snsf
61 61
 	in_xsf_framework)
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
... ...
@@ -26,7 +26,7 @@ set(HEADERS
26 26
 	snes9x/snes9x.h
27 27
 	XSFConfig_SNSF.h
28 28
 	XSFConfigDialog_SNSF.h)
29
-set(SOURCES
29
+set(SNES9X_SOURCES
30 30
 	snes9x/apu/apu.cpp
31 31
 	snes9x/apu/SNES_SPC.cpp
32 32
 	snes9x/apu/SNES_SPC_misc.cpp
... ...
@@ -38,12 +38,21 @@ set(SOURCES
38 38
 	snes9x/globals.cpp
39 39
 	snes9x/memmap.cpp
40 40
 	snes9x/ppu.cpp
41
-	snes9x/sdd1.cpp
41
+	snes9x/sdd1.cpp)
42
+set(SOURCES
43
+	${SNES9X_SOURCES}
42 44
 	XSFConfig_SNSF.cpp
43 45
 	XSFConfigDialog_SNSF.cpp
44 46
 	XSFPlayer_SNSF.cpp)
45 47
 
48
+set(SNES9X_COMPILE_OPTIONS
49
+	$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:-Wno-implicit-fallthrough -Wno-shift-negative-value>)
50
+
51
+set_source_files_properties(${SNES9X_SOURCES} PROPERTIES
52
+	COMPILE_OPTIONS "${SNES9X_COMPILE_OPTIONS}")
53
+
46 54
 add_library(in_snsf SHARED ${HEADERS} ${SOURCES})
55
+set_target_properties(in_snsf PROPERTIES PREFIX "")
47 56
 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Header Files" FILES ${HEADERS})
48 57
 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Source Files" FILES ${SOURCES})
49 58
 target_compile_options(in_snsf PUBLIC
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
... ...
@@ -24,7 +24,8 @@ set(HEADERS
24 24
 	snes9x/ppu.h
25 25
 	snes9x/sdd1.h
26 26
 	snes9x/snes9x.h
27
-	XSFConfig_SNSF.h)
27
+	XSFConfig_SNSF.h
28
+	XSFConfigDialog_SNSF.h)
28 29
 set(SOURCES
29 30
 	snes9x/apu/apu.cpp
30 31
 	snes9x/apu/SNES_SPC.cpp
... ...
@@ -39,6 +40,7 @@ set(SOURCES
39 40
 	snes9x/ppu.cpp
40 41
 	snes9x/sdd1.cpp
41 42
 	XSFConfig_SNSF.cpp
43
+	XSFConfigDialog_SNSF.cpp
42 44
 	XSFPlayer_SNSF.cpp)
43 45
 
44 46
 add_library(in_snsf SHARED ${HEADERS} ${SOURCES})
Browse code

Silence various Visual Studio warnings:

* Fix the ones in my code where I could use a proper type or valid casts.
* Ignore the designer-time and compiler-time warnings in vendor code or in my code where I am unable to suppress them via casting.
(Most of these were ignored already before introducing the CMake scripts, because they were in vendor code or were annoying to deal with.)

Naram Qashat authored on 2021/03/29 00:10:11
Showing 1 changed files
... ...
@@ -44,5 +44,7 @@ set(SOURCES
44 44
 add_library(in_snsf SHARED ${HEADERS} ${SOURCES})
45 45
 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Header Files" FILES ${HEADERS})
46 46
 source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Source Files" FILES ${SOURCES})
47
+target_compile_options(in_snsf PUBLIC
48
+	$<$<CXX_COMPILER_ID:MSVC>:/wd4127 /wd4245 /wd6385 /wd6386 /wd26453 /wd26495 /wd26812 /wd26819>)
47 49
 target_link_libraries(in_snsf
48 50
 	in_xsf_framework)
Browse code

Add CMake scripts in preparation for wxWidgets changes.

(One downside here, zlib's CMake script renames its zconf.h... which in turn means that the submodule now thinks there are uncommitted changes. :/)

Naram Qashat authored on 2021/03/28 19:43:33
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,48 @@
1
+set(HEADERS
2
+	snes9x/65c816.h
3
+	snes9x/apu/apu.h
4
+	snes9x/apu/blargg_common.h
5
+	snes9x/apu/blargg_config.h
6
+	snes9x/apu/blargg_endian.h
7
+	snes9x/apu/bspline_resampler.h
8
+	snes9x/apu/hermite_resampler.h
9
+	snes9x/apu/linear_resampler.h
10
+	snes9x/apu/osculating_resampler.h
11
+	snes9x/apu/resampler.h
12
+	snes9x/apu/ring_buffer.h
13
+	snes9x/apu/sinc_resampler.h
14
+	snes9x/apu/SNES_SPC.h
15
+	snes9x/apu/SPC_CPU.h
16
+	snes9x/apu/SPC_DSP.h
17
+	snes9x/cpuaddr.h
18
+	snes9x/cpuexec.h
19
+	snes9x/cpumacro.h
20
+	snes9x/dma.h
21
+	snes9x/getset.h
22
+	snes9x/memmap.h
23
+	snes9x/port.h
24
+	snes9x/ppu.h
25
+	snes9x/sdd1.h
26
+	snes9x/snes9x.h
27
+	XSFConfig_SNSF.h)
28
+set(SOURCES
29
+	snes9x/apu/apu.cpp
30
+	snes9x/apu/SNES_SPC.cpp
31
+	snes9x/apu/SNES_SPC_misc.cpp
32
+	snes9x/apu/SPC_DSP.cpp
33
+	snes9x/cpu.cpp
34
+	snes9x/cpuexec.cpp
35
+	snes9x/cpuops.cpp
36
+	snes9x/dma.cpp
37
+	snes9x/globals.cpp
38
+	snes9x/memmap.cpp
39
+	snes9x/ppu.cpp
40
+	snes9x/sdd1.cpp
41
+	XSFConfig_SNSF.cpp
42
+	XSFPlayer_SNSF.cpp)
43
+
44
+add_library(in_snsf SHARED ${HEADERS} ${SOURCES})
45
+source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Header Files" FILES ${HEADERS})
46
+source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Source Files" FILES ${SOURCES})
47
+target_link_libraries(in_snsf
48
+	in_xsf_framework)