| |
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.... |
| |
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. |
| |
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... |
| |
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?
|
| |
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. |
| |
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? |
| |
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. |
| |
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. |
| |
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. :) |
| |
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 |
| |
Copyfault
Registered: Dec 2001 Posts: 478 |
[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"... |
Previous - 1 | 2 | 3 - Next |