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 > FASTER 3D GRAPHICS
2004-10-26 06:24
Stingray
Account closed

Registered: Feb 2003
Posts: 117
FASTER 3D GRAPHICS

I've heard it said before that the way the VIC chip addresses memory (8x8 cells) makes it slower fo rendering graphics because of the extra calculations needed. So what way would you have had the Commodore engineers design an alternative addressing mode so that 3D graphics could be calculated quicker? I would realy appreciate your ideas on this.
 
... 185 posts hidden. Click here to view all posts....
 
2010-03-07 13:25
Oswald

Registered: Apr 2002
Posts: 5029
"Is "Direct Loader" a good enough name for this part of the circuit?"

yeah, but the data Direct Loader loads I'd still call a display list :) maybe register list, thats a bit closer to whats happening.
2010-03-07 13:37
Graham
Account closed

Registered: Dec 2002
Posts: 990
A display list is just what the name says: a list of modes to display. No registers involved. Some circuit doing register loads is not a display list.
2010-03-07 13:51
Oswald

Registered: Apr 2002
Posts: 5029
graham, for god's sake please stop being mr smartass.

1. nobody said display list can write to video regs
2. it doesnt matter if strictly speaking registers are involved or not what happens is almost the same. (and I suggested register list because in stingray's implementation registers would be involved!)
3. a display list is more than JUST a list of modes. (interrupts, bitmap start addy, blank lines, scrolling)
2010-03-07 14:55
Krill

Registered: Apr 2002
Posts: 2855
While "VIC-X" sounds cool in English, it's definitely got some drawbacks if you understand German. But then there's a classic demo effect called "wanking", too.. :D

"VIC-X" is still the best name so far.. :)
2010-03-07 14:56
PopMilo

Registered: Mar 2004
Posts: 145
Quoting stingray

...Just to put it a simpler way, you can load any value into any VIC register on any of the 19656 cycles that make up a screen, as long as it's not a badcycle...

This sounds like 'keep hardware simple and let the software do all the extra stuff', and I like it :)

This would make sprite multiplexing easy :)

I would only add that if it is possible you should make more registers available for change. For example some kind of relative address offset that would be one byte and would be added to current VIC memory fetch address in every cycle.

Then It would be possible to duplicate lines with only changing that offset once each line - 200 cycles for making Nx100 resolution instead of thousands needed so far...

Wait .... If that register is internal on your device than these kinds of 'internal writes' maybe don't need to take cycles from CPU ?

Any help from hardware will boost any existing 3d project out there and inspire new ideas :)
2010-03-07 16:35
Graham
Account closed

Registered: Dec 2002
Posts: 990
@Oswald: A lot of posts refer to doing "display lists" for register writes. Just read some of the recent posts.
2010-03-07 16:44
QuasaR

Registered: Dec 2001
Posts: 145
Me likes Notorious V.I.C. but maybe it's too long... ;)
2010-03-07 16:57
Oswald

Registered: Apr 2002
Posts: 5029
Quote: @Oswald: A lot of posts refer to doing "display lists" for register writes. Just read some of the recent posts.

I believe people simply spared the time writing this: "(yes I know that a display list does not write registers, but I am just using loosely this term because it comes close to this thing)"

I would think Martin & Krill are smart enough to know what atari display lists are exactly.
2010-03-07 20:23
Krill

Registered: Apr 2002
Posts: 2855
Yeah, without knowing both the Atari ANTIC and Amiga Copper lists in detail, I think our register list here is something in between the two. It writes actual registers and does not just switch modes, but only on the video chip (plus DMA for the 16kB of RAM visible to it), but cannot write the registers of the other chips on the bus.

But that's an academic discussion, so we should rather discuss the best way to implement this list so the overhead required to both execute and generate it is minimal.
2010-03-07 21:04
Oswald

Registered: Apr 2002
Posts: 5029
how about this:

have a list of registers and values to write for each line, and you can specify horizontally the cycle where it should start stuffing the regs. HW would buffer up the needed regs and values one line before.

list would look like:

$horizontal,$reg,$val,$reg,$val,$ff
$horizontal,$reg,$val,$reg,$val,$ff
$horizontal,$reg,$val,$reg,$val,$ff
$ff

$ff= stop/do nothing

$horizontal each line could be skipped and just set up by the cpu once, for most stuff it would be a constant anyway I guess.

$ff could be skipped aswell if we maintain a constant nr of regs&vals. some dummy color reg writes wont hurt.
Previous - 1 | ... | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 - 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
csabanw
psenough
Grue/Extend
Sentinel/Excess/TREX
Guests online: 65
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.6)
6 Aliens in Wonderland  (9.6)
7 No Bounds  (9.6)
8 Comaland 100%  (9.6)
9 Uncensored  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Happy Birthday Dr.J  (9.7)
2 Layers  (9.6)
3 It's More Fun to Com..  (9.6)
4 Cubic Dream  (9.6)
5 Party Elk 2  (9.6)
6 Copper Booze  (9.6)
7 TRSAC, Gabber & Pebe..  (9.5)
8 Rainbow Connection  (9.5)
9 Dawnfall V1.1  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Nostalgia  (9.4)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 SHAPE  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 Antitrack  (9.8)
3 OTD  (9.8)
4 S!R  (9.7)
5 Fungus  (9.7)

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