diff -Naurp libmodplug-0.8.4/src/libmodplug/stdafx.h libmodplug-0.8.4-p/src/libmodplug/stdafx.h
--- libmodplug-0.8.4/src/libmodplug/stdafx.h	2006-11-02 02:50:47.000000000 +0100
+++ libmodplug-0.8.4-p/src/libmodplug/stdafx.h	2006-11-27 05:28:25.000000000 +0100
@@ -21,6 +21,74 @@
 
 inline void ProcessPlugins(int n) {}
 
+#elif defined(__x86_64__)
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef signed char CHAR;
+typedef unsigned char UCHAR;
+typedef unsigned char* PUCHAR;
+typedef unsigned short USHORT;
+typedef unsigned int ULONG;
+typedef unsigned int UINT;
+typedef unsigned int DWORD;
+typedef int LONG;
+typedef unsigned short WORD;
+typedef unsigned char BYTE;
+typedef unsigned char * LPBYTE;
+typedef bool BOOL;
+typedef char * LPSTR;
+typedef void *  LPVOID;
+typedef int * LPLONG;
+typedef unsigned int * LPDWORD;
+typedef unsigned short * LPWORD;
+typedef const char * LPCSTR;
+typedef long LONGLONG;
+typedef void * PVOID;
+typedef void VOID;
+
+inline LONG MulDiv (int a, int b, int c)
+{
+  // if (!c) return 0;
+  return ((unsigned long)a * (unsigned long) b ) / c;
+}
+
+#define MODPLUG_NO_FILESAVE
+#define NO_AGC
+#define LPCTSTR LPCSTR
+#define lstrcpyn strncpy
+#define lstrcpy strcpy
+#define lstrcmp strcmp
+#define WAVE_FORMAT_PCM 1
+//#define ENABLE_EQ
+
+#define  GHND   0
+
+inline signed char * GlobalAllocPtr(unsigned int, size_t size)
+{
+  signed char * p = (signed char *) malloc(size);
+
+  if (p != NULL) memset(p, 0, size);
+  return p;
+}
+
+inline void ProcessPlugins(int n) {}
+
+#define GlobalFreePtr(p) free((void *)(p))
+
+#define strnicmp(a,b,c)		strncasecmp(a,b,c)
+#define wsprintf			sprintf
+
+#ifndef FALSE
+#define FALSE	false
+#endif
+
+#ifndef TRUE
+#define TRUE	true
+#endif
+
 #else
 
 #if defined(HAVE_CONFIG_H) && !defined(CONFIG_H_INCLUDED)
@@ -58,7 +126,6 @@ typedef uint16_t* LPWORD;
 typedef const char* LPCSTR;
 typedef void* PVOID;
 typedef void VOID;
-
 inline LONG MulDiv (long a, long b, long c)
 {
   // if (!c) return 0;