shithub: choc

Download patch

ref: 073e710f685a10c2084f6c04fbc4fe7c87530d93
parent: 13d6fa2bd924f9b305f808b258dbb0b22e90f019
author: Simon Howard <fraggle@gmail.com>
date: Sat Oct 3 18:43:07 EDT 2009

Use Mix_HookMusic rather than Mix_SetPostMix for OPL emulation, to avoid
conflict with PC speaker emulation.

Subversion-branch: /branches/opl-branch
Subversion-revision: 1706

--- a/opl/opl_sdl.c
+++ b/opl/opl_sdl.c
@@ -160,8 +160,8 @@
 
     for (i=0; i<nsamples; ++i)
     {
-        buffer[i * 2] += mix_buffer[i] / 2;
-        buffer[i * 2 + 1] += mix_buffer[i] / 2;
+        buffer[i * 2] = mix_buffer[i];
+        buffer[i * 2 + 1] = mix_buffer[i];
     }
 }
 
@@ -225,7 +225,7 @@
 
 static void OPL_SDL_Shutdown(void)
 {
-    Mix_SetPostMix(NULL, NULL);
+    Mix_HookMusic(NULL, NULL);
 
     if (sdl_was_initialized)
     {
@@ -356,7 +356,7 @@
     callback_queue_mutex = SDL_CreateMutex();
 
     // TODO: This should be music callback? or-?
-    Mix_SetPostMix(OPL_Mix_Callback, NULL);
+    Mix_HookMusic(OPL_Mix_Callback, NULL);
 
     return 1;
 }