Jump to content
XCOMUFO & Xenocide

Installation File


kafros

Recommended Posts

I think it'd be better if I logged the progress here. I'll keep the latest Inno Setup Script in this post, and I'll also attach the needed file package. If you want to try your luck on it and you don't know about Inno, PM me and I'll tell you what you need.

 

Edit:Inno script finished, I am working on an NSIS version!!

 

Update 17/6/08:

We've switched to NSIS long ago. Go to the latests posts in this thread to find the latest work on the NSIS installer

Edited by kafros
Link to comment
Share on other sites

Now I probably have to improve the components. Could someone make a better textures pack and upload it somewhere so that it'll be available for download via the installer?

 

Depends on what you are looking for. If it is just the High definition globe texture, I can provide what you are looking for. It is a nice zip with relative paths, so that you only need to extract it into the Xenocide directory. I hope it is the right one... Xenocide_HighDef_Globe.zip

 

This is available under http://projectxenocide.com/download/Xenoci...ghDef_Globe.zip

 

(There you can also find the xnb version of this file (which is not needed anymore AFAIK))

Edited by Mad
Link to comment
Share on other sites

* Updated the package. Audio and texture packs are automatically installed after downloading thanks to Mad (he had the idea to make them self-extracting exes and make the installer run them automatically)

* Sound Effects don't work because they are installed in the wrong folder. It's called "Effects", it should be "Sounds" ;)

* Installation file size was improved by 6MB

* Various fixes/improvements

 

Any ideas to further improve it?

 

Btw mad, this is the extention I told you about: http://www.han-soft.com/uninshs.php

Should we use it?

Link to comment
Share on other sites

Sorry, fixed now.

 

Addon sounds great.

 

What we talked about - I may have found a nice way to check for existing files prior to downloading. But there are a few issues yet:

  • it is not possible to use {app} as directory variable, have to find another way
  • I could not find a way to make seperate checks for the files. either none or all files are downloaded

If you can find solutions for these, i will not be mad at you... ;) If you don't, I'll have another look, another time.

 

[Code]

var audiomissing: Boolean;  //is audio missing?

var highdefmissing: Boolean;  //is the texture pack missing?

function InitializeSetup(): Boolean;

var spval: Cardinal;

begin
if (not(FileExists(ExpandConstant('%PROGRAMFILES%\Xenocide\Xenocide_Audio_Pack.exe'))) then
audiomissing := True;

if (not(FileExists(ExpandConstant('%PROGRAMFILES%\Xenocide\Xenocide_HighDef_Globe.exe'))) then
highdefmissing := True;
Result := True;
end;

function NextButtonclick(CurPage: Integer): Boolean;
begin
// Only download if Audio pack is missing
if (audiomissing) then
	Result := ISTool_Download(CurPage)
else
	Result := True;
end;

Edited by Mad
Link to comment
Share on other sites

http://www.zaknafein.hjcrusaders.com/?p=32

 

Wonderful script :)

Yea stupid me, you won't look for DirectX in the registry, you'll look for its dlls -.-'

 

We could automatically check the missing components, although I prefer to let the user select it himself. In addition, if something is missing, the user can check it with Xnari and have it installed automatically. BUT, we could check for missing components and inform the user that ... not bad not bad...

 

@Mad: Your first point seems wrong, {app} works, I'll integrate it ASAP to check. The second one I guess can be easily corrected in a similar way to the one used in the linked script above

 

@Azrael:

http://www.xs4all.nl/~mlaan2/ispack/ispack-5.2.3.exe

http://www.istool.org/

 

edit:

Now I found out why I couldn't download the addons xD

When the installer starts and we get to download the files, the path doesn't exist! If you re-run the installer after the first time, it does and you can install the addons! LOL :D

So I guess I have to manually create it :\

 

hahaha so much work for a single, simple installation script xD

 

edit#2:

btw...

PASCAL SUCKZ

 

edit#3:Mad the program files test you used would work under winXP, but it won't work for custom installation paths. For example, I'd install it at D:\Games ;). That's why {app} is so helpful. That check should go somewhere else though, probably InitializeSetup()

Edited by kafros
Link to comment
Share on other sites

http://sourceforge.net/tracker/index.php?f...amp;atid=999622

 

There's no info online for the istool_download function, nevertheless I've found out how it works. Unfortunately, it seems it works that way: "all or none". In addition, if you haven't opened the link above already, know that there hasn't been any official or unofficial support on the matter xD

 

Nevertheless, I corrected the "folder doesn't exist" bug, and it now works the {app} variable. So Mad, I guess you'll be half-mad at me, because I've spent the whole night on this issue (which seems to have no solution :P). If anyones want to research it a bit further, be my guest. Nevertheless it isn't important, it's just another "FOOL-proof" feature, if you have downloaded any addon already, then just don't select it in the components list, ffs <_ src="%7B___base_url___%7D/uploads/emoticons/default_happy.png" alt="^_^">

 

So, anything else we should take care of? If not, we'll put some finishing touches and I'll upload a version for public testing

Edited by kafros
Link to comment
Share on other sites

Yea, that's waht I thought. Too bad. But thanks for the effort! You really have done a great job. Put it together and release it. (maybe just post the script once it is absolutely ready and I'll compile the installer and upload the whole thing to projecxtneocide.com)
Link to comment
Share on other sites

