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
 
... 12 posts hidden. Click here to view all posts....
 
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.
Previous - 1 | 2 | 3 - Next
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
Alakran_64
E$G/HF ⭐ 7
mankeli/Extend
Smasher/F4CG
Guests online: 145
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 Musicians
1 Rob Hubbard  (9.7)
2 Jeroen Tel  (9.7)
3 Mutetus  (9.7)
4 Jammer  (9.6)
5 Linus  (9.6)

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