Simutrans Wiki Manual
The official on-line manual for Simutrans. Read and contribute.

Simutrans Installer/Updater Project (STIUP)

Started by Aglezabad, September 12, 2009, 08:00:55 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


Hello everyone:

I want to show to the whole forum, a project that made I and with Frank helping me (thank you Frank).
Windows treats itself about an installer of Simutrans for the system, since there are new users who leave the game for not being able to install it.
I start to develop this installer in May of this year in the Spanish subforum, was very strange, and with the time and the help of Frank and Vilvoh I was perfecting it.
This one is a version RC of the version 102.1, that is to say, it installs the stable version 102 but the environment is the one that appears in the following version.

Simutrans 102.1.1109.2009 RC1

Now I continue developing with Frank a Simutrans updater. It installs the most recent files of Simutrans from Internet. You will see it soon.
Please, comment how it works, it helps me to arrange some mistakes.


Have you considered using the MSI system at all? I've found it to be one of the few things Microsoft has managed to get right, it works really well and is easy to build into an automated build process via scripting. It also has native support for incremental patching via MSP files and provides a native method for uninstallation of the main program and patches.

Just a thought, an installer is a good thing and would make Simutrans more accessible, but maybe this isn't the best way to go about it.
Use Firefox? Interested in IPv6? Try SixOrNot the IPv6 status indicator for Firefox.
Why not try playing Simutrans online? See the Game Servers board for details.


I would greatly appreaciate it, if the project programmer would have at asked about this. If it has to be an installer, there are much much better solutions than 19MB to install a 6MB package. Sorry, this has no place on sourceforge, especially not without asking. There are few ways to make me angry, but releasing some executable without communication is certainly a very sure road.

EDIT: Timothy got the MSI answer right even before me.

Just aside the fact, that you are not releasing the source? Simutrans is GPL; if you install simutrans then you are using it and ergo you must also release the source, as far as I understand.


Sorry to all, one forgot to say, the installer includes the SDL version, the GDI version and the necessary dlls in order that GDI works in Windows 98, and it includes the pak 64,96 y128.

I want to indicate some shades:

1. I have asked to my respective moderator if it had some disadvantage, he commented to me that there would be no problem, but he made clear to me that you do not like very much the installers, even this way, I tried to do a few tests.

2. One recommended to me to put it in because it had advanced very much in it. I returned to ask if it would have problems when publishes an installer who installs files of other persons, neither was problem because an installer does not modify the content of a program. For what was not provoking conflicts with the Artistic licence. Also it is the first time that I present this to the general forum, because the previous version was very strange and it was not prepared to show.

3. In when to the liberation of the code, still(yet) I did not do it because only it was a test.
In addition, it seems to me that only I must show the code of the installer, since Simutrans belongs to the team of Simutrans with you as chief of the project, and to Hajo, his creator. And I believe that I must not show the code of others.
Apart from the fact that I am new in and do not manage very well thereabouts.

4. I did not do this installer in msi because I did not know how to do it, in addition, I did it in inno setup, since it  had some experience, but very small.

This way I explain the motives and multiple excuses for not saying anything, but I believed that it was not necessary to ask for the permission. If it seems to you that I have to erase it, warn me. If not, help me to have it in agreement with you.

Good night.


It is not neccessary to put something together, according to the letters. However, the licence forbid distribution of the code without the source. Furthermore I am not very keen on releases of anything else than the stables.

Well, here something I cobbled together this evening using NSIS, and downloading the files from the internet. It could get more options (this is just a very crude installer). But anything that could get approval is something like this.


I have tried your installer, and it seems to me that only it installs the version GDI and the pak 64 from Internet, in addition, had a nightly put with the name simutrans.exe instead of simwin-sdl, and it has rewritten above. You will see that in STIUP, it will never install a version previous to the one that is had. As for doing an installation online, it is what I was developing as Simutrans updater.
An image, two:

