VOGONS


First post, by zbiggy

User metadata
Rank Newbie
Rank
Newbie

I have latest munt and dosbox sources. How to merge them to have dosbox with munt support?.

dosbox builds fine and runs OK.
munt builds a library and do not know what now.

How to insert munt library into dosbox, how to enable alsa output for munt?

Reply 1 of 7, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I believe there is a patch on either the DOSBox project page on sourceforge.net or here on the forums that makes DOSBox use Munt. Unfortunately I don't know anything more specific than that right now.

Reply 4 of 7, by jasonskow

User metadata
Rank Newbie
Rank
Newbie

I just got this working for the sole purpose of re-playing Ultima Underworld. It sounds great!! Here's what I did for Ubuntu 6.06:

# 1.0 install dosbox
> sudo apt-get install dosbox

# 2.0 set up midi audio modules, these are not setup by default in Ubuntu 6.06
> sudo modprobe snd-seq-device
> sudo modprobe snd-seq-midi
> sudo modprobe snd-seq-oss
> sudo modprobe snd-seq-midi-event

# 2.2 set environmental variable for audio driver
> nano -w ~/.bashrc
# set last line to:
export ALSA_OUTPUT_PORTS="128:0"
export SDL_AUDIODRIVER=alsa

# 2.3 create dosbox.conf file. You may need to taylor this file for each game.
> dosbox
dosbox > config -writeconf dosbox.conf
# to use a configuration file, start dosbox with:
# > dosbox -conf /path/to/desired/conf/dosbox.conf

# 2.4 modify the config file
> nano -w ./dosbox.conf
mpu401=true
intelligent=true
device=alsa
config=128:0

# Do not use timidity for 128:0 if you want to use mt32emu_alsadrv
#> timidity -iA -B2,8 -Os1l -s 44100

# 3.0 set up mt32emu and mt32emu_alsadrv
# 3.1 download mt32emu.
# a) Search sourceforge for a project called 'munt'
# b) download release 0.1.3, the file should be called mt32emu-0.1.3.tar.gz
# c) extract to /usr/local/src
> sudo tar -xvzf mt32emu-0.1.3.tar.gz -C /usr/local/src

# 3.2 compile and install mt32emu
> cd /usr/local/src/mt32emu-0.1.3
> sudo ./configure
# running 'sudo make' gave a compile error with gcc-4.0, the default for Ubuntu 6.06
# i386.cpp:142: error: unknown register name ‘xmm3’ in ‘asm’
# i386.cpp:142: error: unknown register name ‘xmm2’ in ‘asm’
# i386.cpp:142: error: unknown register name ‘xmm1’ in ‘asm’
# I had to use gcc-3.3
> sudo apt-get install gcc-3.3 gcc-3.3-base
# use and text editor to modify Makefile
> sudo nano -w Makefile
# replace all instances of 'gcc' with 'gcc-3.3'
# replace all instances of 'g++' with 'g++-3.3'
> sudo make
> sudo make install
# you should now have a static library called lib32mtemu.a in /usr/local/lib
# to make use of this library in dosbox, you need the alsa driver

# 3.3 download mt32emu_alsadrv
# here I used the CVS version of mt32emu_alsadrv. I'm not very familiar with
# CVS, I just typed in the following instruction I got from VOGONS:
> cd .. # to get back into /usr/local/src
> cvs -d:pserver:anonymous@munt.cvs.sourceforge.net:/cvsroot/munt login
# press enter when it asks for a password
> sudo cvs -z3 -d:pserver:anonymous@munt.cvs.sourceforge.net:/cvsroot/munt co -P mt32emu_alsadrv
# I like to keep track of when I check out files from CVS
> sudo mv mt32emu_alsadrv ./mt32emu_alsadrv-CVS-061221

# 3.4 compile and install mt32emu_alsadrv
> cd mt32emu_alsadrv-CVS-061221
# again, we have to use gcc-3.3, use any text editor
> sudo nano -w Makefile
# replace all instances of 'gcc' with 'gcc-3.3'
# replace all instances of 'g++' with 'g++-3.3'
# now make and make install
> sudo make
> suso make install

# 3.5 copy MT32_CONTROL.ROM and MT32_PCM.ROM to /usr/share/mt32-rom-data
> sudo mkdir /usr/share/mt32-rom-data
> sudo cp /location/of/romfiles/*.ROM /usr/share/mt32-rom-data/
# make sure the spelling and case of rom files is correct

# 4 run mt32d to activate service in a new console
# running this as root may provide better performance
> mt32d

# 5 check ports with pmidi
> pmidi -l
128:0 MT-32 Standard
128:1 MT-32 GM Emulation

# 6 enjoy great mt-32 music with dosbox
# make sure game configuration has music set to mt-32
> dosbox -conf /path/to/dosbox/configuration/file/dosbox.conf
dosbox Z:/> mount c /path/to/dos/game
dosbox Z:/> C:
dosbox C:/> game.exe

Reply 6 of 7, by zbiggy

User metadata
Rank Newbie
Rank
Newbie

Someone made a patch for this: "i386.cpp:142: error: unknown register name ‘xmm3’ in ‘asm’ " error? My Linux distro does not have gcc 3 anymore.

Reply 7 of 7, by AcidBee

User metadata
Rank Newbie
Rank
Newbie

Someone made a patch for this: "i386.cpp:142: error: unknown register name ‘xmm3’ in ‘asm’ " error? My Linux distro does not have gcc 3 anymore.

This is becoming a little bit more of pressing issue. Ubuntu 8.10 no longer offers gcc-3.3 in its package manager.

EDIT: Thanks to KingGuppy's awesomeness, this has been addressed in the current CVS build. The i386 registers have been disabled in the code and gcc-3.3 is no longer required to build munt. Again, to be clear, gcc-3.3 is no longer needed to build munt, BUT you CANNOT use release 0.1.3. You must use a recent CVS checkout or a later release.

I've tested this on Ubuntu 8.10 using gcc-4.3 along with the alsa driver and everything works great. A word to the wise, however: As of the date of this edit (4-18-09), munt is currently in a state of development. The code branch, as it stands, may be in more CPU intensive than the previous stable release and notes may be incomplete as guppy and mok make new headway on what is shaping up to be a much better sounding emulator.