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


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

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

Heya all

Gumbo

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.

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

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

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

Registered: Feb 2003
Posts: 682
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
ZeSmasher

Registered: Feb 2003
Posts: 340
Quote:
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
ChristopherJam

Registered: Aug 2004
Posts: 942
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
Raz

Registered: Aug 2003
Posts: 6
@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
HCL

Registered: Feb 2003
Posts: 682
@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
Raz

Registered: Aug 2003
Posts: 6
@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
Advanced
Users Online
Dymo/G★P
csabanw
hedning/G★P
digix
grip
Mike
Guests online: 44
Top Demos
1 Unboxed  (9.7)
2 Uncensored  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 The Shores of Reflec..  (9.6)
7 Lunatico  (9.6)
8 Wonderland XII  (9.5)
9 C=Bit 18  (9.5)
10 X Marks the Spot  (9.5)
Top onefile Demos
1 Smile to the Sky  (9.5)
2 Dawnfall V1.1  (9.5)
3 Crystal Gazer  (9.5)
4 Daah, Those Acid Pil..  (9.5)
5 Rewind  (9.5)
6 Instinct  (9.5)
7 Pandemoniac Part 5 o..  (9.5)
8 Innervasion  (9.4)
9 Bad Boy  (9.4)
10 Arok 20 Invitation  (9.4)
Top Groups
1 Fossil  (9.8)
2 PriorArt  (9.7)
3 Performers  (9.6)
4 Oxyron  (9.4)
5 Booze Design  (9.3)
Top Logo Graphicians
1 Pal  (9.5)
2 Mermaid  (9.2)
3 Yazoo  (9.1)
4 Elko  (9.1)
5 Compyx  (9.0)

Home - Disclaimer
Copyright © No Name 2001-2019
Page generated in: 0.056 sec.