English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 28 February 2020, 02:05   #1
ImmortalA1000
Registered User
 
Join Date: Feb 2009
Location: london/england
Posts: 399
Easy way to do Street Fighter 2 on Amiga 1200?

Looking at the following video..

[ Show youtube player ]

the idea of two largest size AGA hardware sprites paired side by side for each
character gives you two 128 pixel wide 16+16 colour sprites seems so obvious but looking at how choppy most AGA beat 'em ups are I don't think any are using the sprites. Sprites would be lightning fast, in fact a pixel perfect conversion of SNES or Sega 16bit SF2 games should be possible given how easy it is if you can use sprites so seems like a good idea to me.

Anybody working on this angle? This would leave the blitter to do software parallax on some objects and the copper + hardware horizontal scroll to assist with the perspective scroll of the floors.

Is this genius or am I missing a trick?
ImmortalA1000 is offline  
Old 28 February 2020, 05:13   #2
AmigaHope
Registered User
 
Join Date: Sep 2006
Location: New Sandusky
Posts: 646
How do you handle characters that go entirely horizontal (e.g. the dictator's Psycho Crusher)? Also there are characters that are just plain large (like Zangief).
AmigaHope is offline  
Old 28 February 2020, 07:02   #3
Steril707
Tigerskunk!

Steril707's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 1,462
Well, then go for it...
Steril707 is offline  
Old 28 February 2020, 07:58   #4
britelite
Registered User
 
Join Date: Feb 2010
Location: Espoo / Finland
Posts: 711
Quote:
Originally Posted by ImmortalA1000 View Post
Is this genius or am I missing a trick?
It's not just about displaying the graphics, there's also the aspect of storing all graphics data in memory. The larger the graphics are, the more memory they consume.
britelite is offline  
Old 28 February 2020, 08:00   #5
Retro1234
Banned

Retro1234's Avatar
 
Join Date: Jun 2006
Location: 5150
Posts: 4,643
Check out Master484
http://eab.abime.net/showthread.php?t=96990&page=3

iirc correct from his tests all the SNES version of the game character would fit in AGA hardware Sprites, plus he came up with other interesting stuff about using the copper for extra background colour and Dual Playfield on some levels but not all, and lots of stuff.
Retro1234 is offline  
Old 28 February 2020, 11:47   #6
ImmortalA1000
Registered User
 
Join Date: Feb 2009
Location: london/england
Posts: 399
I checked and the character bitmaps are all from the SNES version they were all 16 colours and they were all less than 128 pixels wide (Blanka Zangief Honda etc all frames fit under 128 pixels from what I can see). I used Dhalsim's feet which looked the longest and still fit 128 pixel block BUT the shadow is outside the 128 pixel area so for that single character it is worth re-doing the crap shadows of the arcade anyway to remove any blitter requirement for any fighters.

I don't think the first SNES game had more than 2mb for the whole game (it's a 16 megabit cartridge) and you only need to load into memory...
2 fighters,
1 background with anim frames,
parallax bits of level (elephants in the case of Dhalsim stage)

...so memory should be no problem either for even a stock A1200 or CD32, so aiming for SNES SF2 quality would be OK using assets already ripped and uploaded on various sites.

128x(whatever height you need) pixel block with just 4 16 colour AGA hardware sprites is very powerful for an SF2 style game engine it would seem. In fact if you remove the parallax elements and the perspective effect on floor scroll it's probably do-able in compiled C code because the only other hardware apart from update sprite definitions/positions would be that you need to do 50/60fps scroll of the screen.

Music is a different issue memory-wise, might have to use more memory to get the tunes into 4 channels but the Dhalsim music only seems to be using 4 channels so just interrupt 1 percussion channel with any sound effect samples. Of course CD32 could use arcade music via CD audio anyway.

For the parallax movement of the elephants I would use the blitter if I was a machine code programmer leaving the rest of the background as a simple large bitmap in memory moving the screen location to scroll left right, this seems well withing even OCS machine code chipset bandwidth so again shouldn't be a problem I would think.

For fun you could do a 2 player only static background version for use on widescreen TVs in widescreen mode and do just fighter's sprite updates in something like Blitz...sure you need to resize all the graphics to make that 16:9 640x256 resolution aspect work but hell that just leaves updating sprite hardware memory pointers in Blitz to do all the graphics needed, rest is just 2x joystick input and collision detection. The arcade background I think are about 640x256 sort of size on a 4:3 screen window so given 10 minutes in a decent paint package that should be possible to get OK for a Blitz Basic demo after-all.