The project was going to be: an installer offline (there are people who they do not have an Internet conection) and an updater, since what you see in the images, it cannot install online, only it rewrites the files (there must exist the files of the previous version), since it gives a critical error. At the moment, which you see is a test that I did with 20 % of the files, since I have to mess about on many lines.

I am sorry not to be able to help him with NSIS, alone I know of inno. But I believe that there is a convertor inno-NSIS that can help to understand both codes from other perspectives.

Summarizing, to publish it, it would have to be without the content offline (Simutrans files), only it is possible to arrange an download. But it was too complicated because I do not know completely the functioning of inno setup.

This is the backup of my installer, with the distribution of Simutrans's files for the installer, the code and the programs necessary to compile it.
STIUP code
It's protected with password.
The password is: y5EJq2Cr

Isaac Eiland-Hall

Quote from: prissi on September 12, 2009, 10:54:25 PM
But anything that could get approval is something like this.

If I may offer my opinion: Angelzabad, the above quote is the important bit: Prissi didn't put together a completed version; rather, an example of what might be approved.

I apologize if this is not helpful, but I hope it is. :)


I am not biased for NSIS or Innu or MSI or whatever: As long as it keeps small, allow to make portable installations and respects the different licences that come with. And it should not contain any pak that is already on sourceforge; especially pak128 and pak64/simutrans have incompatible licences, which would need an extra page to accept. Furthermore, pak128.Japan, and the emerging pak128.britain pak192 etx should be there too (with remarks on their experimental status). Especially the latter should really be downloaded, as they change the content sometimes.

EDIT: The installer APP is 1.4MB, which is really a lot for just extracting some files. NSIS is 68kB, whcih imho is acceptable.


Well, as the mod that advised Aglezabad in this project, I think I must admit my part of the blame.

Some clarifications:

This project continues the work of Frank, who had already done a Simutrans installer for Windows. As far as I know, he also has contribute with code to this project. So this is not a new project, we might say it's an update of Frank's old project. It's true that Frank's old project was not host at SF independently of Simutrans, but it was an already know project.

I must admit that I didn't know that releasing a Simutrans related project on meant that first needed approval by the development team, especially when this is the continuation of a project already known. For my part, I take the blame for any errors that Aglezabad may have made because of my advice. I should have made a public announcement first, before hosting the project at SF.

Quote from: prissi on September 12, 2009, 08:14:17 PM
Just aside the fact, that you are not releasing the source? Simutrans is GPL; if you install simutrans then you are using it and ergo you must also release the source, as far as I understand.

The project does not release new versions of Simutrans. It just pack them, and offers the posibility of install it. The project does not modify anything from Simutrans releases, even the licenses. On the other hand, as me and Aglezabad are newbies in this area, we release it before uploading the source. Second fault due to the inexperience.

I can't say a lot about the different technical details, but as far as I know, the final idea is to create an ofline/online installer and updater. The license incompatibility issue is a world apart, that we will discuss carefully to see if there's some solution that gives the fewest possible problems.

Escala Real...a blog about Simutrans in Spanish...


The problem is, that the download has all the simutrans binaries in there; this is only possible if the sources are published too. Also one must clearly state that this version is distributed by XYZ and so on. Distribution simutrans on sourceforge should be done via the project homepage, since this give us our ranking finally.

And as before I do not oppose all installator tools. However, making simutrans a huge 36MB download for people who probably do not need all the pak (and some are clearly exerimental) is not the advertizement I have in mind.

Furthermore the licence.txt of unicows.dll is pretty much completely incompatible with open source. If really needed (i.e. on Win98 and downwards) opencows should be used, or the file should be directly downloaded from microsoft.


I have two options:

Option A:
I  would have to delete the paks and the program of the installer, and delete unicows.dll. The alternative would be by means of download of the game and his installation. I have realized a few tests of download by means of the installer, it has given a clear success in the download, but do not be how to order the installer that uncompress the zip in temporary folder for the installation in the chosen folder. As for it of unicows.dll is of easy solution ordering the installer that the installer should go download of unicows and executes it (this way the license of Microsoft appears and it is possible to choose between installing it or not).

