You are here

If you cannot get Carmageddon to run [GUIDE]

Pages

svenskmand's picture
Norman E. Carnage
Kickstarter Backer
Posts: 61
If you cannot get Carmageddon to run [GUIDE]
#1 Submitted: Thu, 09/06/2011 - 20:44

So in hope that some people want to play Carmageddon with me I will tell you exactly how to run the game, even so it works with LAN and internet games :) - this also applies to the Splat Pack.

What you need:

  • A Carmageddon cd (or a Splat Pack cd)
  • Infra Recorder - FOSS burning software
  • DOSBox - FOSS Dos emulator
  • Some sort of ripping software to rip the music off the cd, I like Foobar2000, but choose whatever you like.
  • Patience :)

First we will build a bin/cue pair to use in DOSBox

  1. Make a folder called Carmageddon somewhere with two folders inside one called Carma and ISO.
  2. Push in you cd and copy all the files of the cd to the Carma folder.
  3. Rip the music to mp3 or ogg, whatever you prefer, I will assume that you have called the files T2.ogg, T3.ogg,..., T8.ogg in the rest as I used OGG, but if you use MP3 then call them T2.mp3 etc.
  4. Open op Infra Recorder and start a new "Data Disc" project.
  5. Put all the files in the Carma (not the folder itself only its content) folder into Infra Recorder.
  6. Give the cd the name Carmgeddon (This is not a misspelling) by double-clicking the number int the "Disc Layout" window.
  7. Click on Actions -> Burn Compilation -> To a Disc Image and save the iso as Data.iso in the ISO folder.
  8. Now make a Carma.cue file in the ISO folder and put this into the file:
    Quote:
    FILE "Data.iso" BINARY
    TRACK 01 MODE1/2048
    INDEX 01 00:00:00
    FILE "T2.ogg" MP3
    TRACK 02 AUDIO
    PREGAP 00:02:00
    INDEX 01 00:00:00
    FILE "T3.ogg" MP3
    TRACK 03 AUDIO
    INDEX 01 00:00:00
    FILE "T4.ogg" MP3
    TRACK 04 AUDIO
    INDEX 01 00:00:00
    FILE "T5.ogg" MP3
    TRACK 05 AUDIO
    INDEX 01 00:00:00
    FILE "T6.ogg" MP3
    TRACK 06 AUDIO
    INDEX 01 00:00:00
    FILE "T7.ogg" MP3
    TRACK 07 AUDIO
    INDEX 01 00:00:00
    FILE "T8.ogg" MP3
    TRACK 08 AUDIO
    INDEX 01 00:00:00

