Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user mutetus ! (Registered 2020-12-03) You are not logged in 
CSDb User Forums

Forums > CSDb Entries > Release id #179166 : Gumbo
2019-07-07 22:37

Registered: Aug 2003
Posts: 10
Release id #179166 : Gumbo

Heya all


As you may have seen, we have released the (small, 9kb) one-file demo "Gumbo" at Gubbdata, and this marks my return to the scene after almost 25 years of absence. I have created this discussion thread to answer any questions you may have about the code.

A quick note on the shade-bobs/"heat-bobs", since I expected that is of most interest:
The entire trick behind this effect, is to have the bobs themselves move every frame (in IRQ), while the fader/cooler does its work behind the scenes (in main), in a pattern that fades/cools 1/4 of the screen in each pass (but all across the screen).

Both the bobs and the fader/cooler works directly on the 4x4 screen-buffers, and no additional matrix of "heat values" and/or double-buffers are needed. The bobs themselvs works by heating the space around them in the following pattern:

.byte $0,$0,$1,$1,$1,$1,$0,$0
.byte $0,$1,$2,$2,$2,$2,$1,$0
.byte $1,$2,$3,$4,$4,$3,$2,$1
.byte $1,$2,$4,$8,$8,$4,$2,$1
.byte $1,$2,$4,$8,$8,$4,$2,$1
.byte $1,$2,$3,$4,$4,$3,$2,$1
.byte $0,$1,$2,$2,$2,$2,$1,$0
.byte $0,$0,$1,$1,$1,$1,$0,$0

The maximum heat of each cell is $0f - the cooler works in the other direction by reducing the heat of each cell by 1. This is done one double cell (4x4) at the time (two nibbles), since it's trivially easy to pre-calculate the next value of any pair of nibbles beforehand, and build in the prevention of under-flows (e.g. $ff -> $ee, $e1 -> $d0 -> $c0 etc).

Notice: if you debug the code, you'll notice that the patterns flow in reverse, as char $ff is the "coolest" (transparent) since this makes hiding the FLI bug a complete non-issue. (as I wrote in the release notes, I coded this in 2011 as the first thing after I took up the c64 again, and this may be unnecessarily convoluted).

Anyhow, fire away with questions if you have them, and I'll do my best to answer.

-Raz/Camelot - July 2019
2019-07-08 11:32

Registered: Apr 2002
Posts: 4633
superb comeback, great code, congrats :)
2019-07-08 14:02

Registered: Aug 2003
Posts: 10
@Oswald: Thanks =)
2019-07-09 11:20

Registered: Feb 2003
Posts: 693
Interesting facts about the heat-bobs. I did one also some 20 years ago with more accuracy than the typical heat-bob had in the 90's, but still in 8x8. This one looks alot better than how i remember mine, so then i can probably forget it now :). It looked fabulous on the GubbData screen, and it was one of the first ones that i had to check out closer when coming back home :) Thanx for the excellent work!!
2019-07-09 11:44

Registered: Feb 2003
Posts: 460
Anyhow, fire away with questions if you have them, and I'll do my best to answer.

hey, welcome back!
what about sharing the source?
2019-07-09 12:39

Registered: Aug 2004
Posts: 1098
Nicely done, Raz.

Could probably take a similar approach to the bob plotting too, just use ~17 tables, one for each of the possible pairs of increment values.
2019-07-09 21:40

Registered: Aug 2003
Posts: 10
@HCL: Great to hear that you like the heat-bobs, and that they looked good on the big screen =) Did you release your own heat-bob routine? If so, in which demo?

I was away on vacation during the party, and didn't see the stream until recently - I was mortified to see the left-sideborder bug in the $d020 scroller :-/ As I wrote elsewhere, I simply didn't see it on my 1702 monitor. I can see, that you way back in 2005 created a post on exactly this topic ("real" screen limits), and I'm working on a fix based on your metrics: Screen limits

@ChristopherJam: I have been thinking along those lines - I would need to make even/odd-offset versions of the bob-tables (as I already now have even/odd versions of the bob-plotter code) - I haven't calculated the exact number of unique value-pairs, but ~17 as you wrote sounds about right. I have some ideas of new ways to take this effect, where I need a quicker plotter, and I'll certainly take this way of thinking into account. Also, I have realised that more than ~4 big bobs tends to clutter the screen - but here, again, I have some ideas =)

@ZeSmasher: My aim is to post the source-code eventually (it needs some clean-up, and it is currently too closely tied in to the GUMBO framework).

@All of you: Thanks for all the warm and friendly comments, it feels absolutely fantastic to get that kind of feedback from such great coders, and I feel hugely inspired to do more work - you have not seen the last of me.
2019-07-09 23:12

Registered: Feb 2003
Posts: 693
@Raz: No, i never released my heat-bobs, they were already sort of out of fashion. ..but now it seems *hot* again :D.. About d020-bug, yes i noticed that. Annoying, but easily fixed. You can easily verify such stuff in the vice-emulator also, use debug-mode for borders and you will see far more than any monitor can show.
2019-07-09 23:34

Registered: Aug 2003
Posts: 10
@HCL: Aye, I've started using vice with -VICIIborders 1 or -VICIIborders 2 now =) ... At least I spotted the "grey half-pixel dot" problem on the c64c VIC-II revision and fixed that prior to release. (This I first saw on the actually hardware, before being tipped by Slammer, that x64sc emulates that as well).

Let's see, if this release marks the beginning of a new round of heat-bobs/shade-bobs craze =)
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
Users Online
Street Tuff/TRSi
MaD ][/Starship
Fred/Channel 4
Guests online: 105
Top Demos
1 Coma Light 13  (9.6)
2 Uncensored  (9.6)
3 Edge of Disgrace  (9.6)
4 Memento Mori  (9.6)
5 Unboxed  (9.6)
6 Comaland 100%  (9.6)
7 Lunatico  (9.6)
8 The Shores of Reflec..  (9.5)
9 Rivalry  (9.5)
10 X Marks the Spot  (9.5)
Top onefile Demos
1 To Norah  (9.9)
2 Copper Booze  (9.9)
3 Elite Code Mechanics  (9.6)
4 Square Booze  (9.5)
5 Quadrants  (9.5)
6 Dawnfall V1.1  (9.5)
7 Daah, Those Acid Pil..  (9.5)
8 Smile to the Sky  (9.5)
9 Crystal Gazer  (9.4)
10 Snake Booze  (9.4)
Top Groups
1 Booze Design  (9.4)
2 Censor Design  (9.4)
3 Oxyron  (9.3)
4 PriorArt  (9.3)
5 Triad  (9.3)
Top Organizers
1 Burglar  (9.9)
2 Sixx  (9.8)
3 Irata  (9.8)
4 Taper  (9.8)
5 hedning  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2020
Page generated in: 0.041 sec.