| | Raz Account closed
Registered: Aug 2003 Posts: 16 |
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 |
|
| | Oswald
Registered: Apr 2002 Posts: 5095 |
superb comeback, great code, congrats :) |
| | Raz Account closed
Registered: Aug 2003 Posts: 16 |
@Oswald: Thanks =) |
| | HCL
Registered: Feb 2003 Posts: 728 |
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!! |
| | Smasher
Registered: Feb 2003 Posts: 521 |
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? |
| | ChristopherJam
Registered: Aug 2004 Posts: 1409 |
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. |
| | Raz Account closed
Registered: Aug 2003 Posts: 16 |
@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. |
| | HCL
Registered: Feb 2003 Posts: 728 |
@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. |
| | Raz Account closed
Registered: Aug 2003 Posts: 16 |
@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 =) |
|