John P.
9th July 2004 16:57 UTC
How to ensure installer will work on Win98?
Hi.
I have a few installers which install some custom made textures into a game.
The installers work perfectly on WinXP.
The game in question does not officially support Win98(SE), only WinXP and Win2K.
So I thought everything would be OK with these installers.
But now it turns out that the game community have been able to "hack" the game so that it will play just fine on Win98, and that's when some problems started.
Because apparently, some of my installers won't work on Win98.
The weird thing to me is, that the most 'advanced' installer, where I use things like checking the registry to see if this and that file has already been installed, and write to and read from HKCU, which as far as I know isn't even a part of Win98 registry, works(although with a lot of error messages - but it does the job regardless, according to 'customers') while the 'simpler' installers does not work, according to 'customers'.
I have no way of checking. Well - actually I still have a Win98 CD laying around, but I'm not going to start dual booting just for this.
I have attached the 'simpler' installer .nsi below.
I've tried to remove the "real names", and made it as simple as possible. So it's not the installer script, but an example with the same commands.
Could it be as simple as the fact that I'm using $WINDIR for the icon?
Something else like that that won't work on Win98?
[edit]I see now that there are a couple of small redundant things, like I never use the VER_NAME, but that's something that's "left behind" from the bigger, more 'advanced' script, and in any event shouldn't be the reason for this problem.[/edit]
attachment removed at user's request
RDaneel
9th July 2004 17:31 UTC
Two things:
1) just checking "known" registry locations to determine which OS is installed or which packages/features are supported/installed can lead to problems... :)
Microsoft has a number of APIs (which themselves have evolved with time) to check this stuff out. Alternatively, NSIS itself presents some of this information in a somewhat abstracted form, so you might look at the set of predefined "$" values available.
2) one of the great uses for VM technology is *exactly* the situation you are in (especially since you say you have a Win98 CD)! I maintain [virtual] installations of 98, NT4, 2000, and XP for just this purpose.
In addition, keeping a virtual installation of your current/development OS around allows you to use it as a "sandbox", or to try out that suspicious program without risking your "real" system.
I have used both VMware and VirtualPC, and have settled on VirtualPC for my own use. Both have free trials available:
http://www.microsoft.com/windows/virtualpc/default.mspx
http://www.vmware.com/landing/ws4_home.html
delboy
10th July 2004 23:29 UTC
Are you sure the problem doesnt lie in the batch file you seem to be running from this installer? my guess is that that is failing, theres nothing in that script that should cause problems... big thing to remember the way that batchfiles are passed arguments and can refer to them changed in NT.
there are two reg keys that will tell you the type of windows you are installing on
HKLM \
"SOFTWARE\Microsoft\Windows NT\CurrentVersion
for all flavours of NT (XP and 2k included)
HKLM \
"SOFTWARE\Microsoft\Windows\CurrentVersion
for windows 9x
John P.
11th July 2004 12:05 UTC
Yeah - thanks; I have changed the batch files, because a very small amount of people had problems with installing even on XP. I was referring to %TEMP% in the batch file($TEMP in the NSIS script), which caused problems for some.
Now the batch files don't use %TEMP% anymore(and of course neither does the NSIS script).
I haven't actually asked anyone with 98 to test the new installer(will do), but one of the people on XP that had problems are saying that the installer now works well for him.
So I'm guessing perhaps that was the problem on Win98 as well.