Wow great job, just tried it works well. For the high res addon, it just copies over the bigger texture correct?

 

Hopefully in the future we will be able to check if EarthDiffuseMapHigh and EarthDiffuseMapUltra are in the directory and then under video options let them pick instead of replacing incase its too powerful and they want to go back.

 

This should fix alot of peoples problems now. Thanks alot.

Link to comment
Share on other sites

We're ready mad, the linked file includes the compiled setup and all needed files :)

I've uploaded to our public ftp, http://www.projectxenocide.com/public/CTD/Kafros/ISS.zip

Very nice. Works great. I have just uploaded it to http://www.projectxenocide.com/download/xn....0.4.0.1836.exe and have put it on the website. Let's see what kind of feedback we get. Sources of the installer are available under http://svn.projectxenocide.com/xenocide/xna/Installer

Link to comment
Share on other sites

OMG right, forgot about the fonts. Unfortunately I'm at Corinth right now and I don't have access to my files. Do we have to add them manually or can they be used via the Resources folder as Mad said? I can't recall that

 

Either way, it'll be 1 more line of code, tell me if it's needed

 

I'd especially like to see if xnari automatically handles any necessary updates, feedback will be most important.

 

Thanks for the file updates and the overall help Mad :)

Edited by kafros
Link to comment
Share on other sites

Looks good. :) You might also wanna have it install the necessary Xenocide fonts.

Is this necessary? Actually those should already be in the "Ressources" Folder, no?

Which font(s) are we talking about?

Brave new world doesn't need to be distributed for the game to run, although it is needed to get it to compile. (During compile time it's used to create a font spritesheet, that is included in the release resources.)

And I've already added it to the Xenocide source download.

Any other fonts we distribute need to be checked to see if they have copyright issues.

Link to comment
Share on other sites

@Dteviot: I presume we were talking about Brave New World. So there's no need for the user to download it too, good!

Huh?

Yes, I was referring to the Brave New World font.

Which font(s) are we talking about?

Brave new world doesn't need to be distributed for the game to run, although it is needed to get it to compile.

Link to comment
Share on other sites

xD

 

* SupSuper told us that the installer could also install the necessary Xenocide fonts

* Mad said that those would be in the Resources folder anyway

* I knew that the only custom font we should care about is Brave new world, but I didn't know if we had to install it to the user's PC

* You told us that we don't have to distribute it and that we only need it in order to compile the game

 

So, no problem at all, and no misunderstandings left :)

Link to comment
Share on other sites

  • 3 weeks later...
Feedback regarding the installer: Pretty confusing... technical jargon. Think of me as the German kid on youtube... \"Ich wil spielen!\". Make installation of prerequisites mandatory, and don\'t offer the confusing download-separately option. Do make sure you check if components are already installed - I already have the .Net Framework patched up to most recent version, but the installer did not detect that.

 

The XNA updater thingamajiggy... it didn\'t work: \"Updating XNA Framework: UNEXPECTED FAILURE - make sure you are connected to the internet\"... I am connected.. Just downloaded quite a lot of megs worth of components for this game, and opened this page seconds ago. Add a \"Retry\" button to the updater, at very least. Pressing the EXIT button leads me to a Windows Vista \"Stopped working, Vista is informing Redmond about you running non-MS software and perhaps offer a tip on how to make it run\" dialog. Felt very sloppy.

Link to comment
Share on other sites

So it seems that xnari doesn't help people.

I'll try to check for them manually and download/install them anyway, what do you think?

Yea, might be better. I mean, you already found the code to check for the prerequisites - it should more or less be a matter of copy&paste.