I find the AGA sprite topic intriguing. I am not a 68000 coder, my 6502 is amateur hour at best as far as controlling the simpler VIC-II and SID but this sprite thing was a revelation to me a bit like Doc Brown's Flux Capacitor haha. Good C code using standard ROM routines should get you Sword of Sodan sort of frame rate on background anyway and the sprites would be 50/60fps which is what your brain is concentrating on anyway when playing so 25/30fps for blitter/scroll/copper is fine.

Thanks to everyone who posted, as I said before I have been on the lookout for using AGA hardware features most efficiently in a game to most stunning effect.

Silent 1 level demo would be a good exercise for some C coding first given all the hardware being used under DMA in a sort of 1983 Commodore 64 machine code game using the built in lightning fast sprites as much as possible. Should fit into 2mb meaning a CD32 demo is also possible for all. Ideally you would make a full game HD only but given how much SF2 is still a thing a full game would land you in hot water with The Suits no doubt.
ImmortalA1000 is offline  
Old 28 February 2020, 12:48   #7
mcgeezer
Registered User

 
Join Date: Oct 2017
Location: Sunderland, England
Posts: 1,773
A near perfect arcade port of Street Fighter can be done on the A1200, however the problem is the lack of input buttons to control all of the moves of the players.
mcgeezer is offline  
Old 28 February 2020, 12:58   #8
Steril707
Tigerskunk!

Steril707's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 1,462
My much larger concern with SF2 would be to get all that game logic into there..

Coding a fighting game isn't trivial. I tried it a couple of times already, and even something stupid like on the level of Yie Ar Kung Fu is a lot of work if the combat is supposed to be fun.

