/* 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
#endif
#include "types.h"
-#include "svga.h"
+#include "svga.h"
#include "fce.h"
#include "general.h"
#include "video.h"
#include "cart.h"
#include "input.h"
+#include "vsuni.h"
+
FCEUS FSettings;
static int howlong;
va_end(ap);
howlong=180;
+ if (errmsg[0] != '|')
+ printf("%s\n", errmsg);
}
void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall)
FSettings.GameGenie=a?1:0;
}
-static void CalculatePalette(void);
-static void ChoosePalette(void);
-static void WritePalette(void);
-
#ifndef NETWORK
#define netplay 0
#endif
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;
static int ntschue=72;
static int controllength=0;
+#if 0
pal *palo;
static pal *palpoint[8]=
{
palettevseb,
rp2c04001
};
+#endif
void FCEUI_SetSnapName(int a)
{
FSettings.SUnderBase=a;
}
+#if 0
void FCEUI_SetPaletteArray(uint8 *pal)
{
if(!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;
}
void FCEUI_LoadState(void)
{
- if(netplay!=2 && FCEUGameInfo.type!=GIT_NSF)
+ if(netplay!=2 && FCEUGameInfo.type!=GIT_NSF)
CommandQueue=41;
}
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)
{
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)
{
controllength=360;
}
break;
+#endif
}
}
+#if 0
static uint8 lastd=0;
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. */
if(n>0xff) n=0xff;
if(o>0xff) o=0xff;
FCEUD_SetPalette(x|0x40,m,n,o);
+
+
}
}
if(!d) return; /* No deemphasis, so return. */
if(o>0xff) o=0xff;
FCEUD_SetPalette(x|0xC0,m,n,o);
+
}
-
+
lastd=d;
}
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??).
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
}
}
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
DrawInput(XBuf+8);
}
+#if 0
static int ipalette=0;
void LoadGamePalette(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)
CalculatePalette();
}
else
- palo=palpoint[pale];
+ palo=palpoint[pale];
}
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
{
case 50: case 51:StateShow=180;CurrentState=c-42;CheckStates();break;
}
}
+#endif
+