The only thing I am concerned about is, that this might produce major problems with the high resolution and audio packs - IIRC, it is not possible to download only one package. So if someone is missing the XNA framework, he would have to download XNA, .Net, DirectX and the two feature packs, right? that's a bit... hm... inefficient...

Edited by Mad
Link to comment
Share on other sites

It was a brave decision, but I think I'll convert inno setup to NSIS, which is much more powerful/customizable (has A LOT of plugins), open-source+free for any use, and will solve our web installler problems :)

 

I've found some inno->nsis converters, I'll check if they work, otherwise I'll make a new one from scratch (it'll be much easier now).

 

Expect to hear more soon ;)

Link to comment
Share on other sites

It was a brave decision, but I think I'll convert inno setup to NSIS, which is much more powerful/customizable (has A LOT of plugins), open-source+free for any use, and will solve our web installler problems :)

 

I've found some inno->nsis converters, I'll check if they work, otherwise I'll make a new one from scratch (it'll be much easier now).

 

Expect to hear more soon ;)

 

This may help - he has scripted all the XNA prerequisites for NSIS already. He does say some of what he did isn't as up to date as possible, but it all works.

 

Not sure if it supports web download, but should give you a good start.

 

Using Nullsofts Installer System (NSIS) to create Setups for XNA Games

Link to comment
Share on other sites

:O That's some script you found there Sargeant, thank you very much, will definitely come in handy :)

 

The web functionality is straightforward, and the NSIS wiki is full of resources, I just have to work on it for some time to find out what to use (and how :P)

 

edit:

For example Mad, you can check if an online resource is available. If it is, you may download it. In addition, you can choose what to download and when, so it's not a "all or none" issue anymore ;)

 

Edit #2:

Ok had a look at the script, it has various problems here and there and some useless sections. In addition, I've found 2 free inno to nsis converters (dlls that add this functionality actually) and they can't work with the inno script (even if I remove the download section/code).

 

Som I think I'll start from scratch and use Staff's script for ideas

 

I can't promise fast results due to the overwhelming amount of work/study for university, but I'll do my best, and definitely keep you informed

Edited by kafros
Link to comment
Share on other sites

Some important advice

 

Number one:

Don't set the desktop as the installation directory

 

Number two:

Even if you do, DON'T SET THE INSTALLER TO RECURSIVELY UNINSTALL THE INSTALLATION DIRECTORY

 

Number three:

Use a Virtual Machine to test your installer :P

 

 

I should feel lucky that it didn't remove some important archives and documents I had in two desktop folders. It deleted useless stuff from the third one (and some "random" stuff), so the desktop clutter was minimised :D

 

In other news, NSIS is indeed very powerful. I've managed to make it install the core portion of the game and I'm trying to make a custom page (with icons) for the prequisites checks.

 

@Mad: The "Components" in NSIS are called sections. They are like functions, but you can't call them, they are called during installation according to the order they appeared in the script. So, you can literally do anything! That is, check if a file URL exists, if yes then download the file and install it, according to the value of a global var ;)

Link to comment
Share on other sites

Some important advice

 

Number one:

Don't set the desktop as the installation directory

 

Number two:

Even if you do, DON'T SET THE INSTALLER TO RECURSIVELY UNINSTALL THE INSTALLATION DIRECTORY

 

Number three:

Use a Virtual Machine to test your installer :P

:D Oh my, that sounds... interesting... :P

 

@Mad: The "Components" in NSIS are called sections. They are like functions, but you can't call them, they are called during installation according to the order they appeared in the script. So, you can literally do anything! That is, check if a file URL exists, if yes then download the file and install it, according to the value of a global var ;)

Sounds like just what we need. Hopefully I'll be able to wrap my head around it as soon as I have more sparetime.

Link to comment
Share on other sites

  • 3 weeks later...

I lost 1 week of progress to a messed up Virtual Machine, but I managed to create a new/faster one (VM) and I've re-done all the previous functionality. I've tried to insert a random/mirror selection script (used a ready one for NSIS) but there is an issue, sometimes it doesn't work for microsoft links. So, I'd suggest we download the prerequisites to a folder and I'll make the script grab them from there. That way, it'll be up to the user to decide if he wants to download them manually or automatically (he won't get the download link via the installer), not to a lousy "unavailable" download connection ;)

 

 

Except from that, it's just the bonus material code which may be available tonight. I'll test it on my VM and then on my computer, then I'll upload an installer for internal testing.

 

Btw, the .Net Framework 2 SP1 x86 package works for Windows XP/Vista x86/x64, right? Otherwise, I'll re-invent the wheel once again and add the functionality to the installer -.-

 

Tell me what you think and what you want o see on the installer.

 

This one will be most beautiful and practical, I promise you'll love it (well, at least when it's complete and de-bugged hehe)

 

