VDP1 sprites priority

rorirub

New Member
But Treasure was not embarrassed by the fact that no other sprites were displayed over Nicole's translucent cloak (Guardian Heroes, I mean).
That was maybe a dozen pixels that was constantly in motion and half the time covered by other sprites anyway, and the VDP2 fields all had a proper, fixed order in all levels so you could predict exactly how much of the graphics would disappear. They even went as far as drawing certain sprites twice, once with low priority and opaque, once with high priority and mesh enabled, so when covered by a transparent explosion, one sprite was below it got eaten, but the meshed sprite would be placed on top of the explosion. They actually got pretty complex in there to account for the shortcomings of the setup.

In Castlevania we are talking about a graphic that covers a third of the screen, that you always focus on as it has text on it, and where you have dozens of scenes that could do this trick and that may have completely random order of backgrounds and sprites behind/in front of the backgrounds. It would have been far easier to just use a VDP2 field exclusively for the entire window; but like I said, the game does not use the VDP2 in a sane manner.

I'd wager that just because you could enable it on that one scene, you probably could not get it working without any artifacts everywhere.
On that note the game actually uses that kind of transparency (sprite to VDP2) quite often, but only in places where they could carefully prepare for it. The candles and the blue doors are the most common examples, but the Saturn-exclusive levels also use it quite a bit (makes sense since they could build those stages FOR the Saturn), and Shaft uses it quite a bit too (since you fight him on a fixed single background, they could go nuts with the effects).

Yes, this combination of translucency does not work on mednafen and SSF. I think that it will not work on the original hardware either.
Half-transparency on the sprites, or in other words, Sprite transparency, will only work with RGB sprites - and those cannot be set to mix with backgrounds (you have no priority bits). This is one of the stupidest shortcomings of the Saturn IMO.
 
The text itself is drawn to VDP2's NBG1 I think. I wonder if you could possibly swap the two? Draw the text to where the text box texture is for VDP1, and draw the textbox texture to where the text is being drawn for VDP2 and set the blending and priorities to work similar to what Grandia does.
 

fafling

New Member
Alucard and Death lower part are again erased by the dialog box on the console (not surprising since the dialog is in replace mode this time).

I hoped for another outcome of your first attempt which uses half-transparency with the palette texture of the dialog box. I checked that Alucard and Death are using RGB colors in their CLUT.
 

paul_met

Member
Alucard and Death lower part are again erased by the dialog box on the console (not surprising since the dialog is in replace mode this time).

I hoped for another outcome of your first attempt which uses half-transparency with the palette texture of the dialog box. I checked that Alucard and Death are using RGB colors in their CLUT.
Sorry, but I hurried then and attached the wrong file. The dialog background still uses semi-transparency. Here is the correct file.
 

Attachments

fafling

New Member
Indeed, the game seems to always draw the dialog box twice with one pixel vertical offset (for no reason as far as I can tell). It does the same thing on the first dialog with Dracula.

The blending works on the console as on your screenshot this time with only one dialog box drawn. Alucard and Death are blended with the box with funky colors due to the mix of palette + RGB by half-tranparency. And they get blended with the VDP2 background as can be seen on the lower part of Death. So their pixel type has changed from RGB to palette, and they perhaps have inherited of the color bank of the dilaog box. The palette tree sprites behind are erased by the box, normal behaviour with half-transparency.
 
Top