Heroes III

I like to keep Heroes III around for the old times’ sake. I have the Complete edition, which unfortunatelly has no Linux version. The Complete edition can be installed and played via WINE, but it is not stable and keeps one of my CPU cores constantly at 100%. I looked for another option and came across the VCMI project, which seems quite promising.

The people behind VCMI aim to rewrite the entire Heroes III engine giving it new possibilities. VCMI is an open-source project and can be compiled for Linux. Great!

In fact, vcmi can be easily installed on Slackware, as it is available at SBo., maintained by Dimitris Zlatanidis. At the moment, the version at SBo is 0.97, while the newest one is 0.98. In my experience, the 0.97 release had problems: it would often crash and had issues with AI (the computer player just does nothing for many turns). Therefore, I decided to try the 0.98 release and modified the vcmi.SlackBuild:

Change version:

VERSION=${VERSION:-0.98}

Comment out the following:

# remove static library
#rm $PKG/usr/lib/libfuzzylite-static.a

# fix lib path
#if [ "$ARCH" = "x86_64" ]; then
# mv $PKG/usr/lib/ $PKG/usr/lib64
#fi

You can get the modified SlackBuild from here. The source download for version 0.98 is here. This release requires an additional dependency, fuzzylite also available from SBo. Therefore, the complete build order is as follows (and you can get the queue to be used with sbopkg):

SDL2
SDL2_ttf
SDL2_mixer
SDL2_image
x264
lame
ffmpeg
fuzzylite
qt5
vcmi

Due to some reason, the compilation of QT5 in a virtual machine broke… Therefore, I downloaded the precompiled package available at SlackOnly. Seems to work just fine, at least here. Later I managed to compile QT5 on my host system without any problems. Weird!

Once everything is installed it is time to copy some data, either system-wide or locally. I prefer the local approach, so place the following for your user in the locations listed below.

  1. Data, Maps and Mp3 from Heroes III: Shadow of Death or Complete edition go here:
    ~/.local/share/vcmi/Data/
    ~/.local/share/vcmi/Maps/
    ~/.local/share/vcmi/Mp3/
  2. Unpack the core vcmi data and the unofficial WoG addon here:
    ~/.local/share/vcmi/Mods/WoG/
    ~/.local/share/vcmi/Mods/vcmi/
  3. The extraResolutions and bonusIcons.
    ~/.local/share/vcmi/Mods/vcmi/Mods/bonusIcons
    ~/.local/share/vcmi/Mods/vcmi/Mods/extraResolutions

By default, there will be no music, because the SDL_mixer package built from SBo is compiled without mp3 support. To make music work, the files should be converted to ogg. The vcmibuilder can do this for you:

vcmibuilder --convertMP3

Keep in mind that this will also delete the original mp3 files, leaving only the converted ogg. Of course, you could compile SDL2_mixer with mp3 support, but this needs  smpeg2, which is not available from SBo at the moment. I have not tried this!

Now it’s time to start the game! The VMCI project has a neat graphical interface that allows you to easily download Mods and change settings:

vcmi1

vcmi2

The “High-res menu” option is a nice touch. A very useful enhancement is the option to run the game in a number of extra resolutions. You can even set it to 1920×1080 in fullscreen mode. I just choose the 1280×800 pixels resolution to be run in a window:

screenshotvcmi

screenshotvcmi1

The game works quite well, but still crashed once, so I got the habit to save it regularly. The AI players are active, although they seem a bit stupid. However, I have not had the time to play long enough to be sure.

I hope the VCMI project continues and reaches high stability!

Links

For convenience, I uploaded the modified SlackBuild and all downloads (except the original game data, of course) here.

Original HowTo and forum discussions:

Installation on Linux

Mod resolutions other than 800×600

More about the bonus resolutions

Leave a comment

Filed under game, SlackBuilds

Dependencies calculator

I came across this interesting discussion at LQ, introducing a new tool called HooRex (a pun for “who requires”). The program scans the SBo repository and determines dependency relations between packages in both directions:

  1. It can determine if a package is required by others.
  2. It can resolve dependencies for a given package.

The program does so by reading the REQUIRES field in the *.info file for each entry. The latest version of HooRex at the moment is 0.5.5 and  requires pyxdg available from SBo. HooRex itself is not (yet) at SBo, so I just downloaded, unpacked the program and ran it from its folder. First, I had to point where my SBo repository was:

./hoorex -s /var/lib/sbopkg/SBo/14.1/

To check what depends on, say muParser, just run ./hoorex muParser. Now, a few options:

  • -1 :  Show output as a single column i.e. newline separated rather than space separated
  • -i : Restrict output to those packages already installed, with the exception of the target package(s) which are included.
  • -l : Show category of each resulting package as well as the package
  • -m: Normally, hoorex outputs the names of packages which directly depend on the target PKG(s). In *multilevel* mode, these directly depending packages are also processed to find which packages depend on them; this process is continued until no further depending packages are found.
  • -r : Reverse the default calculation of dependency tree i.e. instead of determining which other packages require the target package(s), calculate which packages are required to build the target package(s).

Usage examples:

To see what from the installed packages (option -i) depends on gtkmm and view the result as a list (option -1):

bash-4.2$ ./hoorex -i -1 gtkmm
gtkmm
gelemental
gparted
gbgoffice
inkscape

