diff --git a/.gitignore b/.gitignore index 24a6882d..da71e968 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,11 @@ vs2003/Debug vs2003/Release vs2003/Debug (Japanese) vs2003/Release (Japanese) + +# Exclude Visual Studio 2017 files +vs2017/Debug +vs2017/Release +vs2017/Debug (Japanese) +vs2017/Release (Japanese) +vs2017/x64 +vs2017/.vs diff --git a/README.md b/README.md index d4a0735a..0deadb9f 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,10 @@ Of course, project files for Visual Studio .NET 2003 are available, and can be f Visual Studio .NET 2003 was used by Pixel to create the original `Doukutsu.exe`, so these project files allow us to check the accuracy of the decompilation by comparing the generated assembly code to that of the original executable. The tool for this can be found in the 'devilution' folder. +### Visual Studio 2017 (and later) + +Project files for Visual Studio 2017 can be found in the 'vs2017' folder. + ### Makefile (MinGW-w64) Run 'make' in this folder, preferably with some of the following settings: diff --git a/src/Input.cpp b/src/Input.cpp index c229c58b..bcbff426 100644 --- a/src/Input.cpp +++ b/src/Input.cpp @@ -4,7 +4,11 @@ #include #include +#if defined(_MSC_VER) && _MSC_VER >= 1500 // Newer versions of Visual Studio don't support anything earlier than DirectInput8 +#define DIRECTINPUT_VERSION 0x800 +#else #define DIRECTINPUT_VERSION 0x500 +#endif #include #include "WindowsWrapper.h" @@ -58,7 +62,11 @@ BOOL __stdcall EnumDevices_Callback(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRef); BOOL InitDirectInput(HINSTANCE hinst, HWND hWnd) { +#if defined(_MSC_VER) && _MSC_VER >= 1500 + if (DirectInput8Create(hinst, DIRECTINPUT_VERSION, IID_IDirectInput8A, (LPVOID*)&lpDI, NULL) != DI_OK) +#else if (DirectInputCreateA(hinst, DIRECTINPUT_VERSION, &lpDI, NULL) != DI_OK) +#endif return FALSE; if (!HookAllDirectInputDevices(hWnd)) diff --git a/vs2017/CSE2.sln b/vs2017/CSE2.sln new file mode 100644 index 00000000..c9903498 --- /dev/null +++ b/vs2017/CSE2.sln @@ -0,0 +1,30 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.779 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cave Story Engine 2", "CSE2.vcxproj", "{6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug (Japanese)|x86 = Debug (Japanese)|x86 + Debug|x86 = Debug|x86 + Release (Japanese)|x86 = Release (Japanese)|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Debug (Japanese)|x86.ActiveCfg = Debug (Japanese)|Win32 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Debug (Japanese)|x86.Build.0 = Debug (Japanese)|Win32 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Debug|x86.ActiveCfg = Debug|Win32 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Debug|x86.Build.0 = Debug|Win32 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Release (Japanese)|x86.ActiveCfg = Release (Japanese)|Win32 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Release (Japanese)|x86.Build.0 = Release (Japanese)|Win32 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Release|x86.ActiveCfg = Release|Win32 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5B768CDF-DE61-4270-8E55-EE32983245CD} + EndGlobalSection +EndGlobal diff --git a/vs2017/CSE2.vcxproj b/vs2017/CSE2.vcxproj new file mode 100644 index 00000000..17f5b6b0 --- /dev/null +++ b/vs2017/CSE2.vcxproj @@ -0,0 +1,380 @@ + + + + + Debug (Japanese) + Win32 + + + Debug + Win32 + + + Release (Japanese) + Win32 + + + Release + Win32 + + + + Cave Story Engine 2 + {6B8CC57F-5656-4C4B-8FCB-B0C326FCB4D4} + CSE2 + ManagedCProj + + + + Application + v141 + MultiByte + false + + + Application + v141 + MultiByte + false + + + Application + v141 + MultiByte + false + + + Application + v141 + MultiByte + false + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>15.0.28307.799 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + + Disabled + WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;%(PreprocessorDefinitions) + true + Default + MultiThreadedDebug + + Level3 + ProgramDatabase + + + ddraw.lib;dinput8.lib;dsound.lib;Version.lib;ShLwApi.Lib;Imm32.lib;WinMM.lib;dxguid.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).exe + LIBC;%(IgnoreSpecificDefaultLibraries) + true + true + Windows + + + + + Disabled + WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;%(PreprocessorDefinitions) + true + MultiThreaded + + Level3 + ProgramDatabase + + + ddraw.lib;dinput8.lib;dsound.lib;Version.lib;ShLwApi.Lib;Imm32.lib;WinMM.lib;dxguid.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).exe + false + LIBC;%(IgnoreSpecificDefaultLibraries) + true + Windows + + + + + Disabled + WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;JAPANESE;%(PreprocessorDefinitions) + true + MultiThreaded + + Level3 + ProgramDatabase + + + ddraw.lib;dinput8.lib;dsound.lib;Version.lib;ShLwApi.Lib;Imm32.lib;WinMM.lib;dxguid.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).exe + false + LIBC;%(IgnoreSpecificDefaultLibraries) + true + Windows + + + + + Disabled + WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;JAPANESE;%(PreprocessorDefinitions) + true + Default + MultiThreadedDebug + + Level3 + ProgramDatabase + + + ddraw.lib;dinput8.lib;dsound.lib;Version.lib;ShLwApi.Lib;Imm32.lib;WinMM.lib;dxguid.lib;%(AdditionalDependencies) + $(OutDir)$(ProjectName).exe + LIBC;%(IgnoreSpecificDefaultLibraries) + true + true + Windows + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0x0411 + 0x0411 + 0x0411 + 0x0411 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vs2017/CSE2.vcxproj.filters b/vs2017/CSE2.vcxproj.filters new file mode 100644 index 00000000..cf3a56ba --- /dev/null +++ b/vs2017/CSE2.vcxproj.filters @@ -0,0 +1,624 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {e3ddc3b2-53c8-437b-9bbd-2cf890dce515} + + + {e59cab1f-6e61-4e3c-9b62-66e2139ee067} + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + {d3050ffa-0164-47af-ad15-595b6259cebc} + + + {4f28c353-f3e2-4895-8941-90ade1525853} + + + {32f06e34-3c82-435a-9c83-468da6521995} + + + {5caa2b1b-5219-4227-822a-56f2cf394a12} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\NPC + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + Source Files\Boss + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Resource Files + + + Resource Files + + + + + Resource Files + + + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Bitmap + + + Resource Files\Icon + + + Resource Files\Icon + + + + + Resource Files\Cursor + + + Resource Files\Cursor + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + Resource Files\Organya + + + \ No newline at end of file