X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdac.cpp;h=4cf8da2d94710468c75083282007ec7ebc977c25;hb=3e68f33188872d5754d3765ff140811bcb696c6f;hp=0e266841d692c6a43e274cd4e54c71414b5f9059;hpb=d239de704f276a75d927900e3d413a44cc87116c;p=virtualjaguar diff --git a/src/dac.cpp b/src/dac.cpp index 0e26684..4cf8da2 100644 --- a/src/dac.cpp +++ b/src/dac.cpp @@ -4,6 +4,13 @@ // Originally by David Raingeard // GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Caz (BeOS) // Rewritten by James L. Hammons +// (C) 2010 Underground Software +// +// JLH = James L. Hammons +// +// Who When What +// --- ---------- ------------------------------------------------------------- +// JLH 01/16/2010 Created this log ;-) // // Need to set up defaults that the BIOS sets for the SSI here in DACInit()... !!! FIX !!! @@ -22,10 +29,11 @@ #include "dac.h" #include "SDL.h" -#include "gui.h" +//#include "gui.h" #include "jaguar.h" #include "log.h" #include "m68k.h" +//#include "memory.h" #include "settings.h" //#define DEBUG_DAC @@ -174,7 +182,7 @@ if (numLeftSamplesReady == 0 || numRightSamplesReady == 0) } // -// Calculate the frequency of SCLK * 32 using the divider +// Calculate the freq9uency of SCLK * 32 using the divider // int GetCalculatedFrequency(void) { @@ -222,7 +230,8 @@ WriteLog("Tail=%X, Head=%X", ltail, lhead); WriteLog("From while: Tail=%X, Head=%X", (LeftFIFOTailPtr + 2) & (BUFFER_SIZE - 1), LeftFIFOHeadPtr); // LogDone(); // exit(0); - GUICrashGracefully("Stuck in left DAC spinlock!"); +#warning "Reimplement GUICrashGracefully!" +// GUICrashGracefully("Stuck in left DAC spinlock!"); return; } }//*/ @@ -292,6 +301,8 @@ LTail=60D8, LHead=60D8, BUFFER_SIZE-1=FFFF RTail=DB, RHead=60D9, BUFFER_SIZE-1=FFFF From while: Tail=60DA, Head=60D8 */ +#warning Spinlock problem--!!! FIX !!! +#warning Odd: The right FIFO is empty, but the left FIFO is full! // Spin until buffer has been drained (for too fast processors!)... uint32 spin = 0; while (((RightFIFOTailPtr + 2) & (BUFFER_SIZE - 1)) == RightFIFOHeadPtr)//; @@ -311,7 +322,8 @@ WriteLog("Tail=%X, Head=%X", rtail, rhead); WriteLog("From while: Tail=%X, Head=%X", (RightFIFOTailPtr + 2) & (BUFFER_SIZE - 1), RightFIFOHeadPtr); // LogDone(); // exit(0); - GUICrashGracefully("Stuck in right DAC spinlock!"); +#warning "Reimplement GUICrashGracefully!" +// GUICrashGracefully("Stuck in right DAC spinlock!"); return; } }//*/ @@ -349,7 +361,8 @@ WriteLog("Tail=%X, Head=%X", rtail, rhead); WriteLog("DAC: Failed to initialize SDL sound: %s.\nDesired freq: %u\nShutting down!\n", SDL_GetError(), desired.freq); // LogDone(); // exit(1); - GUICrashGracefully("Failed to initialize SDL sound!"); +#warning "Reimplement GUICrashGracefully!" +// GUICrashGracefully("Failed to initialize SDL sound!"); return; } }