Author Topic: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux  (Read 23867 times)

0 Members and 1 Guest are viewing this topic.

Offline Havner

  • 26
[RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
Posting here cause from now on this launcher is completely functional for windows as well (drop-in replacement for official launcher).

So finally sat down and implemented everything that was left to do, all the tabs are done and fully functional for windows and linux. Things like resolutions, sound devices, joysticks are done properly for either system (winapi/openal/SDL whatever was needed and appropriate). Registry is also handled properly and transparently (winreg for windows, fs2_open.ini for linux). As usual all the platform specific code is separated and waiting more then ever for someone with Mac OSX to write mac counterparts :-)

Hope someone will find it usefull.

Few small differences from official launcher:
- antialiasing sets properly named registry entry, though it works only on Linux, windows SCP code doesn't set AA at all, not my fault (post-process will turn off antialiasing as well, probably cause of bloom, seems to be hardware limitation, at least on nvidia)
- you can clean "forced IP" and "forced port" values and they will be removed from registry, official launcher is buggy here and does not allow you to do that, you'd have run regedit to get rid of those two, and they can cause problems
- Registry tab got 2 new checkboxes:
  - show all - shows all registry entries, even from other categories then Default (registry subdirs), you can have a look f.e. at PXO or Network settings
  - show launcher - shows launcher internal registry state, the one that will get saved if you choose so

Windows downloads:
http://vega.livecd.pl/~havner/yal/windows
http://vega.livecd.pl/~havner/yal/windows-screenshots

Linux downloads:
http://vega.livecd.pl/~havner/yal/linux
http://vega.livecd.pl/~havner/yal/linux-screenshots

Quick Windows notes:
Put the qt redist files either in game dir where launcher resides or somewhere in PATH (C:\Windows\System32)

Quick Linux notes:
You can try to use the binary files but can't guarantee if they would work for you. Try them only if you have absolutely no idea how to compile from source :-)

Other notes:
- Anyone know who should I get in touch to to update freespacemods page some kind person created for YAL?
- This launcher is written in a way that gui and rest of the code is perfectly separated. Redesigning UI to something completely different is very easy. With all those latest talks about launcher design if someone with an idea of how new UI might look would like to experiment feel free to talk to me. I'd be eager to implement some nice UI designs. I would like to for example see the screenies posted here but I get 403 on them.

Few screenies:


Full readme:
Code: [Select]
Yet Another Launcher.
FreeSpace 2 portable launcher.

1. =================== LINUX =================

To get the source:
$ svn co svn://vega.livecd.pl/yal

To compile:
$ cd yal/trunk
$ ./build-all.sh

To run:
Put the appriopriate launcher from bin dir to your game dir and run it.
You can make a symlink to it in PATH dir and it will still work, just make
sure the binary itself is in the game dir.

Make sure you DON'T have GAMEDIR/data/cmdline_fso.cfg file. FS2_open
merges flags from system wide and user wide files so if you do have
one all flags from it will be forced and YAL won't reflect this.

Addons:
If you want to have browser functionality you need to define BROWSERCMD
in src/unix/System_unix.cpp. You can leave as it is now and make some
'browser' script like I do and put it inside PATH dir:

#!/bin/sh
exec firefox "@"

Requirements:
QT4 >= 4.3
SDL >= 1.2.13
OpenAL (openal-soft recommended!)

2. =================== WINDOWS =================

To run:
Yal for windows is distributed in binary form.
Put the appriopriate launcher to game dir and run from there.
You should also get dll pack and put it either to game dir together
with launcher, or to some PATH dir (like C:\Windows\System32).

To compile:
If you want to compile it from source you need Qt SDK.
Edit build-all.bat script where you should put a path to your
SDK and run this script. If everything went well you should have
binaries ready in bin dir.

3. =================== MAC OS X =================

Help needed to implement platform specific functions.

4. =================== COMMOON =================

