Browse Source

win32: mingw/VS2015 individual project works; Google Test Adapter failed, live unit test failed too

Pal Lockheart 7 years ago
parent
commit
62df7c9483

+ 1 - 1
tests/test_swprintf.cpp

@@ -1,4 +1,4 @@
-#include <gtest/gtest.h>
+#include <gtest/gtest.h>
 extern "C"{
     #include "common.h"
     #include "palcommon.h"

+ 9 - 0
tests/testmain.cpp

@@ -4,3 +4,12 @@ int main(int argc, char *argv[]) {
     testing::InitGoogleTest(&argc, argv);
     return RUN_ALL_TESTS();
 }
+
+#ifdef __MINGW32__
+#include <windows.h>
+INT WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
+    PSTR lpCmdLine, INT nCmdShow)
+{
+    return main(__argc, __argv);
+}
+#endif

+ 36 - 6
win32/Makefile

@@ -1,21 +1,44 @@
 # Makefile for win32 platforms with mingw
 
 TARGET = sdlpal.exe
+TEST_TARGET = ./sdlpal-tests
 
 HOST =
 
 CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../liboggvorbis/src/*.c) $(wildcard ../*.c) ../native_midi/native_midi_win32.c ../native_midi/native_midi_common.c
+CFILES := $(filter-out ../main.c, $(CFILES))
 CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
 OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) sdlpal.o
 
-override CCFLAGS += `sdl2-config --cflags` -msse -Wall -O2 -fno-strict-aliasing -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS
-CXXFLAGS = $(CCFLAGS) -std=c++11
+TEST_CPPFILES = $(wildcard ../tests/*.cpp)
+TEST_OBJFILES = $(TEST_CPPFILES:.cpp=.o)
+
+GTEST_DIR = ../3rd/googletest/googletest
+GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
+                $(GTEST_DIR)/include/gtest/internal/*.h
+
+GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
+
+TEST_CPPFLAGS += -isystem $(GTEST_DIR)/include
+TEST_CXXFLAGS += -g -Wall -Wextra -pthread
+
+override CCFLAGS += `sdl2-config --cflags` -msse -Wall -O2 -fno-strict-aliasing -I. -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS -I$(GTEST_DIR)
+CXXFLAGS = $(CCFLAGS) -std=c++11 $(TEST_CPPFLAGS) $(TEST_CXXFLAGS)
 CFLAGS = $(CCFLAGS) -std=gnu99
 LDFLAGS = `sdl2-config --libs` -lm -lwinmm -lole32 -loleaut32 -limm32 -lcomctl32 -luuid -ldxguid -lversion -static -static-libgcc -static-libstdc++
+TEST_LDFLAGS = -L/mingw32/lib -lSDL2 -mconsole -lm -lgdi32 -lwinmm -lole32 -loleaut32 -limm32 -lcomctl32 -luuid -ldxguid -lversion -static -static-libgcc -static-libstdc++
+
+all: $(TARGET)
 
-$(TARGET): $(OBJFILES)
-	$(HOST)g++ $(OBJFILES) -o $(TARGET) $(LDFLAGS)
-	$(HOST)strip $(TARGET)
+gtest-all.o : $(GTEST_SRCS_)
+	$(CXX) $(CXXFLAGS) -c \
+            $(GTEST_DIR)/src/gtest-all.cc
+
+$(TARGET): $(OBJFILES) ../main.o
+	$(HOST)g++ $^ -o $@ $(LDFLAGS)
+
+$(TEST_TARGET): $(OBJFILES) $(TEST_OBJFILES) main-test.o gtest-all.o
+	$(HOST)g++ $^ -o $@ $(TEST_LDFLAGS)
 
 %.o: %.c
 	$(HOST)gcc $(CFLAGS) -c $< -o $@
@@ -23,8 +46,15 @@ $(TARGET): $(OBJFILES)
 %.o: %.cpp
 	$(HOST)g++ $(CXXFLAGS) -c $< -o $@
 	
+main-test.o: ../main.c
+	$(HOST)gcc $(CFLAGS) -DUNIT_TEST=1 -c $< -o $@
+
 %.o: %.rc
 	windres -i $< -o $@
 
 clean:
-	-rm -f $(TARGET) *.o ../*.o ../adplug/*.o ../libmad/*.o ../liboggvorbis/src/*.o
+	-rm -f $(TARGET) $(TEST_TARGET) *.o ../*.o ../adplug/*.o ../libmad/*.o ../liboggvorbis/src/*.o
+
+check: $(TEST_TARGET)
+	chmod +x $(TEST_TARGET)
+	exec $(TEST_TARGET)

+ 1 - 0
win32/Tests/Returns0.bat

@@ -0,0 +1 @@
+exit 0

+ 1 - 0
win32/Tests/Returns1.bat

@@ -0,0 +1 @@
+exit 1

+ 447 - 0
win32/sdlpal-test.vcxproj

@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{FF96772A-FC17-4B67-B770-F4E09DECC15A}</ProjectGuid>
+    <RootNamespace>sdlpal-test</RootNamespace>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <PlatformToolset>v140_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <PlatformToolset>v120_xp</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <IncludePath>..\SDL2\include;$(IncludePath)</IncludePath>
+    <LibraryPath>..\SDL2\VisualC\$(Platform)\$(Configuration)\;..\SDL2\lib\x86;$(LibraryPath)</LibraryPath>
+    <TargetName>$(ProjectName)_gta</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <IncludePath>..\SDL2\include;$(IncludePath)</IncludePath>
+    <LibraryPath>..\SDL2\VisualC\$(Platform)\$(Configuration)\;..\SDL2\lib\x64;$(LibraryPath)</LibraryPath>
+    <TargetName>$(ProjectName)_gta</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <IncludePath>..\SDL2\include;$(IncludePath)</IncludePath>
+    <LibraryPath>..\SDL2\VisualC\$(Platform)\$(Configuration)\;..\SDL2\lib\x86;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <IncludePath>..\SDL2\include;$(IncludePath)</IncludePath>
+    <LibraryPath>..\SDL2\VisualC\$(Platform)\$(Configuration)\;..\SDL2\lib\x64;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Release/sdlpal-test_sdl2.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>.\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0804</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>winmm.lib;sdl2.lib;sdl2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <SubSystem>Windows</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+    <Bscmake />
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TypeLibraryName>.\Release/sdlpal-test_sdl2.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>.\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <WarningLevel>Level3</WarningLevel>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0804</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>winmm.lib;sdl2.lib;sdl2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+    <Bscmake />
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Debug/sdlpal-test_sdl2.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>.\;..\3rd\googletest\googletest;..\3rd\googletest\googletest\include;.\packages\sdl2.2.0.5\build\native\include;..\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>UNIT_TEST;PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0804</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>winmm.lib;sdl2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+      <AdditionalLibraryDirectories>.\packages\sdl2.2.0.5\build\native\lib\Win32\dynamic;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+    <Bscmake />
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TypeLibraryName>.\Debug/sdlpal-test_sdl2.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>.\;..\3rd\googletest\googletest;..\3rd\googletest\googletest\include;.\packages\sdl2.2.0.5\build\native\include;..\;..\liboggvorbis\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>PAL_HAS_PLATFORM_SPECIFIC_UTILS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0804</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>winmm.lib;sdl2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <AdditionalLibraryDirectories>.\packages\sdl2.2.0.5\build\native\lib\x64\dynamic;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+    <Bscmake />
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\3rd\googletest\googletest\src\gtest-all.cc" />
+    <ClCompile Include="..\adplug\adlibemu.c" />
+    <ClCompile Include="..\adplug\dbemuopl.cpp" />
+    <ClCompile Include="..\adplug\dbopl.cpp">
+      <InlineFunctionExpansion Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AnySuitable</InlineFunctionExpansion>
+      <InlineFunctionExpansion Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AnySuitable</InlineFunctionExpansion>
+      <IntrinsicFunctions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</IntrinsicFunctions>
+      <IntrinsicFunctions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</IntrinsicFunctions>
+      <FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Speed</FavorSizeOrSpeed>
+      <FavorSizeOrSpeed Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Speed</FavorSizeOrSpeed>
+      <OmitFramePointers Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</OmitFramePointers>
+      <OmitFramePointers Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</OmitFramePointers>
+    </ClCompile>
+    <ClCompile Include="..\adplug\demuopl.cpp" />
+    <ClCompile Include="..\audio.c" />
+    <ClCompile Include="..\battle.c" />
+    <ClCompile Include="..\ending.c" />
+    <ClCompile Include="..\fight.c" />
+    <ClCompile Include="..\font.c" />
+    <ClCompile Include="..\game.c" />
+    <ClCompile Include="..\global.c" />
+    <ClCompile Include="..\input.c" />
+    <ClCompile Include="..\itemmenu.c" />
+    <ClCompile Include="..\liboggvorbis\src\analysis.c" />
+    <ClCompile Include="..\liboggvorbis\src\bitrate.c" />
+    <ClCompile Include="..\liboggvorbis\src\bitwise.c" />
+    <ClCompile Include="..\liboggvorbis\src\block.c" />
+    <ClCompile Include="..\liboggvorbis\src\codebook.c" />
+    <ClCompile Include="..\liboggvorbis\src\envelope.c" />
+    <ClCompile Include="..\liboggvorbis\src\floor0.c" />
+    <ClCompile Include="..\liboggvorbis\src\floor1.c" />
+    <ClCompile Include="..\liboggvorbis\src\framing.c" />
+    <ClCompile Include="..\liboggvorbis\src\info.c" />
+    <ClCompile Include="..\liboggvorbis\src\lookup.c" />
+    <ClCompile Include="..\liboggvorbis\src\lpc.c" />
+    <ClCompile Include="..\liboggvorbis\src\lsp.c" />
+    <ClCompile Include="..\liboggvorbis\src\mapping0.c" />
+    <ClCompile Include="..\liboggvorbis\src\mdct.c" />
+    <ClCompile Include="..\liboggvorbis\src\psy.c" />
+    <ClCompile Include="..\liboggvorbis\src\registry.c" />
+    <ClCompile Include="..\liboggvorbis\src\res0.c" />
+    <ClCompile Include="..\liboggvorbis\src\sharedbook.c" />
+    <ClCompile Include="..\liboggvorbis\src\smallft.c" />
+    <ClCompile Include="..\liboggvorbis\src\synthesis.c" />
+    <ClCompile Include="..\liboggvorbis\src\vorbisenc.c" />
+    <ClCompile Include="..\liboggvorbis\src\vorbisfile.c" />
+    <ClCompile Include="..\liboggvorbis\src\window.c" />
+    <ClCompile Include="..\magicmenu.c" />
+    <ClCompile Include="..\main.c" />
+    <ClCompile Include="..\map.c" />
+    <ClCompile Include="..\midi.c" />
+    <ClCompile Include="..\mp3play.c" />
+    <ClCompile Include="..\oggplay.c" />
+    <ClCompile Include="..\overlay.c" />
+    <ClCompile Include="..\palcfg.c" />
+    <ClCompile Include="..\palcommon.c" />
+    <ClCompile Include="..\palette.c" />
+    <ClCompile Include="..\play.c" />
+    <ClCompile Include="..\res.c" />
+    <ClCompile Include="..\resampler.c" />
+    <ClCompile Include="..\rixplay.cpp" />
+    <ClCompile Include="..\rngplay.c" />
+    <ClCompile Include="..\scene.c" />
+    <ClCompile Include="..\script.c" />
+    <ClCompile Include="..\sound.c" />
+    <ClCompile Include="..\tests\testmain.cpp" />
+    <ClCompile Include="..\tests\test_swprintf.cpp" />
+    <ClCompile Include="..\text.c" />
+    <ClCompile Include="..\ui.c" />
+    <ClCompile Include="..\uibattle.c" />
+    <ClCompile Include="..\uigame.c" />
+    <ClCompile Include="..\util.c" />
+    <ClCompile Include="..\video.c" />
+    <ClCompile Include="..\yj1.c" />
+    <ClCompile Include="..\adplug\binfile.cpp" />
+    <ClCompile Include="..\adplug\binio.cpp" />
+    <ClCompile Include="..\adplug\dosbox_opl.cpp" />
+    <ClCompile Include="..\adplug\emuopl.cpp" />
+    <ClCompile Include="..\adplug\fmopl.c" />
+    <ClCompile Include="..\adplug\fprovide.cpp" />
+    <ClCompile Include="..\adplug\player.cpp" />
+    <ClCompile Include="..\adplug\rix.cpp" />
+    <ClCompile Include="..\adplug\surroundopl.cpp" />
+    <ClCompile Include="..\native_midi\native_midi_common.c" />
+    <ClCompile Include="..\native_midi\native_midi_win32.c" />
+    <ClCompile Include="..\libmad\bit.c" />
+    <ClCompile Include="..\libmad\decoder.c" />
+    <ClCompile Include="..\libmad\fixed.c" />
+    <ClCompile Include="..\libmad\frame.c" />
+    <ClCompile Include="..\libmad\huffman.c" />
+    <ClCompile Include="..\libmad\layer12.c" />
+    <ClCompile Include="..\libmad\layer3.c" />
+    <ClCompile Include="..\libmad\music_mad.c" />
+    <ClCompile Include="..\libmad\stream.c" />
+    <ClCompile Include="..\libmad\synth.c" />
+    <ClCompile Include="..\libmad\timer.c" />
+    <ClCompile Include="win32.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\adplug\adlibemu.h" />
+    <ClInclude Include="..\adplug\dbemuopl.h" />
+    <ClInclude Include="..\adplug\dbopl.h" />
+    <ClInclude Include="..\adplug\kemuopl.h" />
+    <ClInclude Include="..\ascii.h" />
+    <ClInclude Include="..\battle.h" />
+    <ClInclude Include="..\codepage.h" />
+    <ClInclude Include="..\common.h" />
+    <ClInclude Include="..\liboggvorbis\include\ogg\config_types.h" />
+    <ClInclude Include="..\ending.h" />
+    <ClInclude Include="..\fight.h" />
+    <ClInclude Include="..\font.h" />
+    <ClInclude Include="..\fontglyph.h" />
+    <ClInclude Include="..\game.h" />
+    <ClInclude Include="..\global.h" />
+    <ClInclude Include="..\input.h" />
+    <ClInclude Include="..\itemmenu.h" />
+    <ClInclude Include="..\liboggvorbis\include\ogg\ogg.h" />
+    <ClInclude Include="..\liboggvorbis\include\ogg\os_types.h" />
+    <ClInclude Include="..\liboggvorbis\include\vorbis\codec.h" />
+    <ClInclude Include="..\liboggvorbis\include\vorbis\vorbisenc.h" />
+    <ClInclude Include="..\liboggvorbis\include\vorbis\vorbisfile.h" />
+    <ClInclude Include="..\liboggvorbis\src\backends.h" />
+    <ClInclude Include="..\liboggvorbis\src\bitrate.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\coupled\res_books_51.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\coupled\res_books_stereo.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\floor\floor_books.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\uncoupled\res_books_uncoupled.h" />
+    <ClInclude Include="..\liboggvorbis\src\codebook.h" />
+    <ClInclude Include="..\liboggvorbis\src\codec_internal.h" />
+    <ClInclude Include="..\liboggvorbis\src\envelope.h" />
+    <ClInclude Include="..\liboggvorbis\src\highlevel.h" />
+    <ClInclude Include="..\liboggvorbis\src\lookup.h" />
+    <ClInclude Include="..\liboggvorbis\src\lookup_data.h" />
+    <ClInclude Include="..\liboggvorbis\src\lpc.h" />
+    <ClInclude Include="..\liboggvorbis\src\lsp.h" />
+    <ClInclude Include="..\liboggvorbis\src\masking.h" />
+    <ClInclude Include="..\liboggvorbis\src\mdct.h" />
+    <ClInclude Include="..\liboggvorbis\src\misc.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\floor_all.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_11.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_16.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_44.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_8.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_16.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_44.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_44p51.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_44u.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_8.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_11.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_16.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_22.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_32.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_44.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_44p51.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_44u.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_8.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_X.h" />
+    <ClInclude Include="..\liboggvorbis\src\os.h" />
+    <ClInclude Include="..\liboggvorbis\src\psy.h" />
+    <ClInclude Include="..\liboggvorbis\src\registry.h" />
+    <ClInclude Include="..\liboggvorbis\src\scales.h" />
+    <ClInclude Include="..\liboggvorbis\src\smallft.h" />
+    <ClInclude Include="..\liboggvorbis\src\window.h" />
+    <ClInclude Include="..\magicmenu.h" />
+    <ClInclude Include="..\main.h" />
+    <ClInclude Include="..\map.h" />
+    <ClInclude Include="..\midi.h" />
+    <ClInclude Include="..\palcfg.h" />
+    <ClInclude Include="..\palcommon.h" />
+    <ClInclude Include="..\palette.h" />
+    <ClInclude Include="..\play.h" />
+    <ClInclude Include="..\res.h" />
+    <ClInclude Include="..\resampler.h" />
+    <ClInclude Include="..\players.h" />
+    <ClInclude Include="..\rngplay.h" />
+    <ClInclude Include="..\scene.h" />
+    <ClInclude Include="..\script.h" />
+    <ClInclude Include="..\audio.h" />
+    <ClInclude Include="..\text.h" />
+    <ClInclude Include="..\ui.h" />
+    <ClInclude Include="..\uibattle.h" />
+    <ClInclude Include="..\uigame.h" />
+    <ClInclude Include="..\util.h" />
+    <ClInclude Include="..\video.h" />
+    <ClInclude Include="..\adplug\binfile.h" />
+    <ClInclude Include="..\adplug\binio.h" />
+    <ClInclude Include="..\adplug\demuopl.h" />
+    <ClInclude Include="..\adplug\dosbox_opl.h" />
+    <ClInclude Include="..\adplug\emuopl.h" />
+    <ClInclude Include="..\adplug\fmopl.h" />
+    <ClInclude Include="..\adplug\fprovide.h" />
+    <ClInclude Include="..\adplug\opl.h" />
+    <ClInclude Include="..\adplug\player.h" />
+    <ClInclude Include="..\adplug\rix.h" />
+    <ClInclude Include="..\adplug\surroundopl.h" />
+    <ClInclude Include="..\native_midi\native_midi.h" />
+    <ClInclude Include="..\native_midi\native_midi_common.h" />
+    <ClInclude Include="..\libmad\bit.h" />
+    <ClInclude Include="..\libmad\decoder.h" />
+    <ClInclude Include="..\libmad\fixed.h" />
+    <ClInclude Include="..\libmad\frame.h" />
+    <ClInclude Include="..\libmad\huffman.h" />
+    <ClInclude Include="..\libmad\layer12.h" />
+    <ClInclude Include="..\libmad\layer3.h" />
+    <ClInclude Include="..\libmad\libmad_config.h" />
+    <ClInclude Include="..\libmad\libmad_global.h" />
+    <ClInclude Include="..\libmad\mad.h" />
+    <ClInclude Include="..\libmad\music_mad.h" />
+    <ClInclude Include="..\libmad\stream.h" />
+    <ClInclude Include="..\libmad\synth.h" />
+    <ClInclude Include="..\libmad\timer.h" />
+    <ClInclude Include="pal_config.h" />
+    <ClInclude Include="resource.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\sdlpal.cfg.example" />
+    <None Include="..\sdlpal.ico" />
+    <None Include="..\libmad\D.dat" />
+    <None Include="..\libmad\imdct_s.dat" />
+    <None Include="..\libmad\qc_table.dat" />
+    <None Include="..\libmad\rq_table.dat" />
+    <None Include="..\libmad\sf_table.dat" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="sdlpal.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Text Include="..\AUTHORS.txt" />
+    <Text Include="..\README.txt" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 242 - 0
win32/sdlpal-test.vcxproj.filters

@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <ClCompile Include="..\adplug\adlibemu.c" />
+    <ClCompile Include="..\adplug\dbemuopl.cpp" />
+    <ClCompile Include="..\adplug\dbopl.cpp" />
+    <ClCompile Include="..\adplug\demuopl.cpp" />
+    <ClCompile Include="..\audio.c" />
+    <ClCompile Include="..\battle.c" />
+    <ClCompile Include="..\ending.c" />
+    <ClCompile Include="..\fight.c" />
+    <ClCompile Include="..\font.c" />
+    <ClCompile Include="..\game.c" />
+    <ClCompile Include="..\global.c" />
+    <ClCompile Include="..\input.c" />
+    <ClCompile Include="..\itemmenu.c" />
+    <ClCompile Include="..\liboggvorbis\src\analysis.c" />
+    <ClCompile Include="..\liboggvorbis\src\bitrate.c" />
+    <ClCompile Include="..\liboggvorbis\src\bitwise.c" />
+    <ClCompile Include="..\liboggvorbis\src\block.c" />
+    <ClCompile Include="..\liboggvorbis\src\codebook.c" />
+    <ClCompile Include="..\liboggvorbis\src\envelope.c" />
+    <ClCompile Include="..\liboggvorbis\src\floor0.c" />
+    <ClCompile Include="..\liboggvorbis\src\floor1.c" />
+    <ClCompile Include="..\liboggvorbis\src\framing.c" />
+    <ClCompile Include="..\liboggvorbis\src\info.c" />
+    <ClCompile Include="..\liboggvorbis\src\lookup.c" />
+    <ClCompile Include="..\liboggvorbis\src\lpc.c" />
+    <ClCompile Include="..\liboggvorbis\src\lsp.c" />
+    <ClCompile Include="..\liboggvorbis\src\mapping0.c" />
+    <ClCompile Include="..\liboggvorbis\src\mdct.c" />
+    <ClCompile Include="..\liboggvorbis\src\psy.c" />
+    <ClCompile Include="..\liboggvorbis\src\registry.c" />
+    <ClCompile Include="..\liboggvorbis\src\res0.c" />
+    <ClCompile Include="..\liboggvorbis\src\sharedbook.c" />
+    <ClCompile Include="..\liboggvorbis\src\smallft.c" />
+    <ClCompile Include="..\liboggvorbis\src\synthesis.c" />
+    <ClCompile Include="..\liboggvorbis\src\vorbisenc.c" />
+    <ClCompile Include="..\liboggvorbis\src\vorbisfile.c" />
+    <ClCompile Include="..\liboggvorbis\src\window.c" />
+    <ClCompile Include="..\magicmenu.c" />
+    <ClCompile Include="..\main.c" />
+    <ClCompile Include="..\map.c" />
+    <ClCompile Include="..\midi.c" />
+    <ClCompile Include="..\mp3play.c" />
+    <ClCompile Include="..\oggplay.c" />
+    <ClCompile Include="..\overlay.c" />
+    <ClCompile Include="..\palcfg.c" />
+    <ClCompile Include="..\palcommon.c" />
+    <ClCompile Include="..\palette.c" />
+    <ClCompile Include="..\play.c" />
+    <ClCompile Include="..\res.c" />
+    <ClCompile Include="..\resampler.c" />
+    <ClCompile Include="..\rixplay.cpp" />
+    <ClCompile Include="..\rngplay.c" />
+    <ClCompile Include="..\scene.c" />
+    <ClCompile Include="..\script.c" />
+    <ClCompile Include="..\sound.c" />
+    <ClCompile Include="..\text.c" />
+    <ClCompile Include="..\ui.c" />
+    <ClCompile Include="..\uibattle.c" />
+    <ClCompile Include="..\uigame.c" />
+    <ClCompile Include="..\util.c" />
+    <ClCompile Include="..\video.c" />
+    <ClCompile Include="..\yj1.c" />
+    <ClCompile Include="..\adplug\binfile.cpp" />
+    <ClCompile Include="..\adplug\binio.cpp" />
+    <ClCompile Include="..\adplug\dosbox_opl.cpp" />
+    <ClCompile Include="..\adplug\emuopl.cpp" />
+    <ClCompile Include="..\adplug\fmopl.c" />
+    <ClCompile Include="..\adplug\fprovide.cpp" />
+    <ClCompile Include="..\adplug\player.cpp" />
+    <ClCompile Include="..\adplug\rix.cpp" />
+    <ClCompile Include="..\adplug\surroundopl.cpp" />
+    <ClCompile Include="..\native_midi\native_midi_common.c" />
+    <ClCompile Include="..\native_midi\native_midi_win32.c" />
+    <ClCompile Include="..\libmad\bit.c" />
+    <ClCompile Include="..\libmad\decoder.c" />
+    <ClCompile Include="..\libmad\fixed.c" />
+    <ClCompile Include="..\libmad\frame.c" />
+    <ClCompile Include="..\libmad\huffman.c" />
+    <ClCompile Include="..\libmad\layer12.c" />
+    <ClCompile Include="..\libmad\layer3.c" />
+    <ClCompile Include="..\libmad\music_mad.c" />
+    <ClCompile Include="..\libmad\stream.c" />
+    <ClCompile Include="..\libmad\synth.c" />
+    <ClCompile Include="..\libmad\timer.c" />
+    <ClCompile Include="win32.cpp" />
+    <ClCompile Include="..\tests\test_swprintf.cpp">
+      <Filter>tests</Filter>
+    </ClCompile>
+    <ClCompile Include="..\tests\testmain.cpp">
+      <Filter>tests</Filter>
+    </ClCompile>
+    <ClCompile Include="..\3rd\googletest\googletest\src\gtest-all.cc">
+      <Filter>dep</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\adplug\adlibemu.h" />
+    <ClInclude Include="..\adplug\dbemuopl.h" />
+    <ClInclude Include="..\adplug\dbopl.h" />
+    <ClInclude Include="..\adplug\kemuopl.h" />
+    <ClInclude Include="..\ascii.h" />
+    <ClInclude Include="..\battle.h" />
+    <ClInclude Include="..\codepage.h" />
+    <ClInclude Include="..\common.h" />
+    <ClInclude Include="..\liboggvorbis\include\ogg\config_types.h" />
+    <ClInclude Include="..\ending.h" />
+    <ClInclude Include="..\fight.h" />
+    <ClInclude Include="..\font.h" />
+    <ClInclude Include="..\fontglyph.h" />
+    <ClInclude Include="..\game.h" />
+    <ClInclude Include="..\global.h" />
+    <ClInclude Include="..\input.h" />
+    <ClInclude Include="..\itemmenu.h" />
+    <ClInclude Include="..\liboggvorbis\include\ogg\ogg.h" />
+    <ClInclude Include="..\liboggvorbis\include\ogg\os_types.h" />
+    <ClInclude Include="..\liboggvorbis\include\vorbis\codec.h" />
+    <ClInclude Include="..\liboggvorbis\include\vorbis\vorbisenc.h" />
+    <ClInclude Include="..\liboggvorbis\include\vorbis\vorbisfile.h" />
+    <ClInclude Include="..\liboggvorbis\src\backends.h" />
+    <ClInclude Include="..\liboggvorbis\src\bitrate.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\coupled\res_books_51.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\coupled\res_books_stereo.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\floor\floor_books.h" />
+    <ClInclude Include="..\liboggvorbis\src\books\uncoupled\res_books_uncoupled.h" />
+    <ClInclude Include="..\liboggvorbis\src\codebook.h" />
+    <ClInclude Include="..\liboggvorbis\src\codec_internal.h" />
+    <ClInclude Include="..\liboggvorbis\src\envelope.h" />
+    <ClInclude Include="..\liboggvorbis\src\highlevel.h" />
+    <ClInclude Include="..\liboggvorbis\src\lookup.h" />
+    <ClInclude Include="..\liboggvorbis\src\lookup_data.h" />
+    <ClInclude Include="..\liboggvorbis\src\lpc.h" />
+    <ClInclude Include="..\liboggvorbis\src\lsp.h" />
+    <ClInclude Include="..\liboggvorbis\src\masking.h" />
+    <ClInclude Include="..\liboggvorbis\src\mdct.h" />
+    <ClInclude Include="..\liboggvorbis\src\misc.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\floor_all.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_11.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_16.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_44.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\psych_8.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_16.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_44.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_44p51.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_44u.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\residue_8.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_11.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_16.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_22.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_32.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_44.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_44p51.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_44u.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_8.h" />
+    <ClInclude Include="..\liboggvorbis\src\modes\setup_X.h" />
+    <ClInclude Include="..\liboggvorbis\src\os.h" />
+    <ClInclude Include="..\liboggvorbis\src\psy.h" />
+    <ClInclude Include="..\liboggvorbis\src\registry.h" />
+    <ClInclude Include="..\liboggvorbis\src\scales.h" />
+    <ClInclude Include="..\liboggvorbis\src\smallft.h" />
+    <ClInclude Include="..\liboggvorbis\src\window.h" />
+    <ClInclude Include="..\magicmenu.h" />
+    <ClInclude Include="..\main.h" />
+    <ClInclude Include="..\map.h" />
+    <ClInclude Include="..\midi.h" />
+    <ClInclude Include="..\palcfg.h" />
+    <ClInclude Include="..\palcommon.h" />
+    <ClInclude Include="..\palette.h" />
+    <ClInclude Include="..\play.h" />
+    <ClInclude Include="..\res.h" />
+    <ClInclude Include="..\resampler.h" />
+    <ClInclude Include="..\players.h" />
+    <ClInclude Include="..\rngplay.h" />
+    <ClInclude Include="..\scene.h" />
+    <ClInclude Include="..\script.h" />
+    <ClInclude Include="..\audio.h" />
+    <ClInclude Include="..\text.h" />
+    <ClInclude Include="..\ui.h" />
+    <ClInclude Include="..\uibattle.h" />
+    <ClInclude Include="..\uigame.h" />
+    <ClInclude Include="..\util.h" />
+    <ClInclude Include="..\video.h" />
+    <ClInclude Include="..\adplug\binfile.h" />
+    <ClInclude Include="..\adplug\binio.h" />
+    <ClInclude Include="..\adplug\demuopl.h" />
+    <ClInclude Include="..\adplug\dosbox_opl.h" />
+    <ClInclude Include="..\adplug\emuopl.h" />
+    <ClInclude Include="..\adplug\fmopl.h" />
+    <ClInclude Include="..\adplug\fprovide.h" />
+    <ClInclude Include="..\adplug\opl.h" />
+    <ClInclude Include="..\adplug\player.h" />
+    <ClInclude Include="..\adplug\rix.h" />
+    <ClInclude Include="..\adplug\surroundopl.h" />
+    <ClInclude Include="..\native_midi\native_midi.h" />
+    <ClInclude Include="..\native_midi\native_midi_common.h" />
+    <ClInclude Include="..\libmad\bit.h" />
+    <ClInclude Include="..\libmad\decoder.h" />
+    <ClInclude Include="..\libmad\fixed.h" />
+    <ClInclude Include="..\libmad\frame.h" />
+    <ClInclude Include="..\libmad\huffman.h" />
+    <ClInclude Include="..\libmad\layer12.h" />
+    <ClInclude Include="..\libmad\layer3.h" />
+    <ClInclude Include="..\libmad\libmad_config.h" />
+    <ClInclude Include="..\libmad\libmad_global.h" />
+    <ClInclude Include="..\libmad\mad.h" />
+    <ClInclude Include="..\libmad\music_mad.h" />
+    <ClInclude Include="..\libmad\stream.h" />
+    <ClInclude Include="..\libmad\synth.h" />
+    <ClInclude Include="..\libmad\timer.h" />
+    <ClInclude Include="pal_config.h" />
+    <ClInclude Include="resource.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="sdlpal.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\libmad\D.dat" />
+    <None Include="..\libmad\imdct_s.dat" />
+    <None Include="..\libmad\qc_table.dat" />
+    <None Include="..\libmad\rq_table.dat" />
+    <None Include="..\libmad\sf_table.dat" />
+    <None Include="..\sdlpal.cfg.example" />
+    <None Include="..\sdlpal.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <Text Include="..\AUTHORS.txt" />
+    <Text Include="..\README.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <Filter Include="tests">
+      <UniqueIdentifier>{f38de1a7-1c02-4f23-90b8-cd74df075cab}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="dep">
+      <UniqueIdentifier>{7d80fa68-7d55-4187-bdc9-be9ab8f941e3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="etc">
+      <UniqueIdentifier>{1048a88c-c23f-4c69-923a-6f938c2010af}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+</Project>

+ 17 - 2
win32/sdlpal.sln

@@ -1,10 +1,17 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25123.0
+# Visual Studio 15
+VisualStudioVersion = 15.0.26206.0
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdlpal", "sdlpal.vcxproj", "{837BDF47-9375-4C30-866B-07E262E94A01}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdlpal-test", "sdlpal-test.vcxproj", "{FF96772A-FC17-4B67-B770-F4E09DECC15A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B521C9E7-57F0-46B4-B6AC-34A898C79E1E}"
+	ProjectSection(SolutionItems) = preProject
+		sdlpal.gta.runsettings = sdlpal.gta.runsettings
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
@@ -21,6 +28,14 @@ Global
 		{837BDF47-9375-4C30-866B-07E262E94A01}.Release|Win32.Build.0 = Release|Win32
 		{837BDF47-9375-4C30-866B-07E262E94A01}.Release|x64.ActiveCfg = Release|x64
 		{837BDF47-9375-4C30-866B-07E262E94A01}.Release|x64.Build.0 = Release|x64
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Debug|Win32.Build.0 = Debug|Win32
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Debug|x64.ActiveCfg = Debug|x64
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Debug|x64.Build.0 = Debug|x64
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Release|Win32.ActiveCfg = Release|Win32
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Release|Win32.Build.0 = Release|Win32
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Release|x64.ActiveCfg = Release|x64
+		{FF96772A-FC17-4B67-B770-F4E09DECC15A}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 2 - 1
win32/sdlpal.vcxproj

@@ -21,12 +21,13 @@
   <PropertyGroup Label="Globals">
     <ProjectGuid>{837BDF47-9375-4C30-866B-07E262E94A01}</ProjectGuid>
     <RootNamespace>sdlpal</RootNamespace>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <UseOfMfc>false</UseOfMfc>
-    <PlatformToolset>v120_xp</PlatformToolset>
+    <PlatformToolset>v140_xp</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>