From e7fa163d0e617e17bb9c424d4f4a1f8d9818f3b5 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Tue, 20 Sep 2016 07:27:25 +0300 Subject: [PATCH] build mikmod and the music code on windows --- dosdemo.sln | 10 +++ dosdemo.vcxproj | 9 +-- dosdemo.vcxproj.filters | 3 + libs/mikmod/config.h | 12 ++-- libs/mikmod/include/mikmod.h | 4 ++ libs/mikmod/loaders/load_mod.c | 2 +- libs/mikmod/mikmod.vcxproj | 120 +++++++++++++++++++++++++++++++ libs/mikmod/mikmod.vcxproj.filters | 137 ++++++++++++++++++++++++++++++++++++ libs/mikmod/playercode/mlutil.c | 6 +- libs/mikmod/playercode/virtch.c | 2 +- libs/mikmod/playercode/virtch2.c | 2 +- 11 files changed, 292 insertions(+), 15 deletions(-) create mode 100644 libs/mikmod/mikmod.vcxproj create mode 100644 libs/mikmod/mikmod.vcxproj.filters diff --git a/dosdemo.sln b/dosdemo.sln index e1f1692..5d53990 100644 --- a/dosdemo.sln +++ b/dosdemo.sln @@ -4,9 +4,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dosdemo", "dosdemo.vcxproj", "{15AB3B8C-B8BE-42ED-9DBC-EAE9C8FB9B9F}" + ProjectSection(ProjectDependencies) = postProject + {5DDB5403-A105-470E-882B-4276EFDDAAB0} = {5DDB5403-A105-470E-882B-4276EFDDAAB0} + {A5835F2B-734E-4730-8D0B-6288CDA4F73C} = {A5835F2B-734E-4730-8D0B-6288CDA4F73C} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imago", "libs\imago\imago.vcxproj", "{5DDB5403-A105-470E-882B-4276EFDDAAB0}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mikmod", "libs\mikmod\mikmod.vcxproj", "{A5835F2B-734E-4730-8D0B-6288CDA4F73C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -21,6 +27,10 @@ Global {5DDB5403-A105-470E-882B-4276EFDDAAB0}.Debug|Win32.Build.0 = Debug|Win32 {5DDB5403-A105-470E-882B-4276EFDDAAB0}.Release|Win32.ActiveCfg = Release|Win32 {5DDB5403-A105-470E-882B-4276EFDDAAB0}.Release|Win32.Build.0 = Release|Win32 + {A5835F2B-734E-4730-8D0B-6288CDA4F73C}.Debug|Win32.ActiveCfg = Debug|Win32 + {A5835F2B-734E-4730-8D0B-6288CDA4F73C}.Debug|Win32.Build.0 = Debug|Win32 + {A5835F2B-734E-4730-8D0B-6288CDA4F73C}.Release|Win32.ActiveCfg = Release|Win32 + {A5835F2B-734E-4730-8D0B-6288CDA4F73C}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/dosdemo.vcxproj b/dosdemo.vcxproj index b1bb483..ce9de26 100644 --- a/dosdemo.vcxproj +++ b/dosdemo.vcxproj @@ -52,13 +52,13 @@ Level3 Disabled WIN32;_USE_MATH_DEFINES;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - $(ProjectDir)\src;$(ProjectDir)\src\sdl;$(ProjectDir)\libs\imago\src;%(AdditionalIncludeDirectories) + $(ProjectDir)\src;$(ProjectDir)\src\sdl;$(ProjectDir)\libs\imago\src;$(ProjectDir)\libs\mikmod\include;%(AdditionalIncludeDirectories) 4996;4244 Console true - SDL.lib;SDLmain.lib;imago.lib;%(AdditionalDependencies) + SDL.lib;SDLmain.lib;imago.lib;mikmod.lib;%(AdditionalDependencies) $(IntDir);%(AdditionalLibraryDirectories) @@ -71,7 +71,7 @@ true true WIN32;_USE_MATH_DEFINES;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - $(ProjectDir)\src;$(ProjectDir)\src\sdl;$(ProjectDir)\libs\imago\src;%(AdditionalIncludeDirectories) + $(ProjectDir)\src;$(ProjectDir)\src\sdl;$(ProjectDir)\libs\imago\src;$(ProjectDir)\libs\mikmod\include;%(AdditionalIncludeDirectories) 4996;4244 @@ -79,7 +79,7 @@ true true true - SDL.lib;SDLmain.lib;imago.lib;%(AdditionalDependencies) + SDL.lib;SDLmain.lib;imago.lib;mikmod.lib;%(AdditionalDependencies) $(IntDir);%(AdditionalLibraryDirectories) @@ -94,6 +94,7 @@ + diff --git a/dosdemo.vcxproj.filters b/dosdemo.vcxproj.filters index fd7403d..af78c9e 100644 --- a/dosdemo.vcxproj.filters +++ b/dosdemo.vcxproj.filters @@ -46,6 +46,9 @@ src + + src\sdl + diff --git a/libs/mikmod/config.h b/libs/mikmod/config.h index 92683f5..24caf3c 100644 --- a/libs/mikmod/config.h +++ b/libs/mikmod/config.h @@ -1,9 +1,7 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - #define HAVE_LIMITS_H 1 #define HAVE_MEMCMP 1 #define HAVE_STDLIB_H 1 -#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 #define HAVE_STRSTR 1 #ifdef DOS @@ -39,8 +37,12 @@ #if defined(WIN32) +#define DRV_SDL 1 + #define HAVE_WINDOWS_H 1 #define HAVE_MALLOC_H 1 + +#define NO_SDL_CONFIG 1 #endif #undef MIKMOD_DEBUG @@ -80,6 +82,6 @@ /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline +#if !defined(__cplusplus) && defined(_MSC_VER) +#define inline __inline #endif diff --git a/libs/mikmod/include/mikmod.h b/libs/mikmod/include/mikmod.h index 6bfe938..536a0d8 100644 --- a/libs/mikmod/include/mikmod.h +++ b/libs/mikmod/include/mikmod.h @@ -34,6 +34,10 @@ extern "C" { #endif +#ifndef MIKMOD_STATIC +#define MIKMOD_STATIC +#endif + /* * ========== Compiler magic for shared libraries * diff --git a/libs/mikmod/loaders/load_mod.c b/libs/mikmod/loaders/load_mod.c index 6fffac0..55bc04c 100644 --- a/libs/mikmod/loaders/load_mod.c +++ b/libs/mikmod/loaders/load_mod.c @@ -348,7 +348,7 @@ static BOOL ML_LoadPatterns(void) /* Generic module pattern */ for (t = 0; t < of.numpat; t++) { /* Load the pattern into the temp buffer and convert it */ - for (s = 0; s < (64U * of.numchn); s++) { + for (s = 0; s < (int)(64U * of.numchn); s++) { patbuf[s].a = _mm_read_UBYTE(modreader); patbuf[s].b = _mm_read_UBYTE(modreader); patbuf[s].c = _mm_read_UBYTE(modreader); diff --git a/libs/mikmod/mikmod.vcxproj b/libs/mikmod/mikmod.vcxproj new file mode 100644 index 0000000..9b23001 --- /dev/null +++ b/libs/mikmod/mikmod.vcxproj @@ -0,0 +1,120 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {A5835F2B-734E-4730-8D0B-6288CDA4F73C} + Win32Proj + mikmod + + + + StaticLibrary + true + v120 + MultiByte + + + StaticLibrary + false + v120 + false + MultiByte + + + + + + + + + + + + + + + + + Level3 + Disabled + WIN32;MIKMOD_BUILD;MIKMOD_STATIC;HAVE_CONFIG_H;_DEBUG;_LIB;%(PreprocessorDefinitions) + .;drivers;loaders;depackers;include;mmio;posix;playercode + 4244;4996 + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;MIKMOD_BUILD;MIKMOD_STATIC;HAVE_CONFIG_H;NDEBUG;_LIB;%(PreprocessorDefinitions) + .;drivers;loaders;depackers;include;mmio;posix;playercode + 4244;4996 + + + Windows + true + true + true + + + + + + \ No newline at end of file diff --git a/libs/mikmod/mikmod.vcxproj.filters b/libs/mikmod/mikmod.vcxproj.filters new file mode 100644 index 0000000..87465c5 --- /dev/null +++ b/libs/mikmod/mikmod.vcxproj.filters @@ -0,0 +1,137 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {017243a1-5836-429c-b07f-1c41ae84dab3} + + + {9502d697-4f36-483a-9cd4-9a622b9f972f} + + + {811f40e2-6099-4a33-8010-f8c7ded742c2} + + + {8d8d8423-0563-415b-be3f-132de39d20ab} + + + {6c502424-758a-4ba5-ad0f-16fe1d8b78b6} + + + {282937aa-35d1-403d-85ab-ae64b1eb0d5b} + + + + + drivers + + + drivers + + + drivers + + + drivers + + + drivers + + + drivers + + + loaders + + + loaders + + + loaders + + + loaders + + + depackers + + + depackers + + + depackers + + + depackers + + + mmio + + + mmio + + + mmio + + + posix + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + playercode + + + + + include + + + include + + + include + + + + \ No newline at end of file diff --git a/libs/mikmod/playercode/mlutil.c b/libs/mikmod/playercode/mlutil.c index 21dcb20..845721b 100644 --- a/libs/mikmod/playercode/mlutil.c +++ b/libs/mikmod/playercode/mlutil.c @@ -94,18 +94,18 @@ int speed_to_finetune(ULONG speed,int sample) int ctmp=0,tmp,note=1,ft=0; speed>>=1; - while((tmp=getfrequency(of.flags,getlinearperiod(note<<1,0)))speed) + while(tmp>(int)speed) tmp=getfrequency(of.flags,getlinearperiod(note<<1,--ft)); else { note--; - while(ctmp