Running Tales of Monkey Island with Wine

I’m a proud adventure game fan boy and have enjoyed countless hours in the company of Monkey Island, Day of the Tentacle, Legend of Kyrandia among others. ScummVm have helped to re enjoy many of these titles after replacing my preferred desktop system with Linux.

When the news reached my ears about “Tales of Monkey Island” I was very exited. But also nervous if would be able to play these episodes without Windows… but fear no more.

It is possible!

My system:

  • Nvidia graphic card
  • Ubuntu Karmic 64bit
  • Wine from special package archive (to get native pulse audio support)

The episodes install on all Wine versions I’ve tried on so far (several guides on the internet suggests not to check for DirectX, though I haven’t personally experienced any difference). When the game starts you are asked to provide the serial number. In this phase I’ve encountered trouble several times. Earlier providing the serial number only worked in old versions of Wine (like version 1.0) but this time I got it working with the newest version of Wine (which at the time was 1.1.32). Also I had to delete my .wine folder in order to reset wine because I apparently had some IE6 leftovers in there which otherwise would mess up the registration.

After activating the episodes you need to install D3DX9_41.dll into .wine/drive_c/windows/system32. Remember Linux is case sensitive so it is possible to have several different files with the same name except for the case. If it still doesn’t work make sure you only have one d3dx9_41.dll and that it’s not the one provided by wine (which won’t work).

Now the game starts… but for me the sound jittered. After looking around I found that it was ALSA interface in Pulseaudio which kept loosing the “connection” re initiating it. My saviour was Neil Wilson who have packaged Wine with a native pulseaudio audio plugin. This did the trick for me and Tales of Monkey Island is now very much playable at least for me :D

I wish Boxee had Lovefilm support

After using Boxee for some time now I tried to find an European alternative and landed on Lovefilm. Sadly Lovefilm isn’t accessible through Boxee.

Lovefilm at least supports Firefox users… if I would ever find the time to try write a plugin myself this is the links I would use:

First of I’m not alone thinking Lovefilm for Boxee would a great idea :D

Next I would need some information about developing plugins for Boxee (incl. a tutorial).

Lastly I would probably need some stuff for Emacs which I’ve been using for a while now.

Undelete / restore deleted files on ext3 is possible

For a long time I thought the only way to restore something deleted on ext3 was to cat the device and grep for known strings from the deleted files. Which:

  1. only worked for text files like like config and code files.
  2. was very cumbersome and error prone.

Anyway thanks to Carlo Wood, ext3grep and this fine tutotial about HOWTO recover deleted files on an ext3 file system which has proven me wrong. Not that I need it right now but I’ve been there and will probably end up in the situation again.

Wordpress with Markdown

Today I updated Wordpress which went smooth so I decided to fix a problem on my blog which appeared when I first migrated to Wordpress. I’m using the plugin Markdown for WordPress and bbPress so I can write posts with Markdown syntax and I use code sections heavily. The problem was that using special characters like: & “ ‘ within code paragraph would look like this:

& ” ‘ < >

For now I just reverts posts upon displaying so the html entities are replaced by special characters. I know this is not the right way but its temporary :)

I asked on the Wordpress IRC and a nice guy called ‘ansimation’ gave me this to work with:

function reconvert_pre_entities( $d ) {
     return preg_replace_callback('/<pre>(.*?)/sim', create_function('$matches', 'return( html_entity_decode($matches[0]) );'), $d );
}
add_action('the_content', 'reconvert_pre_entities' );

When I get a little time I’m going to incorporate this into the Markdown plugin so it wont affect any of the other blogs not using Markdown.

Trunk port in VMware used by Ubuntu Server (Hardy)

At work I had to setup the network on Ubuntu Server (Hardy) so it was able to scan several networks with nmap as if they where local networks (and thus able to get MAC addresses). Until now the networks was scanned through a router which means the MAC addresses was lost. The reason for the importance of the MAC addresses was to identify whether a machine was likely a virtual machine or a physical machine.

The machine scanning is a virtual machine in VMware. Seven networks needed the ability to scan MAC adresses. VMware has a limitation of only 6 hardware devices (at least in ESX 3.5) which meant that having two harddisks it was only able to scan four out of the seven networks giving the machine a virtual NIC in each network. The ESX server separated the networks with VLAN tags so to work around this we created a virtual trunk NIC.

Notice: The VLAN ID is optional but an empty VLAN ID means it cannot see VLAN tags. If you want a VMware NIC. To see all VLAN tags the VLAN ID must be 4095 (this might be VMware specific). This gave me and a colleague quite a headache before we figured it out.

To create trunked NIC in VMware:

  • Click on the ESX server you want to create it on.
  • Click on the “Configuration” tab to the right.
  • Find the virtual switch in which the trunked NIC should reside in and click on “Properties…”.
  • Click on the “Add…” button at the bottom to start the wizard.
  • For “Connection Types:” select “Virtual Machine” and press “Next”.
  • Give the NIC a name ie. “Trunk” and set the “VLAN ID (Optional):” to 4095 and press “Next”.
  • Now just press “Finish” and notice the right information pane now indicating VLAN ID is set to “All”.

For Ubuntu Server (Hardy) to play nice with this new trunked NIC I found some help on the Ubuntu forums on how to setup VLAN.

First you have to install the vlan package:

sudo aptitude install vlan

Now enable the module:

sudo modprobe 8021q

And make sure it gets automatically loaded the next time the machine starts up:

sudo  sh -c 'grep -q 8021q /etc/modules || echo 8021q >> /etc/modules'

Now configure your NIC in the following file:

/etc/network/interfaces

The following example sets up the ip 192.168.1.100 with 8 as a VLAN tag on eth0:

auto eth0.8
iface eth0.8 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1

Now bring up the interface with:

sudo ifup eth0.8