Difference between revisions of "Running Oolite-Windows"

From Elite Wiki
(Revised build from Source)
(Notes for amd64 users)
Line 56: Line 56:
   
 
===Notes for amd64 users===
 
===Notes for amd64 users===
No builds for 64-bit versions of Windows have yet been made, however, given the proper availability of graphics and sound drivers, the 32-bit version should run on 64-bit Windows. 32 bit Windows running on amd64 hardware should not have an issue.
 
  +
64-bit versions of Oolite for Windows are now available for testing and the development environment used defaults to 64-bit executables generation. Once they become officially available, they would be the recommended ones for 64-bit OSes. However, the 32-bit version should run on 64-bit Windows without issues as well.
   
 
==Revised build from Source==
 
==Revised build from Source==

Revision as of 15:55, 8 November 2013

Overview

The Windows port of Oolite is built from the same source as the Mac OS X and Linux versions, and has all the features of those versions.

All OXPs should be compatible with the Windows port.

Getting and installing the game

The latest release can be downloaded from the BerliOS project. New releases are announced on the Oolite forum.

The latest recommended release, 1.77, or the last official stable release, 1.76.1, can be downloaded from Oolite.org.

To install, run the installer that you have just downloaded.

The game has been tested on Windows 2000, XP, Vista and Windows 7. This game uses OpenGL, and you are advised to run the latest 3D graphics drivers from your 3D card manufacturer. It will not run on the DOS-extender versions of Windows such as Windows 95, 98 or ME.

Important note for Vista users!

Summary:

DATA LOSS and OXP MALFUNCTION can appear if you install an early version of Oolite (1.65 - 1.72.x) on Vista. Oolite 1.73 and later releases have corrected this issue by using a different default installation directory, instead of one inside program files, as before.

Do This

When asked by the installer, change the Oolite install directory to a different location, one outside C:\Program Files\, like

  • C:\Oolite\
  • C:\Games\Oolite\

etc.

Don't Do This

It is STRONGLY recommended NOT to use the folder C:\Program Files\Oolite\ or any path including the following:

  •  %ProgramFiles%
  •  %ProgramData%
  •  %SystemRoot%
Why?

Vista rearranges some files outside the Oolite folder structure without visible alias/redirects, which completely hides all saved games and causes some OXP add-ons to malfunction. This is because Vista virtualizes files in those locations for legacy processes. You can read more about this problem on this Oolite forum thread. The Microsoft explanation is here: [1].

Recovering Your Commanders Saved Under Vista

If you have already installed Oolite on a Vista machine and wish to move your saved games to a new and safer file location:

  • Examine location C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\

or

  • Use Windows Explorer to search for the string " *.oolite-save " with the Windows search option "include system and hidden files" checked (turned on).


For example, the default commander, if saved, might be found in this path: C:\Users\[username]\AppData\Local\VirtualStore\Program Files\Oolite\oolite.app\oolite-saves\Jameson.oolite-save

Running the game

Find the Oolite icon in the Start -> Programs menu and click on it. Alternatively double click the Oolite program icon on the desktop. Note that the following key combination will get you out of 'graphics related trouble':

Shift-Escape: Quit Oolite immediately

If your game seems to have unreasonably low fps performance (check this in-game by hitting SHIFT-F) it is strongly recommended you visit your graphic cards' suppliers website and download and install the latest drivers.

Installing OXPs

You will need to find where the oolite.app folder is placed: versions 1.65 to 1.72.x should default to C:\Program Files\Oolite, later versions default install is C:\Oolite, to avoid clashes with Vista's virtual folders feature(see above). Create an AddOns folder beside the oolite.app folder. Put OXPs in here. NB: most OXPs zip files contain a folder with a README file and the actual OXP directory (somename.oxp) as a sub-folder - in this case, it's best to unzip the OXP somewhere else and then copy the unpacked .oxp folder into AddOns.

Notes for amd64 users

64-bit versions of Oolite for Windows are now available for testing and the development environment used defaults to 64-bit executables generation. Once they become officially available, they would be the recommended ones for 64-bit OSes. However, the 32-bit version should run on 64-bit Windows without issues as well.

Revised build from Source

Updated 08th November 2013 by another_commander

Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk.


The download link to the Oolite Development Environment - Light Edition is this: https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required.


Instructions on how to build an Oolite trunk executable from zero:


Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.


Once unzipped, you must run the msys.bat file, found in <RootOfWhereTheEnvironmentWasInstalled>\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.


Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this: 1) Devlibs -> Devlibs64 2) Mingw -> Mingw64 3) Devlibs32 -> Devlibs 4) Mingw32 -> Mingw. Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.


The rest of the steps are:

1. Create our working directory:

  • mkdir /d/myoolite - to create a folder called myoolite under D:\. This is where we will check out the code.
  • cd /d/myoolite - to enter our working directory.


