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 > CSDb Discussions > VIC-II effect history
2005-01-14 19:57
Rost

Registered: Oct 2004
Posts: 22
VIC-II effect history

Hi all,

i have some questions about the VIC-II hardware effects history. I want
to know when and in which demo the effect was made first and who was it.
so i want to talk about real VIC-II discoveries and not coding algorithm like
interlace effects or DYCP or something like that.

Most of the data i got from CSDB. Here is a list.

effect date who demo
-------------------------------------------------------------------------------- -
border top&bottom : 11.10.1985 Flash of FCG Intro
- info from www.radwar.com. So it was not Sodan who discovered this first.

sideborder : early 1986 TSI of 1001 Border Letter I
- it was before Border letter II and this was 7.5.86

FLD : 1986/1987? Thomas Larsen Vikings Intro
FLD : 23.12.1986 Kaze / TST Ace of Diamonds
GOOD FLD : 14.08.1987 White/ The Judges Think Twice I
- Did anyone know the date when the game the Vikings was published and who is
thomas larsen? And was it earlier than the version from Kaze. And can we count
the effect from Kaze as a real FLD ?

sideborder with text : 23.01.1988 White/ The Judges Think Twice V
- did it anyone earlier?

DMA delay : xx.xx.1988 ASP / Blackmail So-Phisticated 1
- did anyone knows the exact date?

stretch with D011 : 01.10.1988 BitBuster / Rawhead Partysqeezer
- i don't know the name of this effect.

LineCrunch : xx.11.1988 Exilon / MDT/Horizon Bonanza
- the best effect ever in my opinion.

(pre) FLI : xx.01.1989 Solomon / BeyondForce Charlatan
- there are only 37 'rastersplits' to see, but its the same effect like FLI.

FLI : xx.xx.1989 ASP / BlackMail So-Phisticated 3
- and again no date.


what about sprite stretching? who was the first?

i thing after this time any other effect was a combination of this effects. Is
this correct?

ROST
2005-01-14 21:50
Graham
Account closed

Registered: Dec 2002
Posts: 990
don't forget:

"impossible demo" by TCC (9.86) first demo which opens sideborder in badline area over more than 6 rasterlines.

first VSP was maybe meanteam, but i've also seen an TCS intro using it (which obviously was achieved by a bad FLD timing).

first $D011 FPP: "random" by bones+upfront+triangle on 29.6.89
2005-01-14 22:48
Rost

Registered: Oct 2004
Posts: 22
Quote: don't forget:

"impossible demo" by TCC (9.86) first demo which opens sideborder in badline area over more than 6 rasterlines.

first VSP was maybe meanteam, but i've also seen an TCS intro using it (which obviously was achieved by a bad FLD timing).

first $D011 FPP: "random" by bones+upfront+triangle on 29.6.89


First i need the "impossible demo" by TCC. I can't find it here on CSDb.

Ok, VSP (i have called it DMA delay) was first made by meanteam.

$D011 FPP: please check the partysqeezer demo (1.10.1988). I think it's the same effect.

Thanks!

ROST
2005-01-14 23:00
Clarence

Registered: Mar 2004
Posts: 121
Quote: don't forget:

"impossible demo" by TCC (9.86) first demo which opens sideborder in badline area over more than 6 rasterlines.

first VSP was maybe meanteam, but i've also seen an TCS intro using it (which obviously was achieved by a bad FLD timing).

first $D011 FPP: "random" by bones+upfront+triangle on 29.6.89


And what about this one...?
d011 FPP, Blow Job 3 - 1989 april 20. by Crest

Blow Job 3
2005-01-15 10:51
Rost

Registered: Oct 2004
Posts: 22
Quote: And what about this one...?
d011 FPP, Blow Job 3 - 1989 april 20. by Crest

Blow Job 3



ok, but Partysqueezer - 9 October 1988 by Rawhead
seems to be the first.

Partysqueezer+