edit: I also found out that in order to install .Net 2, you need MSI Installer 3.1... *sigh* I'll add that too.

I'll also look into extracting files with NSIS (it's the zip dll plugin), so we can save some space (if we can, of course)

 

edit: I JUST understood that I've been playing with the XNA Game Studio Express Refresh 1.0 (xnagse_setup.msi), which needs the VC++2005 runtimes... GARG that's why it wasn't working... Let's find the XNA runtimes then... /me shoots self in the foot xD

 

edit: Found it... a 1.9MB file, and I've downloaded the ~80MB one thrice...... d'oh. It can also be included in the installer, although I'll have it be downloaded for the time being

 

Don't forget, I'm waiting for your ideas/wishes/comments/etc

Edited by kafros
Link to comment
Share on other sites

http://www.projectxenocide.com/public/CTD/...20installer.exe

 

It will be uploaded in 10 minutes from now :)

It needs some tweaking here and there, but it's in a stable and working state. Worked like a charm in my x86 virtual machine (No Net Framework 2, no directx, no Xna, no MSI Installer 3.1), worked straight on my desktop (WinXP x64), didn't have the time to test it on Vista (laptop).

 

I'll also upload the source for you, it isn't as beautiful/commented/indented as I'd want, but that will be improved later. It is the main script file and the needed headers in the include folder. But them on the same directory with the folder "Release", which is the output folder you get when you build the Release project ;).

 

Comments comments comments :D, and some help/ideas with the files we need :P (our server is fairly slow, I get 50KB/s maximum :/, I don't think we could use the available bandwidth to serve the installer's needs)

 

Nevertheless I'm tired and I'll have to leave for my university in 3 hours... Goodnight/Goodday zzzz

 

edit:

OK it's uploaded...

I hope I'll document it sometime soon, there's a lot of stuff going on there.

In addition, it was supposed to support 4 languages (English, French, Spanish, Greek), but on my desktop it automatically selects English. Dunno, I'll look into it another time

 

Comments please!

Edited by kafros
Link to comment
Share on other sites

Why is it larger than the installer created with Inno? Maybe you should switch off compression again...? ;)

 

Language selection works great. Even German works

 

I get the help screen from KB89380v2. Why do you want to install this? Anyway, you seem to have given the wrong parameters, otherwise the help screen would obviously not pop up.

 

Why are you asking for reebot?

 

Why don't you have anything to download? Just use the files from the Xenocide server, they are there, and we won't get a faster source...

Edited by Mad
Link to comment
Share on other sites

Ok time to document its function, from top to bottom. I won't include the trivial parts or parts that are not really related to the user (like when I save information on the game executable, like productname/companyname/comment):

 

Preparation:

* It uses solid lzma compression, the best available. So, the only way to decrease size is to remove files/script lines :O.

* It uses Modern UI2, that with the orange graphics ;) .

* It includes 2 library headers (LogilLib, ZipDLL), together with my custom ones.

* It has support for English, French, German, Spanish, Greek, I can add 20+ languages (it's a single line of script).

 

On installer init:

* It checks if the registry key "HKLM\Software\Project Xenocide\LastInstallPath" (Local Machine registry Hive) exists. If it does, it reads the value and it automaticall becomes the default installation directory. Otherwise, it defaults to %PROGRAMFILES%/Xenocide.

* I've included a Mutual Exclusion, so that you don't have multiple instances of the installer.

* It then gets various information on the user's computer (graphics card, CPU+Ram, Windows Name and Architecture)

* THOSE ARE INCLUDED ON THE TOP OF A LOG FILE, install_log.txt, AT THE INSTALLATION DIRECTORY, after the installer closes! This one will be quite helpful, as it'll include installation details (messages) I've included (check the log yourself).

Installation:

* Then, it checks the version of the windows installer. Problem is that Net Framework needs MSI Installer 3.1, otherwise it shows a warning message and aborts xD, unlucky. So, it checks the version of the msi.dll, if it's 3.1.4000.2435 on WinXP (Vista version is 4, so we don't have to look) then it's 3.1 v2 and the installation continues. If not, it installs KB893803 on x86 OR KB898715 on x64. There isn't a direct link at the microsoft site, so I've included them in the installer. That's because I wanted to make a fully automatic installer. So either we'll host them for the installer's needs, or we'll abort the install and open the download page so that the user can download it himself. No other way ;). Btw, it was supposed to work fine, I'll check the MSI parameters again (good think I've included them as comments hihi)

* So, next comes the Net Framework check. Simple stuff, checks if the version is 2 SP1, if it's not it checks for the installation file in the temp directory, if it's not found it's downloaded from a list of mirrors (found only 4, whoever finds more posts them), silently installs. There are a lot of detail messages to check what was done and if it was successful.

* Same thing with XNA

* Same thing with DirectX, but a guys error message today reminded me to change the check to WINXP ONLY, Vista already has DirectX 10 :D, until then just choose cancel in the directX check dialog :)

