X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=ppu.c;h=1616f60af79f034b7271eb4d3e623e166f8c72d0;hp=d2ea4494001db36bbda109c3cc82a8de51f88eee;hb=e7f5287861e2da956537a6db8abb26f9a26255f8;hpb=9115e7d2b5e5b8dc00774fe92db97f1d02b2fee1 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