X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=svga.c;h=b040c27dfd03f43831d77df546a749689d0ad4ba;hp=815af19f3c070e11ab79fcddcc321b38b3b8cd1f;hb=92764e6252a3691033d6044b466bf716c96b62d5;hpb=c62d28102c77e19c291c78bf6bf7f0a81abd54b9 diff --git a/svga.c b/svga.c index 815af19..b040c27 100644 --- 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 +