* Then, it installs the game files (if the component was selected). It TRIES to overwrite each file, if it can't it skips it.

* It creates some nice shortcuts

* Then it's the Bonus material time. I don't know the link to the globe pack, so it'll just popup a message box :P. Concerning the Audio, it checks for all Audio files, if found then there's no need to download the pack. If even one file misses, it checks for the "Bonus" folder at the installation dir, if it finds the pack there, it uses it, otherwise it downloads it. Extracts at root automatically.

* It also adds an entry in the "Add/Remove Programs" table, sweet ;)

 

That's it more or less. ^_^

 

Why is it larger than the installer created with Inno? Maybe you should switch off compression again...? ;)
As you've seen, it got 8MB fatter due to the MSI Installers, If we remove them, it'll be 12-13MB big. Compression is best available, there's nothing better. In addition, it has a whole lot more functionality than Inno, so (as a greek phrase goes, more or less) "Don't ask for both a full dog and a full pie" ;)

 

I get the help screen from KB89380v2. Why do you want to install this? Anyway, you seem to have given the wrong parameters, otherwise the help screen would obviously not pop up.
Installer tags seem fine. It didn't show up on my winXP x64. I'll remove it from the virtual machine and try again, although I'm confident it should work fine. I'll check

 

Why are you asking for reebot?
It's needed when you install MSI 3.1 and Net Framework 2.

 

Why don't you have anything to download? Just use the files from the Xenocide server, they are there, and we won't get a faster source...
I have the link to the audio pack, I don't have the link to the texture pack. I didn't understand "we won't get a faster source...", what do you mean?
Link to comment
Share on other sites

Why are you asking for reebot?
It's needed when you install MSI 3.1 and Net Framework 2.

Shouldn't it only ask for a reboot if the Framework was installed?

Why don't you have anything to download? Just use the files from the Xenocide server, they are there, and we won't get a faster source...
I have the link to the audio pack, I don't have the link to the texture pack. I didn't understand "we won't get a faster source...", what do you mean?

http://www.projectxenocide.com/download/Xe...ghDef_Globe.exe

and, I meant, downloads will be as fast as they go, there won't be a faster mirror.

Link to comment
Share on other sites

I didn't have speed in mind, but availability. But who cares, if the users need the file and the mirrors don't work they'll download it themselves or retry later.

 

I've improved the installer. Now it doesn't contain the MSI 3.1 packages, but asks the user to download them manually (if needed). The size now is 12.5MiB, just sweet.

 

I've also added the globe code. In addition, I provide a zip file that has the same basename like the exe you gave me. It simplifies things, so replace it if you can, thanks.

 

With these, the installer seems complete to me. I don't have anything else to add/change. The only thing left is to test it on my Vista laptop, I may do it in the near future. Works fine on my winXP-x86 and winXP-x64.

 

That's all, I've uploaded the files to my ftp folder.

 

P.S. @Mad: I'll busy for quite some time, if you need something just PM me. A new version of the NEUDAR CT is ready.

KafrOS out

Link to comment
Share on other sites

Thanks for your efforts Kafros.

 

Might I suggest you write an article (including source) on the installer and post on ziggyware?

This would have the following benefits:

  • Other people would see your work.
  • Other people can benefit from your work.
  • Might get feedback, so hopefully can be improved (perhaps deal with some of the other problems people are reporting.)
  • If very lucky, other people might update it for XNA 2 and 3.
  • Help publicise Xenocide.
  • Might win something.

 

Edit: fixed hyperlink

Edited by dteviot
Link to comment
Share on other sites

Other people would see your work.