Option B:
The same installer realizing, only that is present in the installer the program Simutrans and the pak 64 (without pak96,128 and unicows),  reducing very much the size, and presenting other paks as downloads. For example:

Options of the installer X:
Simutrans-SDL -> Inside The installer.
-GDI -> Inside The installer.
Pak sets-64 -> Inside The installer.
-96 -> it downloads the pak from SF
-128 -> it downloads the pak from SF
-Other paks (Britain, 192, Japan, HAJO) -> it downloads the pak from SF

The possible disadvantage they are the licenses, inside the installer the packages are nowadays free, but only it is possible to put as complement inside the project Simutrans, since the files belong to the same one.

I will continue testing with all options.


The main problem of including simutrans with the installer is, that I am not keen of distribution several version of the executable, since those all needs to be updated properly. A better way would be just a file with the name of the current (and maybe nightly) versions of all files for any installer to download and present as options.

I am also thinking of ascessing addons and paks via the executable, since the skin will be part of the base package in 103 (still can be overidden of course). Then the UI is there to download and install any packset, provided there is an online connection. This of course depends on the online mode working ...


Quote from: prissi on September 14, 2009, 08:53:34 AM
[...] A better way would be just a file with the name of the current (and maybe nightly) versions of all files for any installer to download and present as options. [...]

This is exactly what SimuSetup is doing... (no Simutrans code included, 1MB) (Simutrans 102.0 pak64 included, other versions can be download, 6.1MB)

(both: multi-language)



Apart from Singleuserinstall here is a much smaller installer for all the paks, including the patches for pak-german.



Hello again:

Already I found the problem of not being able to extract the files of the zip that it downloads from SF. Inno Setup cannot extract the downloaded files, only the included ones inside the installer. So I am searching to use one 7-Zip portable (only the program of decompression, without interface) to be able uncompress. I will do a few tests(proofs).

In case of working, there is a disadvantage, 7-Zip it is GPL, though in this web:

He says this:

QuoteCan I use the EXE or DLL files from 7-Zip in a Commercial Application?

Yes, but you are required to specify in your documentation (1) that you used parts of the 7-Zip program, (2) that 7-Zip is licensed under the GNU LGPL license and (3) you must give a link to, where the source code can be found.

Then: Is his use possible? Or I have to continue searching?



Quote from: prissi on September 17, 2009, 03:42:59 PM
Apart from Singleuserinstall here is a much smaller installer for all the paks, including the patches for pak-german.
I tried it on Windows Vista and, due to a lack of admin-rights, it failed. (SimuSetup will automatically trigger a UAC prompt.)
Even when I manually start it with admin-permissions, the wizard will not be able to finish it's work, although the files are copied...


Regarding the license "issues": if the installer doesn't incorporate the actual Simutrans components, but instead works on the standard/official .zip files (of the components) in the same folder (identifying them by name), then the installer need not have a compatible license. It only needs to present the licenses of the installed components to the user.

Distribution as separate files will also allow to distribute several pak-sets and to support different OSs without having to depend on huge files with unnecessary redundant data.

