I was having trouble getting my particles to appear correctly when retina display was enabled, and I’ve tracked the problem down to a bug in CCParticleSystem.

The issue is in CCParticleSystem::initWithDictionary(), on line 284. Currently, it has:

this->m_pTexture = tex;

when instead it should have:

this->setTexture(tex);

This problem actually affects more than just the retina display. Since the texture variable is set directly instead of via the setTexture() method, the texture rect is never updated after the texture is set. I tried to create an issue about this on the “Issues” page, but apparently I am not allowed to do that.