Note, the following sprite is not mine, I "modified" an "Advance Guardian Hero" sprite to use as an example.
Could the following character sprite set up be done on the PCE?
Meaning one whole character sprite made up of three pieces. Isn't that what the second Toumaden game does?
Assuming the upper torso frames *never* overlaps the leg frames (even by a single pixel), the gun is overlapping both. So at any point the gun sprite is taking up 4 slots (16x16 sprite slot) for a total height of 16 scanlines (the torso needs a minimum of 32 wide sprite for the most of it and same for the legs). That's 64 pixels or 1/4 the total allowed sprite pixel bandwidth for that given scanline. That's very wasteful IMO unless you specifically NEED to do this. If you're trying to build out more complex animation based on 'section' animation for sprites, well.. I'd probably use ram to pre-composite them at the start of the stage or when an event changes. The method of overlapping sprites is pretty popular in arcade game design at the time of the 16bit era, but they had a lot of sprites to throw around per scanline, so it wasn't a big deal.
Either waste the rom/cdram space for the precomposite frames, or composite them yourself (code) into a prebuild sheet when needed during runtime/downtime/whatever-time. Otherwise (like others have stated), you're gonna waste through your sprite scanline bandwidth. Also remember, flicker doesn't happen unless you code it to happen (sprite priority shifting). Sprite cells (16x1 resolution, not 16x16) get dropped when sprite bandwidth is exceeded for that scanline. The lower priority sprites in the sprite table (SAT) get dropped over the higher priority ones (earlier entries in the SAT). The priority flag of the sprite to the BG layer has no effect on this either (they're all treated by what number they are in the SAT - nothing else). Remember, that means *non* visible sprite pixels too! If you have a sprite object that only takes 6-8 rows of consecutive visible pixels in that cell, the
rest of the rows still get 'calculated' into the sprite bandwidth for the scanline they land on.