rg3
02-18-2006, 07:24 PM
Hello,
I had a problem today when trying to play Duke3D under Linux with the icculus.org port. I found out what it was about and I doubt anyone will find this useful. Anyway, by posting the problem and the solution here, if somebody ever hits the same problem, this page will probably appear in the search engines results. The current available information about this problem is none.
In many modern Linux distributions, the SDL_mixer library is linked against libmikmod. For some reason that I don't want to know, this makes every application compiled against SDL_mixer try to create an empty file named "music.raw" in the current directory.
If you have installed Duke3D for personal usage in your own directory where you have write permissions, you'll notice the file is created and that's all. That's the usual case because the "duke3d" binary expects to find the data files in the current directory, so it's a common practice to put the GRP and CON files in the same directory as the "duke3d" and "build" programs and run the game from there.
If, however, you did a system-wide installation in a directory where you don't have write permissions and launch the game from there, being unable to create the "music.raw" file the sound initialization will fail and you'll be left at the terminal prompt with the last lines being:
Loading art header.
Checking sound inits.
Unknown Multivoc error code.
Just so you know, that's the problem's cause. Install the game in a personal directory or do some kind of trick to have write permission in the directory you launch the program from. Whatever you want so that the "music.raw" file can be created.
Greetings.
I had a problem today when trying to play Duke3D under Linux with the icculus.org port. I found out what it was about and I doubt anyone will find this useful. Anyway, by posting the problem and the solution here, if somebody ever hits the same problem, this page will probably appear in the search engines results. The current available information about this problem is none.
In many modern Linux distributions, the SDL_mixer library is linked against libmikmod. For some reason that I don't want to know, this makes every application compiled against SDL_mixer try to create an empty file named "music.raw" in the current directory.
If you have installed Duke3D for personal usage in your own directory where you have write permissions, you'll notice the file is created and that's all. That's the usual case because the "duke3d" binary expects to find the data files in the current directory, so it's a common practice to put the GRP and CON files in the same directory as the "duke3d" and "build" programs and run the game from there.
If, however, you did a system-wide installation in a directory where you don't have write permissions and launch the game from there, being unable to create the "music.raw" file the sound initialization will fail and you'll be left at the terminal prompt with the last lines being:
Loading art header.
Checking sound inits.
Unknown Multivoc error code.
Just so you know, that's the problem's cause. Install the game in a personal directory or do some kind of trick to have write permission in the directory you launch the program from. Whatever you want so that the "music.raw" file can be created.
Greetings.