newppu: dont break sprite0 hit when disabling BG or OBJ display
This commit is contained in:
parent
cf175a60bd
commit
72276d9b1c
|
@ -1592,7 +1592,7 @@ static void CopySprites(uint8 *target) {
|
||||||
if (!spork) return;
|
if (!spork) return;
|
||||||
spork = 0;
|
spork = 0;
|
||||||
|
|
||||||
if (!rendersprites) return; //User asked to not display sprites.
|
//if (!rendersprites) return; //User asked to not display sprites.
|
||||||
|
|
||||||
loopskie:
|
loopskie:
|
||||||
{
|
{
|
||||||
|
@ -2132,8 +2132,8 @@ int FCEUX_PPU_Loop(int skip) {
|
||||||
int rasterpos = xstart;
|
int rasterpos = xstart;
|
||||||
|
|
||||||
//check all the conditions that can cause things to render in these 8px
|
//check all the conditions that can cause things to render in these 8px
|
||||||
const bool renderspritenow = SpriteON && rendersprites && (xt > 0 || SpriteLeft8);
|
const bool renderspritenow = SpriteON && (xt > 0 || SpriteLeft8);
|
||||||
const bool renderbgnow = ScreenON && renderbg && (xt > 0 || BGLeft8);
|
const bool renderbgnow = ScreenON && (xt > 0 || BGLeft8);
|
||||||
for (int xp = 0; xp < 8; xp++, rasterpos++, g_rasterpos++) {
|
for (int xp = 0; xp < 8; xp++, rasterpos++, g_rasterpos++) {
|
||||||
//bg pos is different from raster pos due to its offsetability.
|
//bg pos is different from raster pos due to its offsetability.
|
||||||
//so adjust for that here
|
//so adjust for that here
|
||||||
|
@ -2160,7 +2160,9 @@ int FCEUX_PPU_Loop(int skip) {
|
||||||
uint8* pt = bgdata.main[bgtile].pt;
|
uint8* pt = bgdata.main[bgtile].pt;
|
||||||
pixel = ((pt[0] >> (7 - bgpx)) & 1) | (((pt[1] >> (7 - bgpx)) & 1) << 1) | bgdata.main[bgtile].at;
|
pixel = ((pt[0] >> (7 - bgpx)) & 1) | (((pt[1] >> (7 - bgpx)) & 1) << 1) | bgdata.main[bgtile].at;
|
||||||
}
|
}
|
||||||
|
if(renderbg)
|
||||||
pixelcolor = READPAL(pixel);
|
pixelcolor = READPAL(pixel);
|
||||||
|
else pixelcolor = READPAL(0);
|
||||||
|
|
||||||
//look for a sprite to be drawn
|
//look for a sprite to be drawn
|
||||||
bool havepixel = false;
|
bool havepixel = false;
|
||||||
|
@ -2193,7 +2195,9 @@ int FCEUX_PPU_Loop(int skip) {
|
||||||
rasterpos < 255) {
|
rasterpos < 255) {
|
||||||
PPU_status |= 0x40;
|
PPU_status |= 0x40;
|
||||||
}
|
}
|
||||||
|
if(rendersprites)
|
||||||
havepixel = true;
|
havepixel = true;
|
||||||
|
else continue;
|
||||||
|
|
||||||
//priority handling
|
//priority handling
|
||||||
if (oam[2] & 0x20) {
|
if (oam[2] & 0x20) {
|
||||||
|
|
Loading…
Reference in New Issue