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 > New modes/VIC manipulation questions.
2006-07-19 12:40
Jetboy

Registered: Jul 2006
Posts: 213
New modes/VIC manipulation questions.

HI!
I had some break since... well... long ago :)
I was pretty much up to date with all the tricks done up to middle of the nineties, then i somewhat lost track.

I came across some new(to me) stuff when trying to catch up and watching the demos. BTW. Respect!

I wonder if there is some more details about UFLI and MUFLI modes?

I understand there is AFLI every second line with hi-res sprites over(under?) it.

I guess you can do it with 8 sprites - hence change every second line. Would that work at all?

Sprites are y expanded (due to colorbanks switches they take data from 2 sprite blocks so they look highres. But what wonders me - highres sprites can cover only 8*24 pixels - that's only 192 pixels width. So how its handled? Does cover only part of the screen, or are they sprites moved around to cover places where they are needed?

I ve been looking rhrough some posts here, but could you point me to some more info? Thank you.
 
... 5 posts hidden. Click here to view all posts....
 
2006-07-19 14:11
Jetboy

Registered: Jul 2006
Posts: 213
Thanks!
First link answers pretty much all my questions (and a couple more :) )

As for Seminar - maybe seminar itself was of more value, but documents are pretty worthles. Nothing that moderate coder wouldnt know in mid nineties. But ofcourse its good for newcomers.
2006-07-20 08:06
algorithm

Registered: May 2002
Posts: 702
Two more graphic modes to enter on the website (www.naveedkhugiani.com) MUFLI and quadinterlace (similar to the quadchar interlace, except in bitmap mode for higher quality
2006-07-20 09:15
WVL

Registered: Mar 2002
Posts: 886
http://noname.c64.org/csdb/forums/?roomid=11&topicid=18053&show..

In this thread i posted a full explanation of the UFLI mode. MUFLI is basically the same, but uses extra writes and some illegal opcodes to change the sprite-colors every 2 lines aswell. (also the memory layout is a bit different, i think)

Anyway, the sprites are expanded in the X-direction, so you need only 6 sprites to cover 36 chars.
2006-07-26 07:17
Jetboy

Registered: Jul 2006
Posts: 213
Thanx!
I knew i should have learned german. :)
That's no problem - i got the idea from the article anyway :)

I dont want to start another thread, so i ask here.
How about those 4x4 modes, every 4th line fli, etc.

I presume one is done with multicolor character sets defined acordingly - that's pretty simple.

What bothers me is every 4th line fli. It has potential as you can frely set color for every 80x50 pixel, but timing wonders me - how do you do it? You fire IRQ every 4th line? Or just cycle all top to bottom and interleave efects code with 4th line fli? That way you could just put code that does not change its cycling beetween the FLI code (good for cleaning framebuffer, or other lda/sta things).

And another one:
At my time on c64 we always synchronized with use of double irq, or 3 line $d012 compare, or sprite compare. I remember that i was told some time after i stopped mya ctivity, that there is other method. First you synchronize with any method, once you are done with that, you set some timer, and s ince then you can use timer to synchronize, that is you fire raster IRQ, and read timer and that's how you know which cycle of the line you are (not working with badlines). M'i correct? And if so, are there any codes done this way i could look up? Source code would be nice, but any production that uses that would do.

Thanx!

2006-07-26 07:53
WVL

Registered: Mar 2002
Posts: 886
Quote: Thanx!
I knew i should have learned german. :)
That's no problem - i got the idea from the article anyway :)

I dont want to start another thread, so i ask here.
How about those 4x4 modes, every 4th line fli, etc.

I presume one is done with multicolor character sets defined acordingly - that's pretty simple.

What bothers me is every 4th line fli. It has potential as you can frely set color for every 80x50 pixel, but timing wonders me - how do you do it? You fire IRQ every 4th line? Or just cycle all top to bottom and interleave efects code with 4th line fli? That way you could just put code that does not change its cycling beetween the FLI code (good for cleaning framebuffer, or other lda/sta things).