For offline installation (e.g. from a CD), it is easy to provide all the files together, as a side-effect still allowing them to be used without the installer. For online installation, some automatic download (preferably following the user's choice) will be useful, otherwise newbies will still have to download several files. This is already a hurdle to many - the installer can still tell them, which ones they may choose, along with appropriate instructions. SF was said to not be a very reliable file download provider - I don't know the current state - so manual download should always remain as an option.


We have too many start/installer/setup tools which went out of maintenance and are discontinued. I *strongly* suggest to make the next one open source, so that the community can continue to adapt and expand it for future Simutrans releases if/when the original author gives up.

Also, I'd like a lightweight installer package. 21MB is beyond my tolerance level.


I do not have VISTA, so I was not aware that you need admin right to write to program files. SInce I did not modify any DLL, I just did not request admin rights for the NSIS code, but this can be changed by five letters in the script.

The proposed installer shows the license for the different paks (i.e Artistic Licence and the Simutrans Freeware without commercial license). Since the input is just a textfile (which could be even loaded from an external server) it could be kept current for a long time; and it is avalable for Linux and MOC too (but then the script would need more logic, I presume).

The online installer ist 169kB for the exe, that is near my upper limit (and half of that is actually the simutrans bmp).


Quote from: Hajo on September 18, 2009, 07:59:23 AM
We have too many start/installer/setup tools which went out of maintenance and are discontinued. I *strongly* suggest to make the next one open source, so that the community can continue to adapt and expand it for future Simutrans releases if/when the original author gives up.

Also, I'd like a lightweight installer package. 21MB is beyond my tolerance level.

I want to apologize. Once I was not checking careful enough, and having the installer project on sourceforge seems to mean that the installer sources will be published. So my suggestion to make it open source was not needed, it was already planned this way. I'm sorry if I causes bad feelings with my message.

Second, I misread the size, it was 19MB, not 21. And my dislike of big downloads comes from times when I had a modem line and paid per minute for internet access. Those times are gone.

Frank pointed me to the fact that a web-based installer (a small installer that downloads packages from the internet as needed) has drawbacks, too. The big 'complete' installer package is good for offline installation, and installation on multiple computers without causing network traffic all over.

Again, I want to say I'm sorry. I wrote too quick, and did not check facts carefully enough.


Quote from: Hajo on September 18, 2009, 09:41:43 PM
I want to apologize.
Thank you :)

the SimuSetup project started already 4 years ago and had hundreds of downloads every month, the last time I checked on Isaacs Server.
No one of the developers ever approved/accepted the project, in fact the overall need of an installer was denied - and now prissi releases an installer himself. That IS a little annoying.

During the last 4 years every simutrans release (= since 86.06!) was entered into this xml file:
Also during my holidays I made sure, the file is up to date, when releases where more frequent (and simutrans was closed source).

You are talking about the advantages of online and offline installers. SimuSetup can be both!
For example: If you download the current simutrans release + pak64 as SimuSetup package (one file, ~6MB), you do have an offline installer. But you can run the same exe again and again and tick "Install different version" and it will offer you all the current versions (and download + install them).

Including more pak-sets and showing the required licenses would be fairly easy - If anyone was ever talking to me!

On last thing about the installer size - in times of wide spread broadband access, i don't think it matters whether the installer is 1MB or 0.2MB...


Also it is necessary to tell that an installer offline is stooping everything at one stroke and then installing the files from the own PC, but it is of average size. On the other hand, an installer online is smaller and you can choose the size of download, but it is very determined by diverse mistakes: BSOD,malfunctioning of the connection (it happens much) and falls of the local network, leaving the progress of the useless installation and it has to return to begin.
Now that download managers have functions of recovery, if some problem happens, it can recapture the download.

So, for my part, I would like an installer offline with option online apart. Basically, it is what I thought for a lot of time.

Certainly Robofish, is your installer written in Delphi? For what I saw in the former forum, it seems to me that yes.


The main complain about installer was (and is), that they are nearly the same size as the simutrans executable ... (but since aparently people are now in big number too stupid to extract two zipfiles, aparantly an installer is required)

However, for an official download, only an online installer will be accepted, since everyone has a different view of what pak files are needed. *But* with the net functionality coming soon in the executable, Simutrans would offer to download a pa (and addon) itself, which would even have the pssobility to install addition addons in the addon folders. A little like the Bananas system in OpenTTD.



After thinking very much and of the installer verified online, I have verified that the installer online does not work. It downloads the files but they do not remain present in the folder of destination, with what it trumps the rest. So I have found a new way of making the installer. This installer follows Frank's steps but already it will not be the same. I have put a schematic drawing where approximately his behavior appears.

P.D: The new design needs of Simutrans's manual download and to put it in the folder that I say there: