some warnings fixed, nsf fixed, palettes, more code backported
[fceu.git] / svga.c
diff --git a/svga.c b/svga.c
index 815af19..b040c27 100644 (file)
--- a/svga.c
+++ b/svga.c
@@ -1,7 +1,7 @@
 /* FCE Ultra - NES/Famicom Emulator
  *
  * Copyright notice for this file:
- *  Copyright (C) 1998 BERO 
+ *  Copyright (C) 1998 BERO
  *  Copyright (C) 2002 Ben Parnell
  *
  * This program is free software; you can redistribute it and/or modify
@@ -35,7 +35,7 @@
 #endif
 
 #include "types.h"
-#include "svga.h" 
+#include "svga.h"
 #include "fce.h"
 #include "general.h"
 #include "video.h"
@@ -49,6 +49,8 @@
 #include "cart.h"
 #include "input.h"
 
+#include "vsuni.h"
+
 FCEUS FSettings;
 
 static int howlong;
@@ -76,6 +78,7 @@ void FCEU_DispMessage(char *format, ...)
  va_end(ap);
 
  howlong=180;
+ printf("%s\n", errmsg);
 }
 
 void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall)
@@ -125,10 +128,6 @@ void FCEUI_SetGameGenie(int a)
  FSettings.GameGenie=a?1:0;
 }
 
-static void CalculatePalette(void);
-static void ChoosePalette(void);
-static void WritePalette(void);
-
 #ifndef NETWORK
 #define netplay 0
 #endif
@@ -138,10 +137,10 @@ static uint8 StateShow=0;
 uint8 Exit=0;
 
 uint8 DIPS=0;
-uint8 vsdip=0;
-int coinon=0;
+//uint8 vsdip=0;
+//int coinon=0;
 
-uint8 pale=0;
+//uint8 pale=0;
 uint8 CommandQueue=0;
 
 static int controlselect=0;
@@ -150,6 +149,7 @@ static int ntsctint=46+10;
 static int ntschue=72;
 static int controllength=0;
 
+#if 0
 pal *palo;
 static pal *palpoint[8]=
      {
@@ -162,6 +162,7 @@ static pal *palpoint[8]=
      palettevseb,
      rp2c04001
      };
+#endif
 
 void FCEUI_SetSnapName(int a)
 {
@@ -173,6 +174,7 @@ void FCEUI_SaveExtraDataUnderBase(int a)
  FSettings.SUnderBase=a;
 }
 
+#if 0
 void FCEUI_SetPaletteArray(uint8 *pal)
 {
  if(!pal)
@@ -190,10 +192,11 @@ void FCEUI_SetPaletteArray(uint8 *pal)
  }
  FCEU_ResetPalette();
 }
+#endif
 
 void FCEUI_SelectState(int w)
 {
- if(netplay!=2 && FCEUGameInfo.type!=GIT_NSF) 
+ if(netplay!=2 && FCEUGameInfo.type!=GIT_NSF)
   CommandQueue=42+w;
 }
 
@@ -205,7 +208,7 @@ void FCEUI_SaveState(void)
 
 void FCEUI_LoadState(void)
 {
- if(netplay!=2 && FCEUGameInfo.type!=GIT_NSF) 
+ if(netplay!=2 && FCEUGameInfo.type!=GIT_NSF)
   CommandQueue=41;
 }
 
@@ -248,17 +251,17 @@ void DriverInterface(int w, void *d)
   case DES_FDSINSERT:if(netplay!=2) CommandQueue=2;break;
   case DES_FDSEJECT:if(netplay!=2) CommandQueue=3;break;
   case DES_FDSSELECT:if(netplay!=2) CommandQueue=1;break;
-
+/*
   case DES_NSFINC:NSFControl(1);break;
   case DES_NSFDEC:NSFControl(2);break;
-  case DES_NSFRES:NSFControl(0);break;  
-
+  case DES_NSFRES:NSFControl(0);break;
+*/
   case DES_VSUNIDIPSET:CommandQueue=10+(int)d;break;
   case DES_VSUNITOGGLEDIPVIEW:CommandQueue=10;break;
   case DES_VSUNICOIN:CommandQueue=19;break;
   case DES_NTSCSELHUE:if(ntsccol && FCEUGameInfo.type!=GIT_VSUNI && !PAL && FCEUGameInfo.type!=GIT_NSF){controlselect=1;controllength=360;}break;
   case DES_NTSCSELTINT:if(ntsccol && FCEUGameInfo.type!=GIT_VSUNI && !PAL && FCEUGameInfo.type!=GIT_NSF){controlselect=2;controllength=360;}break;
-
+#if 0
   case DES_NTSCDEC:
                  if(ntsccol && FCEUGameInfo.type!=GIT_VSUNI && !PAL && FCEUGameInfo.type!=GIT_NSF)
                  {
@@ -270,16 +273,16 @@ void DriverInterface(int w, void *d)
                     which=controlselect==1?ntschue:ntsctint;
                     which--;
                     if(which<0) which=0;
-                        if(controlselect==1) 
-                         ntschue=which;                     
-                        else ntsctint=which;                
+                        if(controlselect==1)
+                         ntschue=which;
+                        else ntsctint=which;
                     CalculatePalette();
                    }
                   controllength=360;
                    }
                   }
                  break;
-  case DES_NTSCINC:    
+  case DES_NTSCINC:
                   if(ntsccol && FCEUGameInfo.type!=GIT_VSUNI && !PAL && FCEUGameInfo.type!=GIT_NSF)
                     if(controlselect)
                     {
@@ -300,9 +303,11 @@ void DriverInterface(int w, void *d)
                      controllength=360;
                     }
                    break;
+#endif
   }
 }
 
+#if 0
 static uint8 lastd=0;
 void SetNESDeemph(uint8 d, int force)
 {
@@ -312,12 +317,12 @@ void SetNESDeemph(uint8 d, int force)
  uint32 r,g,b;
  int x;
 
- /* If it's not forced(only forced when the palette changes), 
-    don't waste cpu time if the same deemphasis bits are set as the last call. 
+ /* If it's not forced(only forced when the palette changes),
+    don't waste cpu time if the same deemphasis bits are set as the last call.
  */
- if(!force) 
+ if(!force)
  {
-  if(d==lastd) 
+  if(d==lastd)
    return;
  }
  else  /* Only set this when palette has changed. */
@@ -339,6 +344,8 @@ void SetNESDeemph(uint8 d, int force)
    if(n>0xff) n=0xff;
    if(o>0xff) o=0xff;
    FCEUD_SetPalette(x|0x40,m,n,o);
+
+
   }
  }
  if(!d) return;        /* No deemphasis, so return. */
@@ -362,8 +369,9 @@ void SetNESDeemph(uint8 d, int force)
      if(o>0xff) o=0xff;
 
      FCEUD_SetPalette(x|0xC0,m,n,o);
+
     }
+
  lastd=d;
 }
 
@@ -379,25 +387,25 @@ static void CalculatePalette(void)
  static uint8 br1[4]={6,9,12,12};
  static double br2[4]={.29,.45,.73,.9};
  static double br3[4]={0,.24,.47,.77};
-  
+
  for(x=0;x<=3;x++)
   for(z=0;z<16;z++)
   {
    s=(double)TINTVAL;
    y=(double)br2[x];
    if(z==0)  {s=0;y=((double)br1[x])/12;}
-   
+
    if(z>=13)
    {
     s=y=0;
     if(z==13)
-     y=(double)br3[x];     
+     y=(double)br3[x];
    }
 
    theta=(double)M_PI*(double)(((double)cols[z]*10+HUEVAL)/(double)180);
    r=(int)(((double)y+(double)s*(double)sin(theta))*(double)256);
    g=(int)(((double)y-(double)((double)27/(double)53)*s*(double)sin(theta)+(double)((double)10/(double)53)*s*cos(theta))*(double)256);
-   b=(int)(((double)y-(double)s*(double)cos(theta))*(double)256);  
+   b=(int)(((double)y-(double)s*(double)cos(theta))*(double)256);
 
    // TODO:  Fix RGB to compensate for phosphor changes(add to red??).
 
@@ -407,13 +415,14 @@ static void CalculatePalette(void)
    if(r<0) r=0;
    if(g<0) g=0;
    if(b<0) b=0;
-    
+
    paletten[(x<<4)+z].r=r;
    paletten[(x<<4)+z].g=g;
    paletten[(x<<4)+z].b=b;
   }
  WritePalette();
 }
+#endif
 
 #include "drawing.h"
 #ifdef FRAMESKIP
@@ -450,17 +459,23 @@ void FCEU_PutImage(void)
          }
        }
         else
-        {      
+        {
         /* Save snapshot before overlay stuff is written. */
          if(dosnapsave)
          {
           ReallySnap();
           dosnapsave=0;
          }
-        if(FCEUGameInfo.type==GIT_VSUNI && DIPS&2)         
-         DrawDips();
-         if(StateShow) DrawState();
-         if(controllength) {controllength--;DrawBars();}
+        if(FCEUGameInfo.type==GIT_VSUNI)
+                FCEU_VSUniDraw(XBuf);
+         //if(StateShow) DrawState();
+
+        //FCEU_DrawSaveStates(XBuf);
+        //FCEU_DrawMovies(XBuf);
+        //FCEU_DrawNTSCControlBars(XBuf);
+        //FCEU_DrawRecordingStatus(XBuf);
+
+         //if(controllength) {controllength--;DrawBars();}
         }
        DrawMessage();
        #ifdef FPS
@@ -472,6 +487,7 @@ void FCEU_PutImage(void)
        DrawInput(XBuf+8);
 }
 
+#if 0
 static int ipalette=0;
 
 void LoadGamePalette(void)
@@ -503,7 +519,7 @@ void FCEU_ResetPalette(void)
 static void ChoosePalette(void)
 {
     if(FCEUGameInfo.type==GIT_NSF)
-     palo=NSFPalette;   
+     palo=NSFPalette;
     else if(ipalette)
      palo=palettei;
     else if(ntsccol && !PAL && FCEUGameInfo.type!=GIT_VSUNI)
@@ -512,7 +528,7 @@ static void ChoosePalette(void)
       CalculatePalette();
      }
     else
-     palo=palpoint[pale];  
+     palo=palpoint[pale];
 }
 
 void WritePalette(void)
@@ -524,7 +540,7 @@ void WritePalette(void)
     if(FCEUGameInfo.type==GIT_NSF)
     {
      for(x=0;x<39;x++)
-      FCEUD_SetPalette(x,palo[x].r,palo[x].g,palo[x].b); 
+      FCEUD_SetPalette(x,palo[x].r,palo[x].g,palo[x].b);
     }
     else
     {
@@ -565,3 +581,5 @@ void DoCommand(uint8 c)
   case 50: case 51:StateShow=180;CurrentState=c-42;CheckStates();break;
  }
 }
+#endif
+