Final Fight 2 Readjusted

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
impressive
Posts: 2
Joined: Fri May 20, 2022 3:33 pm

Final Fight 2 Readjusted

Post by impressive »

Here's an interesting rom hack.

FF2 Readjusted allows for 5 enemies on screen, and having played it on co cop there's no slowdown. The original game used fastrom, and this one does too. There's no SA-1 involved.

Downsides is there's a lot of sprite flicker but other than that it's pretty impressive. FF2 always stuck me as as odd because FF1 was a poor port with slowdown and FF3 slows down in 2 player mode but FF2 always seemed INSANELY optimised.

Given this is possible, why did the Devs back in the day, mainly capcom, skimp out on the number of enemies on screen? TNMT4 often has 4+ enemies on screen albeit smaller sprites. Was the snes capable of more, was it poor programming on capcoms part? ( I think we know the answer to that with some of their other games, their snes programming skills weaned badly in comparison to a company like konami imo ).

https://www.youtube.com/watch?v=YYZhwZnuixI
iNCEPTIONAL

Re: Final Fight 2 Readjusted

Post by iNCEPTIONAL »

impressive wrote: Fri May 20, 2022 3:40 pm Here's an interesting rom hack.

FF2 Readjusted allows for 5 enemies on screen, and having played it on co cop there's no slowdown. The original game used fastrom, and this one does too. There's no SA-1 involved.

Downsides is there's a lot of sprite flicker but other than that it's pretty impressive. FF2 always stuck me as as odd because FF1 was a poor port with slowdown and FF3 slows down in 2 player mode but FF2 always seemed INSANELY optimised.

Given this is possible, why did the Devs back in the day, mainly capcom, skimp out on the number of enemies on screen? TNMT4 often has 4+ enemies on screen albeit smaller sprites. Was the snes capable of more, was it poor programming on capcoms part? ( I think we know the answer to that with some of their other games, their snes programming skills weaned badly in comparison to a company like konami imo ).

https://www.youtube.com/watch?v=YYZhwZnuixI
Well, I've actually seen moments with up to ten characters total onscreen in normal TMNT (two players plus eight enemies)*, albeit only three of the enemies were foot soldiers and five of them were the smaller robots (still very impressive though, and with not an hint of slowdown or even any blatant sprite flicker). And I've also seen a TMNT rom hack with up to ten foot soldiers alongside one player (loads of flicker at times though)**. So, yeah, the SNES can definitely do more.

I've tried that Final Fight 2 rom hack before also, and that too is pretty frikin' impressive imo. It's a shame there's so much flicker though.

I think in Capcom's case it was honestly just a choice of not having any blatant flicker over adding more enemies but there being pretty obvious flicker. Still, they really didn't push the SNES hard enough with the original Final Fight as far as I'm concerned, which absolutely should have at least had the 2-player mode imo. And I also think adding in one more enemy at some choice moments, even if it added a little flicker even now and then, probably would have been acceptable to most people.

*https://youtu.be/i9eZ3JAWjfo?t=2975

**https://youtu.be/Rf2Gbflgxus
impressive
Posts: 2
Joined: Fri May 20, 2022 3:33 pm

Re: Final Fight 2 Readjusted

Post by impressive »

wow that TMNT4 hack is something else!
turboxray
Posts: 348
Joined: Thu Oct 31, 2019 12:56 am

Re: Final Fight 2 Readjusted

Post by turboxray »

impressive wrote: Fri May 20, 2022 3:40 pm Here's an interesting rom hack.

FF2 Readjusted allows for 5 enemies on screen, and having played it on co cop there's no slowdown. The original game used fastrom, and this one does too. There's no SA-1 involved.

Downsides is there's a lot of sprite flicker but other than that it's pretty impressive. FF2 always stuck me as as odd because FF1 was a poor port with slowdown and FF3 slows down in 2 player mode but FF2 always seemed INSANELY optimised.

Given this is possible, why did the Devs back in the day, mainly capcom, skimp out on the number of enemies on screen? TNMT4 often has 4+ enemies on screen albeit smaller sprites. Was the snes capable of more, was it poor programming on capcoms part? ( I think we know the answer to that with some of their other games, their snes programming skills weaned badly in comparison to a company like konami imo ).

https://www.youtube.com/watch?v=YYZhwZnuixI
You could try applying some context and numbers to your question:

Final Fight is a 2 player game. 5 enemies + 1 character against a 272 pixel line limit? Each character would have to be no more than 45 pixels wide before sprite drop out. Since that's not a multiple of 8, it would have to 48 pixels and only 5 total characters (4 enemies + 1 player).. and that would still give you potential sprite line drop out for attack frames with are wider than 48px in spots; Carlos has an attack frame that is 80px wide! Or you could drop characters widths down to 32px wide and then you could have 6 (even 8) but then your characters are small.

