Setting up a test area
From TremFusion
So, you're here because you want to set up a test area where you can easily change aspects of TremFusion to see what it looks like/how it plays/etc. That's very useful. Hopefully you'll contribute a lot with such an area.
The instructions herein were written by Ender on Aug 13, 2008, and may not be the best way to do things, but they were the way that I did them, and they worked.
First, I'd highly recommend building from source. I'll assume you have a build area where you have built from source called TremFusion/main/ since its the main branch.
Contents |
Linux Instructions
I did this on Linux, where it's about 100 times easier, so that's where I'll write these instructions from. If you ain't on Linux, you could always get it. It's free. Otherwise, have fun figuring this out yourself :)
One thing to note is that none of the commands here will really work as typed. That's because I'm not using real directory naming convention. For instance, TremFusion/main only works if you are in the parent directory of TremFusion, which you probably aren't. So...you'll have to think about how to make all of these work and translate them to work on your system/configuration/style. Sorry, I'm cruel that way.
Set up the area
Create a new directory. We'll call it TremFusion/test. Do this by creating the directory and then creating a symbolic link to your built binary
ln -s TremFusion/main/build/release-linux-x86_64/tremulous.x86_64 TremFusion/test
Also create a new shell script. It should contain the following, and be placed in TremFusion/test
#!/bin/bash ./tremulous.x86_64 \ +set fs_debug 1 \ +set developer 1 \ +set fs_extrapaks "." \ +set fs_basepath `pwd` \ +set fs_homepath `pwd`/testbase \ 2> out.txt
This sets up the paths to use the TremFusion/test directory as the only place to look for files. We want that. It also sets up a ton of debugging information that can be helpful. Finally, it copies everything from the console to a flat file (out.txt) so you can review it if you need to. Let's name this new file run.sh
K, now make that shell script executable
chmod +x run.sh
Go ahead and run the file now to create some directories
./run.sh
It'll work for a sec, then fail. Afterwards, you'll have a new directory, TremFusion/test/testbase/base. neat. Go ahead and create another useful directory, TremFusion/test/testbase/tremfusion.
mkdir TremFusion/test/testbase/tremfusion
Setting up the game data
We'll need to give the game some data. That's easy enough. Link to your 1.1.0 pk3s and unzip their contents to the testbase/base directory
cd TremFusion/test/testbase/base ln -s ~/.tremulous/base/data-1.1.0.pk3 ./ ln -s ~/.tremulous/base/vms-1.1.0.pk3 ./ ln -s ~/.tremulous/base/map-atcs-1.1.0.pk3 ./ unzip data-1.1.0.pk3 unzip vms-1.1.0.pk3
Now you'll have all the game data in the base directory, as well as a single map, atcs. However, this won't work all by itself for TremFusion. TremFusion wants more. Head over to your build area and make the TF pk3s
cd TremFusion/main/misc ./makepk3s.py -d
Now we need to put this data where the game can get it. Where would that be? That's right, TremFusion/test/testbase/base.
mv tremfusion-*.pk3 TremFusion/test/testbase/base cd TremFusion/test/testbase/base unzip tremfusion-data-*.pk3 unzip tremfusion-game-*.pk3
Each unzip command will ask you to overwrite a bunch of files. Just do it - we need the newer versions for this to work.
Next we'll need the DLL files (.so, for us cool Linux guys). I'm not entirely sure we need them, but I like having them...so do it! We'll just link from the build directory to them, since you're probably the type who updates often and rebuilds...
cd TremFusion/test/testbase/tremfusion ln -s TremFusion/main/build/release-linux-x86_64/base/gamex86_64.so TremFusion/test/testbase/tremfusion ln -s TremFusion/main/build/release-linux-x86_64/base/cgamex86_64.so TremFusion/test/testbase/tremfusion ln -s TremFusion/main/build/release-linux-x86_64/base/uix86_64.so TremFusion/test/testbase/tremfusion
Testing Things
Before testing will work, we need to start up TremFusion and change a setting. So, go ahead and use TremFusion/test/run.sh, then bring up the console and do the following
/fs_extrapaks .
You might also want to disable full-screen. I do. On Linux that actually allows me to do other things, like chat with other devs, while I mess with stuff.
/r_fullscreen 0
Now we can test it with ATCS
/devmap atcs
It should process for a bit, then load up atcs. If not...well, contact us
Windows
Get Linux. Do the Linux steps. Repent.
OK, just kidding, I'll try to write this from my amazing memory, instead of actually testing on Windows. You should be used to that. That's how your OS was made. Didn't you know? Alright, I broke down and actually tested it and wrote you a proper guide. Be grateful. I feel dirty.
Set up the area
Create a new directory. We'll call it TremFusion\test. Do this by creating the directory and then copying stuff from your build directory. I'm sure you have a build directory. If not, go here.
Since you will probably do this with Windows Explorer, or some other crappy GUI, I'm not going to have more than bulleted lists of things you should do
- Create a new directory, TremFusion\test anywhere you want
- Copy over tremulous.exe (or whatever its called on windows) from your build directory (or the [wiki:Releases releases] page into TremFusion\test
- Also copy over SDL.ll from the [wiki:Releases releases] page
Also create a new batch script. It should contain the following, and be placed in TremFusion\test
tremulous.exe +set fs_debug 1 +set developer 1 +set fs_extrapaks "." +set fs_basepath . +set fs_homepath .\testbase
You can create it using Notepad. Sucker.
This sets up the paths to use the TremFusion\test directory as the only place to look for files. We want that. It also sets up a ton of debugging information that can be helpful. Finally, it copies everything from the console to a flat file (stderr.txt and stdout.txt) so you can review it if you need to. Let's name this new file run.bat
Go ahead and run the file now. You should see the following:
That's good, that means you're following along nicely. Now we're going to make a few new directories for it to use
- Create TremFusion\test\testbase
- Create TremFusion\test\testbase\base
- Create TremFusion\test\testbase\tremfusion
Setting up the game data
We'll need to give the game some data. That's easy enough. ~~Link to your 1.1.0 pk3s and unzip their contents to the testbase/base directory~~ Get a cool program like 7zip and tell it to unzip your 1.1.0 pk3s to your TremFusion\test\testbase\base directory. Have fun using a GUI to do something that only took me 10 sec in Linux...
- Unzip data-1.1.0.pk3 into TremFusion\test\testbase\base
- Unzip vms-1.1.0.pk3 into TremFusion\test\testbase\base
- Copy map-atcs-1.1.0.pk3 into TremFusion\test\testbase\base
Now you'll have all the game data in the base directory, as well as a single map, atcs. However, this won't work all by itself for TremFusion. TremFusion wants more. Head over to your build area and make the TF pk3s
K, you'll need to get the TremFusion pk3s somehow. You could go through the whole process of getting python working on windows, passing it command line options, blah blah blah. Or, just be a good little windows kiddie and download them at the bottom of this page. Woot. Removed during changeover from Trac to MediaWiki
So, download those and unzip them into TremFusion\test\testbase\base. Overwrite any files already there. That's why we're doing this.
- Unzip tremfusion-data-r*.pk3 into TremFusion\test\testbase\base
- Unzip tremfusion-game-r*.pk3 into TremFusion\test\testbase\base
Now delete the old pk3s, if you copied them into the directory to unzip them (like I did). Basically, just make sure there are no pk3s in the TremFusion\test\testbase\base directory
- Delete any pk3s in TremFusion\test\testbase\base except map-atcs-1.1.0.pk3
At this point, let's make sure you're keeping up with me. Run TremFusion via the 'run.bat' file. The game should start up. Bring up the console and do
\devmap atcs
It should process a bit, then pop up with the following error:
You with me? Good. Just hit 'no' and TremFusion will close.
At this point, I'm still figuring out how to get this to work.
Setting up the dlls
Right now, the map is failing because we aren't using the correct syscalls to load the files. We need to fix that by adding in the TremFusion windows dll files. Download those at the bottom of the page (tremfusion-dlls.zip). Unzip them to your TremFusion\test\testbase\tremfusion directory.
Alternatively, if you have a working build area, you can pull your own .dll files from the build area. That's the best way to go, since my dlls are likely out of date.
- Download tremfusion-dll.zips
- Unzip them to TremFusion\test\testbase\tremfusion
Testing It All
Before testing will work, we need to start up TremFusion and change a setting. So, go ahead and use TremFusion\test\run.sh, then bring up the console and do the following
/fs_extrapaks .
You might also want to disable full-screen. I do. On Windows that actually allows me to do other things, like chat with other devs, while I mess with stuff.
/r_fullscreen 0
Now we can test it with ATCS
/devmap atcs
It should process for a bit, then load up atcs. If not...well, contact us
Mac
Lol. Sorry. Guess your ipod wasn't worth it, was it?
Conclusion
After all of this, you should be able to produce extremely creepy stuff, like this:

