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 > C64 Coding > Datastorm Demo effects - awesome!
2014-02-17 20:37
Xenox

Registered: Jun 2003
Posts: 87
Datastorm Demo effects - awesome!

I'm really shocked about the very good quality of the demos released at the Datastorm2014, really, really great stuff, the gfx are amazing with very good code and music...!

I really, really, like the bg Datastorm bitmap picture in "We are all connected" at the beginning...

My question is, how do they do that moving the bitmaps... i'm really impressed...!

We Are All Connected

Frank
2014-02-17 21:00
Conrad

Registered: Nov 2006
Posts: 849
Just a guess but... VSP?
2014-02-17 22:16
CRT

Registered: Oct 2012
Posts: 87
With double buffering and slow scrolling it's possible without VSP.
2014-02-17 23:37
Scarzix

Registered: Aug 2010
Posts: 143
There was no VSP in our demo. :-) Perplex made the scroller.
2014-02-17 23:55
JackAsser

Registered: Jun 2002
Posts: 2014
xenon: the power of lda+sta will give you scrolling, or if you're Mahoney, 44.1kHz samples. ;)
2014-02-18 00:00
algorithm

Registered: May 2002
Posts: 705
you should be able to soft-scroll the whole screen in around 4 cycles with lda/sta which would be the equivalant of around 2 pixels hardware scroll per frame. If you need more cpu time for other things, then 1 pixel scroll per frame should be much more than sufficient.
2014-02-18 00:00
algorithm

Registered: May 2002
Posts: 705
4 cycles?? Hahaah I wish... Meant 4 frames!
2014-02-18 01:12
Cruzer

Registered: Dec 2001
Posts: 1048
Yeah, bitmap scrolling is definitely a new and revolutionary thing invented in 2014. :P
2014-02-18 03:44
Xenox

Registered: Jun 2003
Posts: 87
Aeh, really? lda, sta? Hm, well, i remember that i used a fucking reat 4x4 charset from Compyx/Focus in a Intro years ago (Intro #19) using lda, sta to move the bitmap, but the routine eats the rastertime, so i'm not sure if this is working on a whole screen...! Doublescreen is a good idea...!

Frank
2014-02-18 05:53
Perplex

Registered: Feb 2009
Posts: 255
Quoting algorithm
If you need more cpu time for other things, then 1 pixel scroll per frame should be much more than sufficient.


Unless you want to do loading, decrunching and perhaps some other stuff at the same time, of course.
2014-02-18 07:58
cg

Registered: Mar 2013
Posts: 2
Quote: xenon: the power of lda+sta will give you scrolling, or if you're Mahoney, 44.1kHz samples. ;)

lda+sta is the most versatile thing ever invented - any category ;)
2014-02-18 08:21
algorithm

Registered: May 2002
Posts: 705
Quoting Perplex
Quoting algorithm
If you need more cpu time for other things, then 1 pixel scroll per frame should be much more than sufficient.


Unless you want to do loading, decrunching and perhaps some other stuff at the same time, of course.


Why would that be an issue? :-)
2014-02-18 13:29
JackAsser

Registered: Jun 2002
Posts: 2014
Guys... come on.

A hires bitmap is 9000 bytes colors included. If you move in 25fps like in the demo you will have 16 frames to render a new offscreen page scrolled one char. In total you'll need to perform 9000 lda+sta = 9000*8 = 72000 cycles. Divided on 16 frames => 4500 cycles per frame. I.e. about 20%-25% of available CPU-time. I.e. LOTs of time left for anything else, loading included.
2014-02-18 13:34
TPM

Registered: Jan 2004
Posts: 110
Quote: Quoting algorithm
If you need more cpu time for other things, then 1 pixel scroll per frame should be much more than sufficient.


Unless you want to do loading, decrunching and perhaps some other stuff at the same time, of course.


i know the feeling ;) did lda/sta, 2 frames in http://csdb.dk/release/?id=105226, takes almost half the screen .. but like We Are Connected it's not thát hard.. memory management is harder, i think.
2014-02-18 13:48
Perplex

