Installing EDuke32

November 24, 2009

Install requirements

GNU C++ Compiler (g++)
libSDL runtime & development files
NASM (Assembler)
GTK+ 2.0 runtime & development files
libVorbis development files

Subversion (SVN) – to download the latest EDuke32 source
Timidity – software MIDI player

First check you have the build tools installed by running

gcc –version

You should be given the version, if you get something like ‘command not found’ you will need to install the build tools.
If the version is below 4.0 you should upgrade your build tools to version 4.3 or greater.

If you using Ubuntu you can use the following command to install the build tools.

sudo apt-get install build-essential

If you not using Ubuntu you should search your distributions package manager for the build tools.

All the required development files can be installed on Ubuntu using the following, again check your package manager if you are using a different distribution.

sudo apt-get install subversion timidity libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev nasm libgtk2.0-dev libvorbis-dev

Getting EDuke32

Now you need to get the latest version of EDuke32.

cd ~
svn co https://eduke32.svn.sourceforge.net/svnroot/eduke32 eduke32

I assume your going to build in your home directory, if not I suggest you use /usr/src

Building EDuke32

Once EDuke32 is downloaded you can build it.

cd eduke32/polymer/eduke32
make

If the build completes without errors you should find two executables in your current directory.
Next you need to make the directory where you will place EDuke32 and Duke Nukem 3D.

mkdir ~/duke3d
mv eduke32 ~/duke3d
mv mapster32 ~/duke3d
cd ~/duke3d

Using EDuke32

Alternatively you may install EDuke32 globally, (I.E in /usr/bin) for information on doing this read the EDuke32 wiki.
Now simply get your version of Duke Nukem 3D and look for the file called DUKE3D.GRP. Move this file to where the EDuke32 executable is located. (I.E ~/duke3d)
Once that is done simply run EDuke32 with:

./eduke32

Important Note: ensure that the DUKE3D.GRP file is LOWER CASE, such as duke3d.grp or EDuke32 will not be able to read it, hopefully this will be fixed in future.
I will show you how to use multiplayer in my next post.

Update
There are APT repositories for Debian and Ubuntu for easy installation.

http://wiki.eduke32.com/wiki/APT_repository


Installing Morrowind on Linux

November 19, 2009

This article will show you step by step how to install The Elder Scrolls: Morrowind, Tribunal and Bloodmoon under Linux for running with WINE.
I have tested this with Ubuntu 9.04 and WINE-1.1.33.

This process is much more involved than normal as newer versions of WINE have broken MP3 playback support, so you will need to recompile WINE.

Cleaning up

First you will need to remove any old versions of WINE and libmpg123, how you go about doing this depends on what package management tool you use, I will be giving the below instruction specifically for Ubuntu Linux 9.04, but may also work on other Debian based distributions.

  • Open the terminal

  • Type ‘sudo apt-get remove wine mpg123 libmpg123-0 libmpg123-dev’

Getting the needed stuff

You will be needing quite a bit of stuff before you can begin compiling, first you need the latest WINE source and libmpg123.

  • Get WINE from here

  • Get the latest version of libmpg123 from here

Also get the needed compiler tools, this is ‘build-essential’ on Ubuntu. There may be other packages you will need but you will find out what they are when you get to configuring WINE.

Compiling and installing libmpg123

This step should be pretty simple to manage and it should not require anything besides the compile tools.

  • Extract the source of mpg123 you downloaded and stick it in a folder

  • ‘cd’ to that folder and type ./configure –enable-static –prefix=’/usr/’
  • If configure went well type the following
  • ‘make’
  • ‘sudo make install’

libmpg123 should now be installed.

Compiling and installing WINE

  • Extract WINE into a folder and cd to it.

  • run ./configure –with-mpg123 –prefix=’/usr/’
  • Configure will warn you about any missing libraries, you should install these using your systems package manager unless you do not need the features they provide.
  • If your happy type ‘make depend’ then ‘make’
  • Wait for WINE to compile, this will take about half an hour on a average system
  • Once the compile is complete type ‘sudo make install’
  • Now test out wine !

Installing Morrowind, Tribunal and Bloodmoon

  • Insert the disk or mount the disk image for Morrowind

  • Go to the disk directory and type ‘wine Setup.exe’
  • Install Morrowind
  • Repeat this same process for Tribunal then Bloodmoon, do not do in any other order.
  • Get the latest Bloodmoon patch here
  • Mount the Morrowind image or disk and play

Ruby Sockets

November 3, 2009

For the last few days I’ve been writing a simple IRC bot in Ruby. I have noticed however that the documentation for Ruby Sockets is quite poor, so I thought I’d post a bit about using Ruby Sockets here.

RubySocket
These are all the main classes that deal with sockets, with the exception of IO.

BasicSocket
This is the base socket class which defines a few simple methods, pretty useless on its own.

Socket
This class contains everything you need to work with sockets, however if you intend to use a TCP, UDP, SOCKS or UNIX socket you will probably be better off using one of the other classes.
http://en.wikipedia.org/wiki/Internet_socket

UNIXSocket & UNIXServer
These two classes make it easy to quickly work with UNIX sockets.
http://en.wikipedia.org/wiki/Unix_socket

IPSocket
This is the base class for working with IPv4 and IPv6 addresses.
http://en.wikipedia.org/wiki/Internet_Protocol

UDPSocket
As the name suggests this provides everything you need to work with UDP.
http://en.wikipedia.org/wiki/User_Datagram_Protocol

TCPSocket & TCPServer
Everything you need to deal with TCP is in these two classes as TCP is the most common internet protocol, this will probably be the class you will most use.
http://en.wikipedia.org/wiki/Transmission_Control_Protocol

SOCKSSocket
http://en.wikipedia.org/wiki/SOCKS

For the most part you will only ever make use of TCPSocket, TCPServer and UDPSocket. In my next post I’ll show some examples of using these and Socket.


Follow

Get every new post delivered to your Inbox.