| |
Sokrates
Registered: Jun 2014 Posts: 16 |
Release id #252024 : C64ColorRamDoubleBuffer
Does anyone know who had this idea first?
What was the first implementation?
Are there any demos or games out there?
I only found this one:
https://www.gamesthatwerent.com/gtw64/balls-of-the-scrolling-th..
I will add this information to the documentation then. |
|
... 28 posts hidden. Click here to view all posts.... |
| |
chatGPZ
Registered: Dec 2001 Posts: 11510 |
This isn't what this thread is about. At all. (I have to correct myself: its not fixed - it changes every now and then. It's still not double buffering though) |
| |
Mr SQL
Registered: Feb 2023 Posts: 158 |
Quoting chatGPZThis isn't what this thread is about. At all. (I have to correct myself: its not fixed - it changes every now and then. It's still not double buffering though)
Very cool I'm glad you understand.
Who says a buffer can't be compressed?
It's still double buffering if changes to the compressed buffer are mirrored uncompressed. |
| |
Krill
Registered: Apr 2002 Posts: 3083 |
The technique is about actual double buffering in hardware.
Every other badline is skipped, so no DMA.
There are actual 8x16 tiles, and the skipped colour RAM rows can be updated lazily.
After update, the buffers are flipped by toggling displayed/skipped even/odd badlines. |
| |
Mr SQL
Registered: Feb 2023 Posts: 158 |
Quoting KrillThe technique is about actual double buffering in hardware.
Every other badline is skipped, so no DMA.
There are actual 8x16 tiles, and the skipped colour RAM rows can be updated lazily.
After update, the buffers are flipped by toggling displayed/skipped even/odd badlines.
This is interesting. Where is the 2nd hardware buffer for the color RAM? |
| |
Krill
Registered: Apr 2002 Posts: 3083 |
Quoting Mr SQLWhere is the 2nd hardware buffer for the color RAM? Same $D800 range. The trick is to skip every other colour RAM char row when displaying the screen, then flip when the values in the invisible rows have been updated. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11510 |
Quote:The technique is about actual double buffering in hardware.
That. And... if "building the video buffer from some other buffer in memory" would count as "double buffering", then "single buffer" rendering would be hard to achieve - since you always do this, in one way or another. |
| |
Mr SQL
Registered: Feb 2023 Posts: 158 |
Quoting KrillQuoting Mr SQLWhere is the 2nd hardware buffer for the color RAM? Same $D800 range. The trick is to skip every other colour RAM char row when displaying the screen, then flip when the values in the invisible rows have been updated.
Great technique and description.
Quoting chatGPZ... if "building the video buffer from some other buffer in memory" would count as "double buffering", then "single buffer" rendering would be hard to achieve - since you always do this, in one way or another.
The link I shared describes using timing to update colour RAM and graphics dynamically from the compressed buffers during the vertical blanks. This allows lazy updates similarly. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11510 |
It still has nothing to do with what is called "double buffering". Stop redefining whatever term to your liking. Waiting for vblank and then update quickly is the textbook case of "single buffer". |
| |
Mr SQL
Registered: Feb 2023 Posts: 158 |
Quoting chatGPZIt still has nothing to do with what is called "double buffering". Stop redefining whatever term to your liking. Waiting for vblank and then update quickly is the textbook case of "single buffer".
I think you misunderstood the description.
Yes waiting for vblank and then updating quickly is the textbook case of single buffer.
The link describes taking a frame to build the screen buffers first before they are rendered. That is textbook double buffering and increases available processing time.
The method is flexible and can fit into the vertical blanks using display lists (like ANTIC) to build the screen buffer in sections before rendering. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11510 |
You are just in your usual loop of redefining well established terms into whatever you think they mean.
Hint: the above described way is pretty much the only way double-buffering of color ram can be achieved on the C64. There is no other. None. Nada. Zero. Whatever you did it is not it.
Comprende? |
Previous - 1 | 2 | 3 | 4 - Next |