Posted: Fri Oct 10, 2008 1:15 am
Albert's VIC-Pic already changes the background, border and auxillary colour once every scan line. Only the foreground colours need to be fixed for 8x8 pixels.
The Commodore Vic 20 Forum
http://www.sleepingelephant.com/ipw-web/bulletin/bb/
http://www.sleepingelephant.com/ipw-web/bulletin/bb/viewtopic.php?t=2942
Rasterbars are not FLI.drvanthorp wrote:You could use this technique in multi-color mode to change the background, border, and auxiliary colors on each line. Would it be possible to write to 22 bytes of color memory during the horizontal blanking interval?
Fine. A stock VIC-20 doesn't have any storage device built-in.So it became the ethos that the machine's capabilities should be judged based on its stock unexpanded standard equipment. And since a demo was foremost a demo of that machine's capabilities, to use extra hardware of any kind was a cheat.
Haha! Right on! So why do people accept demos requiring a disk drive (which were an extremely unusual accessory for the vic-20) and not ram expansions (which almost everyone had)...Mike wrote: Fine. A stock VIC-20 doesn't have any storage device built-in.
You really don't expect me to type in a demo before showing it, yes?
Michael
Let's just say the demo is for the vic-21 then:drvanthorp wrote: So it became the ethos that the machine's capabilities should be judged based on its stock unexpanded standard equipment. And since a demo was foremost a demo of that machine's capabilities, to use extra hardware of any kind was a cheat.
There might be another way. I've noticed that some of the most impressive VIC20 demos used the vertical screen positioning register to reposition the screen on each scanline, thereby shuffling the order of pixels rows on the screen. The same technique could be used to shuffle the color mapping (and the character mapping with it). Maybe someone could develop an algorithm (that would probably run on a PC for cross developement) that could reformat full color images into the weird constraints of a scanline-shuffled VIC20 multi color mode screen.Mike wrote:Rasterbars are not FLI.drvanthorp wrote:You could use this technique in multi-color mode to change the background, border, and auxiliary colors on each line. Would it be possible to write to 22 bytes of color memory during the horizontal blanking interval?
Altering the colour RAM on the fly doesn't work. A LDA/STA pair needs 9 cycles for transferring a single byte. A horizontal line amounts to 71 cycles available to the CPU.
Michael
Won't quite work.adric22 wrote:I've always been told that the Atari 2600 and the Timex Sinclair generated the screen image via software control only. If that is the case, couldn't you do the same with the VIC-20? I would think you could just have the CPU control the general background color register and time it perfectly to generate the signal. I realize it would be a little more complex due to the fact that the VIC chip is creating the timing to the screen output so you'd have to stay in sync with that. But that would give you a full 16 colors for every pixel.
Vicpic uses 16-line characters with 8-line color cell resolution. Hires mode is not a requirement. My unexpanded demos use 16-line color cell resolution because they have to have the display code (and music and loader) in memory as well, so there's no space for the other video matrix.Mike wrote:The sole exception might be the slightly enhanced colour resolution that can be gained by providing two identical text maps for VIC's double-height character hi-res mode in $0000, and $0200 - switching between them every 8th raster, and thus tricking VIC to read different portions of the colour RAM.
LDA #imm + STA abs should be 2 + 4 = 6 cycles, and assuming the same color change is to be done for several chars, the amount of LDA's could be reduced... Would allow some color changes atleast. Probably quite hard to draw using such a mode though, but a converter might be able to benefit...Mike wrote:Altering the colour RAM on the fly doesn't work. A LDA/STA pair needs 9 cycles for transferring a single byte. A horizontal line amounts to 71 cycles available to the CPU.