Building EDuke32 on Linux: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
Line 3: Line 3:
All Linux distributions do pretty much the same things but a bit different. Below are some instructions for getting EDuke32 running on Fedora 6, 7, or 8.
All Linux distributions do pretty much the same things but a bit different. Below are some instructions for getting EDuke32 running on Fedora 6, 7, or 8.


== '''Building EDuke32 on Fedora''' ==
Submitted By: Casey Mynott (bigjeep95) Jan 6, 2007 11:30pm (British Columbia, Canada)
Updated By: Jorge Silva (operon) Nov 9, 2007 9:58pm (Ontario, Canada)
Updated By: Casey Mynott (bigjeep95) December 4, 2007 10:20pm (British Columbia, Canada)
Updated By: Vincent Beers (DaVince) December 22, 2007 21:10pm (Amsterdam, Netherlands)
This information covers:
-Installation on Fedora 6, 7, and 8 with the latest EDuke32 source files
-Adding the HRP (High Resolution Packages) <-- these are amazing and brings Duke Nukem 3d into the year 2000!
-Adding sound <-- As of the eduke32_src_20070905 files that I just built, the sounds works! WOO HOO! ;)
'''Note:''' Building this way should work on more distributions than just Fedora Core, for example, I (DaVince) have it running successfully in Ubuntu Gutsy (7.10).




