Blzut3's Weblog

Weblog ECWolf ECWolf Wiki

The road to modern C++ 2016-02-29 02:08:12

A few weeks ago ZDoom 2.8 was released. The release was prompted by both the desire to merge Randi's scripting work, the wall portals submission, as well as general interest in making linked portals work. In other words the code base is going through major changes going forward so it made sense to cut a release. With it we have finally decided that it was time to move onto using C++11/14.

Both ZDoom and ECWolf have been using Visual Studio 2005 as the primary compiler for Windows. There were a few reasons for this but much of it was because newer versions of Visual Studio dropped support for newer operating systems. So far, throughout the life of the ZDoom project, the only platforms that we have dropped was Windows 95 and DOS (DOS support went away fairly early on). Even though VS2005 doesn't officially support targeting 95, ZDoom had a hack for awhile to make it work, but support broke for unrelated reasons that went unnoticed for a long time. Some people have been pretty critical of the fact that Windows 9x was still a supported platform, but, besides offering a better user experience, one of the advantage of rolling our own platform abstraction layer with native back ends is that there was never really any pressing reason to drop support for the old platforms. The DirectDraw code works just as well now as it did back then with little maintenance needed, so for the most part the only difference supporting 9x makes is that a few more Windows API calls need to be made optional by resolving the symbols at run time. A task which thanks to C++ templates can be made fairly unobtrusive and with C++11 can be made nearly transparent. (Vista also expanded the Win32 API significantly enough that we have a few cases where this needs to be done for XP as well.)

Times do eventually change though for even the most stubborn people. FMOD Ex unintentionally dropped compatibility for pre-XP systems (asked about it in an email and Firelight wasn't really aware that they dropped the platforms when they switched to using the VS2010 compilers) and it has been deprecated in favor of FMOD Studio. Even though ZDoom does have the ability to be compiled with OpenAL now, FMOD remains the only first class sound back end so our days of being able to use the preferred middleware and continue to run on the older operating systems is drawing to a close. To put it another way, it is only know that supporting old operating system is actually becoming a problem for us.

The question that I'm trying to answer here is "what does this mean for ECWolf?" Obviously I want to continue to share code with ZDoom so this does mean that ECWolf will need to make the jump as well. Windows 98 machines are more common in the Wolf3D community due to compatibility with DOS mods, but it is clear that keeping 9x as a first class citizen is going to be a problem going forward. Thus ECWolf 1.4.x will be the last series to do so and starting with 1.5 a C++11/14 compiler will be required.

Of course this doesn't spell the end of either ECWolf nor ZDoom on these older platforms. It is possible to compile C++14 programs for them using MinGW (vanilla MinGW as mingw-w64 requires XP or later as well), and so I will at least be providing a version of ECWolf for legacy systems until further notice. This actually is something I was debating doing regardless for awhile now as 32-bit users could benefit from SDL2 regardless, but this makes the decision easier. There are multiple factors on if ZDoom will as well that I can't predict right now, but it will possible for some time to roll 9x compatible binaries with a properly configured compiler. One thing is for sure though, due to some quirks with MinGW these binaries will not be able to provide nearly the same experience as the VS ones (delay loaded libraries and exception interoperability being notable missing features).

For the two people still using PowerPC Macs, I don't believe there's anything to worry about. GCC 5.3 seems to work just fine on them so I believe I can still provide binaries. There are some quirks with using a new compiler such as structures getting extra padding on the ends which breaks some file IO code that utilizes commonly exploited undefined behavior as well as a bug with C++ exceptions in Objective-C++ code (it's in the GCC bug tracker, but don't have a link on hand). These are fairly trivial issues to work around though. For ZDoom, however, providing binaries will depend on how long FMOD Ex is supported in ZDoom. Once that is dropped then PowerPC ZDoom binaries will only be available through unofficial channels thanks to OpenAL. (On a related note to pre-XP being dropped in FMOD Ex, I think G3 processor support got dropped accidentally in the 4.24 series as the fact that Apple's gcc-4.2 forces targeting the G4 or later is not well documented. Of course compiling your own GCC allows you to target the G3.)

S3DNA, Blake Stone, and Rise of the Triad in one bundle?! 2015-12-10 04:51:23

This is a historic moment for me. Piko Interactive got Super 3D Noah's Ark in a bundle with Blake Stone and Rise of the Triad. Get it all for $4.99 while time lasts!

For those who started thinking I was dead, full time jobs do a good time at sucking away time. An issue only made worse by relocating at the same time. I'm definitely still around and motivated to work on my various projects as time allows. I have done some experiments with ECWolf which need some cleaning up to be merged. I do appreciate the messages of concern though.

ECWolf 1.3.2 released 2015-06-19 06:47:21

As announced in the previous posting, ECWolf 1.3.2 is released technically the revision that got tagged as 1.3.2 was made a few minutes after midnight, but whatever I'll call it the 18th any how. :P

Here's the changelog for this version:

Discuss on the forum

Server migration complete + announcements 2015-05-29 03:49:21

So some of you have expressed some concern with this site going down temporarily and with the ECWolf Wiki being offline for a little while longer than that. I'm certainly happy to see that people are actually reading the wiki. This website is hosted by MancuNET and their primary server was compromised. Manc forgot that I was using PostgreSQL and didn't migrate the wiki's database. Fortunately the host was willing to put the old server back online for a moment and everything is recovered and up and running. So yes, everything is OK with me, but thanks for asking.

With that out of the way I do have an update to post. Super 3D Noah's Ark got greenlit a few weeks ago and is now approved for release. It will launch on Steam June 23rd. You don't need to wait until then to pick up a copy as Steam keys will be provided with purchases past and future. (It actually is a better deal for me if you purchase through It's launching with some basic Steam integration, so June 18th (original launch date before delay) will also mark the release of ECWolf 1.3.2 which is primarily a bug fix release. However, the 64-bit Windows build will switch to SDL 2.0, with 32-bit still using 1.2 for compatibility with Windows 98.

On the Mac Wolfenstein front, I still haven't figured out where I'm going to be in the near future (I just graduated from college by the way) so I haven't been heavily looking into replacing my classic Mac. I'm happy to see that people are getting very excited about the feature though, but it will be a little while before it's truly playable still.

Update June 4th: Someone listed some PowerMacs on Craigslist for a good price right as I posted this. Picked them up yesterday, so I now have a PowerMac G4 1.25GHz DP with a GeForce 4 Ti4600 and 2GB of RAM (for people that don't follow Mac hardware, I'm pretty sure this is the fastest OS9 Mac out there without third party upgrades). The other two in the picture are 1.42GHz DPs which are not able to run OS9.

I'll finally be able to test that programs actually run on OS X 10.4 as well!

Update June 11th: Valve advised us to release on the 23rd instead, so the Steam launch has been delayed.

« 1 2 3 4 5 6 721 22 »


© 2004-2023 Braden "Blzut3" Obrzut