Anyway, so now add in the 2nd player.. 7 characters? All lined up with those character widths is going to get you some major sprite line drop out. Maybe Nintendo had a policy against games that had excessive sprite dropout, or highly frowned upon it.. and/or that was also the policy at Capcom.. or the team director.

There are other factors too; are you double buffering each character vram for staggering updates? How many updates in a single frame is the game engine allowing? How much sprite vram is available for <n> number of unique characters on screen. Etc. FYI - Final Fight 2 does appear to double buffer (at least the main character). If it did that for all characters, and each character takes up ~1.5k, then you don't have enough sprite rooms for 5 unique characters total.. regardless of limit and total sprites available on screen. Maybe a few enemies take up a tiny bit less than that, and you squeeze out 6 characters total with double buffering.. then how are you going to do 5 enemies and 2 players? Maybe you stagger updates at 15fps for animations or such (graphic upgrades, not simply sliding it around) or some hybrid approach and have a dynamic allocation system to pickup unused buffer space for that slot. The point is, it's simply not just that easy. Those things impact your game design. Maybe it was simply that such a system was perceived as to 'laggy' and that value was put on a more response frame update system. When it comes to optimization, nothing is ever "free". There's always a trade off or price to pay. Some developers are good at hiding those deficits, but they will always have an impact and limitation on game design.

And then there's the "law of diminishing returns". If you've ever worked in software dev, or even other fields, you know that the value from going from 75 to 85% is a lot more work, and less return, than 0 to 75, and it's even more so for going from 85 to 95% (think in terms of maximizing sprites and sprite scanline limits). Would you rather put your time and energy into that, or more impactful things in a game (like graphics/presentation/fun/etc).. as a company? Especially given you don't have an infinite timeline. Not every company was Rare; a small efficient team who cut their teeth on technical challenges and pushing the limits.

In a nutshell, that's basically ALL of your answers right there. Did every development team try to push the SNES to it's limits? No. Absolutely not. Can you do more with the system than what the "general" bar was set for development back then? Sure. And that basically applies to EVERY game system.. ever.
turboxray
Posts: 348
Joined: Thu Oct 31, 2019 12:56 am

Re: Final Fight 2 Readjusted

Post by turboxray »

impressive wrote: Sat May 21, 2022 2:36 pm wow that TMNT4 hack is something else!
Actually, it'd be more impressive if they cleaned up the meta sprite construction for the player and the enemies in that game. The player sprite is like 22 entries for a standing pose! And enemy had like 12 entries for a walking frame. They're also not optimized for sprite line dropout. So you could reduce the flicker seen in that demo.
iNCEPTIONAL

Re: Final Fight 2 Readjusted

Post by iNCEPTIONAL »

turboxray wrote: Sat May 21, 2022 7:48 pm
impressive wrote: Sat May 21, 2022 2:36 pm wow that TMNT4 hack is something else!
Actually, it'd be more impressive if they cleaned up the meta sprite construction for the player and the enemies in that game. The player sprite is like 22 entries for a standing pose! And enemy had like 12 entries for a walking frame. They're also not optimized for sprite line dropout. So you could reduce the flicker seen in that demo.
Well this is great news. The guy who did the hack said it wasn't optimized, so I hope he keeps working on it and does exactly what you say. That would be sweet. And it just goes to show that the SNES really is a lot more capable than many people give it credit for (talking mainly about the haters). :D
MSonage
Posts: 22
Joined: Fri May 06, 2022 4:34 pm

Re: Final Fight 2 Readjusted

Post by MSonage »

I hate this abuse of 8x8 sprites in games. 22 entries for a standing pose is kind of insane.
But it looks like it was the only way, as it was using all the 16K space for sprites in the VRAM.
TMNT uses static VRAM for enemy frames, just like Streets of Rage, so it can handle a lot of characters on screen.

It's also worth mentioning that this game is SlowROM, and there's no apparent slowdown.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Final Fight 2 Readjusted

Post by psycopathicteen »

Do you have an image of the sprites that make up the player?
turboxray
Posts: 348
Joined: Thu Oct 31, 2019 12:56 am

Re: Final Fight 2 Readjusted

Post by turboxray »

psycopathicteen wrote: Mon May 23, 2022 12:15 pm Do you have an image of the sprites that make up the player?
Just open the game in bsnes debugger. You'll see outline boxes as well as the sprite table.
Post Reply