]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/dsp.cpp
Fix configuration dialog crashing.
[virtualjaguar] / src / dsp.cpp
index 3ab0b6246808b6885637f1b3722ad896f7fe9981..ee1cdb79da49da268858fa88f7b3b58ca8c0dbce 100644 (file)
 #include "jaguar.h"
 #include "jerry.h"
 #include "log.h"
-#include "m68k.h"
+#include "m68000/m68kinterface.h"
 //#include "memory.h"
 
 
-#ifdef __GCCWIN32__
-// Apparently on win32, they left of the last little bits of these. So let's do this:
-#define random rand
-#define srandom srand
-#endif
-
 // Seems alignment in loads & stores was off...
 #define DSP_CORRECT_ALIGNMENT
 //#define DSP_CORRECT_ALIGNMENT_STORE
@@ -820,6 +814,9 @@ SET32(ram2, offset, data);
 // IRQs on J_INT ($F10020), you don't have to run an I2S interrupt on the DSP. Also,
 // It seems that it's only stable for values of SCLK <= 9.
 
+// All of the preceeding is moot now; we run the DSP in the host audio IRQ. This means
+// that we don't actually need this stuff anymore. :-D
+#if 0
                        if (data & INT_ENA1) // I2S interrupt
                        {
                                int freq = GetCalculatedFrequency();
@@ -834,6 +831,7 @@ SET32(ram2, offset, data);
 //                             WriteLog("DSP: Setting audio freqency to %u Hz...\n", freq);
                                DACSetNewFrequency(freq);
                        }
+#endif
 
 /*                     if (IMASKCleared)                                               // If IMASK was cleared,
 #ifdef DSP_DEBUG_IRQ
@@ -1286,6 +1284,11 @@ DSPHandleIRQsNP();
 //     GPUSetIRQLine(GPUIRQ_DSP, ASSERT_LINE);
 }
 
+bool DSPIsRunning(void)
+{
+       return (DSP_RUNNING ? true : false);
+}
+
 void DSPInit(void)
 {
 //     memory_malloc_secure((void **)&dsp_ram_8, 0x2000, "DSP work RAM");
@@ -1294,7 +1297,7 @@ void DSPInit(void)
 
        dsp_build_branch_condition_table();
        DSPReset();
-       srandom(time(NULL));                                                    // For randomizing local RAM
+       srand(time(NULL));                                                      // For randomizing local RAM
 }
 
 void DSPReset(void)
@@ -1325,7 +1328,7 @@ void DSPReset(void)
        // Contents of local RAM are quasi-stable; we simulate this by randomizing RAM contents
        for(uint32 i=0; i<8192; i+=4)
        {
-               *((uint32 *)(&dsp_ram_8[i])) = random();
+               *((uint32 *)(&dsp_ram_8[i])) = rand();
        }
 }