VERA and number 48 ...
Posted: Mon Oct 03, 2022 6:30 am
Hi,
Before you read further, please keep in mind that this post is not meant to pose any critic to Frank VdH or to the overall design of the CX16 regarding its graphics capabilities ...
However, allow me to reflect the followiing ...
Using vera in 640x400 graphics mode, there is a function in vera which I believe which could be further fine tuned ... It is the setting of the height and width of sprites ...
Sprites can be configured as 8, 16, 32 and 64 width and height by setting the respective bits in register 7 of the sprite attributes...
I find the width and height of 64 however a bit too big of a gap.
Hopping from 8 to 16 is ok, from 16 to 32 is ok, but from 32 to 64 means that in terms of memory consumption there is a big increase ...
Let me illustrate:
8 x 8 in 4bpp requires 32 bytes.
16 x 16 in 4bpp requires 128 bytes.
32 x 32 in 4bpp requires 512 bytes.
64 x 64 in 4bpp requires 2048. In 8 bpp that would be a whopping 4096 bytes!
My question is, what if the vera would model the sprite painting with the following width registers: 16, 32, 48, 64, and discard the 8 pixel width and height setting.
That would mean, that the following mode would become available:
48 x 48 in 4bpp requires 1152 bytes, in 8bpp that would be 2304 bytes.
Additionally:
A sprite width/height of 32 x 32 is too limiting, it does not draw sprites with sufficient size. It is a bit too small.
A sprite width/height of 64 x 64 is big, which is great, but it consumes too much memory. These kind of sprites would have a more limited animation count to save memory.
A sprite width/height of 48 x 48 would be a great size, as this would not consume too much memory, but would show sprites with sufficient pixel size.
Please see examples below:
Above is an example of a 48 x 48 sprite animation...
Above is an animation of a 32 x 32 animation, great but a bit small. However, this size is perfect to flood the screen with enemies :-).
But the density to show sprite animations is limited and the width/height quickly becomes obvious to the player that 32x32 is the limit as all sprites will be in this size ...
Above shows 64 x 64 sprites animation, great for larger type of enemies, but consumes a lot of space.
The 48 x 48 sprite size seems to be the right fit, a 64 x 64 is needed, but consumes a lot of memory.
Drawing a 48 x 48 sprite animation results in a lot of vram memory being lost, due to having to draw this 48 x 48 sprite animation on 64 x 64 planes.
One could argue, that yes, we can do magic and start combining sprites to make larger pictures to draw a 48x48 bitmap, like drawing 9 16x16 sprites, or 1 sprite of 32x32 + 1 sprite of 16x32 + 1 sprite of 32x16 + 1 sprite of 16x16 ... But that would make things very, very complicated, and also notice by having to draw 9 or 4 sprites instead of one, there is a performance impact. Also notice, that if I would draw a 48x48 sprite out of 9 sprites of 16x16, that would mean 72 sprites to be drawn if i want to show 8 images of 48x48 pixels!
Any thoughts on this? @Wavicle?