fix some nsf bugs

This commit is contained in:
zeromus 2015-09-20 21:21:29 +00:00
parent 04fc330f08
commit e3a28ad1da
3 changed files with 21 additions and 14 deletions

View File

@ -281,15 +281,18 @@ void SetPaletteBlitToHigh(uint8 *src)
} }
//full size deemph palette //full size deemph palette
for(int x=0;x<512;x++) if(palo)
{ {
uint32 r=palo[x].r; for(int x=0;x<512;x++)
uint32 g=palo[x].g; {
uint32 b=palo[x].b; uint32 r=palo[x].r;
u16 color = (r>>cshiftr[0])<<cshiftl[0]; uint32 g=palo[x].g;
color |= (g>>cshiftr[1])<<cshiftl[1]; uint32 b=palo[x].b;
color |= (b>>cshiftr[2])<<cshiftl[2]; u16 color = (r>>cshiftr[0])<<cshiftl[0];
palettetranslate[256+x]=color; color |= (g>>cshiftr[1])<<cshiftl[1];
color |= (b>>cshiftr[2])<<cshiftl[2];
palettetranslate[256+x]=color;
}
} }
break; break;
@ -305,12 +308,15 @@ void SetPaletteBlitToHigh(uint8 *src)
} }
//full size deemph palette //full size deemph palette
for(int x=0;x<512;x++) if(palo)
{ {
uint32 r=palo[x].r; for(int x=0;x<512;x++)
uint32 g=palo[x].g; {
uint32 b=palo[x].b; uint32 r=palo[x].r;
palettetranslate[256+x]=(r<<cshiftl[0])|(g<<cshiftl[1])|(b<<cshiftl[2]); uint32 g=palo[x].g;
uint32 b=palo[x].b;
palettetranslate[256+x]=(r<<cshiftl[0])|(g<<cshiftl[1])|(b<<cshiftl[2]);
}
} }
break; break;

View File

@ -482,6 +482,7 @@ void DrawNSF(uint8 *XBuf)
if(vismode==0) return; if(vismode==0) return;
memset(XBuf,0,256*240); memset(XBuf,0,256*240);
memset(XDBuf,0,256*240);
{ {

View File

@ -527,7 +527,7 @@ void WritePalette(void)
{ {
int x; int x;
//set the 'unvarying' palettes to low < 128 palette entries //set the 'unvarying' palettes to low < 64 palette entries
for(x=0;x<7;x++) for(x=0;x<7;x++)
FCEUD_SetPalette(x,palette_unvarying[x].r,palette_unvarying[x].g,palette_unvarying[x].b); FCEUD_SetPalette(x,palette_unvarying[x].r,palette_unvarying[x].g,palette_unvarying[x].b);