I'am already searching for the first Sprite-stretcher. I remember i have seen it first in a Triad Demo. But i can't remeber wich one and there are so many Triad Demos :)

2005-01-15 11:52
Graham
Account closed

Registered: Dec 2002
Posts: 990
partysquezzer has no FPP. it cannot put any gfx line at any rasterline. it can only stretch, not whirl around or rotate etc.
2005-01-15 18:28
Cruzer

Registered: Dec 2001
Posts: 1048
Shouldn't it be called "FLP" (Flexible Line Position) instead of FPP (Flexible Pixel Position)?
2005-01-15 21:11
Rost

Registered: Oct 2004
Posts: 22
Quote: partysquezzer has no FPP. it cannot put any gfx line at any rasterline. it can only stretch, not whirl around or rotate etc.

sorry for this stupid question, but i'am not an expert anymore. Is FPP not 'only' an improvement ? The $D011 timing should be the same !???!
2005-01-15 21:41
Graham
Account closed

Registered: Dec 2002
Posts: 990
no actually it is very different. partysqueezer stretches a koala picture, but it can only do stretching. FPP is able to put any rasterline of a 4 color graphic at any position on the screen.

and FLP vs FPP: this naming was done after FLD vs FPD. FLD refers to character lines, while FPD referes to single raster lines.
2005-01-15 22:55
Cruzer

Registered: Dec 2001
Posts: 1048
@Graham: Ok, guess the FPP name makes a bit sense then. I've always referred to it simply as a stretcher, but it's prolly better to say FPP since there's also the other kinds of stretchers you mentioned, that can only stretch the gfx, not position each line at any given y-position.

@Rost: There's also sprite chrunching and different fx done with $3fff. And I don't think it's correct to call all other tricks just combinations of these tricks. E.g. when Crossbow/Crest made 5 sprites over FLI (Demus Interruptus) he used a new technique to get the two extra cycles, and the same goes for Ninja/The Dreams when he did 6 (Darwin).
2005-01-15 23:21
Copyfault

Registered: Dec 2001
Posts: 475
[Cruzer]E.g. when Crossbow/Crest made 5 sprites over FLI (Demus Interruptus) he used a new technique to get the two extra cycles, and the same goes for Ninja/The Dreams when he did 6 (Darwin).

Hmm, this point is quite delicate - I'd say that these are no new VIC-II tricks! The basic tweak is to write to $D011 at the correct cycle (as for all FLI_tweaking). Saving cycles (which is badly needed when adding sprites;)), even if done in a very unusual and, at least for my taste, very fancy way is not really a VIC-II trick, is it?
2005-01-16 10:06
Cruzer

Registered: Dec 2001
Posts: 1048
Yeah, well I didn't argue that the 5/6 sprite tricks were new VIC-tricks, just that it was more than just combinations of other VIC-tricks. But I guess seen from the VIC's point of view, the basic trick of incrementing the lower 3 bits of d011 and switching char screen each line, is the same, although I don't really know what the CIA-register that Ninja uses ($dd02) does.
2005-01-16 10:13
Graham
Account closed

Registered: Dec 2002
Posts: 990
so basically none of these things have actually been invented. $D011 scroll bits have been written in all possible combinations in 1982 already, and same with $D018. so FLI is just a combination of that and doing it on the same frame...
2005-01-16 15:03
Rost

Registered: Oct 2004
Posts: 22
Quote: so basically none of these things have actually been invented. $D011 scroll bits have been written in all possible combinations in 1982 already, and same with $D018. so FLI is just a combination of that and doing it on the same frame...

