Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > CSDb Entries > Release id #252024 : C64ColorRamDoubleBuffer
2025-04-17 17:50
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....
 
2025-04-18 10:26
Krill

Registered: Apr 2002
Posts: 3098
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.
2025-04-18 13:25
Mr SQL

Registered: Feb 2023
Posts: 159
Quoting Krill
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.

This is interesting. Where is the 2nd hardware buffer for the color RAM?
2025-04-18 14:14
Krill

Registered: Apr 2002
Posts: 3098
Quoting Mr SQL
Where 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.
2025-04-18 14:42
chatGPZ

Registered: Dec 2001
Posts: 11523
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.
2025-04-18 15:10
Mr SQL

Registered: Feb 2023
Posts: 159
Quoting Krill
Quoting Mr SQL
Where 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.
2025-04-18 15:23
chatGPZ

Registered: Dec 2001
Posts: 11523
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".
2025-04-18 16:10
Mr SQL

Registered: Feb 2023
Posts: 159
Quoting chatGPZ
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".


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.
2025-04-18 16:19
chatGPZ

Registered: Dec 2001
Posts: 11523
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?
2025-04-18 17:24
Mr SQL

Registered: Feb 2023
Posts: 159
Quoting chatGPZ
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?

What terminology was confusing?

If there was only one programming method there would be no innovation. The approaches on this thread have interesting similarities for double buffering with each being innovative in different ways.
2025-04-18 17:26
Krill

Registered: Apr 2002
Posts: 3098
It's certainly not double buffering if it goes to the same flat contiguous hardware buffer in the end.
Previous - 1 | 2 | 3 | 4 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Guests online: 475
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Codeboys & Endians  (9.7)
4 Mojo  (9.6)
5 Coma Light 13  (9.6)
6 Edge of Disgrace  (9.6)
7 Signal Carnival  (9.6)
8 Wonderland XIV  (9.5)
9 Uncensored  (9.5)
10 Comaland 100%  (9.5)
Top onefile Demos
1 Nine  (9.8)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.5)
6 Scan and Spin  (9.5)
7 Onscreen 5k  (9.5)
8 Grey  (9.5)
9 Dawnfall V1.1  (9.5)
10 Rainbow Connection  (9.5)
Top Groups
1 Artline Designs  (9.3)
2 Booze Design  (9.3)
3 Performers  (9.3)
4 Oxyron  (9.3)
5 Censor Design  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 OTD  (9.8)
3 Antitrack  (9.8)
4 Fungus  (9.8)
5 S!R  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.053 sec.