calimero wrote:Do you have link with explanatio how tile based sprites work?
The development docs of the Neo Geo
and a short technical overview of the Capcom Play System 1
give an idea how the sprites will be defined:
You have a memory mapped area of a table with a certain number of sprite info structures. The sprite graphics data itself is stored in the ROMs so you need only a small RAM area for the game logic.
A 16 x 16 pixels sprite usually encodes a pixel with 4 bits so it can reference up to 16 colours (15 colours that is, because the first "colour" represents a transparent pixel). Two pixels are packed in a byte so the memory consumption is quite effective. Also you can flip a sprite horizontally and vertically. This reduces the memory to 1/4 (if the flipping is heavily used). Using different palettes for each sprites makes it easy to save more memory. Just use another palette to have "different" enemies or show that an enemy has been hit. Combine sprites together and extend the effective palette to more than 16 (15) colours. Also the combination allows to animate only a few sprites like the legs of characters in a fighting game.
This all saves a lot of memory and just converting all the sprites to Blitter Objects will not work. Especially when you "only" have a 256 colour graphics mode. Even when you did this you have to write on all 8 planes just to draw a sprite with only 16 colours. You need to write on twice as much memory when the sprite moves over a word boundary. That's totally ineffective. Unfortunately you cannot combine sprites to a big Blitter Object because some sprites within that big object will be exchanged as part of an animation (like an opening loophole).
calimero wrote:Regarding your port Anima, why do you need 14MB? And is it possible to bring back scrolling of background?
Keep in mind that there are 1885 differnt sprites which will be flipped horizontally and vertically and finally being compiled to memory. This is quite expensive but since the background is not that important I can try to reduce it. I am not sure if it will fit into 4 MB anyway.
Well I've put the project on hold but did not abandon it...