2. Check out the oolite code:

  • git clone https://github.com/OoliteProject/oolite.git - this will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a
  • cd oolite to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while):
  • git submodule update --init


3. Build the source:

  • make debug=no - That's it! Go get a coffee while it builds, then come back and you will find two new folders under trunk: obj and oolite.app. obj contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.


4. Profit: Double click the oolite.exe file that resides in your D:\myoolite\trunk\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.

If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then

  • cd /d/myoolite/oolite
  • git pull
  • make debug=no


Good luck!

Old Building Oolite from source

Updated on 09 January 2009 - (left here for reference, please use the instructions above).

Acknowledgments and thanks to Kaks for providing them:


Important note: It is recommended that all packages for Windows be installed in paths that do not contain spaces. The same recommendation applies for the Windows username of the account the build is performed from. There have been reports of MSYS/make problems in such cases.

  1. If you have an older version of GNUstep(GNUstep-base-1.11.1-gui-0.10.1-3 - from the wiki howto), uninstall it, then delete its root directory if it's still there(c:\GNUstep).
  2. Google & download the following 2 packages, and - this is important - install them in this sequence: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-system-0.19.2-setup.exe, http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.19.2-setup.exe
  3. Google & download tortoiseSVN, install.
  4. You now need the dependencies files for Windows. Download Local_20090108.zip [2].
  5. Go to the Windows Start menu, navigate to and select Start>Programs>GNUstep>Shell
  6. At the prompt :
    1. mkdir /Local
    2. mkdir /Local/oolite
    3. mkdir /Local/oolite/trunk . The first slash & the upper case L are very important!
  7. From windows, extract the directories inside Local_20090108.zip to C:\GNUstep\Local
  8. Still from windows go to C:\GNUstep\Local\oolite\trunk
  9. It's empty. Right click>SVN checkout. The repository is svn://svn.berlios.de/oolite-linux/trunk . Wait for it to finish.
  10. From inside the GNUstep shell
    1. export PATH=$PATH:/Local/bin
    2. cd /Local/oolite/trunk
    3. make debug=no
  11. We're now ready to launch the compiled oolite! From inside the GNUstep shell:
    1. cd /Local/oolite/trunk
    2. openapp oolite.app


The instructions below are valid only for versions prior to 1.70, only use them as an alternative if the updated ones fail for whatever reason.

  1. Download and install the necessary software
    1. Download and install svn for Windows: [3]. Accept all defaults given by the installer.
    2. Download and install GNUstep for windows: [4]. Accept all defaults given by the installer.
    3. Download the SDL files required to build Oolite: [5]
    4. Unzip this file to c:\GNUstep\Local
  2. Get the source and build it (note, the source comes from the oolite-linux project)
    1. Start the GNUstep command line (Start -> Programs -> GNUstep Development -> MSYS for GNUstep) and issue the following commands:
    2. cd $GNUSTEP_LOCAL_ROOT
    3. export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin
    4. mkdir oolite
    5. cd oolite
    6. svn checkout svn://svn.berlios.de/oolite-linux/trunk
    7. cd trunk
    8. make
  3. To run the game in the build environment:
    1. Before running the first time: cp $GNUSTEP_LOCAL_ROOT/bin/*.dll oolite.app
    2. openapp oolite.app

Assuming you have installed one of Nic's releases as detailed above, you can easily keep updating the installation from the latest source. In the $GNUSTEP_LOCAL_ROOT/oolite/trunk directory, issue the commands:

  1. export PATH=$PATH:$GNUSTEP_LOCAL_ROOT/bin
  2. svn up
  3. rm -rf oolite.app/Resources; make

You only need to issue the export PATH command when you first start the command line. The rm -rf command before make is required because GNUstep for Windows cannot parse the XML plist file format, and the build fails when it tries to read one of these generated each time the build is performed. This failure is not important, and the process still works, but it is annoying.

Then use the following script to copy the new files over the existing installation:

OA="/c/Program Files/Oolite/oolite.app"
cd $GNUSTEP_LOCAL_ROOT/oolite/trunk
if [ oolite.app/oolite.exe -nt "$OA/oolite.exe" ]; then
    echo "Updating oolite.exe"
    cp oolite.app/oolite.exe "$OA/oolite.exe"
fi

for a in AIs Config Images Models Music Sounds Textures; do
    for b in Resources/$a/*; do
        c=`basename $b`
        if [ $b -nt "$OA/Contents/Resources/$a/$c" ]; then
            echo "Updating with $b"
            cp $b "$OA/Contents/Resources/$a/$c"
        fi
    done
done

If you want to edit the source, Notepad++ has good Objective-C support and is free: [6]

Also see the Oolite-PC forum: [7]