Streetfighter 2 conversion for MSX

Pagina 1/17
| 2 | 3 | 4 | 5 | 6

Door norakomi

Paragon (1150)

afbeelding van norakomi

19-10-2011, 15:26

Hi all,

I have seen two msx conversions of street fighter 2, and they look ok, although I have a feeling that it can be done better.
Ofcourse because of the limitations in the vdp size it will not be easy to make big characters with lots of animations.
So I have been thinking alot and came to the following conclusion how to make the best possible streetfighter 2 clone:

Because there is not so much space in Vram I suggest using software sprites for player 1 and hardware sprites for player 2.

We use screen 5
page 0 and 1 have the background and scoreboard graphics.
page 2 holds the graphics of player 1 facing left
i66.photobucket.com/albums/h241/bartfuture/chunlileft.jpg
page 3 holds the graphics of player 1 facing right
i66.photobucket.com/albums/h241/bartfuture/chunli.jpg

So all characters basically appear 2x in the .rom file, once as software sprites and once as hardware sprites.
By using the horizontal offsetregister I want to simulate a short horizontal backgroundscroll (maximum 16 or 32 pixel scroll)
I want to use black sprites left and right to mask the borders, and therefor player 2 can only use 6 sprites per horizontal line.

I have taken a screenshot of the background from a streetfighter version, converted it to 16 colors, and I have taken chun-li's spritesheet from the net and converted it, and put both of them in this .rom file.
www.natuurlijkkindereninbalans.nl/norakomigame/streetfighter small.rom
This is 30 minutes work, and I have done NOTHING to make the sprites and the background look nice,
so with some decent graphic work, this could look really good.

One more remark:
as you can see in the pictures above, chunli's software sprites are very limited, the original spritesheet is MUCH bigger:i66.photobucket.com/albums/h241/bartfuture/shunlispritesheetbig.png
therefor a 100% clone will not be possible. and some moves will be excluded in this msx verion.
So I'm not talking about a 100% port, more like an original remake of streetfighter 2.

Looking forward to your comments....

Aangemeld of registreer om reacties te plaatsen

Van Huey

Prophet (2696)

afbeelding van Huey

19-10-2011, 15:35

Van Latok

msx guru (3960)

afbeelding van Latok

19-10-2011, 15:42

I can only say I hope this work won't disturb Deva development. I was very impressed, last saturday Smile

Van Paulbrk

Hero (611)

afbeelding van Paulbrk

19-10-2011, 15:53

Norakomi, take a look at this image, is on 16 colours SC5, all the background and the characters,

img412.imageshack.us/img412/8541/todo16col.png

Van syn

Prophet (2135)

afbeelding van syn

19-10-2011, 16:44

I dont think you need to have each animation frame stored in VRAM entirely. Because from what I can tell the animations frames are build up by putting different parts/pieces together. For example look at some of the standing punches, the legs are the same, just different torso/arms. For Chun's standing/idle animation you could get away with just having her upper body rotate frames and the legs remain the same. I can imagine the head being the same in a lot of moves/frames. Also some moves like the spinning bird kick share animation frames with some of the jumping attacks.

Van norakomi

Paragon (1150)

afbeelding van norakomi

19-10-2011, 17:10

I dont think you need to have each animation frame stored in VRAM entirely. Because from what I can tell the animations frames are build up by putting different parts/pieces together. For example look at some of the standing punches, the legs are the same, just different torso/arms. For Chun's standing/idle animation you could get away with just having her upper body rotate frames and the legs remain the same. I can imagine the head being the same in a lot of moves/frames. Also some moves like the spinning bird kick share animation frames with some of the jumping attacks. Yeah, you are totally right, it would save some space in VRAM. However, we still require 2 vram pages for 1 character. I don't see a way to make it fit all in 1, unless we make the characters much smaller, and less animations (like only 2 animation steps when walking.....)....

So still the best way would be player 1 software sprite, and player 2 hardware sprites.
This would also improve the gamespeed, because if both players are software sprites the vdp would never be able to animate both characters at a high enough framerate. If one player is made upon hardwaresprites then the game could run at 30 fps, because the vdp is stressed less with a hardwaresprite!
The biggest problem is converting all the characterpositions into hardwaresprites.
spritecolor limitations will make it hard, very hard.

I love these spritesheets:
http://www.spriters-resource.com/snes/supersf2/
but i think some heroes will not be convertable to msx format.
For instance E.Honda is simply too big and when Dhalsim uses his attacks, there will be too much sprites per spriteline.
So maybe 2 or 3 heroes should be left out (or replaced with original ideas).

@paulbrk: amazing work on the conversion of all those levels and characters into 16 colors.
Maybe it's an idea to use 7 standard colors.
And each background, and character can make use of these 7 standard colors AND can use 3 unique colors each.

So:
Background uses: 3 unique colors and a number of colors out of the 7 standard colors
player1 uses: 3 unique colors and a number of colors out of the 7 standard colors
player2 uses: 3 unique colors and a number of colors out of the 7 standard colors

So in total we have 16 colors this way............

Van Paulbrk

Hero (611)

afbeelding van Paulbrk

19-10-2011, 17:16

I sent you an email Norakomi

Van retrocanada76

Hero (575)

afbeelding van retrocanada76

19-10-2011, 17:17

by the other hand disabling hardware sprites will speed up VDP and you won't have problems with flickering and colors. don't forget the shoryuken fire is big also.

But I don't believe you can make a full screen game, probably you will have to use 2/3 os the screen like YS-3.

Van GhostwriterP

Paladin (702)

afbeelding van GhostwriterP

19-10-2011, 22:30

So all characters basically appear 2x in the .rom file, once as software sprites and once as hardware sprites.Or you could store only sprite data and convert it to bitmap with a simple routine Wink
Then you can fit twice as many characters, after all like any recent fighting game you should have at least 30 characters LOL!

Van ARTRAG

Enlighted (6977)

afbeelding van ARTRAG

19-10-2011, 22:51

I suggest this:

- do both fighters as sprites
- use the VDP to copy from VRAM to the SPT the data of each frame

this allows two 32x64 fighters on the screen and you can store in VRAM as many frames you like

A single sprite frame 32x64 with 3 colors per line takes 8*32 +16*8 (colors) = 256 +128 bytes in vram
Thus, you can store about 170 frames in two pages ;-)

Van norakomi

Paragon (1150)

afbeelding van norakomi

20-10-2011, 11:41

I suggest this:

- do both fighters as sprites
- use the VDP to copy from VRAM to the SPT the data of each frame

this allows two 32x64 fighters on the screen and you can store in VRAM as many frames you like

A single sprite frame 32x64 with 3 colors per line takes 8*32 +16*8 (colors) = 256 +128 bytes in vram
Thus, you can store about 170 frames in two pages ;-)this is not a bad idea, however I dont like the limitation of fighters being 32 pixels maximum in width. If you look at the chun-li sprite sheets you will see this is just not good enough.

however you did give me a good idea.
It might be smart to make both fighters as sprites, and then when the sprite is wider than 32 pixels (when a fighter kicks or punches) then the additional graphic data can be copied as a software sprite.
So basically players are hardware sprites AND they will be added with software sprites if needed....
Very good idea, thanx !

About storing the frames in vram, that's a good suggestion, although i dont mind updating the spritedata from ram to vram each frame, since there will be enough time anyway (i'm thinking that 30fps is doable)

Pagina 1/17
| 2 | 3 | 4 | 5 | 6