OK, finally got around to installing Win98 and NT4 virtual machines... took a while to hunt down NT4-SP6a and IE6, but at least now I can do some testing. VS2008 EDITBIN.EXE won't let me set a subsystem version lower than 5.0, so I have to use a hexeditor to do that, joy joy.
I can reproduce your findings, Stoic Joker
: works on NT4 (except for the save/open dialog boxes), and starts (but hangs somewhere) on win98. Exciting. I did a couple of tests, and the last version that works on Win98 is 1.3. Version 1.35 has the wrong osversion and hangs when hacked... so let's see what changed from 1.3 to 1.35. My guess is upgrading visual studio EDIT
: yup, seems to be a combination of upgrading Visual Studio and the PlatformSDK... the PSDK needed WINVER, _WIN32_WINDOWS and _WIN32_WINNT defined to 4.0 (probably the WINNT define that's most important, wouldn't be surprised if recent PSDK versions disregard the Win9x symbols entirely), and along with setting osversion stuff now seems to work on NT4 again.
Win9x is another story, and this is where the VS2008 upgrade comes in... Win98 gets stuck in some weird GetModuleHandleW
/test-for-zero/Sleep(4000) loop, which must be from the libc startup routines. So, to get Win9x support back, I'll have to build with something else... I'm not going to have VS2005 and VS2008 side-by-side, but thankfully I still have a version of the vc2003toolkit before Microsoft pulled it offline (foo! shame on you!), which I could integrate with the SCons build scripts... I know that it's libc runtime works with Win9x, so as long as it plays nicely with the more up-to-date PSDK, it should work out in the end.
But one thing is for sure: for other projects than fSekrit, I doubt I'll support anything older than Windows 2000.