Hard Light Productions Forums

Community Projects => The FreeSpace Wiki Project => Topic started by: ni1s on June 30, 2006, 06:33:31 pm

Title: The fs2_open on Linux Article
Post by: ni1s on June 30, 2006, 06:33:31 pm
Hello everyone,

I've been working on the fs2_open on Linux (http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux) article for some time now and I though it's about time we Linux people started a thread where we could discuss it's contents.

For starters I would like to shout a thanks to Pflumm, Annorax, Nodens and Wanderer for their work on the Wiki.

Some things that I thinks should be added are how Linux people should handle the Freespace 2 SCP Pack v1.5c (Complete) by ShivanSpS (http://www.hard-light.net/forums/index.php/topic,39499.0.html), X11(Modular X(X.Org7) issues if any), a decision on BASH vs. SH(kinda low priority, but in the sake of consistency), user friendliness, spelling & grammar(lingustical evolution is not our concern) and most importantly, push Linux users into the Freespace 2 community(there is room for us too!).

P.S: You can, if you have questions, find me idling on #fs2source at irc.maxgaming.net:7778.
Title: Re: The fs2_open on Linux Article
Post by: PzyCrow on January 06, 2007, 12:49:28 pm
I just finished an Install using the wiki guide. With some modifications, not sure how or what you'd like to change so I'll post here for reference.

1. I used a BIN/CUE set which I converted to ISO using bchunk. For some reason all files in those ISOs would have names ending with ;1 (like data1.cab;1) but they just had to be renamed.

During the extraction I compiled the beginnings of an installation-script, I'll post it here 'case anyone would like to clean it up (check args, stop relying on globbing)
Code: [Select]
#!/bin/bash

# Assume ${DISCPATH} has the contents of all three retail discs

DISCPATH=$1
INSTALLPATH=$2
cd "${INSTALLPATH}"

TEMP=`mktemp -d` || exit 1
for group in "Basic Install Files" "Intel Anims" "Music Compressed" "High Res Files"
do
    unshield -d "${TEMP}" -g "$group" -L -j x "${DISCPATH}/data1.cab"
done
mv -v "${TEMP}"/*/* .
unshield -d "${TEMP}" -g "Hud Config Files" -L -j x "${DISCPATH}/data1.cab"
mv -v "${TEMP}"/hud_config_files/* /data/players/
rm -rf "${TEMP}"

cp -vf "${DISCPATH}"/*.vp .
cp -vf "${DISCPATH}"/*.MVE data/movies/

for file in `find .`
do
    mv $file `echo $file | sed 's/\([A-Z]\)/\l\1/g'`
done
find . -type d -exec chmod a+rx '{}' \;
find . -type f -exec chmod a+r '{}' \;

The final result (md5sum):
Code: [Select]
5e451ef90831da3453696660fc4db066 *./data/movies/bastion.mve
d33f21ec6df7eb82d629b75125e3811a *./data/movies/colossus.mve
819c0ae94d9467409ee7ab530a4fc2ed *./data/movies/endpart1.mve
08677efe8264a495db2d90cc7b1ce756 *./data/movies/endprt2a.mve
ed0e8cd99ee7534141abdadeafb8c828 *./data/movies/endprt2b.mve
59d0085dcf98e50d2ca49a0a2304afb6 *./data/movies/intro.mve
3d52c77261aca0144f5f2d25f0a0cbea *./data/movies/mono1.mve
efb555b01a54b138a52342ef23729305 *./data/movies/mono2.mve
b76fa014c89a14d268b19b130c96be3d *./data/movies/mono3.mve
ea031404c39aff2973b80240178751a2 *./data/movies/mono4.mve
504eeec3f2faa4730adccee9f4c81937 *./data/players/hud_1.hcf
a2d7a6638eda4c9060cb7dd47f2de64b *./data/players/hud_2.hcf
9a01349a2adeacef564103ce6dc2be49 *./data/players/hud_3.hcf
42bc56a410373112dfddc7985f66524a *./root_fs2.vp
0d662decc0b443ccb8e8aa2e3a0887ce *./smarty_fs2.vp
2a47bdf14860071cf0196d92e9ee7c2f *./sparky_fs2.vp
97661124cdc47c0a2f0678982b8cbd91 *./sparky_hi_fs2.vp
e88f0e0011b3e525a5ad625933684c03 *./stu_fs2.vp
8ca7330cfe63329b41868efc2e40e048 *./tango1_fs2.vp
6fb6e9a36248980540155a9777c51c47 *./tango2_fs2.vp
d42c20b6ffb4782e431899c211ae55c4 *./tango3_fs2.vp
f7f346e4c0339ba38cff4d9d4dc663f3 *./tangoa_fs2.vp
532fc3f8b68f19b062c18dafc67bc966 *./tangob_fs2.vp
d1f3c39d4fe1bbd56b7b06fe66eef4a6 *./warble_fs2.vp

Then I unziped the patch exe to see if I could patch it. Turned out to be som proprietary patch.rtp format. A string search revealed (Fred2.exe, freespace2.exe, FS2.exe, readme.txt, root_fs2.vp, UpdateLauncher.exe) so I guess it's only root_fs2.vp that needs to be upgraded.

I had previously downloaded the HotU release (did both mostly out of curiosity) so I copied the file from that release
Code: [Select]
0d9fd69acfe8b29d616377b057d2fc04 *./root_fs2.vp.

I did an md5sum comparison between the HotU and the above list. Besides the root_fs2.vp file the only difference is
1. The .mve files in HotU are located in the root folder and truncated to 100 bytes.
2. HotU doesn't have tangoa_fs2.vp or tangob_fs2.vp


For the binary I used the fs2_open_3_6_9 from CVS. To get it to compile I installed libtheora-dev (Ubuntu 6.10) and changed  code/cutscene/oggplayer.h to read #include <theora/theora.h> instad of #include "theora/theora.h". It compiles but I don't think it plays OGG. MVE works fine though.

Then I compiled a launch script:
Code: [Select]
#!/bin/bash

# Documentation at:
# http://www.hard-light.net/wiki/index.php/Command-Line_Reference

# Graphics
OPTIONS+=" -spec"
OPTIONS+=" -env"
OPTIONS+=" -glow"
OPTIONS+=" -jpgtga"
#OPTIONS+=" -pcx32"
#OPTIONS+=" -cell"
OPTIONS+=" -mipmap"
#OPTIONS+=" -nomotiondebris"
OPTIONS+=" -2d_poof"
#OPTIONS+=" -noscalevid"
OPTIONS+=" -missile_lighting"

# Game Speed
#OPTIONS+=" -img2dds"
#OPTIONS+=" -no_vsync"
#OPTIONS+=" -cache_bitmaps"

# HUD
OPTIONS+=" -dualscanlines"
OPTIONS+=" -targetinfo"
OPTIONS+=" -orbradar"
OPTIONS+=" -ballistic_gauge"
OPTIONS+=" -rearm_timer"

# Gameplay
#OPTIONS+=" -smart_shields"
OPTIONS+=" -ship_choice_3d"
OPTIONS+=" -3dwarp"
OPTIONS+=" -warp_flash"
#OPTIONS+=" -UseNewAI"
#OPTIONS+=" -tpb"
#OPTIONS+=" -wcsaga"

# Audio
OPTIONS+=" -snd_preload"
#OPTIONS+=" -nosound"
#OPTIONS+=" -nomusic"

# Multiplayer
#OPTIONS+=" -standalone"
#OPTIONS+=" -startgame"
#OPTIONS+=" -closed"
#OPTIONS+=" -restricted"
#OPTIONS+=" -multilog"
#OPTIONS+=" -mpnoreturn"

# Troubleshooting
#OPTIONS+=" -nohtl"
#OPTIONS+=" -no_set_gamma"
#OPTIONS+=" -nomovies"
#OPTIONS+=" -noparseerrors"
#OPTIONS+=" -safeloading"
#OPTIONS+=" -query_speech"
#OPTIONS+=" -d3d_bad_tsys"
#OPTIONS+=" -novbo"
#OPTIONS+=" -noibx"
#OPTIONS+=" -loadallweps"

# Experimental
OPTIONS+=" -alpha_env"
#OPTIONS+=" -decals"
#OPTIONS+=" -ingame_join"

# Development Tools
#OPTIONS+=" -fps"
#OPTIONS+=" -pos"
#OPTIONS+=" -window"
#OPTIONS+=" -timerbar"
#OPTIONS+=" -stats"
#OPTIONS+=" -coords"
#OPTIONS+=" -show_mem_usage"
#OPTIONS+=" -pofspew"
#OPTIONS+=" -tablecrcs"
#OPTIONS+=" -missioncrcs"
#OPTIONS+=" -dis_collisions"
#OPTIONS+=" -dis_weapons"
#OPTIONS+=" -output_sexps"
#OPTIONS+=" -output_scripting"
#OPTIONS+=" -nograb"

# Other
OPTIONS+=" -ambient_factor 75"  #Default: 120
OPTIONS+=" -spec_exp 11"        #Default: 16
OPTIONS+=" -spec_point 0.6"     #Default: 1.0
OPTIONS+=" -spec_static 0.8"    #Default: 1.0
OPTIONS+=" -spec_tube 0.4"      #Default: 1.0
#OPTIONS+=" -clipdist"          #Default: ?
#OPTIONS+=" -no_emissive_light"
#OPTIONS+=" -ogl_spec"          #Default: 80

# Gameplay
OPTIONS+=" -fov 0.39"           #Default: 0.75

# Multiplayer
#OPTIONS+=" -gamename"
#OPTIONS+=" -password"
#OPTIONS+=" -allowabove"
#OPTIONS+=" -allowbelow"
#OPTIONS+=" -port"
#OPTIONS+=" -connect"
#OPTIONS+=" -timeout"


MOD="-mod lightspeedfs2,mediavps"
./fs2_open_r $MOD $OPTIONS
(I think += could be a bash3 feature)

So, anyway I hope this helps someone.
Title: Re: The fs2_open on Linux Article
Post by: Turey on January 06, 2007, 11:49:07 pm
The Open Installer should work on linux for everything but the executables, which will be added when Taylor releases the 3.6.9 Final Linux executables.
Title: Re: The fs2_open on Linux Article
Post by: PzyCrow on January 07, 2007, 05:31:54 pm
Will the installer download the retail vps or are you saying that they arn't needed?
Title: Re: The fs2_open on Linux Article
Post by: Turey on January 07, 2007, 05:54:59 pm
Will the installer download the retail vps or are you saying that they arn't needed?

EDIT: It will not download them, but I will have instructions on where you can get the necessary retail files.

EDIT (04/06/07): It downloads them.
Title: Re: The fs2_open on Linux Article
Post by: Turey on April 06, 2007, 07:00:42 pm
This is a large necro, but I'd just like to say that I went through compiling FSO on FC6, and added the instructions to the fs2 open on Linux page.

Now the only question is, where's 3.6.9 for Linux? :p
Title: Re: The fs2_open on Linux Article
Post by: Mars on April 07, 2007, 12:21:08 am
lol... taylor never quite got around to it.
Title: Re: The fs2_open on Linux Article
Post by: WMCoolmon on April 07, 2007, 12:27:13 am
There's http://www.hard-light.net/forums/index.php/topic,46433.0.html but it's a specialized build...