Registered: Feb 2009
Posts: 255
Quoting TPM
memory management is harder, i think.


Indeed.
2014-02-18 13:55
Perplex

Registered: Feb 2009
Posts: 255
Quoting JackAsser
In total you'll need to perform 9000 lda+sta = 9000*8 = 72000 cycles. Divided on 16 frames => 4500 cycles per frame. I.e. about 20%-25% of available CPU-time. I.e. LOTs of time left for anything else, loading included.


Yup, plenty of time, I have not claimed otherwise.

Double the scrolling speed though, and not only do you have to spend twice as many cycles on moving bitmap and screen data, you also have to load and decrunch new data twice as fast to keep up with the scrolling, and with much less free cpu time in which to do it.
2014-02-18 14:28
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: Quoting JackAsser
In total you'll need to perform 9000 lda+sta = 9000*8 = 72000 cycles. Divided on 16 frames => 4500 cycles per frame. I.e. about 20%-25% of available CPU-time. I.e. LOTs of time left for anything else, loading included.


Yup, plenty of time, I have not claimed otherwise.

Double the scrolling speed though, and not only do you have to spend twice as many cycles on moving bitmap and screen data, you also have to load and decrunch new data twice as fast to keep up with the scrolling, and with much less free cpu time in which to do it.


Well... that's why you don't normally scroll in 50fps for a bitmap scroller unless you resort to VSP.
2014-02-18 15:09
Killsquad
Account closed

Registered: Jun 2005
Posts: 17
Quoting JackAsser
Well... that's why you don't normally scroll in 50fps for a bitmap scroller unless you resort to VSP.

Which takes us back to square one (or post 10) ;-)

Quoting Perplex
Quoting algorithm
If you need more cpu time for other things, then 1 pixel scroll per frame should be much more than sufficient.


Unless you want to do loading, decrunching and perhaps some other stuff at the same time, of course.
2014-02-18 15:51
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: Quoting JackAsser
Well... that's why you don't normally scroll in 50fps for a bitmap scroller unless you resort to VSP.

Which takes us back to square one (or post 10) ;-)

Quoting Perplex
Quoting algorithm
If you need more cpu time for other things, then 1 pixel scroll per frame should be much more than sufficient.


Unless you want to do loading, decrunching and perhaps some other stuff at the same time, of course.


No, square 1 was:

"My question is, how do they do that moving the bitmaps... i'm really impressed...!"

No magic, just 25 fps and lda+sta which gives plenty of time for load and decrunch.

BUT, if you want 50fps you need something else, but that's not square 1. ;)
2014-02-18 16:27
enthusi

Registered: May 2004
Posts: 677
Hehe, I did bitmap scroll in 2014 too!
The Forest Deep
2014-02-18 17:45
algorithm

Registered: May 2002
Posts: 705
I used it in the intro of Sabrina - The Demo
Large multiple screen tall bitmap with inline decompression in Algotecher
and in mcol-ci interlaced mode in Demolicious (Which needs to process twice the amount of pixels)
2014-02-19 08:48
Killsquad
Account closed

Registered: Jun 2005
Posts: 17
Quote: No, square 1 was:

"My question is, how do they do that moving the bitmaps... i'm really impressed...!"

No magic, just 25 fps and lda+sta which gives plenty of time for load and decrunch.

BUT, if you want 50fps you need something else, but that's not square 1. ;)


My bad then, I thought your reply was directed to another post :)
2014-02-20 07:36
Bitbreaker

Registered: Oct 2002
Posts: 508
I don't see any problems in scrolling this by copying. Just do it the same style as with a doublescreen picture + add a ringbuffer from where you copy the new slices needed. The ring buffer will be filled by a loader+decruncher. So not much memory managment necessary. Doynax even brings along all things that is required to easily operate such a ringbuffer.
http://www.codebase64.org/doku.php?id=base:double_screen_vertic..
And to launch the long copy job from an irq (so that loader and depacker can still run in the mainloop) you might do the following:
http://www.codebase64.org/doku.php?id=base:launching_long_tasks..