For now launcher uses the following files:
1. ~/.fs2_open/launcher6.ini
2. ~/.fs2_open/data/cmdline_fso.cfg
3. GAMEDIR/MOD/mod.ini
4. TEMPDIR/flags.lch

ad 1.
This file is read on start if it exist. If it contains proper
exe_filepath the latter is executed inside temporary dir and flags
  are read from flags.lch (ad 4).
ad 2.
If launcher6.ini does not exist or does not contain game_flags or
they are empty there is an attempt to read cmdline_fso.cfg to fill
initiall flags.
ad 3.
This file is read from inside the active_mod dir or any other dir
selected using GUI. Including game root dir used when actual mod name
is empty.
« Last Edit: March 05, 2010, 06:05:27 am by Havner »
Need a linux launcher? Check here.

 

Offline ni1s

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC1, fully functional for windows and linux
Beautiful!  :yes:

 

Offline Tomo

  • 28
Re: [RELEASE] Yet Another Launcher 0.3 RC1, fully functional for windows and linux
Qt can be compiled static so you don't need the redist under Windows - http://www.formortals.com/build-qt-static-small-microsoft-intel-gcc-compiler/
(If you're using plugins like Jpeg, you'll need to adjust the source to include them static as well.)

This is very cool - well done.

 

Offline ni1s

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC1, fully functional for windows and linux
Why the odd build script?

 

Offline Havner

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC1, fully functional for windows and linux
Why the odd build script?

What's odd about it?

You can do it by hand:
$ qmake yal.pro
$ make release

The script just builds all launchers and checks for qt version (previously had one user that tried to compile it using qt3). Simpler then describing it to people. Unfortunately qmake is rather poor in terms of libs/environment checking and configure.
Need a linux launcher? Check here.

 
Re: [RELEASE] Yet Another Launcher 0.3 RC1, fully functional for windows and linux
Compiled and it works great.  It's very convenient and really helps expedite the pregame setup on Linux; switching settings/mods is a breeze now.  Thanks for making and sharing!

 

Offline Goober5000

  • HLP Loremaster
  • Administrator
  • 214
    • Goober5000 Productions
Re: [RELEASE] Yet Another Launcher 0.3 RC1, fully functional for windows and linux
Whoa, excellent!  A massive thumbs up here.  I shall have to check it out.

One question.  Can you reimplement the radio buttons as tabs?

 

Offline Havner

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC1, fully functional for windows and linux
One question.  Can you reimplement the radio buttons as tabs?

You know, I'd like to and I wanted to do so. And I still can. Though there is a reason why I didn't  :)

Qt can't wrap tabs in more then one row. At least I didn't manage it to do so. When tabs don't fit scroll buttons appear and that's not a convenient for user. You don't see all the tabs on the screen and to get to the ones not visible you'd have to scroll. Basically it looks like this:



Eventually something like that, but IMO that's not the best idea as well:



If someone has an idea though or managed to do such a trick in Qt I'd be more then happy to listen.

