topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Thursday March 28, 2024, 5:29 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: Beta: fSekrit 1.40 needs some abuse!  (Read 40678 times)

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #25 on: November 16, 2009, 06:32 AM »
I'm still using MSVS2005 which has the option (enabled by default) Make Win98 compatable exe. So MSVS2008 calls it something else (and disables it ('bout time really)) ... or am I totally of base.
Is it "Make Win98 compatible", or is it the linker/optimization setting called "Optimize for Win98"? The latter just sets FileAlign to 4096 bytes instead of the (depending on linker version) default of 512.
- carpe noctem

Stoic Joker

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 6,646
    • View Profile
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #26 on: November 16, 2009, 06:58 AM »
Did you peek ... or are you just better at working from memory than I am (hehe).

Yes, it was the linker option I ws thinking of ... So I was totally off base.

I gota remember not to post ramblings pre-coffee.

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #27 on: November 16, 2009, 02:52 PM »
It was guessing from memory, then hunting around VS2008 looking for a "Make win98 compatible" option :)

PS: PM with link to special test version :)
- carpe noctem

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #28 on: November 23, 2009, 06:56 AM »
Beta-4 added, recognizing hyperlinks.

There's basically two things I'd like to fix in 1.40 before making it final: first is making read-only behavior sane, because it clearly isn't right now. Second is fixing Win9x/NT4 problems, which might require building release versions with an older compiler...
- carpe noctem

Stoic Joker

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 6,646
    • View Profile
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #29 on: November 23, 2009, 09:27 AM »
Second is fixing Win9x/NT4 problems, which might require building release versions with an older compiler...
Granted I could be nutz (and I haven't had time to check), but I really do thing that can be handled with a version check that sends 9x/NT to the older (deprecated) function/version of the structure. I know I ran into it before (on a project I've since lost) and decided to drop support for the legacy stuff so I wouldn't have to retrace a ver var through the whole app.

I really don't see how the compiler is going to help with a (missing style) request being made to comdlgs.dll

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #30 on: November 23, 2009, 12:20 PM »
Stoic Joker: I dunno if it's "just" a problem like that, though - I'll have to figure out what the last NT4/Win9x working version of fSekrit is, and look at which changes have been made... I don't think there's been big changes to the APIs I use, but the compiler has been upgraded a few times, and that is at least part of the reason for failing (setting newer subsystem version and some other info).
- carpe noctem

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #31 on: November 23, 2009, 04:49 PM »
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.
- carpe noctem
« Last Edit: November 23, 2009, 05:41 PM by f0dder »

Stoic Joker

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 6,646
    • View Profile
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #32 on: November 23, 2009, 05:33 PM »
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.
Damn, I knew there was a reason I never got arround to upgrading. I've got a little networking widget that I use for getting a remote system to keep me up to date in its IP (Client/Server type thing) it (is GUI) was compiled with MSVS2005 (with latest service packs) and ran just fine on NT4 (it doesn't have file dialogs). My (connection stressing) ping utility (is CLI) also ran just fine on NT4.

I don't recall ever using anything but the default subsystem ver (not sure where to look for it)  so I can't comment on that. But, I did some polking arround in some old code samples and found what (i think) I remember being the issue with the 9x stuff.

This is from antique (16bit) project: of.Flags  = OFN_HIDEREADONLY|OFN_FILEMUSTEXIST;
This is the retro standard open file flags selection (from the MS MultiPad.c code demo).

This is from current project: ofn.Flags = OFN_EXPLORER|OFN_ENABLEHOOK|OFN_DONTADDTORECENT;
The 3 common options used above, will confuse the crap out of the legacy OSs

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #33 on: November 23, 2009, 05:45 PM »
(See edit to previous post).

I've used the following since 1.3, which worked fine on Win9x and NT4:
ofn.Flags = OFN_CREATEPROMPT | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_NOCHANGEDIR;

You can't set subsystem version in linker options in the IDE as far as I can tell, so it has to be done commandline with EDITBIN - pretty lame they put limitations on what you can put there, but you can either use a hex editor or grab an EDITBIN from an older VS.

I did a little Googling on vs2008+win9x, seems like it's official that vs2005 is the last version with Win9x support (didn't find an official MS statement on it, but whatever :)).
- carpe noctem

Stoic Joker

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 6,646
    • View Profile
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #34 on: November 23, 2009, 06:38 PM »
but you can either use a hex editor or grab an EDITBIN from an older VS.
I can send you my 05 if you like.

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #35 on: November 23, 2009, 06:53 PM »
but you can either use a hex editor or grab an EDITBIN from an older VS.
I can send you my 05 if you like.
Thanks, but no need - I had an older version lying around myself :)
- carpe noctem

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #36 on: November 24, 2009, 05:50 PM »
There, NT4 and Win9x support should be back again, and the way to make notes Read-only should be sane.

I ended settling for vc2003toolkit and the win2003-server edition of PlatformSDK for release builds, built through SCons scripts, and using Visual Studio 2008 (and IDE for building) while developing. This also trims some ~11kb off the executable size because of vc2003's smaller libc overhead :)

It's probably a good idea to give this beta version a thorough bashing (I'm going to get at it myself with a few different physical and virtual windows versions), since the toolchain has been radically changed. The shouldn't cause problems, but better safe than sorry.

If no bugs are found, this should be the final beta before 1.40 is declared final and (hopefully :)) stable.

While I find that fSekrit is pretty much feature-complete for what it was intended to be, there's still a few more things I want to add to the project; but those require internal structure changes and source code cleanups... I'm pondering whether I should make fSekrit open-source after doing those fixes, or wait until I've implemented those last few ideas I have. Any suggestions? :)
- carpe noctem

f0dder

  • Moderator
  • Joined in 2005
  • *****
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Beta: fSekrit 1.40 needs some abuse!
« Reply #37 on: December 03, 2009, 03:32 PM »
Version 1.40 has been released, enjoy - further discussion can take place in that thread.
- carpe noctem