AllenSeitz / dance-maniax-update

Automatically exported from code.google.com/p/dance-maniax-update
3 stars 0 forks source link

Build issues on newer Windows SDKs #2

Open FishamanP opened 3 years ago

FishamanP commented 3 years ago

The long and short of it is that a VS2010 build environment is incredibly difficult to set up on modern machines. Would it be possible for you to retarget a more recently supported Visual Studio version, or maybe more properly a more modern Windows SDK? There's so much I'd love to do with this project!

I'd be very interested in opening an email dialogue with you about DMX Update and its future.

AllenSeitz commented 3 years ago

Now that you've requested it, I'll do it! Thank you for your interest.

AllenSeitz commented 3 years ago

I've made some progress. It now compiles on VS 2019 with the latest Windows SDK.

However, it fails to link because apeg_r.lib (the video playback library) and libcurl.lib were both compiled against an older version of stdio.h that changes the definitions of stdout, stdin, and stderr.

https://docs.microsoft.com/en-us/cpp/porting/visual-cpp-change-history-2003-2015?redirectedfrom=MSDN&view=msvc-160#BK_CRT

Curl is a famous program and is still getting updates so I'm not too worried about rebuilding that one. However, apeg worries me. I can't find the source code to that one anywhere. (Searching for "Allegro APEG" turns up the links I originally used to obtain the project over 10 years ago, but they're dead now.) The workaround is to download MSVC10 and make a wrapper dll for it in that version, but that would be so much work.

AllenSeitz commented 3 years ago

Search for "If your project links with static libraries that were compiled with a release of Visual Studio earlier than 2015, the linker might report an unresolved external symbol." in the previous link.

FishamanP commented 3 years ago

The latest Windows SDK actually doesn't support building programs for Windows XP. It's required to use the v141_xp platform toolset, which makes use of the Windows SDK v7.1A and VS2017 compiler.

Given the issues you've cited with the v10 SDK, perhaps downgrading to this version has merit?

FishamanP commented 3 years ago

Looks like I've found a mirror of apeg's source? Dated right around the last version Google knows about.

https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/devel/libs/apeg/

AllenSeitz commented 3 years ago

Thank you for this!

I'm not afraid to drop XP support. My DMX machine runs either 7 or 10 now because why not. That said, I did try v141 for a minute and I ran into other problems. But I may give it a second look. I don't think it would solve my current linker though?

camprevail commented 3 years ago

We ran into too many issues trying to get it running on XP so I think we ended up with 7 or 10.

FishamanP commented 3 years ago

XP happens to give the fastest boot times, so I'm using that right now. Theoretically it should also have the best audio latency for DMX Update because DirectSound isn't a wrapper in XP, but I tried 7 and it felt the same. The main reason I was looking into building DMX Update was to upgrade the audio libraries to newer versions that support WASAPI or ASIO, which would make Windows 10 or 7 the best OS to use anyway.

SilentMystification commented 1 year ago

Was there every any progress made with this? I've been tempted to update this myself but don't want to duplicate work that has already been done!

FishamanP commented 1 year ago

I see the progress ongoing, and I want to show ongoing support! Many people are still passionate about this project. It would be nice to keep Windows XP support around, but if that's not reasonable, Windows 10 support will do. Windows 10 has reduced audio latency compared to Windows 8.1 and Windows 7, and new APIs became available to achieve even lower latency.

AllenSeitz commented 1 year ago

Windows 10 is what I'm developing on! So good news. And for now I'm keeping it as a 32 bit executable. So actually it should keep working on everything.

AllenSeitz commented 1 year ago

I'm sorry I'm on Windows 11. But I'm sure the current build will run on 10 too.