Now the ISO is ready and the hard work is over. We now just need to configure DOSBox, for simplicity copy the whole DOSBox folder called DOSBox-0.74 into the Carmageddon folder. Now in the DOSBox-0.74 folder make a new file called Carmageddon.conf and put this into it (notice: you would probably want to change the fullresolution option to something that suits you monitor, I have chosen 1920x1080 as it fits my 46" Sony tv ;), but you might want something else):

Quote:
# This is the configurationfile for DOSBox 0.73.
# Lines starting with a # are commentlines.
# They are used to (briefly) document the effect of each option.

[sdl]
# fullscreen: Start dosbox directly in fullscreen.
# fulldouble: Use double buffering in fullscreen.
# fullresolution: What resolution to use for fullscreen: original or fixed size (e.g. 1024x768).
# windowresolution: Scale the window to this size IF the output device supports hardware scaling.
# output: What video system to use for output.
# Possible values: surface, overlay, opengl, openglnb, ddraw.
# autolock: Mouse will automatically lock, if you click on the screen.
# sensitivity: Mouse sensitivity.
# waitonerror: Wait before closing the console if dosbox has an error.
# priority: Priority levels for dosbox. Second entry behind the comma is for when dosbox is not focused/minimized. (pause is only valid for the second entry)
# Possible values: lowest, lower, normal, higher, highest, pause.
# mapperfile: File used to load/save the key/event mappings from.
# usescancodes: Avoid usage of symkeys, might not work on all operating systems.

fullscreen=true
fulldouble=false
fullresolution=1920x1080
windowresolution=original
output=ddraw
autolock=true
sensitivity=100
waitonerror=true
priority=higher,normal
mapperfile=mapper.txt
usescancodes=true

[dosbox]
# language: Select another language file.
# machine: The type of machine tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# captures: Directory where things like wave, midi, screenshot get captured.
# memsize: Amount of memory DOSBox has in megabytes.
# This value is best left at its default to avoid problems with some games,
# though few games might require a higher value.
# There is generally no speed advantage when raising this value.

language=
machine=svga_s3
captures=capture
memsize=64

[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes. If 'forced' is appended,the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.

frameskip=2
aspect=true
scaler=super2xsai #advinterp3x

[cpu]
# core: CPU Core used in emulation. auto will switch to dynamic if available and appropriate.
# Possible values: auto, dynamic, normal, simple.
# cputype: CPU Type used in emulation. auto is the fastest choice.
# Possible values: auto, 386, 386_slow, 486_slow, pentium_slow, 386_prefetch.
# cycles: Amount of instructions DOSBox tries to emulate each millisecond. Setting this value too high results in sound dropouts and lags. Cycles can be set in 3 ways:
# 'auto' tries to guess what a game needs.
# It usually works, but can fail for certain games.
# 'fixed #number' will set a fixed amount of cycles. This is what you usually need if 'auto' fails.
# (Example: fixed 4000)
# 'max' will allocate as much cycles as your computer is able to handle
#
# Possible values: auto, fixed, max.
# cycleup: Amount of cycles to increase/decrease with keycombo.
# cycledown: Setting it lower than 100 will be a percentage.

core=auto
cputype=auto
cycles=max
cycleup=500
cycledown=20

[mixer]
# nosound: Enable silent mode, sound is still emulated though.
# rate: Mixer sample rate, setting any device's rate higher than this will probably lower their sound quality.
# Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
# blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
# Possible values: 2048, 4096, 8192, 1024, 512, 256.
# prebuffer: How many milliseconds of data to keep on top of the blocksize.

nosound=false
rate=22050
blocksize=2048
prebuffer=64

[midi]
# mpu401: Type of MPU-401 to emulate.
# Possible values: intelligent, uart, none.
# mididevice: Device that will receive the MIDI data from MPU-401.
# Possible values: default, win32, alsa, oss, coreaudio, coremidi, none.
# midiconfig: Special configuration options for the device driver. This is usually the id of the device you want to use. See README for details.

mpu401=none
mididevice=default
midiconfig=

[sblaster]
# sbtype: Type of sblaster to emulate.
# Possible values: sb1, sb2, sbpro1, sbpro2, sb16, none.
# sbbase: The IO address of the soundblaster.
# Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
# irq: The IRQ number of the soundblaster.
# Possible values: 7, 5, 3, 9, 10, 11, 12.
# dma: The DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# hdma: The High DMA number of the soundblaster.
# Possible values: 1, 5, 0, 3, 6, 7.
# sbmixer: Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode: Type of OPL emulation. On 'auto' the mode is determined by sblaster type. All OPL modes are Adlib-compatible, except for 'cms'.
# Possible values: auto, cms, opl2, dualopl2, opl3, none.
# oplemu: Provider for the OPL emulation. compat or old might provide better quality (see oplrate as well).
# Possible values: default, compat, fast, old.
# oplrate: Sample rate of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).
# Possible values: 22050, 49716, 44100, 48000, 32000, 16000, 11025, 8000.

sbtype=sb16
sbbase=220
irq=7
dma=1
hdma=5
sbmixer=true
oplmode=auto
oplemu=default
oplrate=22050

[gus]
# gus: Enable the Gravis Ultrasound emulation.
# gusrate: Sample rate of Ultrasound emulation.
# Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
# gusbase: The IO base address of the Gravis Ultrasound.
# Possible values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300.
# gusirq: The IRQ number of the Gravis Ultrasound.
# Possible values: 5, 3, 7, 9, 10, 11, 12.
# gusdma: The DMA channel of the Gravis Ultrasound.
# Possible values: 3, 0, 1, 5, 6, 7.
# ultradir: Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.

gus=false
gusrate=22050
gusbase=240
gusirq=5
gusdma=3
ultradir=C:\ULTRASND

[speaker]
# pcspeaker: Enable PC-Speaker emulation.
# pcrate: Sample rate of the PC-Speaker sound generation.
# Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
# tandy: Enable Tandy Sound System emulation. For 'auto', emulation is present only if machine is set to 'tandy'.
# Possible values: auto, on, off.
# tandyrate: Sample rate of the Tandy 3-Voice generation.
# Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
# disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).

pcspeaker=false
pcrate=22050
tandy=off
tandyrate=22050
disney=false

[joystick]
# joysticktype: Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks),
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# Possible values: auto, 2axis, 4axis, 4axis_2, fcs, ch, none.
# timed: enable timed intervals for axis. (false is old style behaviour).
# autofire: continuously fires as long as you keep the button pressed.
# swap34: swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap: enable button wrapping at the number of emulated buttons.

joysticktype=none
timed=true
autofire=false
swap34=false
buttonwrap=true

[serial]
# serial1: set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq.
# for directserial: realport (required), rxdelay (optional).
# (realport:COM1 realport:ttyS0).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial2: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial3: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.
# serial4: see serial1
# Possible values: dummy, disabled, modem, nullmodem, directserial.

serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled

[dos]
# xms: Enable XMS support.
# ems: Enable EMS support.
# umb: Enable UMB support.
# keyboardlayout: Language code of the keyboard layout (or none).

xms=true
ems=true
umb=true
keyboardlayout=auto

[ipx]
# ipx: Enable ipx over UDP/IP emulation.

ipx=true

[autoexec]
# Lines in this section will be run at startup.
mount c ".."
mount d D:\ -t cdrom
#imgmount d "..\ISO\Carmageddon.cue" -t iso -fs iso
C:
#IPXNET STARTSERVER
#IPXNET CONNECT
CARMA.EXE
#exit

Start dosbox from the DOSBox.exe in in the DOSBox-0.74 folder, now install the game in DOSBox by typing:

Quote:
D:
DOSINST.BAT

Note above I assume that your Carmageddon cd is in "D:\", if this is not the case then change the line "mount d D:\ -t cdrom" accordingly.

Now follow the onscreen instructions and when you choose the install path then select "C:\CARMA" instead of what it suggests. Also you want to make a full/maximum install.

Now exit DOSBox and change the Carmageddon.conf files so the line "mount c ".."" now reads "mount c "..\CARMA"". Delete the line "mount d D:\ -t cdrom" and change the line "#imgmount d "..\ISO\Carmageddon.cue" -t iso -fs iso" so it reads "imgmount d "..\ISO\Carmageddon.cue" -t iso -fs iso". Finally change the last line "#exit" so it now reads "exit".

Now make a shortcut called Carmageddon to the DOSBox.exe that is inside the DOSBox-0.74 folder and right-click it and click properties, now in the "Target" field add the following after the things already there " -conf Carmageddon.conf" without the quotes.

That is it your now ready to play the good old Carmageddon (or Splat Pack if you followed this guide for that game) by double clicking the shortcut.

So what about the multiplayer, well here goes. If you want to start a game with friends either through LAN or over the Internet, then you just need to change a single line in the Carmageddon.conf file.

Multiplayer - Server

Uncomment the line "#IPXNET STARTSERVER" so it now reads "IPXNET STARTSERVER" and start the game, now this machine is the server. Also ensure that port 213 is forwarded to this machine in your firewall if you have such a thing, you do have such a thing right? If you want to use a different port then add that at the end of the command line this "IPXNET STARTSERVER 1234" to run it on port 1234.

Multiplayer - Client

Uncomment the line "#IPXNET CONNECT " and add the ip to the server at the end, so it now reads something like this "IPXNET CONNECT 192.168.1.1". If the server uses a port different from 213 then add the port number also, so it e.g. reads like this "IPXNET CONNECT 192.168.1.1 1234". Notice that this works both on LAN and over the Internet, and with a IP or a URL.

Thats it, have fun and I hope you would like to play some Carmageddon with me over the net :)

PS: I might make a small Java program that ease the multiplayer creation of servers and connecting for clients. Basically I might make a simple master server program where people can register there running games and a client which connects to this sever to get a list of running games with latencies and then automate the changing of the Carmageddon.conf file according to which server you connect to. What do you think about that idea? Also that would require somebody to host the master server, interested?

Known Issues

If you see the intro to the game and then afterwards the screen is just black, but you still hear the music. Then press ALT + ENTER to go out of full screen, and then hit ALT + ENTER again to go into full screen mode.

Edited by: svenskmand on 09/06/2011 - 21:21
hifi's picture
Fluffy Bunny
Kickstarter Backer
Posts: 48
Submitted: Fri, 10/06/2011 - 03:40

Or just use carma95, cnc-ddraw and the LAN or Internet patch?

See http://carmageddon.com/forum/topic/337 and http://carmageddon.com/forum/topic/426

Nice tut though, but why go the hard way?

sirlemonhead's picture
Fluffy Bunny
Kickstarter Backer
Posts: 2
Submitted: Fri, 10/06/2011 - 09:18

Is carma95 something available in all versions of the game?

hifi's picture
Fluffy Bunny
Kickstarter Backer
Posts: 48
Submitted: Fri, 10/06/2011 - 10:31

sirlemonhead wrote:
Is carma95 something available in all versions of the game?

Should be, unless someone ripped it off.

LordToastALot's picture
Piledriver
Kickstarter Backer
Posts: 587
Submitted: Fri, 10/06/2011 - 12:24

Actually it isn't, I can confirm this. Not entirely sure why.

Bet that hurt!

svenskmand's picture
Norman E. Carnage
Kickstarter Backer
Posts: 61
Submitted: Fri, 10/06/2011 - 13:55

hifi wrote:
Or just use carma95, cnc-ddraw and the LAN or Internet patch?

See http://carmageddon.com/forum/topic/337 and http://carmageddon.com/forum/topic/426

Nice tut though, but why go the hard way?

Nice I will try this out :) But for some reason the sounds in Carma95 sound wierd to me compared to the DOS version. E.g. the engine sounds often go really low even though the RPM of the engine is high, I find this really odd. This never happens in Carma for DOS.