Getting graphics to work on a satisfying level is actually the lesser problem here, especially with AGA.
Steril707 is offline  
Old 28 February 2020, 13:19   #9
dlfrsilver
CaptainM68K-SPS France
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 42
Posts: 8,430
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by mcgeezer View Post
A near perfect arcade port of Street Fighter can be done on the A1200, however the problem is the lack of input buttons to control all of the moves of the players.
Mmhh Graeme, an A1200 supports in hardware 6 buttons. The problem is how to get sticks with 6 buttons working on it (it would suppose a modification on it to work with the A1200 pinout.
dlfrsilver is offline  
Old 28 February 2020, 14:04   #10
mcgeezer
Registered User

 
Join Date: Oct 2017
Location: Sunderland, England
Posts: 1,773
Quote:
Originally Posted by dlfrsilver View Post
Mmhh Graeme, an A1200 supports in hardware 6 buttons. The problem is how to get sticks with 6 buttons working on it (it would suppose a modification on it to work with the A1200 pinout.
Ohh yeah, I forgot about the CD32.

Well anyway... SF is a big job and to be honest, the genre never appealed to me. I'd much rather do a full in Japanese style shooter or Rolling Thunder.
mcgeezer is offline  
Old 28 February 2020, 18:09   #11
Solo Kazuki
Registered User
Solo Kazuki's Avatar
 
Join Date: Sep 2004
Location: Poland
Posts: 826
Quote:
Originally Posted by dlfrsilver View Post
Mmhh Graeme, an A1200 supports in hardware 6 buttons. The problem is how to get sticks with 6 buttons working on it (it would suppose a modification on it to work with the A1200 pinout.
CD32 joypads (or compatible) works on many A1200 without problems and have 7 buttons. Moreover Street Fighter II Turbo even AGA version (not CD32 one) works only with keyboard or CD32 joypad - it requires 6 buttons or keys for control.
Solo Kazuki is offline  
Old 28 February 2020, 21:11   #12
ImmortalA1000
Registered User
 
Join Date: Feb 2009
Location: london/england
Posts: 399
Thanks again to all of you for your ideas/suggestions

Quote:
Originally Posted by Steril707 View Post
My much larger concern with SF2 would be to get all that game logic into there..

Coding a fighting game isn't trivial. I tried it a couple of times already, and even something stupid like on the level of Yie Ar Kung Fu is a lot of work if the combat is supposed to be fun.

Getting graphics to work on a satisfying level is actually the lesser problem here, especially with AGA.
Nah, looking at the 99% underwhelming coding of ALL AGA games clearly shows you need talent with the AGA chipset coding not just the CPU. Shaun Southern levels of talent I mean. Having the sprites do all the work really allows you to attack the 68000 game logic inside the Sega ports at least with the 68020 even stuck in often blocked Chip RAM of A1200 design.

The SNES WD65C816 (similar to a 68008 in performance I bet) can do SF2 game logic well enough despite being about 25% of the power of a 7mhz 68000 with a 16bit memory layout of an A1000 so again it's no problem. Not saying you wouldn't need really expert talent like SotB or Lotus II coding but there is no reason a really nice spot on SNES/MD quality port isn't possible. Megadrive uses an Amiga 1000 level of 7mhz 68000 CPU too (you can't use the Z80 to help unless you want to release a silent Megadrive game as Rob Hubbard will tell you).

There was a coverdisk with routines to read Megadrive 3 button pad, so I can't see a problem for at least a Megadrive SF2 Champion Edition level of gameplay control input. Should even be possible to read a Sega official 6 button pad (the best D-pad only based joypad in the world IMO)

As ever my thoughts are really not how to start it for A1200/CD32 but what hardware edge did Commodore have with the A1200 to make up the difference. For games like Gauntlet IV on Megadrive the AGA sprites would not help at all, you would be looking at expertly coded 68000 AND blitter there. With an SF2 conversion, a hell of a lot of the donkey work is being done with simple manipulation of four 16 colour 64 pixel hardware sprites.

It would seem technically we have a winner, but again I wouldn't suggest a console quality port is possible without the best of the best level of demo/game engine coding seen rarely in OCS (and I've never seen anything usable in a complex arcade quality game engine on A1200 spec before but would to be shown great examples for things like AGA Elf-mania, AGA Lotus II improvements).

There is even a cardboard cutout 2.5D based rally game (Network Q?) from Mandarin/Europress software for 486 PC and SNES that was supposed to come out on A1200 but never did....I think that game in the hands of an expert would have run fine with the blitter on a stock A1200, the SNES version sets the bar well within reach, the 486 version in DOS ditto isn't much better

Right off to make a video for C64 technology Legend of Zelda now, the music is better methinks but doubt it will fit inside the 22kb limit of Laser Basic so.....
ImmortalA1000 is offline  
Old 28 February 2020, 22:28   #13
Retro1234
Banned

Retro1234's Avatar
 
Join Date: Jun 2006
Location: 5150
Posts: 4,643
Super Street Fighter 2 not turbo plays good but the graphics are poo and no use of sprites etc.
The actual Arcade AI is in scripts so there is a possibility it could be ripped but who is going to do this ?
Retro1234 is offline  
Old 29 February 2020, 09:52   #14
dreadnought
Registered User
 
Join Date: Dec 2019
Location: Ur, Atlantis
Posts: 356
https://sf2platinum.wordpress.com/20...the-ai-engine/
dreadnought is offline  
Old 29 February 2020, 09:55   #15
Steril707
Tigerskunk!

Steril707's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 1,462
Quote:
Originally Posted by ImmortalA1000 View Post
Nah, looking at the 99% underwhelming coding of ALL AGA games clearly shows you need talent with the AGA chipset coding not just the CPU. Shaun Southern levels of talent I mean. Having the sprites do all the work really allows you to attack the 68000 game logic inside the Sega ports at least with the 68020 even stuck in often blocked Chip RAM of A1200 design.
I think you misunderstood me.
I am not talking about the CPUs capability to handle SF2s game logic, but the coders capability to make SF2 the game it is.

You'd either need to get to get your hands on the game engine as it is, reverse engineer some other 68k version, or hack all the speeds, frame and hitbox data in there. Which would take a lot of time.

SF2 is a rather complex game.
Don't underestimate that.

And on the capabilities of AGA, I cannot speak for other coders, less those who worked 25 years ago.
It's just that going from my experience from coding Inviyya on OCS, that creating a good looking SF2 on AGA hardware doesn't seem too be much of an effort to me with those huge unlimited eight 64px wide sprites you have there.

Quote:
Originally Posted by dreadnought View Post
I did something like that for my little first attempt at a Vectrex game back in 2006:
[ Show youtube player ]

and this for the C64:
[ Show youtube player ]

It's a simple state machine in the end.
The magic within SF2 lies within the frame data and hit boxes. You need this data to really get the "SF2 feeling".
Steril707 is offline  
Old 29 February 2020, 14:05   #16
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 1,904
Quote:
Originally Posted by Steril707 View Post
SF2 is a rather complex game.
Don't underestimate that.
100% true
Quote:
And on the capabilities of AGA, I cannot speak for other coders, less those who worked 25 years ago.
It's just that going from my experience from coding Inviyya on OCS, that creating a good looking SF2 on AGA hardware doesn't seem too be much of an effort to me with those huge unlimited eight 64px wide sprites you have there.
Well, you have to keep in mind that those 64 pixel wide sprites come with a price: if you use them and also want to use hardware based horizontal scrolling you're either stuck in 1x fetch mode (which really slows the Blitter down - especially on 5+ bitplane screens, just like OCS) or you're stuck having to shift the screen 64 pixels to the right, which is generally too much to work with.
Quote:
It's a simple state machine in the end.
The magic within SF2 lies within the frame data and hit boxes. You need this data to really get the "SF2 feeling".
Again, 100% true: that is where the magic is and the genius of the developers shines through. Pushing a few big sprites and some parallax layers really isn't all that impressive considering how powerful the hardware it ran on was. It's all in the coding and painstakingly setting up the exact right hit boxes, move set, state machine, etc.

People sometimes forget that in their quest for technical excellence (and have done so repeatedly throughout the Amiga's history) - game play is king. Extra layers of parallax or bigger objects don't matter nearly as much

Last edited by roondar; 29 February 2020 at 14:19.
roondar is offline  
Old 29 February 2020, 14:09   #17
Retro1234
Banned

Retro1234's Avatar
 
Join Date: Jun 2006
Location: 5150
Posts: 4,643
Amiga has Hardware Sprite collision detection?

and demo done by Master484 with Sprites
[ Show youtube player ]

Quote:
Originally Posted by dreadnought View Post
If someone was serious that would be very helpful.

Last edited by Retro1234; 29 February 2020 at 16:04.
Retro1234 is offline  
Old 29 February 2020, 18:31   #18
DanScott
Lemon. / Core Design

DanScott's Avatar
 
Join Date: Mar 2016
Location: Sunny Bournemouth, UK
Posts: 622
Quote:
Originally Posted by Retro1234 View Post
Amiga has Hardware Sprite collision detection?

Don't think that would help too much. The bound-box to bound-box collision is what's needed
DanScott is offline  
Old 29 February 2020, 18:52   #19
Retro1234
Banned

Retro1234's Avatar
 
Join Date: Jun 2006
Location: 5150
Posts: 4,643
Ok I think you can do it -
Has a collision taken Place=Yes
What was Player 1 Doing = Kicking
Was Player 2 Blocking = No
Retro1234 is offline  
Old 29 February 2020, 20:37   #20
DanScott
Lemon. / Core Design

DanScott's Avatar
 
Join Date: Mar 2016
Location: Sunny Bournemouth, UK
Posts: 622
Quote:
Originally Posted by Retro1234 View Post
Ok I think you can do it -
Has a collision taken Place=Yes
What was Player 1 Doing = Kicking
Was Player 2 Blocking = No
That''s not how Street Fighter game collision works though, and I wouldn't expect that method to produce desirable results.

Imagine that player 1 was kicking left, but they were stood just to the right of player 2, and were kicking into space, but their shoulder was intersecting with player 2 arm...
DanScott is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Super street fighter Turbo Amiga-CD32 Akuma? seiyaps5 support.Games 1 12 February 2020 03:54
Super Street Fighter 2 Turbo - The Greatest Amiga Gaming Casualty? CU_AMiGA support.Games 103 27 May 2019 17:54
Super Street Fighter 2 Amiga Cd32 GurjSagoo request.Old Rare Games 6 31 October 2009 13:13
street fighter stuntpup project.WHDLoad 5 30 August 2007 20:45
Street Fighter 2 Poster from Amiga Force Issue March 93 grape Retrogaming General Discussion 11 08 November 2005 22:25

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 04:54.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Page generated in 0.10413 seconds with 14 queries