View Single Post
Old 29 November 2016, 23:18   #17
chb
Registered User
 
Join Date: Dec 2014
Location: germany
Posts: 439
Quote:
Originally Posted by Master484 View Post

But as mentioned before, 16 color sprites may not be possible to do in Blitz, or with the normal Blitz commands at least. So I can only use 4 color sprites.
That's very unfortunate, as in 4-color mode the sprite colors are very limited. Every sprite pair gets its own palette from the upper sixteen colors, sprite 0/1 have color 17,18,19, sprite 2/3 color 21,22,23, 4/5 have 25,26,27, 6/7 have 29,30,31. So you'd have probably quite a bit of redundant colors.

Maybe fiddling around with CustomString could help, but I guess it would be very cumbersome. I do not have any experience with Blitz, does it allow to include also custom assembler/object code?
Quote:
Originally Posted by Master484 View Post

So I think I'll use the following system: One of the characters will always be a 100% BOB created with Blits. And the other character will always be a BOB + Sprite combination, and it will get 6 four color sprites which are used to reduce the size of the BOB as much as possible.

By putting 2 four color sprites on top of each other to the same XY, I can use 6 sprites to create three 16*Unlimited Y "sprite zones" into the character, and 6 colors from the BOB palette will be available for these zones (because 4 color sprites are 3 colors + transparent, and even numbered sprites use one set of 3 colors and odd numbered another 3 colors).

So all 4 skin tones + white and black can be used for these sprite zones. I looked through the characters, and these 6 colors work fine for most of them; the entire characters can't be drawn with these colors, but it's enough to make them smaller, and BOB blits handle the rest.
With ECS, you cannot have only two 3-color palettes for odd and even sprites without setting the 16-color mode (and use non-overlapping sprite pairs). I'm also a bit surprised that Blitz does not allow you to have full eight sprites - there's probably no need to make the screen full 320 pix in width?
Quote:
Originally Posted by Master484 View Post
And before each fight, there would be a logic system that chooses which one of the two characters gets to be a sprite + BOB combination, and the best case is always chosen.

This system means that every character needs to have 2 versions: a "100% BOB version" and a "sprite + BOB combination" version. This is easy to make, although time consuming...but I have time.

With some luck this should be enough to make most fighter combinations run at 50 FPS even on ECS.
It's surely a lot of work to get it implemented well, preferably without storing two complete sets on disk but setting up sprites/bobs at level loading time, but could give optimal results indeed.

Quote:
Originally Posted by Master484 View Post
Unfortunately this is not possible in Blitz Basic. Although display modes can be changed mid-screen, Blitz requires that there are at least 2 "empty" Y lines before a new display mode starts. These 2 lines can't display any graphics and will appear as two lines of Color 0. So display mode changing mid-frame in Blitz can be mainly used only for status panels and such.
Ah, ok, that's a pity. You could still try to insert custom copperlist commands with customString, but it's maybe not worth the hassle.

Quote:
Originally Posted by Master484 View Post
And 3D scrolling of the floor would be cool, but I would only consider adding it if I first get two of biggest characters to run firmly at 50 FPS with plenty of steam left.
Yep, sensible approach - it's just icing on the cake.

All the best for your project, I'm curious to see its progress.
chb is offline  
 
Page generated in 0.09804 seconds with 11 queries