Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
No More Grey Dots   [2019]

No More Grey Dots Released by :
Triad [web]

Release Date :
24 November 2019

Type :
C64 4K Intro

Website :

Released At :
Intro Creation Competition 2019

Achievements :
C64 4K Intro Competition at Intro Creation Competition 2019 :  #5

User rating:*********_  8.9/10 (47 votes)   See votestatistics
*********_  9.2/10 (18 votes) - Public votes only.

Credits :
Code .... Powerslave of Triad
Music .... TDM of Triad

SIDs used in this release :
No More Grey Dots(/MUSICIANS/T/The_Dungeon_Master/No_More_Grey_Dots.sid)

Download :
http://csdb.dk/getinternalfile.php/191299/3AD_No_more_grey_dots_4k.prg (downloads: 579)

Look for downloads on external sites:

User Comment
Submitted by Didi on 12 January 2020
Thought some time if this is valid to the "one part" rule. The final kick was that But I accepted Atlantis Intro "Weirdo" (ugly remake) in the 2018 compo so this is valid, too.
User Comment
Submitted by Joe on 6 January 2020
Awesome stuff!
User Comment
Submitted by Digger on 17 December 2019
Great one, although very similar to Gumbo
User Comment
Submitted by psych858o on 14 December 2019
Damn! Triad delivers!
Sound is strong in this one.
User Comment
Submitted by Raz on 27 November 2019
I have had I nice discussion with Powerslave in PM about the code, and Per said he would be fine with me to post a few details about how the raster scroller in Gumbo works in this thread. It is NOT an attempt to hi-jack the discussion to be about my demo, I just hope it will be of interest:

Per wrote:
> Hi, how did you solve the problem to keep track if you should write or clear on the leftmost column? This was the main reason for me to use two different op codes for clear and write. You write that you only used noop so there must have been also a rolled table, or did you find another solution?

Raz, Reply #1:
I actually even do it in loop, with the following code 8xunrolled - and I then have a different part of the code to update the opcodes (STA = set the colour of the line, STY = clear, NOOP = do nothing). My original code for the proof-of-concept was way less than 1 kb =)

I do the NOOP trick to preserve the flags, since I need the results of the early DEX preserved. This is from the bugfixed version - in the original one I used BIT, but I needed to move the first store 2 cycle to the left.

The LDX is the height of the current line.

ldx #$20 // 2c, 2b - cyc 2 (earliest: 62)
lda coltab2,x // 4c, 3b - cyc 4
sta $d020 // 4c, 3b - cyc 8 (earliest: 5)
sty $d020 // 4c, 3b - cyc 12
sta $d020 // 4c, 3b - cyc 16
sty $d020 // 4c, 3b - cyc 20
sta $d020 // 4c, 3b - cyc 24
sty $d020 // 4c, 3b - cyc 28
sta $d020 // 4c, 3b - cyc 32
sty $d020 // 4c, 3b - cyc 36
sta $d020 // 4c, 3b - cyc 40
sty $d020 // 4c, 3b - cyc 44
sta $d020 // 4c, 3b - cyc 48
sty $d020 // 4c, 3b - cyc 52
sta $d020 // 4c, 3b - cyc 56 (earliest: 53) - 13 STA/STY "pixels" to modify

beq !skip+ // 2c (3c)- cyc 62
lbjmp: jmp d020loop // 3c - cyc 1 -> BYTES: 2 + (14*3) + 1 + 2 + 3 = 50 bytes

Raz, Reply #2: - I forgot to mention how I handle the left-most column:

This is handled by the code that updates the opcodes. It always forces a STA/STY at the first position, and then from there it keeps track of changes.

As I decode the chars (including variable lenghts) I translate the bit-pattern into opcodes: STA (bit=1) and STY (bit=0). In the update-opcode-matix code I always keep track of the previous opcode per line, and if the same opcode is seen again I store $0c instead. Hmm - guess it will be easier if I just clean-up and post the source together with the revised version of Gumbo =)


@Editors: If you think this should be posted under the Gumbo demo instead, you're very welcome to move it.
User Comment
Submitted by Powerslave on 27 November 2019
I did it in a similar way but used two opcodes to be able to easy keep track if the previous "dot" was set or clear. I use STA ($8d) / NOP ($0c) for a "write" and STX ($8e) / BIT ($2c) for a "clear". This was the way I found to make the code as compact as possible.
User Comment
Submitted by Raz on 27 November 2019
@JackAsser: I went with the "grey edges" in Gumbo as well - guess this is the optimal solution. (I did it with opcode $0c = noop $d020 instead of store in case the colour in one cell the the same as the previous one - and STA/STY in case I need to change the colour). I look forward to peek into this one and see how it's implemented.
User Comment
Submitted by Raz on 27 November 2019
Sweet - good to see, that I'm not the only one liking big raster scrollers =)

That reminds me, that I never got around to post the updated version of the scroller in "Gumbo" - looks like I have a TODO for the weekend.

User Comment
Submitted by Yogibear on 26 November 2019
User Comment
Submitted by Dr.Science on 25 November 2019
Nice and smooth scroller!
User Comment
Submitted by Golara on 25 November 2019
@JackAsser Just dont use inc/dec :P
User Comment
Submitted by JackAsser on 25 November 2019
@Jammer: Indeed they are. Introducing: Grey edges! Is trickier that one might think because you must not set $d020 to the same color twice.
User Comment
Submitted by Jammer on 25 November 2019
BTW, aren't fringes of letters grey dots alltogether? ;)
User Comment
Submitted by Powerslave on 25 November 2019
Ok, let Didi decide as you write. Code is clearly only one part. The sprite logo is always there even if covered by the $d020 scroll. Just blanking out the screen with the DEN bit when the scroll should be visible and using illegal bitmap mode when the logo should be visible. There is nothing written that the scroll and logo must be visible at the same time... :) But it’s not up to me to decide.
User Comment
Submitted by Smasher on 25 November 2019
after watching the intro again I think it's absolutely fantastic but... IMHO not compliant to ICC2019 rules: it's clearly 2 parts, one with only a logo and no scrolltxt and one with scrolltxt and no logo. well, let Didi decide... sorry TRIAD and authors, don't hate me :)
User Comment
Submitted by Raistlin on 24 November 2019
Wow! This is very, very cool. Love it!
User Comment
Submitted by Ksubi on 24 November 2019
Nice work! Love the tune also.
User Comment
Submitted by TheRyk on 24 November 2019
no way this is 4k!

way cool stuff guys
User Comment
Submitted by Mibri on 24 November 2019
Dealer quality intro!!
User Comment
Submitted by Golara on 24 November 2019
perhaps the best d021 scroller i saw :)
User Comment
Submitted by Smasher on 24 November 2019
lovely one, especially if you watch it in vice with debug borders :)
User Comment
Submitted by Jammer on 24 November 2019
I found one! JK, it's amazing! <3
Search CSDb
Prev - Random - Next
Detailed Info
· Summaries
· User Comments (22)
· Production Notes
Fun Stuff
· Goofs (1)
· Hidden Parts
· Trivia
· Discuss this release
Info on other sites
· demozoo.org
· Pouët
· YouTube
· YouTube
Sponsored links
Support CSDb
Help keep CSDb running:

Funding status:

About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2022
Page generated in: 0.143 sec.