X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=ppu.c;fp=ppu.c;h=1616f60af79f034b7271eb4d3e623e166f8c72d0;hp=d2ea4494001db36bbda109c3cc82a8de51f88eee;hb=ea80a45b1dbd9f2c46567e18a2e18fcbb6e55c8d;hpb=a7de43667532d3b5423a59092213b50ae6485aab diff --git a/ppu.c b/ppu.c index d2ea449..1616f60 100644 --- a/ppu.c +++ b/ppu.c @@ -176,9 +176,12 @@ void FetchSpriteData(void) if(MMC5Hack) C = MMC5SPRVRAMADR(vadr); else C = VRAMADR(vadr); dst.ca[0]=C[0]; - PPU_hook(vadr); + if(nosprites<8) + { + PPU_hook(0x2000); + PPU_hook(vadr); + } dst.ca[1]=C[8]; - PPU_hook(vadr|8); dst.x=spr->x; dst.atr=spr->atr; @@ -194,6 +197,18 @@ void FetchSpriteData(void) break; } } + + if(nosprites>8) PPU_status|=0x20; /* Handle case when >8 sprites per + scanline option is enabled. */ + else if(PPU_hook) + { + for(n=0;n<(8-nosprites);n++) + { + PPU_hook(0x2000); + PPU_hook(vofs); + } + } + } #ifdef FRAMESKIP