Basically similar stuff as being used in the greetingspart of coma light 13, just that 3 frames where calculated in advance in a triple buffer to get over some cases that use too much cpu.
2014-02-20 08:26
Oswald

Registered: Apr 2002
Posts: 5094
just be careful with starving the loader for CPU. Krill's loader has a timeout, and it will reset the drive after a few frames of no response from the c64 :) Couldnt solve this problem in 'Still Ready' so had to postpone the loading to after the effect :(
2014-02-20 08:41
Bitbreaker

Registered: Oct 2002
Posts: 508
have a quick look into the config.inc and you'll find:
!set DISABLE_WATCHDOG =1
Easy like that :-)
2014-02-20 08:51
Oswald

Registered: Apr 2002
Posts: 5094
yeah, krill told us about the watchdog, we tried take it out, but didnt work. Time pressure was too big to track it down. Probably something got mixed up and the watchdog was still in there.
2014-02-20 13:35
HCL

Registered: Feb 2003
Posts: 728
Solution: Never use someone elses (drive-)code.
2014-02-20 14:24
Bitbreaker

Registered: Oct 2002
Posts: 508
Solution: Don't do demos anymore :-P
2014-02-20 14:34
Perplex

Registered: Feb 2009
Posts: 255
Quoting Bitbreaker
Solution: Don't do demos anymore :-P


Nah, following up on HCL's idea, the next logical step is of course to build your own computer and only make demos for that.
2014-02-20 14:34
Oswald

Registered: Apr 2002
Posts: 5094
Quote: Solution: Never use someone elses (drive-)code.

also write your own assembler, while you're at it.
2014-02-20 14:44
Perplex

Registered: Feb 2009
Posts: 255
For the moving bitmaps in We Are All Connected, I divide the images into 96 pixels wide segments, and load data into two alternate buffers, each 4096 bytes long (2400 bytes for the bitmap data, 300 bytes for the screen data, and the rest available for sprite data, tables, code or whatever.) Some of the segments are crunched to almost nothing, so they will finish loading and decrunching very soon after I start copying data from the previous buffer onto the screen, that's why I didn't bother coding a ring buffer. Also, I am lazy.
2014-02-20 15:50
algorithm

Registered: May 2002
Posts: 705
Quote: Quoting Bitbreaker
Solution: Don't do demos anymore :-P


Nah, following up on HCL's idea, the next logical step is of course to build your own computer and only make demos for that.


And following on that, Build the tools that are required to make the computer and also ensure that you build what is required to make the tools.. and also ensure...
2014-02-20 17:15
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
also write your own assembler, while you're at it.

didnt every coder write at least one of them? :)
2014-02-20 17:33
soci

Registered: Sep 2003
Posts: 480
Quoting Groepaz
Quote:
also write your own assembler, while you're at it.

didnt every coder write at least one of them? :)


I don't know what you're talking about ;)
2014-02-20 18:00
chatGPZ

Registered: Dec 2001
Posts: 11386
subliminal message ... we need a proper open source rewrite of "pack64" and "cruel" as well, if only for historic reasons ...
2014-02-20 19:38
soci

Registered: Sep 2003
Posts: 480
I've heard that there's some old source which would need pack64. I'm on the same opinion that it's better to replace it with a modern packer. Those two tools would need a rewrite from scratch otherwise.
2014-02-22 04:49
ChristopherJam

Registered: Aug 2004
Posts: 1409
Or if you're Chuck Moore, you then go on to build your own CPUs by laying out gates by hand using software you wrote in the language you wrote then ported to the previous generation of hardware you designed..
2014-02-22 22:21
Tao

Registered: Aug 2002
Posts:
Quote: I've heard that there's some old source which would need pack64. I'm on the same opinion that it's better to replace it with a modern packer. Those two tools would need a rewrite from scratch otherwise.

An open source (binary compatible) cross-platform implementation of Blitz! would be awesome too, preferably in C :) (yeeees, it "might" have something to do with easing my C*Base workflow).
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
Magic/Nah-Kolor
Didi/Laxity
LordCrass
Guests online: 71
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.066 sec.