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 > Alt-history no-cost design changes with great value
2021-05-01 22:49
Krill

Registered: Apr 2002
Posts: 2839
Alt-history no-cost design changes with great value

Which things in the C-64 could have been implemented or connected differently without conceivable extra cost, for coding advantages?

Thinking of things like shuffling the chip register bits like VIC's $d011 and $d016 differently (such that some effects can be achieved with fewer register writes or less twiddling).
Or putting some IO register to $01 (and move the memory configuration somewhere else, somehow).
Maybe also having different PLA memory configurations (not necessarily more).
Or connecting external signals to the CIA port pins in a different order.

Discuss! =)
 
... 65 posts hidden. Click here to view all posts....
 
2021-06-08 10:38
wil

Registered: Jan 2019
Posts: 42
Guys, if you plan to go back in time to add improvements to the C64 *please* be careful!

Remember what happened last time when we went back in time to improve C128's VDC. We wanted to add a blitter function instead of the limited hardware sprites and a separate memory to avoid cycle stealing. And we ended up losing the sprites for good and the separate memory is damn slow to access now...
2021-06-08 12:04
Oswald

Registered: Apr 2002
Posts: 5017
that polygon filler will never work, as VICII never reads bytes continously nor vertically nor horizontally
2021-06-08 12:05
Krill

Registered: Apr 2002
Posts: 2839
Quoting Oswald
that polygon filler will never work, as VICII never reads bytes continously nor vertically nor horizontally
Pixels are output one by one along a scan.
2021-06-08 12:30
Oswald

Registered: Apr 2002
Posts: 5017
Quote: Quoting Oswald
that polygon filler will never work, as VICII never reads bytes continously nor vertically nor horizontally
Pixels are output one by one along a scan.


my bad, havent read CJ's suggestion fully... edit: or did I ? CJ talks about eoring bytes, however eoring horizontally per pixel as you suggest would work.

then just max 2 extra onboard bits for the eor mechanism or 1 for hires, should be doable from a few dozens transistors :) or less
2021-06-08 13:01
ChristopherJam

Registered: Aug 2004
Posts: 1378
Quoting wil
Remember what happened last time when we went back in time to improve C128's VDC. We wanted to add a blitter function instead of the limited hardware sprites and a separate memory to avoid cycle stealing. And we ended up losing the sprites for good and the separate memory is damn slow to access now...


No direct access to VRAM on the Commander X16 either. Most un-c64 like.
2021-06-08 13:08
Krill

Registered: Apr 2002
Posts: 2839
Quoting ChristopherJam
No direct access to VRAM on the Commander X16 either. Most un-c64 like.
It does have auto-increment on VRAM pointers, though, so you can pump in sequential data pretty efficiently with a single store per datum.
2021-06-08 13:10
ChristopherJam

Registered: Aug 2004
Posts: 1378
Quoting Krill
but mustn't the XOR be bit-wise for a left-to-right filler to work?

Not at all! It needs to be bytewise for pattern fill to work. This is exactly what I implemented in software for the 3d renderer in Effluvium

Quoting Oswald
that polygon filler will never work, as VICII never reads bytes continuously nor vertically nor horizontally

Well, that's the point - it needs to XOR with the previous byte displayed, not the previous one in memory. The byte immediately before in memory is on the wrong line altogether in bitmap mode. And we need to do a horizontal fill to keep the cost down; a vertical fill would need a 320 byte buffer internal to VIC, and I can't see that being cheap.

(also, it's easier to do pattern fills with a horizontal fill than with a vertical one)
2021-06-08 13:23
Krill

Registered: Apr 2002
Posts: 2839
I see that it needs to be byte-wise (or word-wise) for vertical fill (with a buffer spanning the entirely horizontal width), but i don't see why simple bit-wise from left to right wouldn't work for horizontal fill.

The latter i've done in software in the zoomscroller of +H2K (but of course it uses a 256-entry lookup table to be somewhat efficient).

Edit: Oh, pattern fill... now that's a more complex beast anyways, certainly not a cheap add-on. :)
2021-06-08 15:52
Oswald

Registered: Apr 2002
Posts: 5017
I dont understand how a byte-wise-horizontall eor fill would work in higher res than bytes ? :)
2021-06-08 16:53
Krill

Registered: Apr 2002
Posts: 2839
Quoting Oswald
I dont understand how a byte-wise-horizontall eor fill would work in higher res than bytes ? :)
Filling is performed right-to-left.
Current fill state is held in the N flag.
Pick one out of two lookup-tables according to that state bit.
Read next unfilled input into an index register.
Look up filled output.
Store filled output.
Repeat. =)

(So yeah, two 256-entry tables, actually, but they're just inverted versions of each other. Probably you could use just one with shifting the previously-stored output still in the accu, then conditional inversion of the looked-up next filled value according to carry flag.)
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 - 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
Seppo Heavy
Enforcer/Deers
Guests online: 127
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 The Ghost  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.8)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (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 Musicians
1 Rob Hubbard  (9.7)
2 Jeroen Tel  (9.7)
3 Stinsen  (9.6)
4 Mutetus  (9.6)
5 Linus  (9.6)

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