Unfortunately it's not all mine. I mainly studied the manual, the online examples, the work of 2 guys and used some plugings, and then edited them for our needs (or optimized where I found it possible). Nevertheless, all the searching and testing took a great deal of time, so I guess it's worth it

 

Other people can benefit from your work.

Indeed, it could save time

 

Might get feedback, so hopefully can be improved (perhaps deal with some of the other problems people are reporting.)

That's true, although I'd prefer if we could try some internal testing. Fortunately I've tested it on my desktop (XP x64) and virtual machine (XP x86 guest) and it worked fine. I'll test it on the Vista x86 laptop soon.

 

If very lucky, other people might update it for XNA 2 and 3.

So the article would become more helpful? Nice idea

 

Help publicise Xenocide.

That would be nice, but I guess a lot of authors will contribute many and far more difficult/creative/helpful articles than mine. Nevertheless, a participation wouldn't hurt publicise Xenocide

 

Might win something.

Fame, or glory? :P LOL

 

 

Might I suggest you write an article (including source) on the installer and post on ziggyware?

 

I've registered... I'll improve the installer a bit, comment it and I'll see what I can do, thanks for sharing

Edited by kafros
Link to comment
Share on other sites

Might win something.

Fame, or glory? :P LOL

Er. They offer a Zune, an X-360 game (NTSC) or Subscription to MS Creators Club.

Hmm. Yes, not really any use are they.

 

Might I suggest you write an article (including source) on the installer and post on ziggyware?

 

I've registered... I'll improve the installer a bit, comment it and I'll see what I can do, thanks for sharing

Sorry, stuffed up the link. Corrected. http://www.ziggyware.com/news.php?readmore=746

Link to comment
Share on other sites

Hello. I was trying to install the Project Xenocide 4.0, but whenever I try to I get the error message that I need a newer version of the MSI installer. I already downloaded it, and still cannot get it to work. It might be because I do not have the right version of Framework 2.0, but when I try to install THAT I get an error message saying that it couldn\'t overwrite the version I already had.

 

When I tried to run the game I got the message:

 

\"Exception: The type initializer for Microsoft.Xna.Framework.Graphics.GraphicsAdapter threw an exception.

 

Stack Trace:

 

at

 

Microsoft.Xna.Framework.Graphics.Graphics.Adapter.get_Adapters()

 

at ProjectXenocide.Program.CheckGraphicsHardware() in D:\\Xenocide

 

Repository\\XNA\\trunk\\Xenocide\\Srouce\\Program.cs:line 62

 

at ProjectXenocide.Program.Main() in D:\\XenocideRepository\\XNA\\trunk\\Xenocide\\Source\\Program.cs:line 47\"

 

 

 

I have no idea what it means, and I hope that you can help me.

 

Thank you very much

 

Btw, I had the same problem with the installer always wanting to install Windows installer v 3.1 (although I am fairly confident that I have it installed correctly already), but since I had .Net 2.0 installed it didn't care when I clickend "no"... Anyway, i think this might need some work... (winXP pro SP2)

Link to comment
Share on other sites

I see. Does Xenocide need .Net Framework 2 or .Net Framework 2 SP1??

 

Because I've checked it online, and I'm fairly sure that SP1 needs MSI 3.1. Well, there are 2 versions for each architecture, so you probably have the old (v1) one.

 

I'll check if the "vanilla" donNet2 needs MSI 3.1. If it doesn't and xenocide can run on it, then I'll remove the MSI section alltogether and keep things simple.

 

