How do you make a demo?
Moderator: Moderators
How do you make a demo?
I wanna know how to make a demo, because I wanna make a demo myself...
...But I don't know how, I think they go into some sort of screen mode that the VIC-20 has, which probably interprets empty memory as pixels, and colors those pixels to create mind-blowing effects.
...But I don't know how, I think they go into some sort of screen mode that the VIC-20 has, which probably interprets empty memory as pixels, and colors those pixels to create mind-blowing effects.
Re: How do you make a demo?
I hear you need a high powered spectra-laser-scope which can put you on the grid from there you can manipulate the code on a bit-level. You can utilize all the memories at the disposal of the master control program.
Re: How do you make a demo?
You could try and find some source code to study or have a look through the code of the demo you're interested in using debugger.
Re: How do you make a demo?
"They need to do way instain c0der> who kill thier demmos, becuse these demmo cant fright back? It was on the news this mroing a scener in ar who had unstabled raster for three scrolls, they are taking the three demo back to csdb too lady to rest. my pary are with the group who lost his prods ; i am truley sorry for your lots"
Re: How do you make a demo?
That might actually be a good idea, I will try to find a debugger and look through memory of demos, such as Impossiblator 3, Vicual MMix, Large Unified Theory, and maybe a few other demos...
Re: How do you make a demo?
I don't know much about demo programming myself, but I'm looking into this Pascal compiler's tutorial to learn some things:
http://www.lemonspawn.com/turbo-rascal- ... downloads/
Maybe it can help you as well.
For example, VIC tutorial 2 does an animated tunnel effect.

Here's Lemonspawn's introductory vid:
https://www.youtube.com/watch?v=WhJSG7TiHAE
http://www.lemonspawn.com/turbo-rascal- ... downloads/
Maybe it can help you as well.
For example, VIC tutorial 2 does an animated tunnel effect.

Here's Lemonspawn's introductory vid:
https://www.youtube.com/watch?v=WhJSG7TiHAE
- Kweepa
- Vic 20 Scientist
- Posts: 1303
- Joined: Fri Jan 04, 2008 5:11 pm
- Location: Austin, Texas
- Occupation: Game maker
Re: How do you make a demo?
Every demo (and especially every part of every demo) is different, and reading the source won't help much I don't think (unless you spend waaaay too long analyzing it). It's kind of like cutting open a brain to see how it works. It just looks like a mess of neurons/opcodes.
Generally, I imagine the thought process is one of either
- X hasn't been done before on the Y. how do I do X, given my awesome assembly and hardware knowledge?
- the Y has this cool hardware feature that will let me do X, and blow peoples' minds.
For example, the VIC can
- control the screen size and position
- using interrupts, change the screen size, position and colors more than once per frame
- use the tiled screen to update multiple locations on the screen at once
Generally, I imagine the thought process is one of either
- X hasn't been done before on the Y. how do I do X, given my awesome assembly and hardware knowledge?
- the Y has this cool hardware feature that will let me do X, and blow peoples' minds.
For example, the VIC can
- control the screen size and position
- using interrupts, change the screen size, position and colors more than once per frame
- use the tiled screen to update multiple locations on the screen at once
Re: How do you make a demo?
Demos generally need to be written in assembly language to really push the machine to the max. They require a creative mind that can look at a 30 year old hardware specification and see something that hasn't been seen before.
The most impressive demos I've seen are the "New Frontiers in VIC-Hires-Graphics" demos that showed how to display full color photos on the VIC's 2600-era graphics interface, and various demos that are full of color and more movement than you would think the machine could produce. What they have in common is that they use a technique called raster chasing to alter the main VIC registers (background color, screen position, etc.) multiple times as the TV raster draws the image on the screen. With this technique, the VIC can do things that "bigger" machines like the C-64 and Atari 8-bit series would be hard pressed to do.
The VIC does have one advantage over those bigger machines; the graphic interface uses less memory than the others to fill the entire screen with graphics. There is less detail, but fewer CPU cycles are required to change the image.
The most impressive demos I've seen are the "New Frontiers in VIC-Hires-Graphics" demos that showed how to display full color photos on the VIC's 2600-era graphics interface, and various demos that are full of color and more movement than you would think the machine could produce. What they have in common is that they use a technique called raster chasing to alter the main VIC registers (background color, screen position, etc.) multiple times as the TV raster draws the image on the screen. With this technique, the VIC can do things that "bigger" machines like the C-64 and Atari 8-bit series would be hard pressed to do.
The VIC does have one advantage over those bigger machines; the graphic interface uses less memory than the others to fill the entire screen with graphics. There is less detail, but fewer CPU cycles are required to change the image.
Re: How do you make a demo?
I remember being mystified by this too.
Even though I was very new to programming at the time I read it, I found this introduction very helpful:
http://www.antimon.org/code/Linus/
It's C64 focused, but a lot of it applies to any platform. It only goes into the very basics, but I think it does a good job explaining the basic concepts.