Installation Notes:  
Installation Notes:  
<br />
<br />
1. You need an actual copy of Duke Nukem 3D. The shareware vesion can be found here. [http://www.3drealms.com/duke3d/]
# You need an actual copy of Duke Nukem 3D. The shareware vesion can be found here. [http://www.3drealms.com/duke3d/]
 
# Proper 3d acceleration drivers. NVIDIA has classically had the best linux drivers. Ubuntu/Debian can use <code>envyng</code>.
2. I had HUGE problems using my 128mb ATI graphics card. After I switched to an older 64mb nvidia card and used the LIVNA drivers life was great. So, use an NVIDIA graphics card and use the LIVNA repo to get your drivers. Maybe one day ATI and Linux will be friends but that day is not here.
# Proper MIDI install. The eduke32 will appear to "randomly" crash without one. Use <code>timidity</code> for an easy software midi solution.




'''Step #1 - You need to acquire and unzip the source packages for EDuke32. '''
'''Step #1 - You need to acquire and unzip the source packages for EDuke32. '''


You need both the eduke32 source and txbuild source files. Download them to your desktop from [http://www.eduke32.com/downloads here]. Once you have download them, you must unzip them into the same directory, as a result, you will have two folders: "eduke32_src_xxxx" and "txbuild_src_xxxx".
You need the eduke32 source source files. Download them to your desktop from [http://www.eduke32.com/downloads here]. Once you have download it, you must unzip , as a result, you will have the folder: "eduke32_src_xxxx".




'''Step #2 - Rename folders on your desktop.'''
'''Step #2 - Prepare Linux for the build process'''
 
Rename the "eduke32_src_xxxx" folder to "duke3d" and the "txbuild_src_xxx" folder to "build". Why these names? Well, when you build the required EDuke32 files from the "duke3d" folder it looks into the "build" folder for required information.
 
 
'''Step #3 - Prepare Fedora for the build process'''


Fedora needs some packages installed before you can properly build the required files. So, what files do you need? Under Yum Extender GUI or in a terminal window you need to install these files. Here's the list:
Fedora needs some packages installed before you can properly build the required files. So, what files do you need? Under Yum Extender GUI or in a terminal window you need to install these files. Here's the list:


# basic dev environment (gcc, make, etc); Ubuntu package build-essential
# SDL development & runtime files (ubuntu 8.04 packages were libsdl1.2-dev  libsdl-mixer1.2-dev)
# SDL development & runtime files (ubuntu 8.04 packages were libsdl1.2-dev  libsdl-mixer1.2-dev)
# nasm
# nasm
Line 54: Line 27:




'''Step #4 - Building the EDuke32 files.'''
'''Step #3 - Building the EDuke32 files.'''


In a terminal window move to the "duke3d" folder and type <code>make</code>.
In a terminal window move to the "duke3d" folder and type <code>make</code>.


NOTE: with recent gcc versions remove; <code>-finline-small-functions -fpredictive-commoning</code> options from <code>debug=</code> options in <code>eduke32/Makefile</code> and <code>build/Makefile</code>
NOTE: with eduke32_src_20080924 and newer gcc versions (4.2.3) remove; <code>-finline-small-functions -fpredictive-commoning</code> options from <code>debug=</code> options in <code>eduke32/Makefile</code> and <code>build/Makefile</code>




'''Step #5 - Confirm that the following files were created.'''
'''Step #4 - Confirm that the following files were created.'''


# mapster32.map
# mapster32.sym
# mapster32.sym
# mapster32 (executable)
# mapster32 (executable)
# eduke32.map
# eduke32.sym
# eduke32.sym
# eduke32 (exectuable)
# eduke32 (exectuable)


<br />Note: The .sym and .map files are actually not that important for regular users. You'll want the extensionless binaries if you want to play normally.
'''Step #5 - Combine all the files.'''
 
 
'''Step #6 - Combine all the files.'''


You need to have the original Duke Nukem files and the newly created EDuke32 files in the same place. So, you could create a new folder on your desktop (example eduke32_linux) and copy the original game files and the newly created EDuke32 files there.
You need to have the original Duke Nukem files and the newly created EDuke32 files in the same place. So, you could create a new folder on your desktop (example eduke32_linux) and copy the original game files and the newly created EDuke32 files there.




'''Step #7 - Run the game!'''
'''Step #6 - Run the game!'''


To run the game open up a terminal window, move to the proper directory and type:
To run the game open up a terminal window, move to the proper directory and type:

Revision as of 20:08, 9 October 2008

Prelude

All Linux distributions do pretty much the same things but a bit different. Below are some instructions for getting EDuke32 running on Fedora 6, 7, or 8.


Installation Notes:

  1. You need an actual copy of Duke Nukem 3D. The shareware vesion can be found here. [1]
  2. Proper 3d acceleration drivers. NVIDIA has classically had the best linux drivers. Ubuntu/Debian can use envyng.
  3. Proper MIDI install. The eduke32 will appear to "randomly" crash without one. Use timidity for an easy software midi solution.


Step #1 - You need to acquire and unzip the source packages for EDuke32.

You need the eduke32 source source files. Download them to your desktop from here. Once you have download it, you must unzip , as a result, you will have the folder: "eduke32_src_xxxx".


Step #2 - Prepare Linux for the build process

Fedora needs some packages installed before you can properly build the required files. So, what files do you need? Under Yum Extender GUI or in a terminal window you need to install these files. Here's the list:

  1. basic dev environment (gcc, make, etc); Ubuntu package build-essential
  2. SDL development & runtime files (ubuntu 8.04 packages were libsdl1.2-dev libsdl-mixer1.2-dev)
  3. nasm
  4. libstdc++


Step #3 - Building the EDuke32 files.

In a terminal window move to the "duke3d" folder and type make.

NOTE: with eduke32_src_20080924 and newer gcc versions (4.2.3) remove; -finline-small-functions -fpredictive-commoning options from debug= options in eduke32/Makefile and build/Makefile


Step #4 - Confirm that the following files were created.

  1. mapster32.sym
  2. mapster32 (executable)
  3. eduke32.sym
  4. eduke32 (exectuable)

Step #5 - Combine all the files.

You need to have the original Duke Nukem files and the newly created EDuke32 files in the same place. So, you could create a new folder on your desktop (example eduke32_linux) and copy the original game files and the newly created EDuke32 files there.


Step #6 - Run the game!

To run the game open up a terminal window, move to the proper directory and type:

./eduke32

If you have done everything correctly then the game should run great.

Installing EDuke32 globally

Installing EDuke32 as an application that you could run anywhere brings some useful advantages and is surprisingly easy to do.

EDuke32 will use the directory you are currently in as the directory to work in, as well as ~/.eduke32 (/home/yourname/.eduke32). This means that you could have a directory, copy a Duke Nukem TC (or mod) in there, cd to that directory and run the global EDuke32 binary without having to make even more copies of the same EDuke32 binaries. EDuke32 will adapt to use the GAME/USER.CON files it finds in the CURRENT directory.


How?

All you'll have to do to get EDuke32 to run from anywhere is copy the eduke32 and mapster32 binaries to /usr/bin. After doing this, copy (or move) the Duke Nukem GRP file to /home/yourusername/.eduke32 (it's hidden, so try to cd to it or show hidden files). After this you'll be able to run EDuke32 from any directory on your hard disk!



Notes

Lowercase/uppercase problems

Shareware
If you are using the Shareware files located on the 3D Realms website, after you build and combine all the files into one folder and try to run the game you will get an error about the TABLES.DAT file. To correct the error simply rename the DUKE3D.GRP to all lowercase letter. After that the game should run.


Maps with extra resources
Some maps that include extra resources might have trouble finding these new files (for example, an older version of Duke Plus won't be able to find Step#.wav and Grate#.wav sounds). The EDuke32 log will output a "file not found" error every time this happens. To fix this, change the names of these files to match the exact case given in EDuke32's log (for example, GRATE#.wav instead of Grate#.wav).


ART file inconsistency While most standard resources are referred to as UPPERCASE by EDuke32 (for example, GAME.CON), ART files are not as consistent and should be renamed to lowercase if you want to use custom art (tiles014.art instead of TILES014.ART).

Running with HRP Notes

  • Running EDuke32 with an ATI card is slow for some reason. Even though most ATI cards are supported in Linux nowadays.

A WIP kind of like DNF. ;)