Shop OBEX P1 Docs P2 Docs Learn Events
Announcement - PropGFX Lite Binary Released - Page 5 — Parallax Forums

Announcement - PropGFX Lite Binary Released

12357

Comments

  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-07-31 05:12
    Some great advice there. I'm sort of brainstorming things while Baggers works on that 256x192 16color driver, but I know he is working on something for OBC first.

    Anyone got a link to Eric's code by any chance? (I have one of the drivers, but it didn't come with a demonstration so I'm not sure how to use it).

    One thing with the standard propeller palette demo is there doesn't seem to be a yellow on my display. It goes from pale green to brown, and there is no yellow in the supersaturated set either. I'd be interested to see a different color space.

    For movies, 256x192 with 16 colors and dithering is going to be fantastic.

    For more static displays, I am thinking more along the lines of the tile drivers. eg, say you are displaying a web page, it is mostly a white background, and in the middle is a picture. So you have a white tile and you replicate that many times. And for the picture, that ends up being a number of tiles that might use up most of the memory. (eventually, do the dithering and scaling on the prop itself).

    For the second application, is your (@potatohead) driver the best one yet? ie 256x240.

    If so, can you explain what these numbers in the .chr file are
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF EB 83 
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    FF FF FF EB FF EB D7 83 D7 83 83 C3 C3 C3 C3 C3 
    FF FF FF FF FF FF FF FF FF FF FF EB FF EB 97 83 
    83 83 83 C3 83 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 
    FF FF FF FF FF FF FF FF EB D7 83 83 83 83 83 
    

    I think the background is white, so using the standard prop palette that would be $07. What is $FF
  • BaggersBaggers Posts: 3,019
    edited 2011-07-31 05:16
    Dr_A, I've posted the 16 colour driver example, did you miss it?
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-07-31 05:53
    Dr_A, I've posted the 16 colour driver example, did you miss it?

    Yes, it appears I have missed it (I was on holidays recently). Have you got a link?

    Sorry, scratch that, yes I have seen the code from the 29th but I'm not sure how to use it. It starts like this
    CON
    
    _clkmode = xtal1 + pll16x
    _xinfreq = 5_000_000
    
    OBJ
    
    Lite : "GFX_BINARY_Databus"
    
    PUB Demo
    
      Lite.PropGFX_Start
      if(Lite.PropGFX_TestValid==0)
        reboot
    
      Lite.SetBasicMode(Lite#PROPGFX_NTSC,Lite#PROPGFX_4BIT_CHAR_MODE,Lite#PROPGFX_0_SCROLL_COGS,0,Lite#PROPGFX_NORMAL_SPRITES) ' mode+8 = SEPERATE CHAR LINE X SCROLLS
      Lite.SendBuf(@picchr,$2000,$6000)
      Lite.SendBuf(@picmap,$1800,$800)
      Lite.SendBuf(@picpal,$1600,$100)
    
      repeat
    

    But I'm not sure what to do with that.

    The 256x96 code that you have kindly posted earlier is quite different, and essentially you just put bytes into the array at 'screen' and it displays them.

    Have you got a 256x192 display that works in a similar way?
    {
    Propeller TV Movie player by Dr_Acula (James Moxham), July 2011
    Thanks to Baggers for the TV driver and Kye for the SD driver
    See the vb.net program to create the movie files
    Open source software
    ' hydra mode is data out 8 clock 9 data in 10, card select 11
    
    }
    CON
    
      _clkfreq = 80_000_000         ' 5 Mhz clock
      _clkmode = xtal1 + pll16x
    
      _clockDataPin = 29
      _clockClockPin = 28
    
      _cardDataOutPin = 12            ' dracblade 12,13,14,15 for sd card
      _cardClockPin = 13
      _cardDataInPin = 14
      _cardChipSelectPin = 15
    
    '  _switchRate = 5
    
      ' Keyboard
    NUM        = %100
    CAPS       = %010
    SCROLL     = %001
    RepeatRate = 40
    
    '  MaxIcons = 15
    
        ' video setting
    'modepins = %010_0000     ' dracblade = %010_0000, PROTO/DEMO BOARD = %001_0101, HYDRA = %011_0000        
    modepins = %010_0000     ' dracblade = %010_0000, PROTO/DEMO BOARD = %001_0101, HYDRA = %011_0000        
    'modepins = %001_0101     ' dracblade = %010_0000, PROTO/DEMO BOARD = %001_0101, HYDRA = %011_0000        
    
    PAL      = %0001
    NTSC     = %0000
    
    mode     = $c0 + NTSC
    
    x_tiles  = 16
    y_tiles  = 6
    my_hx    = 11+((mode&1)*6)
    
    'x_pixels = x_tiles*16               ' ? not used
    'y_pixels = y_tiles*16
    
    OBJ
    
      fat   : "SD2.0_FATEngine.spin"            ' thanks to Kye
      tv    : "JB_TV_AMS_03"
    
    VAR      
       long i           ' general purpose variable
    
    PUB Main 
    
      tv.start(@tvparams)   
    
      ifnot(fat.FATEngineStart(_cardDataOutPin, _cardClockPin, _cardDataInPin, _cardChipSelectPin, _clockDataPin, _clockClockPin))
        reboot
      fat.mountPartition(0,0)     ' mount the sd card
    
      Wallpaper                     ' startup splash screen
    '  repeat i from 0 to 600000      ' delay
    '  Movie(4266)                    ' play n frames in the movie
    
    
    
    PUB Wallpaper
        fat.openfile(string("taz.tv"),"R")      ' 128x96
    '    fat.openfile(string("prop128.tv"),"R")      ' 128x96
        fat.readdata(@screen,256*96)
        fat.closefile
    
    
      
    PUB Movie(n) 
        fat.openfile(string("matrix2.tvm"),"R")                 ' 256x96 per frame
        repeat i from 1 to n                                ' number of frames
          fat.readdata(@screen,24576)                       ' 24576 bytes per frame
        fat.closefile                                       ' close the file
    
    DAT
    
    tvparams      long    0               'status
                  long    1               'enable
                  long    modepins        'pins 
                  long    mode            'mode
                  long    x_tiles         'hc
                  long    y_tiles         'vc
                  long    my_hx           'hx
    VSyncFlag     long    0
    nextline      long    0                        
    tvbitmapptr   long    @screen+$10
    bordercolour  long    $02
                  long    @palette+$10
    
    
    
    screen        byte    $1b[256*96] 'file "title.bit"
    
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-07-31 11:14
    Here's a slideshow I did. Copy the image files to your SD card.

    I'm not sure how to turn off the screen during the image loads, but my boy said that it made it look a little more "retro". (I'm proud of that kid!)


    Edit: The next demo I'm working on is a non-game application of PropGFX. (Now that's different!)

    Enjoy!
    OBC
  • ColeyColey Posts: 1,110
    edited 2011-07-31 12:07
    That's great OBC!

    If you want to blank the screen in between slides just wipe the palette.
    Lite.fillwords($1600,0,128)
    

    Insert this line into your imageload method at the top ;-)

    Regards,

    Coley
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-07-31 15:51
    On to Demo #2. (This one is for Ken Gracey who is always interested in controls vs games) :)

    Grab a mouse and plug it in! It's a GUI control.

    For some reason my screen doesn't always Sync. (Maybe Coley will have an answer) If yours doesn't, just run it again.

    Guess what I'm creating to show at the expo?

    OBC
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-07-31 17:09
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-07-31 17:41
    @OBC: I saw this first on your YouTube channel, and I love it! I'm not big into retro games, and the entire reason I'm exited about PropGFX is that it can do nice GUI, so this is great!!
    I'll download the code, but I have a job for the next 2 weeks that's pretty tight, so I may not get to work with it for a while. :-(
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-07-31 18:15
    Wow - this is very impressive OBC.

    What is the screen resolution on that demo?
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-07-31 18:33
    I've switch it to Bitmap mode, but it was in the same Char mode at the other demos. 256x192.

    OBC
  • BaggersBaggers Posts: 3,019
    edited 2011-08-01 02:10
    That's great OBC, good to see it being used for other purposes also! cheers :D
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-01 08:04
    Baggers wrote: »
    That's great OBC, good to see it being used for other purposes also! cheers :D

    Any chance of VGA compatibility at this resolution so that the PropGFX becomes a universal video driver?

    OBC
  • BaggersBaggers Posts: 3,019
    edited 2011-08-01 08:25
    OBC, IIRC the VGA driver needed 6Mhz to get 320 pixels res, so it may be possible to do it 256 pixels wide, but not at the mo.

    GFX is already VGA/Composite compatible, just a case of swapping the video driver, but you'll need 6Mhz as I coded it for 320 pixel width, and 256 modes have border like tv.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-01 08:32
    So we can swap the crystal with this version?

    Or would I need to change the first few bytes to switch to 6mhz or would this work at all?

    OBC
  • BaggersBaggers Posts: 3,019
    edited 2011-08-01 08:41
    You would need to change a few things :D and swap over the crystal.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-01 08:44
    Ah, I suspected as much... A byte change from 5mhz to 6mhz (and crystal swap) wouldn't be enough.

    So what do we need to do to purchase the "expanded" version of this from you guys? :)

    OBC
  • BaggersBaggers Posts: 3,019
    edited 2011-08-01 10:36
    Jeff, we're seeing what people do with this free version, before even thinking about any upgrades to the full Lite version. etc!
    It's basically a trial, to see if it's viable to take it further!
  • jazzedjazzed Posts: 11,803
    edited 2011-08-01 10:45
    Baggers wrote: »
    It's basically a trial, to see if it's viable to take it further!
    Seems to have caught on a little :)

    hot-air-balloons.jpg
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-01 10:52
    Baggers /or Coley:

    For some reason I'm still fighting with sprite colors. Background doesn't always want to cooperate, or my position calculations are off.

    A little step-by-step of the process that works best would be appreciated. Don't care if the programs are commercial at this point.

    OBC
  • Cluso99Cluso99 Posts: 18,069
    edited 2011-08-01 18:06
    WOW OBC. Those demso are great! Keep 'em coming :)
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-01 21:18
    I should probably save this until the expo, but here's an early screenshot.

    screenshot.JPG


    OBC

    Edit: Hey Baggers, do you have a tiny font I can use with this?
    640 x 480 - 8K
  • BaggersBaggers Posts: 3,019
    edited 2011-08-02 02:13
    I take it it's a bitmap mode?
    Would a 3x5 do? ( 4x6 with gap )
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-02 12:10
    Baggers wrote: »
    I take it it's a bitmap mode?
    Would a 3x5 do? ( 4x6 with gap )

    It's in bitmap mode, but I'd like to run it in CHAR mode, so I can get a nice background in somewhere.
    3x5 sounds good.

    OBC
  • BaggersBaggers Posts: 3,019
    edited 2011-08-02 13:26
    if you want it in charmap mode you won't be able to do 3x5 chars, you might as well do 8x8s
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-02 13:28
    Ah.. There's a boundary. I'll keep it in bitmap mode then. Need to get the characters as small as possible. (and still functional).

    OBC
  • JT CookJT Cook Posts: 487
    edited 2011-08-03 09:58
    I think 3x5 is going to be too small to read. NTSC displays vary in quality and I would not recommend going below 8x8 so you know everyone will be able to read the text.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-03 15:56
    JT Cook wrote: »
    I think 3x5 is going to be too small to read. NTSC displays vary in quality and I would not recommend going below 8x8 so you know everyone will be able to read the text.

    This looks almost like 5x5

    geos-plain-boot.jpg

    Gonna do some testing and see what looks good.

    OBC
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-08-03 19:38
    Here's another video test (and some discoveries I've made)

    While it IS possible to do a minimal Windows style system using the PropGFX, I'm using 50% of my resources to pull this off. I'm going to move toward a combination of text and fixed controls where everything is a single "window" instead of Window(s). I think it'll be a better use of my resources. but impressive no?

    OBC
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-08-03 20:36
    It is indeed very impressive.

    Regarding windows and complexity, I came across the same issue recently with the efforts in C, and I am thinking at the moment that you only have one window, but you can have a special case popup dialog window that asks questions "yes/no" and is an input box. Thinking of other "special case" windows, that might also include the file directory dialog box from the .net programs, and the color picker box.

    Generally these boxes/windows need immediate input from the user, and once something is selected (a file or whatever), the box is closed. This is very different from the behavior of windows that stay open all the time.

    The popup dialog can capture the screen behind it first, then ask for input, and then redraw the screen behind afterwards. And you have to blank the mouse as well during those redraws.

    What language are you writing this in?
  • Cluso99Cluso99 Posts: 18,069
    edited 2011-08-03 20:44
    Very very impressive OBC :)
Sign In or Register to comment.