And another one:
At my time on c64 we always synchronized with use of double irq, or 3 line $d012 compare, or sprite compare. I remember that i was told some time after i stopped mya ctivity, that there is other method. First you synchronize with any method, once you are done with that, you set some timer, and s ince then you can use timer to synchronize, that is you fire raster IRQ, and read timer and that's how you know which cycle of the line you are (not working with badlines). M'i correct? And if so, are there any codes done this way i could look up? Source code would be nice, but any production that uses that would do.

Thanx!



Usually people fire IRQs or NMIs (I'd use nmi's in this case) every 4 (but i think every 8 lines is also enough!) lines. Smart people do this using the CIA timers.

I think the best demo to watch and learn from is Real (Real ) from Resource and The Dreams. Take a look at the every-2-lines-fli routine made by Ninja. He even wrote a complete explanation of that routine somewhere, but I cant remember exactly where ;D
2006-07-26 08:57
Jetboy

Registered: Jul 2006
Posts: 213
> Usually people fire IRQs or NMIs (I'd use nmi's in this
> case) every 4 (but i think every 8 lines is also enough!)
> lines. Smart people do this using the CIA timers.

OF COURSE 8th LINE! Brilant ideas are so simple... so simple it hurts when one didnt thought of it oneself. (banging my head against the wall again). So it uses about 2 lines every 8 lines i presume. First you generate badline, then after graphics is shown for that line, set y-scrolling so next bad line will be after 4 lines, and the data is fetched from the same color memory...

> I think the best demo to watch and learn from is Real
> (Real ) from
> Resource and The Dreams. Take a look at the
> every-2-lines-fli routine made by Ninja. He even wrote a
> complete explanation of that routine somewhere, but I cant
> remember exactly where ;D

Will look through it after i get home, and also put a google to good use :)

So i guess every 2 lines fli needs interupts every 4th line? :)
2006-07-26 09:16
WVL

Registered: Mar 2002
Posts: 886
Quote: > Usually people fire IRQs or NMIs (I'd use nmi's in this
> case) every 4 (but i think every 8 lines is also enough!)
> lines. Smart people do this using the CIA timers.

OF COURSE 8th LINE! Brilant ideas are so simple... so simple it hurts when one didnt thought of it oneself. (banging my head against the wall again). So it uses about 2 lines every 8 lines i presume. First you generate badline, then after graphics is shown for that line, set y-scrolling so next bad line will be after 4 lines, and the data is fetched from the same color memory...

> I think the best demo to watch and learn from is Real
> (Real ) from
> Resource and The Dreams. Take a look at the
> every-2-lines-fli routine made by Ninja. He even wrote a
> complete explanation of that routine somewhere, but I cant
> remember exactly where ;D

Will look through it after i get home, and also put a google to good use :)

So i guess every 2 lines fli needs interupts every 4th line? :)


for fli every 2 lines you definately need more than one interrupt every 2 lines.. You see, the advantage from fli-every-4-lines comes from the fact there is a badline every 8 anyway. I think for fli-every-second-line you'd need at least 3 interrupts. But probably 4 interrupts arrange the memory more efficiently.

example

line 0 : d018 = 0x
line 2 : d018 = 2x
line 4 : d018 = 4x
line 6 : d018 = 6x
line 8 : d018 = 6x <- you don't have to change here, since the vic will read colors from the next line anyway.
line 10 : d018 = 4x
line 12 : d018 = 2x
line 14 : d018 = 0x
line 16 : d018 = 0x <- again, no need to change

etc
2006-07-26 23:38
Cruzer

Registered: Dec 2001
Posts: 1048
Just if noone has mentined it... 4x4 and other modes that require VIC registers to be changed at certain rasterlines can also be done without interrupts, if your code is 100% cycle stable, e.g. if it's all lda lut,x / sta gfx. Then the displayer code can be merged into the effect, and this is of course a bit faster.
2006-07-27 08:10
Ninja

Registered: Jan 2002
Posts: 404
Check Vandalism News 43 for that article. Mail me if you need more sourcecodes for Double-Timer-Routines. :)
2006-08-29 16:16
Viktor
Account closed

Registered: Apr 2002
Posts: 78
All the resource links are very usefull here.
Thank you.

Viktor
Previous - 1 | 2 - 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
katon/Lepsi De
Guests online: 92
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

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