Even though I was very new to programming at the time I read it, I found this introduction very helpful:
http://www.antimon.org/code/Linus/
It's C64 focused, but a lot of it applies to any platform. It only goes into the very basics, but I think it does a good job explaining the basic concepts.
Re: How do you make a demo?
it probably makes sense to study some simple c64 things first... the basic ideas are the same, but you will find a lot more info about it, and on the vic the memory restrictions are a lot more present than on the c64, its way easier when you dont have to worry about just having those 3k to work with 

I'm just a Software Guy who has no Idea how the Hardware works. Don't listen to me.
Re: How do you make a demo?
Memory restrictions and the lack of special chips may lead to efficient coding techniques and new interesting discoveries. Do consider a few things on c64, like independent sprites or ADSR supported on hardware level are easy to code compared to vc20. So for begin the look on other systems can be helpfull and inspirating, but the target shouldn‘t be forget. The danger of disappointment could overhand.
I think Vic20 is an unique system, so who‘s coding on it, should keep it on mind.
I think Vic20 is an unique system, so who‘s coding on it, should keep it on mind.
Valid rule today as earlier: 1 Byte = 8 Bits
-._/classes instead of masses\_.-
-._/classes instead of masses\_.-
- Mike
- Herr VC
- Posts: 5131
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: How do you make a demo?
As a rough hint to the OP, if you need to ask such a question with a broad scope like this, no clear goal and showing some misconceptions (even if mostly benign ones) - you still got a long way to go. Doesn't help either if you state something like this in another thread:

Demos are mostly written in machine language, and when write your first demos you'll need to demo your developing skills to yourself. In that sense, even something like the small programs I recently did with VICMON would be a step in the right direction.
Otherwise, I'd have to concur with what Noizer wrote in the preceding post: a similar platform like the C64 might be a step stone as well, but the different hardware could raise false hopes when it comes to transferring the skills to the VIC-20. You should be aware of that.
... because that's not really telling much. I'd think lots of people here in Denial share that interest.JRBasic wrote:I know how to program in Basic, or at least some basic functions of Basic!

Demos are mostly written in machine language, and when write your first demos you'll need to demo your developing skills to yourself. In that sense, even something like the small programs I recently did with VICMON would be a step in the right direction.
Otherwise, I'd have to concur with what Noizer wrote in the preceding post: a similar platform like the C64 might be a step stone as well, but the different hardware could raise false hopes when it comes to transferring the skills to the VIC-20. You should be aware of that.
Re: How do you make a demo?
Thnaks, there's two things I don't really know, and they're both important for demos!Witzo wrote:I'm looking into this Pascal compiler's tutorial to learn some things:
http://www.lemonspawn.com/turbo-rascal- ... downloads/
Maybe it can help you as well.
1. If you created your own visuals, they wouldn't normally display, how do you display them?
2. How do you combine visuals, like for example switch from one screen to another, many demos do this!
Oh, and I'm getting an error if I try to compile the music.
- Mike
- Herr VC
- Posts: 5131
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: How do you make a demo?
There is a representation of your 'visuals' in memory (mostly, text screen buffer, attribute data in colour RAM and character definitions) and - in preparation to all this! - you already have programmed the corresponding registers of the VIC chip in order to display that representation on screen. This includes, but is not limited to, the register $9005 (36869) and also the registers $900E and $900F (36878/36879) which define the global colour palette. Please refer to the VIC-I data sheet for further information.JRBasic wrote:1. If you created your own visuals, they wouldn't normally display, how do you display them?
This needs you to change the representation in memory, possibly also some of the VIC registers, in order to comply with how you want that change to look like.2. How do you combine visuals, like for example switch from one screen to another, many demos do this!
Can't tell you anything about that one. I don't know how your (cross-)programming setup looks like.Oh, and I'm getting an error if I try to compile the music.
Re: How do you make a demo?
Mike has answered your questions beautifully. Thanks Mike!JRBasic wrote:Thnaks, there's two things I don't really know, and they're both important for demos!Witzo wrote:I'm looking into this Pascal compiler's tutorial to learn some things:
http://www.lemonspawn.com/turbo-rascal- ... downloads/
Maybe it can help you as well.
1. If you created your own visuals, they wouldn't normally display, how do you display them?
2. How do you combine visuals, like for example switch from one screen to another, many demos do this!
Oh, and I'm getting an error if I try to compile the music.
The error you get on the music example in Turbo Rascal, is because it is a procedure that is compiled from and called by the demo 'tutorial_4_rastereffect_and_music.ras'. So build that one, and the music gets compiled along with it.
When you look in the code of that one, you can see that it looks up the source file of mystic_runner.ras.