diff --git a/src/windows/Stella.sln b/src/windows/Stella.sln
index 3aae8e551..78b832759 100755
--- a/src/windows/Stella.sln
+++ b/src/windows/Stella.sln
@@ -14,6 +14,8 @@ Global
Profile|x64 = Profile|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
+ Release-Sanitize|Win32 = Release-Sanitize|Win32
+ Release-Sanitize|x64 = Release-Sanitize|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -32,6 +34,10 @@ Global
{D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release|Win32.Build.0 = Release|Win32
{D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release|x64.ActiveCfg = Release|x64
{D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release|x64.Build.0 = Release|x64
+ {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release-Sanitize|Win32.ActiveCfg = Release-Sanitize|Win32
+ {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release-Sanitize|Win32.Build.0 = Release-Sanitize|Win32
+ {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release-Sanitize|x64.ActiveCfg = Release-Sanitize|x64
+ {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release-Sanitize|x64.Build.0 = Release-Sanitize|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/windows/Stella.vcxproj b/src/windows/Stella.vcxproj
index 1de9faa06..c5d4f7274 100755
--- a/src/windows/Stella.vcxproj
+++ b/src/windows/Stella.vcxproj
@@ -25,6 +25,14 @@
Profile
x64
+
+ Release-Sanitize
+ Win32
+
+
+ Release-Sanitize
+ x64
+
Release
Win32
@@ -46,6 +54,11 @@
MultiByte
v141_xp
+
+ Application
+ MultiByte
+ v141_xp
+
Application
MultiByte
@@ -65,6 +78,13 @@
Application
MultiByte
v142
+ false
+
+
+ Application
+ MultiByte
+ v142
+ true
Application
@@ -91,6 +111,10 @@
+
+
+
+
@@ -107,6 +131,10 @@
+
+
+
+
@@ -135,12 +163,16 @@
true
true
$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
Release\
$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
Release\
$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
$(Platform)\$(Configuration)\
$(Platform)\$(Configuration)\
+ $(Platform)\$(Configuration)\
$(Platform)\$(Configuration)\
AllRules.ruleset
AllRules.ruleset
@@ -155,16 +187,22 @@
AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
AllRules.ruleset
+ AllRules.ruleset
AllRules.ruleset
+
+
@@ -179,6 +217,10 @@
$(ProjectDir)\SDL\lib\x86;$(LibraryPath)
$(ProjectDir)\SDL\include;$(IncludePath)
+
+ $(ProjectDir)\SDL\lib\x86;$(LibraryPath)
+ $(ProjectDir)\SDL\include;$(IncludePath)
+
$(ProjectDir)\SDL\lib\x86;$(LibraryPath)
$(ProjectDir)\SDL\include;$(IncludePath)
@@ -195,6 +237,10 @@
$(ProjectDir)\SDL\lib\x64;$(LibraryPath)
$(ProjectDir)\SDL\include;$(IncludePath)
+
+ $(ProjectDir)\SDL\lib\x64;$(LibraryPath)
+ $(ProjectDir)\SDL\include;$(IncludePath)
+
$(ProjectDir)\SDL\lib\x64;$(LibraryPath)
$(ProjectDir)\SDL\include;$(IncludePath)
@@ -374,6 +420,41 @@
Default
+
+
+ true
+ true
+ ..\yacc;..\emucore;..\emucore\tia;..\emucore\tia\frame-manager;..\common;..\common\tv_filters;..\gui;..\debugger\gui;..\debugger;..\windows;..\cheat;..\zlib;..\libpng;..\json;..\common\repository\sqlite;..\sqlite;..\httplib;%(AdditionalIncludeDirectories)
+ BSPF_WINDOWS;WIN32;NOMINMAX;NDEBUG;SDL_SUPPORT;GUI_SUPPORT;PNG_SUPPORT;ZIP_SUPPORT;JOYSTICK_SUPPORT;DEBUGGER_SUPPORT;WINDOWED_SUPPORT;SOUND_SUPPORT;CHEATCODE_SUPPORT;HTTP_LIB_SUPPORT;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ false
+
+
+ Level4
+ ProgramDatabase
+ $(IntDir)obj\\windows\%(RelativeDir)
+ StreamingSIMDExtensions
+ stdcpp17
+ true
+ 4100;4127;4146;4244;%(DisableSpecificWarnings)
+ CompileAsCpp
+ NoListing
+ $(IntDir)asm\windows\%(RelativeDir)
+
+
+ SDL2.lib;SDL2main.lib;SDL2main.lib;%(AdditionalDependencies)
+ $(OutDir)Stella.exe
+ true
+ Windows
+ true
+ true
+ false
+
+
+ MachineX86
+ Default
+
+
true
@@ -448,6 +529,45 @@
Default
+
+
+ X64
+
+
+ MaxSpeed
+ AnySuitable
+ true
+ ..\yacc;..\emucore;..\emucore\tia;..\emucore\tia\frame-manager;..\common;..\common\tv_filters;..\gui;..\debugger\gui;..\debugger;..\windows;..\cheat;..\zlib;..\libpng;..\json;..\common\repository\sqlite;..\sqlite;..\httplib;%(AdditionalIncludeDirectories)
+ BSPF_WINDOWS;WIN32;NOMINMAX;NDEBUG;SDL_SUPPORT;GUI_SUPPORT;PNG_SUPPORT;ZIP_SUPPORT;JOYSTICK_SUPPORT;DEBUGGER_SUPPORT;WINDOWED_SUPPORT;SOUND_SUPPORT;CHEATCODE_SUPPORT;HTTP_LIB_SUPPORT;%(PreprocessorDefinitions)
+ MultiThreadedDLL
+ false
+
+
+ Level4
+ ProgramDatabase
+ $(IntDir)obj\\windows\%(RelativeDir)
+ stdcpp17
+ true
+ 4100;4127;4146;4244;%(DisableSpecificWarnings)
+ CompileAsCpp
+ NoListing
+ $(IntDir)asm\windows\%(RelativeDir)
+ false
+
+
+ SDL2.lib;SDL2main.lib;%(AdditionalDependencies)
+ $(OutDir)Stella.exe
+ true
+ Windows
+ true
+ true
+ false
+
+
+ MachineX64
+ Default
+
+
X64
@@ -810,10 +930,12 @@
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
@@ -988,540 +1110,660 @@
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
Level2
Level2
Level2
+ Level2
Level2
Level2
Level2
Level2
+ Level2
Level2
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC
CompileAsC
CompileAsC
CompileAsC
+ CompileAsC
CompileAsC