PDA

View Full Version : Video Driver Challenge! Try to do the Impossible!



Kye
01-23-2009, 07:25 AM
Hey all,

I tried making a VGA video driver with a completely imbeded character set. The driver whould allow for an 8x8 character set with 4800 characters on screen running within one cog. It would also allow for 120 sperate colored rows on screen.

And, well, the propeller is not fast enough. Sadly its just 10 commands that are holding the show up.

So if anyone wants to try to make the code work I'm posting the code here. I've already written the character set and everything else the driver needs to work. All the code is in place too, however, the·10 lines are commented out in the center of the code.

If you can think of different ways of getting around the speed problem, like prefetching or caching, or·whatever you are welcome to try it.·The code is ready to go except for the speed problem. If you can find a way then we'll all have a really sweet video driver.

And again, I've already written all the code necessary for the driver to work. However I have commented out ten lines within in the scan line loop which the propeller chip·is not fast enough to run.

Goodluck,


▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,

Mike Green
01-23-2009, 07:56 AM
Video is really high speed at the higher resolutions and a single cog is hard put to keep up. When Chip wrote the high resolution VGA drivers for the Prop, he ended up using multiple synchronized cogs for just this reason. His 1600 x 1200 pixel driver I believe uses 6 cogs to keep up.

Kye
01-23-2009, 08:01 AM
Heh, I know its hard. =)

I'm just extending the challenge if anyone wants to try. There might be a way.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,

Oldbitcollector (Jeff)
01-23-2009, 08:04 AM
Would a 20% speed boost help here? 96Mhz? (6.00 crystal)

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Check out: Protoboard Introduction (http://jeffledger.googlepages.com/Protoboard_Introduction.pdf) , Propeller Cookbook 1.4 (http://ucontroller.com/Propeller%20Protoboard%20Designs%20for%20the%20Beg inner.pdf) & Software Index (http://forums.parallax.com/showthread.php?p=770318)
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us (http://propeller.warrantyvoid.us)
Got an SD card connected? - PropDOS (http://www.orrtech.net/propdos/)

Ken Peterson
01-23-2009, 10:33 AM
That's thinking outside the box....

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·"I have always wished that my computer would be as easy to use as my telephone.· My wish has come true.· I no longer know how to use my telephone."

- Bjarne Stroustrup

Oldbitcollector (Jeff)
01-23-2009, 10:38 AM
For all that matter we could try a 14.31818MHz xtal. (114.5Mhz)
The irony being that mine were pulled from VGA video cards. :)

propeller.wikispaces.com/Oscillator (http://propeller.wikispaces.com/Oscillator)


My stuff is being packed up at the moment, and I'm getting ready to fly out to Parallax,
or I'd try this myself.


OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Check out: Protoboard Introduction (http://jeffledger.googlepages.com/Protoboard_Introduction.pdf) , Propeller Cookbook 1.4 (http://ucontroller.com/Propeller%20Protoboard%20Designs%20for%20the%20Beg inner.pdf) & Software Index (http://forums.parallax.com/showthread.php?p=770318)
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us (http://propeller.warrantyvoid.us)
Got an SD card connected? - PropDOS (http://www.orrtech.net/propdos/)

potatohead
01-23-2009, 11:52 AM
Well, you could pre-compute the character row address part at the beginning of each scan line, during the HBLANK. That's just the base address of the character table, plus the row offset / mod 8 for the scanline you are on. That does not change during the scan, so it can be outta the loop.

Do it with just two colors to start as well. Fetch those during VBLANK, taking those out of it too.

I would absolutely run it at 96Mhz.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness! (http://propeller.wikispaces.com/)
Chat in real time with other Propellerheads on IRC #propeller @ freenode.net (http://propeller.wikispaces.com/Join+us+on+IRC%21/)
Safety Tip: Life is as good as YOU think it is!

Kye
01-23-2009, 12:04 PM
The problem people, is that it is very difficult to get stuff of out the character array and into the buffer used by waitvid. Also, putting the array in the main memory will not work either as there is not enough time using an 8 bit character waitvid to acess the main memory twice.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nyamekye,