Nov 142014

MOD Music on FreeBSD 10 with xmmsAs much as I am a WinAmp 2 lover on Microsoft Windows, I am an xmms lover on Linux and UNIX. And by that I mean xmms1, not 2. And not Audacious. Just good old xmms. Not only does it look like a WinAmp 2 clone, it even loads WinAmp 2/5 skins and supports a variety of rather obscure plugins, which I partially need and love (like for Commodore 64 SID tunes via libsidplay or libsidplay2 with awesome reSID engine support).

Recently I started playing around with a free Laptop I got and which I wanted to be my operating systems test bed. Currently, I am evaluating – and probably keeping – FreeBSD 10 UNIX. Now it ain’t perfect, but it works pretty well after a bit of work. Always using Linux or XP is just a bit boring by now. ;)

One of the problems I had was with xmms. While the package is there, its built-in tracker module file (mod, 669, it, s3m etc.) support is broken. Play one of those and its xmms-mikmod plugin will cause a segmentation fault immediately when talking to a newer version of libmikmod. Also, recompiling [multimedia/xmms] from the ports tree produced a binary with the same fault. Then I found this guy [Jakob Steltner] posting about the problem on the ArchLinux bugtracker, [see here].

Based on his work, I created a ports tree compatible patch patch-drv_xmms.c, here is the source code:

  1. --- Input/mikmod/drv_xmms.c.orig        2003-05-19 23:22:06.000000000 +0200
  2. +++ Input/mikmod/drv_xmms.c     2012-11-16 18:52:41.264644767 +0100
  3. @@ -117,6 +117,10 @@
  4.         return VC_Init();
  5.  }
  7. +static void xmms_CommandLine(CHAR * commandLine)
  8. +{
  9. +}
  10. +
  11.  MDRIVER drv_xmms =
  12.  {
  13.         NULL,
  14. @@ -126,7 +130,8 @@
  15.  #if (LIBMIKMOD_VERSION > 0x030106)
  16.          "xmms",
  17.          NULL,
  18. -#endif
  19. +#endif
  20. +       xmms_CommandLine, // Was missing
  21.          xmms_IsThere,
  22.         VC_SampleLoad,
  23.         VC_SampleUnload

So that means recompiling xmms from source by yourself. But fear not, it’s relatively straightforward on FreeBSD 10.

Assuming that you unpacked your ports tree as root by running portsnap fetch and portsnap extract without altering anything, you will need to put the file in /usr/ports/multimedia/xmms/files/ and then cd to that directory on a terminal. Now run make && make install as root. The patch will be applied automatically.

Now one can once again run xmms and module files just work as they’re supposed to:

A patched xmms playing a MOD file on FreeBSD 10

xmms playing a MOD file on FreeBSD 10 via a patched xmms-mikmod (click to enlarge)

The sad thing is, soon xmms will no longer be with us, at least on FreeBSD. It’s now considered abandonware, as all development has ceased. The xmms port on FreeBSD doesn’t even have a maintainer anymore and it’s [scheduled for deletion] from the ports tree together with all its plugins from [ports/audio] and [ports/multimedia]. I just wish I could speak C to some degree and work on that myself. But well…

Seems my favorite audio player is finally dying, but as with all the other old software I like and consider superior to modern alternatives, I’m gonna keep it alive for as long as possible!

You can download Jakobs’ patch that I adapted for the FreeBSD ports tree right here:

Have fun! :)

Edit: xmms once again has a maintainer for its port on FreeBSD, so we can rejoice! I have [submitted the patch to FreeBSDs bugzilla] as suggested by [SirDice] on the [FreeBSD Forums], and Naddy, the ports maintainer integrated the patch promptly! It’s been committed since [revision 375356]! So now you don’t need to patch it by hand and recompile it from source code anymore – at least not on x86 machines. You can either build it from ports as-is or just pull a fully working binary version from the packages repository on FreeBSD 10.x by running pkg install xmms.

I tested this on FreeBSD 10.0 and 10.1 and it works like a charm, so thanks fly out to Jakob and Naddy! Even though my involvement here was absolutely minimal, it feels awesome to do something good, and help improving a free software project, even if only marginally so. :)

Jul 302012

DayZ BannerSo I’ve started playing the [DayZ mod] for ArmA II Combined Operations, which is originally a military simulator. I say “simulator”, not “shooter”, because that’s not what it is. And what exactly is DayZ? If you haven’t heard about it, it’s a survival Zombie mod taking place in Chernarus, a fictional ex-sovjet state 15x15km, or in other words 225km² large. And what exactly do you do there?

Survive! You spawn with a pack of bandages, a flashlight, a pack of painkiller pills and that’s about it. You have to care about getting drink and food in whatever form, otherwise you’ll be parched and starving soon enough. There are weapons of course, but ammunition is scarce and heavy to carry around in large amounts anyway. So you will think twice, maybe trice before shooting a single bullet. It’s better to avoid confrontation with any Zombies.

You see a player? Most likely that will send a chill down your spine and you will try to hide in the grass, hoping that he won’t spot you. You will learn to live in the woods, hunt, gut animals and make fire to grill meat. You will learn to remember freshwater spots so you don’t have to enter urban areas to scavenge for sodas. You will learn to navigate by watch and sun, maybe even stars, if you dare to venture out at night.

You will never feel that much rewarded for just finding a can of soda, let alone a box of matches than in this game. In other games finding full auto assault rifles with tons of ammo is just so normal, you feel no excitement about it. In DayZ, you will feel extremely excited for just finding a can of beans (given that you’re already starving)! This game gives you an entirely different perspective, that much is for sure.

If you then survive one or even two days, you WILL feel extremely lucky!

This mod is very pre-alpha though, so it’s buggy and still under heavy development. But damn, it’s freaking cool stuff. If you can imagine yourself in that kind of hardcore Zombie survival scenario, it might be worth a try, just don’t expect a polished product.

I would love to blog all my great experiences in DayZ so far, but it’s far too much for a single post here. Maybe I’ll add more later.