To see the dependencies of Inkscape (option -r) and present it as a list, so it makes a build queue:

bash-4.2$ ./hoorex -r -1 inkscape
mm-common
gsl
libsigc++
numpy
glibmm
cairomm
pangomm
BeautifulSoup
atkmm
lxml
gtkmm
inkscape

A SlackBuild as well as packages (for Slackware 14.1-32bit and Slackware 14.1-64bit) were prepared by Nicolas Kovacs part of his Microlinux project. There is also a review of HooRex (in French).

In a way, HooRex is reminiscent to the package dependency graphs from SBo.

Leave a comment

Filed under SlackBuilds, system

Removing WINE file associations

I keep WINE installed for the sole purpose of playing StarCraft – BroodWar if I happen to be in a nostalgic mood. Annoyingly, WINE tends to “steal” a lot of the file associations from other programs. For example if I want to open a text file, Notepad insists on doing this. Come on…

The solution I have is to just delete all file associations for WINE programs. Go to ~/.local/share/applications and delete everything that begins with wine-extension.

Whew!

Leave a comment

Filed under desktop, misc, system

ALINE: colouring, numbering and annotation

Aline is an extensible WYSIWYG protein sequence alignment editor for publication quality figures. It can  read common sequence alignment formats which the user can then alter, embellish, markup etc to produce the kind of sequence figure commonly found in biochemical articles. Its homepage is here.

Aline is an interactive perl/tk application and can be installed from SBo. I have used the program to create visually appealing  multiple sequence alignment (MSA) figures and decided to list a few basic steps.

Colour scheme

To set a colour scheme:
  • choose a colour scheme from ‘Colouring > Predefined colour scheme’
  • set the scheme ‘Colouring > By similarity’
  • pick which sequences you want
  • adjust “Low similarity cutoff” and click ‘Run’
To choose a custom colour scheme:
  •  go ‘Colouring > Load colour scheme’
  •  set it as above ‘Colouring > By similarity’
To modify the scheme
  • go ‘Colouring > Edit colour scheme’
  • save it from ‘Colouring > Save colour scheme’ menu

Sequence annotation

Insert an empty row for your annotation:
  • select the ‘Insert blank row’ button from the ‘Actions’ panel
  • click on an existing sequence row
  • the new blank row will be inserted abov
  • …or you can just right-click on a row and do all that from the context menu
Draw in the blank row the topology of your sequence of choice:
  • shapes are in the ‘Draw’ panel — click on the side button of the “Helix” shape to see them all
  • choose what you want
  • to draw the selected shape, left-click on the empty row and drag
  • you can select a different line and fill colour from the ‘Attributes’ panel
  • …of course, you should know the coordinates of your domains. The SMART database is a good place to predict these.

Residue numbering

To enumerate the sequence you want to use as a reference, better put it as the first sequence:
  • click the ‘Drag row’ button from the ‘Actions’ panel
  • left-click on the row you want to drag
  • move it up
To add residue number:
  • go to ‘Tools > Add residue numbers’
  • specify which sequence the numbering will follow
  • where to be drawn, etc.

This will follow the uninterrupted residue number of the selected sequence. It will skip any gaps created by the MSA program. In most cases this is what you want. You may, however, want to add numbering that corresponds to the length of the whole MSA, not individual sequences. I did not find a way to do this directly. Therefore, I created a fasta file that contained only the “X” character, that ALINE will interpret as unidentified residue. For example if my MSA was 200 amino acids long, I made a fasta file with 200 “X” characters. Like this:

>RULER
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

To append it to your MSA, go to ‘Edit > Insert sequences from file’. Add residue numbers as above but this time based on this “RULER” sequence. Once the numbering is inserted, you can delete the “RULER” row. The numbers will stay.

Exporting graphics

Once you have the MSA coloured and pretty, you have to export it. I would recommend exporting it as EPS (File > Export postscript). You can open it with another graphics manipulation software. I use Inkscape and from there you can export in a number of vector or raster graphic formats.

Other

One thing I found a bit inconvenient was the maximum row length. It is 100 characters by default. I just opened the /usr/bin/aline perl executable and modified line 1523 from this:

$ui{nchscale}=_mySlider($sframe,'Width in characters',10,100,40,'nch',0);

to this:

$ui{nchscale}=_mySlider($sframe,'Width in characters',10,1000,40,'nch',0);

I am going to add the option to my aline.SlackBuild to do this for you, when I submit an update of the script.

Citing

Bond, C.S. and Schüttelkopf, A.W. (2009), Acta cryst. D65, 510-512

Leave a comment

Filed under Academic

Cyrillic in the XMMS playlist

In the XMMS playlist, the default font for GTK1 does not display correctly Cyrillic file names. A commonly used encoding for Cyrillic text is CP1251. To select a font that supports it, go to Preferences > Fonts > Playlist.

Clicking the Browse button will show the Select playlist font window. Go to the Filter tab and look for the Charset called microsoft-cp1251:

Screenshot - 04042015 - 01:40:47 PM

Now go to the Font tab to see what fonts have been filtered out. The only one that supports this character set is Terminus:

Screenshot - 04042015 - 01:41:00 PM

Select your preferred style and size and click OK. That’s it.

Leave a comment

Filed under desktop, media