Shop OBEX P1 Docs P2 Docs Learn Events
Video Driver Challenge! Try to do the Impossible! — Parallax Forums

Video Driver Challenge! Try to do the Impossible!

KyeKye Posts: 2,200
edited 2009-01-23 05:04 in Propeller 1
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,

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2009-01-23 00:56
    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.
  • KyeKye Posts: 2,200
    edited 2009-01-23 01:01
    Heh, I know its hard. =)

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

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-01-23 01:04
    Would a 20% speed boost help here? 96Mhz? (6.00 crystal)

    OBC

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

    Check out: Protoboard Introduction , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • Ken PetersonKen Peterson Posts: 806
    edited 2009-01-23 03:33
    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)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-01-23 03:38
    For all that matter we could try a 14.31818MHz xtal. (114.5Mhz)
    The irony being that mine were pulled from VGA video cards. [noparse]:)[/noparse]

    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 , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • potatoheadpotatohead Posts: 10,261
    edited 2009-01-23 04:52
    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!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • KyeKye Posts: 2,200
    edited 2009-01-23 05:04
    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,
Sign In or Register to comment.