How can this be achieved? I thought I saw something a while back about layers and sprite priorities and messing with that to get a silhouette type of opacity, but I haven't been able to do that.
Here's how it works. I'll use Jackie Chan's Action Kung Fu as it has a clear example:
The background actually looks like this, note that the pillars use a darker palette:
And here are the sprites. The two people are low priority sprites that are defined earlier in the sprite list, and the two pillars with a brighter palette are high priority sprites that are defined _later_ in the sprite list:
When two sprites overlap, the first one defined in the sprite list is drawn. That's why the people are overlapping the pillars in the sprites-only image.
But when the sprite layer is composited with the background layers, the two low-priority people go behind the darker pillar that's drawn on the background layer, and the remaining portion of the sprite pillars appear on top of the background layer:
Here, the dark part of their silhouette is actually the background tiles of the dark pillar you saw in an earlier image.
So the general idea is for transparency is:
1. Draw the graphics you want to see normally as a high priority sprite.
2. Draw identical but darker (or lighter, etc.) graphics on the background layer beneath it.
3. Pass a low priority sprite in the shape of the silhouette you want through them, to reveal the darker background layer through the lighter high priority sprite.
You can use this in a couple of different ways. The background graphics could have been brighter and the sprites could have been darker so you'd have a light silhouette instead of a dark one. Or instead of just changing brightness, the colors could have been changed instead. It could have been a red silhouette appearing through a green pillar.
You can also put low priority sprites behind the background to 'cut out' irregular shapes into high priority sprites that are defined later in the sprite list, like this:
The gray object in the middle is a high priority sprite that is a complete circle. There are two small black circles that are low-priority sprites defined earlier in the list which "cut out" circular chunks of the gray sprite.
But they are behind the background layer so you don't see them, you only see the missing parts of the high priority sprite.
Anyway hope that makes it clearer.