Also sometimes the soundtrack just completely stops playing, and Carmageddon is only half the experience if there is no sound track :(

ix's picture
ix
Fluffy Bunny
Kickstarter Backer
Posts: 34
Submitted: Sat, 11/06/2011 - 20:18

This certainly looks better than the ddraw.dll but is there any way to improve the framerate? I have a Intel i7 920 and a 5870 yet the framerate is dire unless I turn Yon down to about 15 in options.txt

Any ideas?

svenskmand's picture
Norman E. Carnage
Kickstarter Backer
Posts: 61
Submitted: Sun, 12/06/2011 - 10:53

You can try setting the frameskip option to 1 or 2 or higher. But as it is a DOS emulation cpu power is all that matters, you GPU does not have a say in performance through DOSBox. I have a AMD Phenom II X4 920 and it runs pretty smooth here. But yes the DOSBox solution have some pretty high requirements. Also do not run it in -hires in DOSBox that will kill your machine.

BoneofMalkav's picture
Norman E. Carnage
Posts: 58
Submitted: Mon, 13/06/2011 - 08:22

hires mode in Ykhwong's Dosbox Build runs fine for me with some of the settings you posted on here.And I'm on a intel Core 2 Duo Quadcore (2.3 Gighz).

Carmageddon 2's picture
Fluffy Bunny
Posts: 7
Submitted: Mon, 13/06/2011 - 18:37

Nice tutorial. Will try at some point. I have not been able to get this game working.

svenskmand's picture
Norman E. Carnage
Kickstarter Backer
Posts: 61
Submitted: Tue, 14/06/2011 - 00:42

BoneofMalkav wrote:
hires mode in Ykhwong's Dosbox Build runs fine for me with some of the settings you posted on here.And I'm on a intel Core 2 Duo Quadcore (2.3 Gighz).

Do you have a link to this?

Also I am currently working on making the launcher I hinted at in the guide, along with a master server (which n3wton is going to host, thanks man :D )The launcher is done, only a little clean up remains, and the server is mostly done, only checks to see if servers are still alive remains, so stay tuned :)

When all that is done I will edit this guide so it will be as simple as making the bin/cue pair and then everything else will be automated :D

Pages