Capcom arcade translations almost always turned out quite good on the PCE-SGX, so I've always wondered how good it could've been. I also wonder about how a port of Final Fight could've been. Looking at the Mega-CD port, it turned out quite good with the exception of the poor color palette. For you tech guys who know all the specs, could the PCE or SGX have moved that many large sprites around? The only similar game that I can think of is Riot Zone, and the most characters I recall seeing on screen were three enemy characters and the player character. Plus they were kinda small compared to Final Fight.
The SGX, very much so. The two main reasons why: 128k of vram and twice the sprite power as the PCE. You can run the same res as the arcade on the SGX, but without the additional limitations put on be the PCE when running in that res mode. The extra 64k of vram makes it roomier and easier for handling/managing tiles/sprites (gives you more room to buffer sprite screen updates during active display too). The PCE isn't the
greatest system for beatem ups for the very reason you can't really optimize for such a game that well on a 16x16 sprite cell structure (in relation to sprite pixels per scanline), but Riot Zone takes the minimal design approach. You have to understand how to optimize for a beatem on a console to really understand... well such concepts. But I can simplify it.
Certain frames of animation for attacks and getting hit, usually have more "sprite width" than normal standing/walking frames. And sprite flicker or drop out (depends on what algo you use), is on a scanline by scanline basis. You can flicker that is only 1 pixel tall under certain conditions. Knowing this, if you the player are fighting two enemies; those enemies are pretty much going to be ~1:1 aligned with you vertically - increasing the chance of sprite flicker/drop out. So you can only 'fight' so many at a time. But this plays well into a beatem up, because of you had 5 enemies instead of 3 enemies onscreen - mostly likely you wouldn't fight all 5 at one time. A few might stand back and wait their turn. Which seems to be out of fairness to the player, but on these old consoles - what the game really is doing is moving sprites out of the way of congested area to reduce sprite overflow and thus flicker/drop out. So what's really an optimization, appears natural to the gamer/player. That's the difference between a low production value games and a higher production value game. Well, once difference. Optimization appears undetectable and gives the illusion that system X can naturally handle condition Y. The other thing about Riot Zone is that while it's not specifically built from the ground up as it's a 'version' of Riot City from a sega-16 arcade board, they did take liberties with the game and resolution. They could have really optimized for the PCE's graphics (the 16x16 sprite cell structure). If you look closely at Streets of Rage 3, which is by far the most optimized beatem up on any console of that time, you'll notice the sprites frames are drawn specifically to reduce sprite bandwidth. Sometimes enemies even fly off screen (off screen enemies can be taken off the sprite per scanline limit - thus not effecting flicker) when getting hit by a combo. Some enemies have a strange 45* angle when getting hit and/or when falling back (which they tend to fall/fly back at a farther distance that they normally would for their size). Enemies are also drawn in that the widest part via sprite cells is the top chest area (where they hold their arms up in a fighting position), and the rest/lower part is drawn with minimal sprite cells. This means only a certain part of the enemy is most likely to cause flicker. Mix all that in with a good AI that will move "free" enemies to the top or bottom area (dynamically out of the way of the main player as he moves/fights) and/or at times you'll even see that they will walk off screen and then come back in when there are less enemies and at other times groups of enemies stay at a specific vertical range - forcing you to go to them(thus another method of controlling sprite bandwidth in relation to vertical positions), and you get one impressive looking beatem game. There are even more optimizations than even that, but I kept this simple. Riot Zone is none of this. They looked at how many enemies you can fight at a time without flicker being a problem, and reduced the whole game experience/engine to that. It employed none of the techniques mentioned above. Not only that, but the enemy sprites themselves seem to lack any detail. For no apparent reason (they are uncompressed and a new set is loaded *ever* level).
If they would have reduced enemies sizes just a bit in Riot Zone, they could have used the same engine/technique they used as is for limiting sprite drop out, but really increase the number of enemies onscreen - just be scaling them down a bit. I'd rather have almost 50% more enemies onscreen with a slightly smaller size. A test I did a last year, I took a bunch of player and enemy sprite frames from Streets of Rage 1 and rescaled them to a lower res. I also made slight modifications in case a pixel to two ran over the sprite limit I set for the char (I redrew parts of them. You couldn't tell though). I was able to put 7 sprites all on the
vertical position at one time with sprite flicker, with them still being the same size onscreen ( res is 25% smaller, but the pixels are 25% fatter - so they end up being the same size). One player sprite (with wide attack moves) and 6 enemies. I could have put more enemies at the top and/or bottom of the screen "in wait". I could easily put up to 16 enemies onscreen.
So, a game made from the ground up can be more impressive looking than a port. A port already has limitations built in. If you start changing things in a port, then it starts to become it's own game. I.e. not close enough to the arcade, etc. All that said and done, I think the PCE could do something close to what the SNES did with FF1. Use lower res, rescale everything, but use as many colors are you can to replicate the arcade detail, etc. The SGX though, could do almost pixel for pixel arcade port of Final Fight - minus some loss in master palette detail (9bit color VS 12bit color). But the huge number of subpalettes the SGX has, it wouldn't be that noticeable. The SegaCD port not only had a huge drop in color count, but everything is also rescaled as the Genesis higher resolution isn't as high as the arcade original. Where as the SGX mid res is really close. Close enough to leave as is without noticing - with the exception of clipping on the sides. And like I said, SGX has twice the sprite bandwidth making things much more realistic for that res than the PCE, and the extra VRAM (128k vs 64k of the other 3 home consoles) really makes managing updates easier (and more room for more "individual" enemies).
Also to note: If you stretch out Riot Zone to the correct pixel aspect ratio (PAR) - it's enemies are just as big as Final Fight (if not bigger/wider). Here's Paul's image comparison with
both PAR corrected (and clipping for the arcade shot):
Also another note: Tallness of a character doesn't effect flicker/drop out. That only effects how much vram storage you need.