copyfault, you are right. Write the right value to a VIC-II register at the right Cycle. This is what i would call VIC-II effect.
Ok, with better timing and algorithm many effects were improved in the past (e.g. 5 or 6 sprites with FLI) but the basic functionality is clear since 15 years.
Sideborder at Bad-Lines is also only a timing improvement (first with four sprites (Think Twice V, later with seven sprites (Bonanza)).
But i think this was a big step in understanding the VIC-II timing.
Graham, please upload the 'impossible demo' by TCC.

stretcher & FPP, ok, i would say:
First $D011 stretcher: partysqueezer
first FPP: "random" by bones+upfront+triangle on 29.6.89

@Cruzer
$DD02: data direction register. I would say you can switch on/off the single bits for bankswitching.
Sprite crunching? How does it works? Demo name please!
And what Kind of $3fff effect?
2005-01-16 15:43
Graham
Account closed

Registered: Dec 2002
Posts: 990
there is multiple $3FFF effects. for example you can use $D016 to create a gap of up to 7 pixels size. it was used in demos like "one year camelot 3" or "mentalic/pd" to display some additional graphics in the border.

then there is the possibility of different register delays. crossbow used that to make $3FFF display not only 1-7 pixel gaps, but any 8 bit pattern.

and the badline + sideborder thing is indeed a new VIC trick since it is impossible to do sideborder + badlines with the 1001 crew method of stable irqs. they used the sprites themselves to correct their irq timing and get a stable irq. it needs several rasterlines with their method until they have a stable open sideborder.
2005-01-16 16:42
Cruzer

Registered: Dec 2001
Posts: 1048
Sprite crunching was done 1st in a Crest demo I don't remember, maybe Krestage 1 or 2.

Btw, how about rasterbars and techteching, does that count as vic-tricks?
2005-01-16 18:29
Graham
Account closed

Registered: Dec 2002
Posts: 990
i would count anything that "let's VIC do stuff" as VIC trick, this also involves coding tricks which need to be done to achieve something. this also includes rasterbars and different kinds of memory layout to achieve different $D011 effects. after all, it's not only about what the VIC does, but also how to feed the VIC with correct data at the right time.
2005-01-16 19:03
Hoogo

Registered: Jun 2002
Posts: 105
I had a look at that Bonanza-Demo. I found 7 Sprites in Sideborder with graphic, but there are no badlines.
2005-01-16 20:45
Cybernator

Registered: Jun 2002
Posts: 154
Graham wrote:
> and the badline + sideborder thing is
> indeed a new VIC trick

That's badline abort, which is also used for Kefren bars, rite? (not sure if this trick has a formal name)

Cruzer wrote:
> I don't really know what the CIA-register
> that Ninja uses ($dd02) does.

He uses that instead of $dd00. This is a very neat way to avoid trouble (read: the loader messing with the VIC bank). If you set those pins to be inputs, they will stay at logic 1. But if you set them as outputs, they will stay at whatever $dd00 says. So you'll set the lower two bits of $dd00 to 0, and you'll use $dd02 instead. However, you'll now need to invert the bits. I'm sure nobody understands what I say, 'coz I barely understand myself. :)
2005-01-16 21:47
CyberBrain
Administrator

Posts: 392
Quote: copyfault, you are right. Write the right value to a VIC-II register at the right Cycle. This is what i would call VIC-II effect.
Ok, with better timing and algorithm many effects were improved in the past (e.g. 5 or 6 sprites with FLI) but the basic functionality is clear since 15 years.
Sideborder at Bad-Lines is also only a timing improvement (first with four sprites (Think Twice V, later with seven sprites (Bonanza)).
But i think this was a big step in understanding the VIC-II timing.
Graham, please upload the 'impossible demo' by TCC.

stretcher & FPP, ok, i would say:
First $D011 stretcher: partysqueezer
first FPP: "random" by bones+upfront+triangle on 29.6.89

@Cruzer
$DD02: data direction register. I would say you can switch on/off the single bits for bankswitching.
Sprite crunching? How does it works? Demo name please!
And what Kind of $3fff effect?


check less tall sprites for something on sprite-chrunching
2005-01-17 11:36
Copyfault

Registered: Dec 2001
Posts: 475
[Cybernator]He uses that instead of $dd00. This is a very neat way to avoid trouble (read: the loader messing with the VIC bank). If you set those pins to be inputs, they will stay at logic 1. But if you set them as outputs, they will stay at whatever $dd00 says. So you'll set the lower two bits of $dd00 to 0, and you'll use $dd02 instead. However, you'll now need to invert the bits. I'm sure nobody understands what I say, 'coz I barely understand myself. :)

Another important arguement for $DD02: this reg is not affected by serial bus_actions and so the bits in $DD02 stay as they are! This is important for Ninja's routine, as it needs reliable operand_values. For me this 6Spr_over_FLI_routine is the most outstanding routine within the last years:using illegal RMW-opcodes, it changes the accu so that it gives desired values for $D011 _and_ it changes either $D018 or the VIC_bank just with shift_operations - look at the code and be shocked!!!

[Graham]i would count anything that "let's VIC do stuff" as VIC trick, this also involves coding tricks which need to be done to achieve something. this also includes rasterbars and different kinds of memory layout to achieve different $D011 effects. after all, it's not only about what the VIC does, but also how to feed the VIC with correct data at the right time.

As I already said, this is a quite delicate question - how can we define a "VIC_trick"? Seen from the historical point of view, maybe you're right: every optimization and improvement of existing tricks is a "new" Vic_trick then... But with the insight and knowledge about VIC-II's inner workings we have today I'd tend to parametrize the vic_tricks by vic_regs + rasterline and cycle_number where the write access has to occur;))!Any unusual memory layout which some effects need more or less belongs to the trick then...

[sprite_crunching]

AFAIK, this trick is not explained with the "sprite_generator rules" of the vic_article - does anyone know if there are "new rules" already? the only info we got about sprite_crunching is crossbow's neat "Sprite_Crunching_Table"...
2005-01-17 22:11
Rost

Registered: Oct 2004
Posts: 22
@Graham:
yes, stable IRQs were always a problem in the 80's , but i would count it because of the badline timing. But finaly it is a timing improvement. the $D016 trick is the same. there is no other way to open the sideborder.
and do you realy want to count every 7,8,9 rastersplit demo from the 80's and $D020 scroller? then we get a very big list :)

@Hoogo: sorry, you are right. ok, this is the first demo with 7 sideborder sprites and graphic. from now we count everything ;-)

@Copyfault:
"vic_trick = by vic_regs + rasterline and cycle_number where the write access has to occur."
very good description. We can make a list like this:
Chapter 1: first invented VIC-II trick (see the law above)
Chapter 2: improved tricks from Chapter 1.
Chapter 3: incredible Timings (e.g. 6 sprites with FLI) ;)

