English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Coders. General (https://eab.abime.net/forumdisplay.php?f=37)
-   -   Easy way to do Street Fighter 2 on Amiga 1200? (https://eab.abime.net/showthread.php?t=101079)

ImmortalA1000 28 February 2020 02:05

Easy way to do Street Fighter 2 on Amiga 1200?
 
Looking at the following video..

https://www.youtube.com/watch?v=OPEFMhK_OUA

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?

AmigaHope 28 February 2020 05:13

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).

Tigerskunk 28 February 2020 07:02

Well, then go for it... ;)

britelite 28 February 2020 07:58

Quote:

Originally Posted by ImmortalA1000 (Post 1381887)
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.

Retro1234 28 February 2020 08:00

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.

ImmortalA1000 28 February 2020 11:47

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.

mcgeezer 28 February 2020 12:48

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.

Tigerskunk 28 February 2020 12:58

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.

dlfrsilver 28 February 2020 13:19

Quote:

Originally Posted by mcgeezer (Post 1381939)
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.

mcgeezer 28 February 2020 14:04

Quote:

Originally Posted by dlfrsilver (Post 1381948)
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.

Solo Kazuki 28 February 2020 18:09

Quote:

Originally Posted by dlfrsilver (Post 1381948)
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.

ImmortalA1000 28 February 2020 21:11

Thanks again to all of you for your ideas/suggestions :)

Quote:

Originally Posted by Steril707 (Post 1381941)
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..... :laughing

Retro1234 28 February 2020 22:28

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 ?

dreadnought 29 February 2020 09:52

https://sf2platinum.wordpress.com/20...the-ai-engine/

Tigerskunk 29 February 2020 09:55

Quote:

Originally Posted by ImmortalA1000 (Post 1382029)
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 (Post 1382107)

I did something like that for my little first attempt at a Vectrex game back in 2006:
https://www.youtube.com/watch?v=InVDsmCm1oA

and this for the C64:
https://www.youtube.com/watch?v=expCEodznCY

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".

roondar 29 February 2020 14:05

Quote:

Originally Posted by Steril707 (Post 1382108)
SF2 is a rather complex game.
Don't underestimate that.

100% true :great
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 :)

Retro1234 29 February 2020 14:09

Amiga has Hardware Sprite collision detection?

and demo done by Master484 with Sprites
https://m.youtube.com/watch?v=Y4khkk...ature=youtu.be

Quote:

Originally Posted by dreadnought (Post 1382107)

If someone was serious that would be very helpful.

DanScott 29 February 2020 18:31

Quote:

Originally Posted by Retro1234 (Post 1382147)
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

Retro1234 29 February 2020 18:52

Ok I think you can do it -
Has a collision taken Place=Yes
What was Player 1 Doing = Kicking
Was Player 2 Blocking = No

DanScott 29 February 2020 20:37

Quote:

Originally Posted by Retro1234 (Post 1382194)
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...


All times are GMT +2. The time now is 23:50.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.05072 seconds with 11 queries