Shop OBEX P1 Docs P2 Docs Learn Events
1280 x 720 Tile Driver? — Parallax Forums

1280 x 720 Tile Driver?

johnfl68johnfl68 Posts: 72
edited 2011-05-27 01:39 in Propeller 1
Has anyone tried a 1280 x 720 (16x9 aspect ratio) vga tile driver yet?

It seems to be possible, based on the other tile drivers, and if I did my math right would be a 80x45 array of 16x16-pixel 4-color tiles.

I could construe this from the other vga tile drivers, but not sure what the values for front/back porch and sync pixels as I am not finding any references for that resolution. Does anyone know a good site for vga timing information?

Thanks for any help!

John

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2008-06-01 14:42
    There's a 1280 x 1024 tile driver. It would be easy enough to reduce the number of lines produced to 720. The horizontal line timing should be similar if not identical.
  • GreyBox TimGreyBox Tim Posts: 60
    edited 2008-06-03 19:35
    Hi John,

    Use the attached VESA Timing Generator from the free portion of the VESA FTP server.· The bulletin board does not let me post XLS files, so You'll need to change the file type to ".xls" from ".txt" after you download it.· The spreadsheet is very self explanitory.

    I might offer that - 1280x720 sounds like 720p, which is a comon ATSC/DVB format for HDTV (is that what you're really doing?)...

    -Tim
  • johnfl68johnfl68 Posts: 72
    edited 2008-06-17 01:34
    Tim:

    Thanks!

    Yes I am doing 720p but more so in that I am looking to use a simple test pattern for 16x9 plasma display.

    John
  • RaymanRayman Posts: 14,877
    edited 2008-06-17 12:22
    My HD TVs have VGA inputs... I might try Mike Green's idea of a modified 1280 x 1024 tile driver just for fun. I'm pretty sure that would work. It works from a computer, so it should work from the Prop too.
  • johnfl68johnfl68 Posts: 72
    edited 2008-07-05 01:36
    Ok - I tired changed the 1280x1024 driver and demo to 1280x720 (with a display that will accept this resolution) and it didn't work.

    I also noticed that the values in the 1280x1024 tile driver do not match the numbers for that resolution (although it works). Does anyone know how these numbers were derived?


    Values from 1280x1024 tile driver:

    hp = 1280                     'horizontal pixels
      vp = 1024                     'vertical pixels
      hf = 48                       'horizontal front porch pixels
      hs = 112                      'horizontal sync pixels
      hb = 248                      'horizontal back porch pixels
      vf = 1                        'vertical front porch lines
      vs = 3                        'vertical sync lines
      vb = 38                       'vertical back porch lines
      pr = 100                      'pixel rate in MHz at 80MHz system clock (5MHz granularity)
    



    Values for 1280x1024 (will not work with pr at 105 or higher):

    hp = 1280                     'horizontal pixels
      vp = 1024                     'vertical pixels
      hf = 80                       'horizontal front porch pixels
      hs = 136                      'horizontal sync pixels
      hb = 216                      'horizontal back porch pixels
      vf = 3                        'vertical front porch lines
      vs = 7                        'vertical sync lines
      vb = 29                       'vertical back porch lines
      pr = 109                      'pixel rate in MHz at 80MHz system clock (5MHz granularity)
    





    Values that I have for 1280x720 60Hz (80x45 array of 16x16-pixel 4-color tiles):

    hp = 1280                     'horizontal pixels
      vp = 720                      'vertical pixels
      hf = 64                       'horizontal front porch pixels
      hs = 128                      'horizontal sync pixels
      hb = 192                      'horizontal back porch pixels
      vf = 3                        'vertical front porch lines
      vs = 5                        'vertical sync lines
      vb = 20                       'vertical back porch lines
      pr = 107                      'pixel rate in MHz at 80MHz system clock (5MHz granularity)
    




    Any one have any insight as to how the 1280x1024 numbers came to those values, it would be appreciated.

    Thanks!

    John
  • TimmooreTimmoore Posts: 1,031
    edited 2008-07-05 01:46
    One easy way if you can plug the montor into a windows box is to get http://entechtaiwan.net/util/ps.shtm and look in the advanced timing config. It will tell you the numbers you need.
  • johnfl68johnfl68 Posts: 72
    edited 2008-07-05 03:17
    I tried that utility, with both 1280x1024 and 1280x720 monitors, and I came up with numbers almost identical to the numbers from Tim's VESA Timing Calculator, then the numbers in the Tile Drivers.

    John
  • RaymanRayman Posts: 14,877
    edited 2008-07-05 15:51
    Maybe try lowering the pixel rate... If it's an LCD monitor, it only likes to work ~60Hz. Maybe removing lines made the refresh rate too high?
  • johnfl68johnfl68 Posts: 72
    edited 2008-07-05 17:53
    Thanks Rayman for the clue.

    I ended up modifying the 1280x768 tile driver in small steps, and looking at the frequency on the LCD each time.

    The pixel rate (I can only assume) is for the prop, not the VGA output as I assumed, hence the confusion.

    Here is what I ended up with for 1280 x 720:

    hp = 1280                     'horizontal pixels
      vp = 720                      'vertical pixels
      hf = 64                       'horizontal front porch pixels
      hs = 128                      'horizontal sync pixels
      hb = 176                      'horizontal back porch pixels
      vf = 1                        'vertical front porch lines
      vs = 3                        'vertical sync lines
      vb = 38                       'vertical back porch lines
      pr = 80                       'pixel rate in MHz at 80MHz system clock (5MHz granularity)
    



    This seems to work fine on the LCD display I have - with a 63Hz output.

    If anyone else has a widescreen display, and can try this (modify the 1280x1024 tile driver with the above - and modify the Tile Driver Demo 2 with Rows=45).

    But the mouse pointer will scroll from bottom to top, I changed the mouse.bound_limits to:

    mouse.bound_limits(0, 0, 0, 1279, 719, 0)
    



    There must be something else that needs to be changed for the mouse that I haven't found yet, but it is close for those of interest.

    John
  • RaymanRayman Posts: 14,877
    edited 2011-05-26 03:36
    Tried it on an HDTV yesterday via VGA interface and it looks great, but needs some tweaking...
    I've got some black bands on the top, and I'm missing a column of text horizontally.

    Still, this is essentially 720p with 80 column display.

    Hope I can get it to cooperate better...
  • RaymanRayman Posts: 14,877
    edited 2011-05-26 17:53
    Got it looking pretty good at 1280x720. But, there are still some issues...

    Every 10 reboots or so, the TV seems to not sync correctly and there's a repeated horizontal skew on the lines...
    I think it may have to do with the way the cogs are synced (or not), but I'm not sure.

    I haven't figured out what's wrong with the cursor either... It scrolls up and down the screen even with no mouse input.
    There's something wrong or hardwired for 1024 on the code, but I haven't found it yet...
    Fortunately, I don't think I need a cursor for Zork...

    I noticed this TV will do 1368x768 too. I'm tempted to try that, but it won't work on an actual 720p TV, so I think I forget that.
    Besides 80 columns is a nice number...
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2011-05-27 01:39
    A lot of the HD "ready" monitor/TVs were native 1368 by 768 and will try to expand or contract the incoming image to map onto those. This means that there is all that extra maths being done and the results are never as good as if the 1 : 1 relationship could be maintained. Either the driver could be made to use those extra pixels or just put up with a border.
Sign In or Register to comment.