VERA 128K

Get help from the community & developers with the X16 hardware if you can't find the solution elsewhere
Guybrush
Posts: 63
Joined: Fri Jul 10, 2020 10:38 pm

VERA 128K

Post by Guybrush »



1 hour ago, svenvandevelde said:




@GuybrushYes, but the thing is, in lower resolutions the stuff looks ... well ... yeah ... vintage ...



I don't know what you expected... there's (almost) nothing more vintage than 6502 ?

Perifractic
Posts: 511
Joined: Sat Apr 25, 2020 4:53 pm

VERA 128K

Post by Perifractic »

The key to all of this is that limitations breed creativity. Embrace the limits. Then find ways around them. Very often the end result is something greater than if you had done it the easy way.
User avatar
StephenHorn
Posts: 565
Joined: Tue Apr 28, 2020 12:00 am
Contact:

VERA 128K

Post by StephenHorn »


Hell, you could almost halve your sprite memory usage for that ship just by shading it so the light source is directly on the vertical axis. Then you could remove half of the axial roll frames and use the VERA's horizontal flipping to pretend the other half exists.

But I agree with others that, ultimately, the VERA is best suited for 320x240 graphics, which is appropriate for the 8-bit era.

The SNES was 256x224. Would you believe that was smaller than the NES's 256x240? The Genesis/Master System was 320x224. PC games as late as Wing Commander: Privateer and Descent (the latter being a fully 3D game with texture shading) were 320x240 resolution. The PS1 was technically a 640x480 platform, but you'll notice that the sprite work in games like Castlevania: Symphony of the Night were still 320x240.

Developer for Box16, the other X16 emulator. (Box16 on GitHub)
I also accept pull requests for x16emu, the official X16 emulator. (x16-emulator on GitHub)
User avatar
svenvandevelde
Posts: 488
Joined: Wed Dec 23, 2020 6:30 am
Location: Belgium, Antwerpen

VERA 128K

Post by svenvandevelde »


Embracing it will be. Another day ... another challenge... One thing is a fact. I'm already having LOADS of fun with the CX16! Many funny days are coming. I have another question but I need to ask in another thread. Thanks all.

KICKC home page by Jesper Gravgaard.
My KICKC alpha with Commander X16 extensions.
User avatar
svenvandevelde
Posts: 488
Joined: Wed Dec 23, 2020 6:30 am
Location: Belgium, Antwerpen

VERA 128K

Post by svenvandevelde »


What I don't like is the lack of sufficient VRAM in the VERA. Even in 4bpp, memory runs out fast. Especially if you want to embed spritee animations. With the hardware capabilities of the VERA, memory is underscaled when using the high resolution 640x480 in tiled mode.

An example ... 12 sprites of 32x32 pixels in 4bpp requires $1800 bytes. But in high resolution 32x32 px is very little. 64x64 px quadruples the memory requirement... then you talk about $6000 bytes. And that is for just one "healthy" sprite animation ... beside that, you need explosions, damaged states, shadows, overlays like glowing effects, bullet types. So per enemy type you can easily consume $8000 to $A000 bytes (when in 64x64). And note that all this is in 4bpp. When using 8bpp that requires a multiple by 2. So 12 sprites in 8bpp 32x32 consumes about $3000 bytes. In 64x64 mode that would be $C000. That's 1/3 of the VERA VRAM, for one healthy enemy.

An interactive arcade game would easily have 6 to 8 different enemy types on the screen requiring animations, damage states, bullets, shields, glowing etc.

Noting that the VERA has 128 different sprites that can be shown simultaneously I really am afraid that memory upscaling is a requirement to use the full potential of the machine.

KICKC home page by Jesper Gravgaard.
My KICKC alpha with Commander X16 extensions.
Lorin Millsap
Posts: 193
Joined: Wed Apr 29, 2020 6:46 pm

VERA 128K

Post by Lorin Millsap »

So stop using 640x480. Drop down to 320x240 and all of your problems will go away.


Sent from my iPhone using Tapatalk
User avatar
Yazwho
Posts: 167
Joined: Fri Feb 19, 2021 2:59 pm
Contact:

VERA 128K

Post by Yazwho »



18 minutes ago, svenvandevelde said:




An interactive arcade game would easily have 6 to 8 different enemy types on the screen requiring animations, damage states, bullets, shields, glowing etc.



Not sure that's what 8 bit hardware could do. Of the top of my head I'm pretty sure the best NES games like Mario Bros 3 had maybe 4 on screen? All of the above really came to the fore when machines moved to 16 bits.

That said, there are all sorts of optimisations you can do to achieve some of your goals. You just have to figure out how to do it. Clever use of the sprite flipping and the colour pallette index will get you a long way there.

What makes developing on systems like the X16 fun is overcoming the hardware limitations, memory being one!

StinkerB06
Posts: 74
Joined: Tue Jun 30, 2020 12:32 am

VERA 128K

Post by StinkerB06 »


You don't necessarily have to store all of your sprites in VRAM at once. If you only have one sprite on-screen that uses those 17 frames of animation in the screenshot you posted, just keep one of those animation frames in VRAM at a time and copy the next one from RAM to VRAM when needed. However, this will impact performance.

User avatar
svenvandevelde
Posts: 488
Joined: Wed Dec 23, 2020 6:30 am
Location: Belgium, Antwerpen

VERA 128K

Post by svenvandevelde »



7 minutes ago, StinkerB06 said:




You don't necessarily have to store all of your sprites in VRAM at once. If you only have one sprite on-screen that uses those 17 frames of animation in the screenshot you posted, just keep one of those animation frames in VRAM at a time and copy the next one from RAM to VRAM when needed. However, this will impact performance.



This method crossed my mind too. But indeed, that impacts performance and it will require to continuously copy sections of memory into VRAM ... It will have CPU overhead ...

KICKC home page by Jesper Gravgaard.
My KICKC alpha with Commander X16 extensions.
Elektron72
Posts: 137
Joined: Tue Jun 30, 2020 3:47 pm

VERA 128K

Post by Elektron72 »



59 minutes ago, Yazwho said:




Not sure that's what 8 bit hardware could do. Of the top of my head I'm pretty sure the best NES games like Mario Bros 3 had maybe 4 on screen? All of the above really came to the fore when machines moved to 16 bits.



I would like to mention that the SNES only had 64K of VRAM (and the NES, if I read the documentation correctly, only had about 10K of video memory), whereas the X16 will have almost 128K. With a bit of clever programming, the X16 will likely be able to provide similar graphics capabilities to a 16-bit machine.

Post Reply