Shop OBEX P1 Docs P2 Docs Learn Events
A complementing GPU for the Propeller 1 — Parallax Forums

A complementing GPU for the Propeller 1

I've for some time been entertaining the thought of working on an original/new "late PS1"-era game console. I'm determined that the Propeller chip would be the best choice, but the P1 is way too limited when it comes to graphics output - for such a project.

I'm not overly tech-savvy enough to actually make something like this yet, although I have a rudimentary knowledge of most relevant tech concepts, and I know how to program (Lua, R, Python and C).

What I'm interested in, and have no clue about whatsoever, is how one would add an (open source) GPU to said game console, to compensate for the P1's not-quite-good-enough graphics/video output. That's the main question.

However, now I'm reading that the P2 is in it's final stages of development, and I read that it will support 1080p HD (?) with "true color" support (?). But has it been ultimately decided what the supported/possible color and resolution range will be, and could someone maybe give a few examples of such supported/possible color-resolution setups?

PS. I know this is the P1 subforum, but the question is mainly about the P1, so.. :)

Comments

  • P2 can do 1080p (and more) over analog outputs or 480p over HDMI (or 480i/240p over NTSC/PAL). However, there isn't quite enough RAM for large true-color framebuffers, so higher resolution graphics would need to be generated on-the-fly.

    If you want a graphics coprocessor for P1, just add more P1s. No seriously, 3D graphics could scale pretty well when splitting each frame between multiple chips in a scanline-interleave fashion and then using a common video bus to combine them. Look into how LFT's Turbulence demo works. That concept can be easily expanded to multiple chips and higher color depths.
    Or, look at the scribble I've attached, maybe that gets the idea across.
    640 x 320 - 5K
  • Wuerfel_21 wrote: »
    P2 can do 1080p (and more) over analog outputs or 480p over HDMI (or 480i/240p over NTSC/PAL). However, there isn't quite enough RAM for large true-color framebuffers, so higher resolution graphics would need to be generated on-the-fly.

    If you want a graphics coprocessor for P1, just add more P1s. No seriously, 3D graphics could scale pretty well when splitting each frame between multiple chips in a scanline-interleave fashion and then using a common video bus to combine them. Look into how LFT's Turbulence demo works. That concept can be easily expanded to multiple chips and higher color depths.
    Or, look at the scribble I've attached, maybe that gets the idea across.

    Thanks for the reply. I see, so maybe the P1 is more fit for the purpose, given that more P1's can be utilized as a GPU. I've thought about this, that is, that multiple P1's could be used as a GPU (substitute). My question is then how one would transmit and convert any given GPU "result" (i.e. frame to be displayed) to a given digital (or analog) component the chosen display happens to use, and what such kinds of components (and protocols) are called and where one can read and learn about the standards (?).
  • It's not like you can't use multiple P2s together, either...
    propfox78 wrote: »
    My question is then how one would transmit and convert any given GPU "result" (i.e. frame to be displayed) to a given digital (or analog) component the chosen display happens to use, and what such kinds of components (and protocols) are called and where one can read and learn about the standards (?).
    In the simplest case, it's literally just a bunch of resistors and proper timing. It is really quite simple. Read up on analog video formats (most digital ones work much the same, except more complicated)
  • My VIPMC utilizes two props on the motherboard, one is for stack interface, graphics, data management, and memory. The second one is dedicated for USB. I may move memory management over the the second prop, but likely not.
  • yetiyeti Posts: 818
    edited 2019-09-10 03:17
    I like the idea to combine multiple P1s as GPU(s) because you only have to know one MCU then instead of multiple ones when adding a foreign GPU.
  • propfox78propfox78 Posts: 3
    edited 2019-09-10 13:21
    Wuerfel_21 wrote: »
    P2 can do 1080p (and more) over analog outputs or 480p over HDMI (or 480i/240p over NTSC/PAL). However, there isn't quite enough RAM for large true-color framebuffers, so higher resolution graphics would need to be generated on-the-fly.

    If you want a graphics coprocessor for P1, just add more P1s. No seriously, 3D graphics could scale pretty well when splitting each frame between multiple chips in a scanline-interleave fashion and then using a common video bus to combine them. Look into how LFT's Turbulence demo works. That concept can be easily expanded to multiple chips and higher color depths.
    Or, look at the scribble I've attached, maybe that gets the idea across.

    If one were to entertain the P2 approach a bit more, wouldn't the lacking amount of RAM be easily solvable by simply adding a SRAM/DRAM (or the alike) module, and simply use that for frambuffer, extra game logic, 3D graphics, etc.? Then you could benefit from a much more simplified layout (?).
  • RaymanRayman Posts: 14,640
    edited 2019-09-10 13:40
    I've been using EVE2 for lots of stuff lately.
    It's meant for LCD's, but I think it could also be used for VGA/HDMI with an extra chip...

    This is getting me pretty nicely for LCD projects, until P2 arrives in mass...
  • BeanBean Posts: 8,129
    edited 2019-09-10 13:49
    The main issue with the P1 is the low amount of RAM (32K for code and data).
    If you used a tile driver and sprites, you could probably use the P1.
    But if you want full-screen bitmaps, probably not.

    My latest project uses 256x192 4-colors unique palette (64 colors) every 8x8 pixels and this uses 16K with a 128 character 8x8 font.

    Bean
Sign In or Register to comment.