Btw Mad, please inform the installer users (on the download page or respond to their mails) that in their installation folder, they will find a file called "install_log.txt" (I'll change it to "installation.log" in the next version), which they should post if they can't run xenocide or if the installation process wasn't flawless for them. Thank you

Link to comment
Share on other sites

I see. Does Xenocide need .Net Framework 2 or .Net Framework 2 SP1??

 

Because I've checked it online, and I'm fairly sure that SP1 needs MSI 3.1. Well, there are 2 versions for each architecture, so you probably have the old (v1) one.

 

I'll check if the "vanilla" donNet2 needs MSI 3.1. If it doesn't and xenocide can run on it, then I'll remove the MSI section alltogether and keep things simple.

 

Btw Mad, please inform the installer users (on the download page or respond to their mails) that in their installation folder, they will find a file called "install_log.txt" (I'll change it to "installation.log" in the next version), which they should post if they can't run xenocide or if the installation process wasn't flawless for them. Thank you

Xenocide should run with 2.0, which means it should also run with 2.0 SP1.

My guess is the installer is explicitly looking for 2.0, and when 2.0 SP1 is installed, it's not recognizing it. So the installer tries to install 2.0. Which won't install because 2.0 SP 1 is present. (Note, you probably want to do version checking in the installer, otherwise you're going to see the problem again when SP2 comes out. Or if 3.5 is installed. IIRC, it also patches some of the 2.0.

Link to comment
Share on other sites

Concerning .Net 2 (SP1):

Actually, I was trying to install Net2 SP1... hehe *shy*

 

So, any version of .Net Framework 2 should do. Thus, I'll just include a check whether the version is equal or greater to 2.0 (that includes SP1, version 2.0.50727). That's what I needed to know

 

Concerning .Net 3.5:

If it just patches stuff, then there's no problem. I just need a registry key for version 2.0 or 2.0.50727 or greater :)

 

Concerning the 3.1 MSI Installer:

I guess I'll remove it altogether (or check for ANY 3.1 version), piece of cake

 

Concerning DirectX:

I'm checking for "d3dx9_31.dll" and "xinput1_3.dll". I left the xact one out because we're not using it (due to FMOD). Do I need to check anything else? Or an older variant of the d3dx9 dll?

Link to comment
Share on other sites

Concerning .Net 2 (SP1):

Actually, I was trying to install Net2 SP1... hehe *shy*

 

So, any version of .Net Framework 2 should do. Thus, I'll just include a check whether the version is equal or greater to 2.0 (that includes SP1, version 2.0.50727). That's what I needed to know

 

Concerning .Net 3.5:

If it just patches stuff, then there's no problem. I just need a registry key for version 2.0 or 2.0.50727 or greater :)

Um. If I read http://support.microsoft.com/kb/315291 correctly, you should just need to check to see if the registry key

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v2.0" exists

FYI. http://www.codeproject.com/KB/cs/framework...ndetection.aspx has another way of checking for version.

 

Concerning DirectX:[/b]

I'm checking for "d3dx9_31.dll" and "xinput1_3.dll". I left the xact one out because we're not using it (due to FMOD). Do I need to check anything else? Or an older variant of the d3dx9 dll?

I assume you're aware the files have a version info that can be read? http://msdn.microsoft.com/en-us/library/ms647003(VS.85).aspx

I'm afraid that I don't know the executables we need to check, or the minimum version. I'd suggest checking the XNA creators club , or if you can't find it there, post a question. (The XNA developers are active on those forums, so will probably tell you exactly what you need to know.)

Link to comment
Share on other sites

Um. If I read http://support.microsoft.com/kb/315291 correctly, you should just need to check to see if the registry key

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v2.0" exists

FYI. http://www.codeproject.com/KB/cs/framework...ndetection.aspx has another way of checking for version.

That's one way, the one I first impletented :P. In addition, that's what I used in the inno setup IIRC. But, on the NSIS documentation wiki, there's a more complex version so I used that, it involves
System::Call "mscoree::GetCORVersion(w .r0, i ${NSIS_MAX_STRLEN}, *i r2r2) i .r1 ?u"

in NSIS code :P. Nevertheless, it works fine, so no worries about the .Net Framework detection, I know exactly what to do.

The code from codeproject won't be of much use, as I don't want to use such code or implement it into a dll, let's keep things simple and clear

 

I assume you're aware the files have a version info that can be read? http://msdn.microsoft.com/en-us/library/ms647003(VS.85).aspx

I'm afraid that I don't know the executables we need to check, or the minimum version. I'd suggest checking the XNA creators club , or if you can't find it there, post a question. (The XNA developers are active on those forums, so will probably tell you exactly what you need to know.)

Of course.

Btw, I've found 2 nice tutorials on XNA installers, one for Inno and one for NSIS. I based the one I posted on a first try of mine and the NSIS one I found, so it has the best of both worlds.

 

From the Inno one:

#	 // Test the presence of XNA 2.0  
#	 if (not(RegKeyExists(HKLM, 'SOFTWARE\Microsoft\XNA\Framework\v2.0'))) then  
#		 xna2Missing := True;  
#   
#	 // Test the presence of XInput and XACT  
#	 if (not(FileExists(ExpandConstant('{sys}\xinput1_3.dll')) and  
#			 FileExists(ExpandConstant('{sys}\x3daudio1_2.dll')) and  
#			 FileExists(ExpandConstant('{sys}\xactengine2_9.dll')))) then  
#		 dxXNAMissing := True;  
#		   
#	 // Test the presence of DirectX dll  
#	 if (not(FileExists(ExpandConstant('{sys}\d3dx9_31.dll')))) then  
#		 dxMissing := True;  
#   
#	 // Test the presence of .NET 2.0 and SP1  
#	 if (not(RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727'))) then  
#		 dotNET2Missing := True  
#	 else if (not(RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'SP', spval))) then  
#		 onlySP1Missing := True  
#	 else if (spval <1) then  
#		 onlySP1Missing := True;

You can see the prerequisites here (for XNA 2.0 games but whatever). Easy check for .Net and XNA, 4 files for the directX dlls. We are not using the XNA audio engine, so piece of cake.

 

 

 

Conclusion:

It's not difficult to check the prerequisites (it was far more difficult to make successful detection, download and installation for both OSes and Architectures), but I'm just not sure what are the exact needs of Xenocide. The ones I use know work and are quite rational. I'll widen the criteria for MSI 3.1 and tell the installer that any version of .Net 2 will do. So, things will be clear again. I'll also change the download folder to be the Desktop, so that the user can easily find the installation files and use them himself if he wants

 

edit:

By the way, I've posted the source code on my ftp folder (public -> CTD -> kafros), I'll soon post it here too. Most parts are easily readable even for non-coders, some parts even I don't completely understand how they work but I know what they do :P

Edited by kafros
Link to comment
Share on other sites

> > Hello. I was trying to install the Project Xenocide 4.0, but whenever I try to I get the error message that I need a newer version of the MSI installer. I already downloaded it, and still cannot get it to work. It might be because I do not have the right version of Framework 2.0, but when I try to install THAT I get an error message saying that it couldn\'t overwrite the version I already had.

> >

> > When I tried to run the game I got the message:

> >

> > \"Exception: The type initializer for Microsoft.Xna.Framework.Graphics.GraphicsAdapter threw an exception.

> >

> > Stack Trace:

> >

> > at

> >

> > Microsoft.Xna.Framework.Graphics.Graphics.Adapter.get_Adapters()

> >

> > at ProjectXenocide.Program.CheckGraphicsHardware() in D:\\Xenocide

> >

> > Repository\\XNA\\trunk\\Xenocide\\Srouce\\Program.cs:line 62

> >

> > at ProjectXenocide.Program.Main() in D:\\XenocideRepository\\XNA\\trunk\\Xenocide\\Source\\Program.cs:line 47\"

> >

> >

> >

> > I have no idea what it means, and I hope that you can help me.

 

install_log.txt

Link to comment
Share on other sites

Wrong thread? That looks like a graphics card problem.

Trust me, I know what I am doing. This is on request from kafros - see above

 

Btw Mad, please inform the installer users (on the download page or respond to their mails) that in their installation folder, they will find a file called "install_log.txt" (I'll change it to "installation.log" in the next version), which they should post if they can't run xenocide or if the installation process wasn't flawless for them. Thank you
Link to comment
Share on other sites

* Checking windows version/architecture,...

* - Windows Version: "XP"

* - Platform Architecture: "32"

* - CPU: Intel? Core™2 Duo CPU T7500 @ 2.20GHz, ~2194 Mhz

* - RAM: 2031 MB

* - Video Card: NVIDIA GeForce 8600M GT

* - VRAM: 256 MB.

* End of System Information Section

He seems fine here, the graphics card supports DirectX10 and SM 4, so it's more than enough.

 

* MSI Installer version found: "3.1.4000.4039", but is older than the required version: "3.1.4000.2435"

hehe, blunder :P

 

I've found this List of MSI packages/versions and this one was introduced as a hotfix update.

 

* User decided not to install MSI 3.1. Xenocide installation will continue

---> .Net 2 SP1 found, XNA found, DirectX 9.0c found

 

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

 

So, it should normally work...

 

BUT, have a look at this:

http://www.xcomufo.com/forums/index.php?sh...mp;#entry173220

 

 

1)

Maybe he should try to manually run the directX web installer from here: http://www.microsoft.com/downloads/details...;displaylang=en

 

Or download the complete/latest DirectX package from here: http://filehippo.com/download_directx/

 

2)

If THAT doesn't work, maybe try to re-install (or better uninstall-install) the XNA runtime:

http://www.microsoft.com/downloads/details...;displaylang=en

Edited by kafros
Link to comment
Share on other sites

×
×
  • Create New...