-
Found the problem in the New PPU as well...
There's a typo on line #2288 of PPU.CPP. It treats color 0 as non-transparent if the tile attributes aren't palette #0!
Change this:
if(oam[6] == 0 && pixel != 0)
To this:
if(oam[6] == 0 && (pixel & 3) != 0)
Then you can take care of the other issue where it detects sprite collisions at ppu pixel #255 (and it shouldn't).
2009-11-28 02:35:46 UTC in FCEUX
-
Looks like that fixed the Old PPU. I'm looking at the new ppu right now.
2009-11-28 02:02:01 UTC in FCEUX
-
Sprite zero collisions do not happen on PPU pixel #255. The maximum PPU pixel sprite collisions should happen on is pixel #254. Battletoads screws up if you set the collision flag for collisions on PPU pixel #255.
In the function CheckSpriteHit of ppu.cpp:
Change this line: (line #1078)
if((sphitdata&(0x80>>(x-sphitx))) && !(Plinef[x]&64))
To this...
2009-11-28 01:35:56 UTC in FCEUX