Saturday, 12 August 2006

Bad MIDI Synthesis on x64_64 Systems

Just some google food for anyone having trouble with the music in PrBoom on amd64 systems. There is a bug in SDL_mixer 1.2.6 (and earlier), which causes this problem; this is the version of SDL_mixer in Ubuntu Hoary and Dapper, and in Debian at the moment. It is this patch:


--- ./timidity/config.h 2006-08-12 11:59:44.492723500 +0100
+++ ../sdl-mixer1.2-1.2.6-cph1/timidity/config.h    2006-08-12 11:30:06.988427250 +0100
@@ -185,14 +185,8 @@ typedef double FLOAT_T;
#define LITTLE_ENDIAN
#endif

-/* DEC MMS has 64 bit long words */
-#ifdef DEC
typedef unsigned int uint32;
-typedef int int32; 
-#else
-typedef unsigned long uint32;
-typedef long int32; 
-#endif
+typedef int int32;
typedef unsigned short uint16;
typedef short int16;
typedef unsigned char uint8;

to the timidity code that fixes the problem. You can download a fixed libsdl-mixer1.2 and libsdl-mixer1.2-dev if you don't want to rebuild the packages yourself.

0 comments:

Post a Comment