Page 1 of 1
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 11:51 am
by Yazwho
I know you're very far along when it comes to the design and implementation of the VERA sub-system. However I figure I'd throw this out just in case.
Is there any chance block clear\fill functionality could be included so we can clear out blocks of VRAM?
Right now the bitmap mode has considerable limitations as we can't just clear the previous frame without resorting to a pixel by pixel approach. It will sadly mean this mode is left to mostly showing static images.
One possibility would be to add a bit to the CTRL register, so if set when we write to DATA0 it could fill the 256 bytes at ADDR_H, ADDR_M with the value. (As a programmer, obv I'd prefer something even quicker! ?
It would open up the possibility to do something a little inventive with the mode.
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 1:40 pm
by Lorin Millsap
The VERA is basically finished. There are no plans to add new features to it.
Sent from my iPhone using Tapatalk
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 2:23 pm
by Yazwho
Ah well, worth an ask. Bit of a shame to have to mostly stick to tile modes.
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 2:54 pm
by x16tial
Edited: I just realized you did that cool demo, you're obviously not developing in BASIC. But yeah, Screen RAM can be pretty efficiently filled/cleared in assembly, let me know if you need any tips.
But yeah, perhaps that even isn't fast enough for what you want to do. But with 2 channels and auto incrementing, there might be possibilities.
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 4:14 pm
by Yazwho
1 hour ago, x16tial said:
Edited: I just realized you did that cool demo, you're obviously not developing in BASIC. But yeah, Screen RAM can be pretty efficiently filled/cleared in assembly, let me know if you need any tips.
But yeah, perhaps that even isn't fast enough for what you want to do. But with 2 channels and auto incrementing, there might be possibilities.
It means for anything you do, say plot a cube, you have to essentially draw it twice every frame as you need to blank out the previous render. Really expensive. I guess it's pretty limited given the size of vram, but still.
I still have hope though, even if the code is frozen for release (which makes total sense), the 'P' part of FPGA means it can be changed in the future, so maybe post release some functionality will be added.
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 4:31 pm
by x16tial
I'll fully admit to not being an expert here. But I think the VERA has enough memory to double buffer the 1bpp 640x480 bmp mode. Does that still not work for the frame rate you're trying to achieve?
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 4:41 pm
by SlithyMatt
You have enough VRAM to do double buffering in 2bpp mode. If you want to make a game with 3D rendering, 4 colors is your limitation. Otherwise, you can make your own 3D graphics expansion card or... just get a Raspberry Pi.
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 4:47 pm
by Elektron72
6 minutes ago, SlithyMatt said:
You have enough VRAM to do double buffering in 2bpp mode.
Wouldn't double-buffered 2bpp 640x480 mode require 153600 bytes, when we only have 131072 in VRAM (including palette and sprite registers)? Please tell me if I calculated this wrong; I would be happy to realize that there is in fact more VRAM than I thought.
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 4:49 pm
by x16tial
I calculate that it would take 150k to double buffer 640x480x2bpp... am I missing something? But I'm also wondering how helpful it is to say "just get a Raspberry Pi", when of course that's always an option, along with myriad other platforms, including PC's, when what I'm thinking the purpose of this discussion is to figure things out on *this* platform, the X16.
Block Clear\Fill VRAM
Posted: Sun Mar 07, 2021 10:02 pm
by SlithyMatt
I should have clarified. I meant at 320x240. Full resolution is not what you are going to use for most games.