fix NSF rendering on PAL and NTSC filters

This commit is contained in:
zeromus 2015-09-21 18:12:22 +00:00
parent 62ec75b93b
commit b946c415e9
1 changed files with 11 additions and 2 deletions

View File

@ -23,6 +23,7 @@
#include "scalebit.h" #include "scalebit.h"
#include "hq2x.h" #include "hq2x.h"
#include "hq3x.h" #include "hq3x.h"
#include "fceu.h"
#include "../../types.h" #include "../../types.h"
#include "../../palette.h" #include "../../palette.h"
@ -748,6 +749,7 @@ void Blit8ToHigh(uint8 *src, uint8 *dest, int xr, int yr, int pitch, int xscale,
{ {
ofs = src-XBuf; //find out which deemph bitplane value we're on ofs = src-XBuf; //find out which deemph bitplane value we're on
deemph = XDBuf[ofs]; deemph = XDBuf[ofs];
int temp = *src;
index = (*src&63) | (deemph*64); //get combined index from basic value and preemph bitplane index = (*src&63) | (deemph*64); //get combined index from basic value and preemph bitplane
index += 256; index += 256;
@ -757,7 +759,14 @@ void Blit8ToHigh(uint8 *src, uint8 *dest, int xr, int yr, int pitch, int xscale,
deemph = XDBuf[ofs]; deemph = XDBuf[ofs];
newindex = (*src&63) | (deemph*64); newindex = (*src&63) | (deemph*64);
newindex += 256; newindex += 256;
if(GameInfo->type==GIT_NSF)
{
*d++ = palettetranslate[temp];
*d++ = palettetranslate[temp];
*d++ = palettetranslate[temp];
}
else
for (int xsub = 0; xsub < 3; xsub++) for (int xsub = 0; xsub < 3; xsub++)
{ {
xabs = x*3 + xsub; xabs = x*3 + xsub;
@ -837,7 +846,7 @@ void Blit8ToHigh(uint8 *src, uint8 *dest, int xr, int yr, int pitch, int xscale,
switch(Bpp) switch(Bpp)
{ {
case 4: case 4:
if ( nes_ntsc ) { if ( nes_ntsc && GameInfo->type!=GIT_NSF) {
burst_phase ^= 1; burst_phase ^= 1;
nes_ntsc_blit( nes_ntsc, (unsigned char*)src, xr, burst_phase, xr, yr, ntscblit, xr * Bpp * xscale ); nes_ntsc_blit( nes_ntsc, (unsigned char*)src, xr, burst_phase, xr, yr, ntscblit, xr * Bpp * xscale );