i would say sprite crunching is a chapter 1 trick.
But i'am still searching for the first sprite stretcher :-(
2005-01-19 09:06
Graham
Account closed

Registered: Dec 2002
Posts: 990
and your list will be very short if you ignore 99.9% of all vic effects. perhaps 5 or 6 entries only.

my opinion is that "vic effects" is a bit more abstract than just the physical layer in the vic. it's about making things possible with a c64 by using the vic's capabilities. this also means a certain memory layout and wicked $D018/$DD00 accesses to feed the vic with data in a certain way or some programming tricks involved to be able to actually DO the register accesses you have to do.
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
TheEnemy/TREX/THD
Mike
Steffan/BOOM!
Six/G★P
Hein
REBEL 1/HF
Matt
iceout/Avatar/HF
2bt
Barfly/Extend
Twilight/Excess/Arcade
lA-sTYLe/Quantum
Jetboy/Elysium
Guests online: 97
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Mojo  (9.6)
6 The Demo Coder  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Party Elk 2  (9.6)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.6)
5 Libertongo  (9.5)
6 Rainbow Connection  (9.5)
7 Onscreen 5k  (9.5)
8 Morph  (9.5)
9 Dawnfall V1.1  (9.5)
10 It's More Fun to Com..  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Nostalgia  (9.3)
5 Triad  (9.2)
Top Diskmag Editors
1 Magic  (9.8)
2 hedning  (9.6)
3 Jazzcat  (9.5)
4 Elwix  (9.1)
5 Remix  (9.1)

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