I googled a little bit for it (maybe something like that appeared in between 4.3 and 4.6 but it seems that generally people consider such wrapped tab bars as something evil. I supposed that was a design decision not to make them available in Qt.

[EDIT] What I could do though is make one tab bar inside another. (Nested ones for settings).



What do you think about all those propositions?
« Last Edit: March 05, 2010, 12:03:28 pm by Havner »
Need a linux launcher? Check here.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
The archives seem to think it's a bad idea to have two tab rows anyway.  I've always tended to agree.  But, there is definitely some argument either way.  Since it's so difficult to implement though, maybe another solution would be better this time.  I'd get really confused by nested tabs that weren't actually nested.
« Last Edit: March 05, 2010, 09:40:39 am by chief1983 »
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline Havner

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
I'd get really confused by nested tabs that weren't actually nested.

But the last proposition from my previous post, those are nested tabs. Truly nested.
Need a linux launcher? Check here.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
Ah.  That might work then.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline Goober5000

  • HLP Loremaster
  • Administrator
  • 214
    • Goober5000 Productions
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
Qt
Argh.  I withdraw my previous enthusiasm. :(  We can't support, officially, a launcher that requires anything to be installed before it will run.

 

Offline The E

  • He's Ebeneezer Goode
  • Global Moderator
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
We've been over this before, and I still don't see why it's that bad. Provided he distributes the Launcher together with the dlls (Which, I remind you, are AFAIK only necessary on Windows), as in, the user CANNOT get the Launcher without getting the dlls as well, there is no problem.
Let there be light
Let there be moon
Let there be stars and let there be you
Let there be monsters and let there be pain
Let us begin to feel again
--Devin Townsend, Genesis

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
I don't see what the problem is. This isn't really a launcher that will ever get used on Windows. The official SCP launcher does everything it does and we're likely to simply adopt kkmic and Iss Mneur's launcher as a replacement for all 3 platforms anyway.

So this is likely to only ever get used on Linux, which IIRC could use a launcher.


Now if it was getting used on Windows, then I'd have a problem. My only other issue is why we have so many independent launcher projects instead of pulling the coders working on them into the SCP and working on one solution.
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 

Offline Goober5000

  • HLP Loremaster
  • Administrator
  • 214
    • Goober5000 Productions
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
This one matches the GUI of the current official launcher, which is a major plus.

 

Offline Havner

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
Argh.  I withdraw my previous enthusiasm. :(  We can't support, officially, a launcher that requires anything to be installed before it will run.

And you can't write a portable launcher that matches your requirement. So you're simply requiring the impossible.

I don't see what the problem is. This isn't really a launcher that will ever get used on Windows. The official SCP launcher does everything it does

For now it does, but I'm planning on developing it further with implementing things that current launcher cannot do.

Now if it was getting used on Windows, then I'd have a problem.

And why you'd have one? Doesn't wxLauncher requires/installs additional dependency as well? wxWidgets?
Need a linux launcher? Check here.

 

Offline Tomo

  • 28
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
Qt
Argh.  I withdraw my previous enthusiasm. :(  We can't support, officially, a launcher that requires anything to be installed before it will run.
Qt applications do not have to require external DLLs, in exactly the same way as Microsoft Visual Studio applications do not have to require external DLLs.
Please put away that straw man, it's starting to get annoying.

I might remind all and sundry that applications built by Microsoft Visual Studio do in fact require external DLLs by default.
- You have to force Visual Studio to link msvc80 or whatever the latest variety of Visual Studio runtime is statically.

Compiling Qt static using a variety of compilers is given here:
http://www.formortals.com/build-qt-static-small-microsoft-intel-gcc-compiler/

- Oh, and Haynes, if you like I'll post a Static Win32 build to keep everyone happy.
« Last Edit: March 06, 2010, 08:31:02 am by Tomo »

 

Offline Havner

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
- Oh, and Haynes, if you like I'll post a Static Win32 build to keep everyone happy.

Yes, of course, be my guest. I don't like static builds cause they are big, and this one won't be an exception probably (QtCore and QtGui takes space), but still I wonder how big that would be in this particular case.

I'd assume that it's easier for people to download redist once and then download small binaries when project gets updated. But maybe I'm wrong here.
Need a linux launcher? Check here.

 

Offline Tomo

  • 28
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
For what it's worth, I agree with you. However, I've heard that some of the SCP members got badly burned by OpenAL and so don't want any external dependencies.

(I prefer to use a real installer, but those tend to be paid-for and most of us can't justify the cash for that.)

Anyway, which compiler was used for the win_speech sapi.lib?

 

Offline Havner

  • 26
Re: [RELEASE] Yet Another Launcher 0.3 RC2, fully functional for windows and linux
Anyway, which compiler was used for the win_speech sapi.lib?

I have no idea :-) I took it from official launcher and it linked properly using MinGW so I didn't look any further. I suppose it was a part of official Microsoft SAPI SDK.
Need a linux launcher? Check here.