Shop OBEX P1 Docs P2 Docs Learn Events
Hydra/Propeller Chat? + uninteresting questions — Parallax Forums

Hydra/Propeller Chat? + uninteresting questions

RedNifreRedNifre Posts: 84
edited 2007-04-19 05:01 in Propeller 1
Because it will be several weeks until I get a Hydra I would like to ask some questions, which are surely covered in The Book.
However, those questions might be completely boring for those who already own a Hydra, thus I don't want to spam this forum with stuff that is uninteresting. Is there an official Parallax/Propeller/Hydra chat somewhere, where I can ask a lot of stuff?

Anyway, in case there isn't: Here are some questions:
- Whats possible with the Hydra and what isn't?
- I read that the HEL engine allows 16x16 tiles in 4 colors. What about sprites? Are they also 16x16 or can they have different shapes like 16x32, 64x64 etc?
- I understand that sprites are 4 colors + transparency, right?
- What happens when sprites overlap? Is one covering the other, do they flicker, or what happens?
- How many sprites are allowed on one screen, what are the restrictions?
- Does the HEL engine support scrolling?
- How hard would it be to change the HEL engine to use 8x8 sprites? No brainer? Complete rewrite needed?
- If most everything is done in software, does that mean that you could basically change everything, like using a 1280x1024 screen
- What about colors? I read that there is one palettes with 86 colors. Is it somehow build in, or can I use my own 86 color palette?
- The Book says "[noparse][[/noparse]...]so how can a 24-bit Truecolor image be represented by the HYDRA? Well, it can’t[noparse][[/noparse]...]" Does this mean that it is absolutely impossible, or does this mean that because of memory and computing power constraints it would not make much sense? Might it be possible to render a very small static true color or 256 color image on the Hydra?
- What can I do with the network plug? Could you write a web browser, that shows you the HTML source code? Or an ICQ client? An E-Mail-Client? Or what can be done with this thing?
- Does the Hydra heat up a lot? If I built a case for it, would it get too hot?
- Where can I find other Hydra games? (I only found that nice sudoku in this forum, but there surely are more games, right?)

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2007-04-17 18:19
    Although I have a Hydra and a copy of the book, I haven't spent much time going over the HEL engine so I can't help you much there.

    Pretty much everything is done in software (except for the video shift register / video generator). You can basically change everything with the exception of the resources of the Propeller itself which are fixed. The Propeller has 32K bytes of main memory and 2K bytes per cog. Some of this is needed for the program itself. There have been high resolution VGA drivers developed for 1280 x 1024 and 1600 x 1200 displays, but, to get the processor throughput necessary for the video bit rate involved, these use increasing number of cogs to do the video generation. The 1600 x 1200 case uses 7 cogs plus one for the main program and there's very little room left after the text buffer is provided for.

    The video shift register is limited to 4 colors per 16 pixel tile row. The only practical way to increase this is to use multiple synchronized cogs to increase both the number of bits involved and the number of palette entries possible. Practically, you would need an external video buffer and external video generation circuitry.

    The network plug is for a simple inter-processor network. There's really no associated hardware other than some passive filtering and protection components. If you want to connect to the internet, you would need some kind of interface. Several manufacturers make such devices and they look like simple asynchronous serial devices to the microcontroller. The Propeller (Hydra) can talk to one of these. You could certainly write a basic e-mail client with something like this. You could probably write a text-only web browser with limited capabilities, not much more ... The Propeller just doesn't have enough room for a program of the complexity needed for more.

    The Propeller (Hydra) should not heat up significantly. The standard kinds of I/O (keyboard, mouse, display) don't use much current. If you attach something with a significant regulated current draw (like a couple of hundred milliamps), the regulators could get quite warm, but the Propeller itself should not.
  • AndreLAndreL Posts: 1,004
    edited 2007-04-17 18:56
    Like mike says, 99% of these questions have to do with the propeller and software. But, software meaning ASM languages, so making changes you still have to modify code. Some things you can do with small changes though.

    Anyway... some more details to your answers inline:

    Whats possible with the Hydra and what isn't?
    - I read that the HEL engine allows 16x16 tiles in 4 colors. What about sprites? Are they also 16x16 or can they have different shapes like 16x32, 64x64 etc?
    - I understand that sprites are 4 colors + transparency, right?

    >>>> The Hel engine is just an example, there are a number of other engines as well with 32-40 sprites and 8-bit color. So its whatever you need, you use. The hel engine though is limited to 4-8 sprites total, 4-5 on the same line. But, the idea of this engine is that it runs on ONE cog and does tiles, scrolling, and sprites. What's possible more or less is shown in the demo screen shots, they push the envelope of the propeller chip.


    - What happens when sprites overlap? Is one covering the other, do they flicker, or what happens?
    >>>> In all the engines "Sprites" are sprites, very complex masking algorithms make sure things look right.

    - How many sprites are allowed on one screen, what are the restrictions?
    - Does the HEL engine support scrolling?
    - How hard would it be to change the HEL engine to use 8x8 sprites? No brainer? Complete rewrite needed?
    >>>> scrolling, course only in the HEL engine, the other enignes have smooth scrolling that we made. To change to 8x8, easy and you would get way more sprites.


    - If most everything is done in software, does that mean that you could basically change everything, like using a 1280x1024 screen
    >>>> Not really, NTSC is only 160x192 color clocks, period end of it. You can over drive horizontally to 256 for example and maybe do 224 lines if you want, but anything higher than 160 visible pixels is really invisible and over the color burst resolution anyway.

    - What about colors? I read that there is one palettes with 86 colors. Is it somehow build in, or can I use my own 86 color palette?
    >>> The colors are defined by hardware, they are what they are, but you can get more with some oversaturation tricks.


    - The Book says "[noparse][[/noparse]...]so how can a 24-bit Truecolor image be represented by the HYDRA? Well, it can’t[noparse][[/noparse]...]" Does this mean that it is absolutely impossible, or does this mean that because of memory and computing power constraints it would not make much sense? Might it be possible to render a very small static true color or 256 color image on the Hydra?
    >>>>> Yes, and there are demos of this, look at the "girl" image for example on the demo screens.

    - What can I do with the network plug? Could you write a web browser, that shows you the HTML source code? Or an ICQ client? An E-Mail-Client? Or what can be done with this thing?
    >> mike answered this.

    - Does the Hydra heat up a lot? If I built a case for it, would it get too hot?
    >>>> Its very cold, and cant source 1A from both the 3.3 and 5.0v regulators if you need it, the propeller is always cool.

    - Where can I find other Hydra games? (I only found that nice sudoku in this forum, but there surely are more games, right?)
    >>>> People that make games dont necessarily spend time on these boards and thus don't upload them. Since this is NOT a commercial gaming system there is no motivation to publish one's games for money, so people tend to keep them to themselves and just learn, but now and then people will upload their games as you noted sudoku is an example.

    Andre'
  • RedNifreRedNifre Posts: 84
    edited 2007-04-17 20:21
    Thank you for these answers.
    AndreL said...
    >>>> People that make games dont necessarily spend time on these boards and thus don't upload them. Since this is NOT a commercial gaming system there is no motivation to publish one's games for money, so people tend to keep them to themselves and just learn, but now and then people will upload their games as you noted sudoku is an example.
    I know that it is meant for creating games, not playing games. But the idea that people are creating nice things and don't show them to others suprises me a bit. I expected that the situation would be quite different. Like in the mod-scene where people create nice mods and release them to the public for free, because they are proud of it. If I created a good game I surely would want to show it to others to get a feedback and I would also like to look at other peoples code to learn from them. My personal experience is that after reading a teaching book about something the best next step is to look at other peoples work. And not just examples meant for learning, but real things.
    But that's just my opinion.
  • Paul BakerPaul Baker Posts: 6,351
    edited 2007-04-17 20:29
    Something you need to consider, with the exception of the system developers, people have had the Hydra in thier hands for a few months at most. Given the time required to get acclimated to the system and start programming, there hasn't been enough time for people to develop thier own games yet. Give it a while longer and more people should be posting thier efforts.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • AndreLAndreL Posts: 1,004
    edited 2007-04-17 20:37
    Well, sounds like you owe us about 10 good demos!

    One thing I think you will realize is that there is a huge difference in tinkering with something and making a complete game or runnable demo. Its a lot of work and most people aren't up to the task. For example, ask every software engineer you know a simple question, I bet 1 in 100 will answer yes.

    "Have you ever personally, developed a program, made docs and an installer, put it on internet and sold a single unit?"

    I was just at a very big game company hanging out with the founder, lets just say, you would know it if I told you. And not a single one of his programmers had ever written a complete game themselves to the point of publishability, yet together they write pieces of multimillion dollar products on consoles and PCs.

    So the point is that its easy to get a square moving around on the screen, but anything else like our pacman game, or racing, breakout, etc. are a LOT of work and take weeks to months to complete. And that's a long time for someone to do something for the fun of it without and ROI at the end other than an ego boost from a bunch of strangers.

    Thus, that's the real economics of people making stuff. Either they have a ton of free time and nothing else to do, or they do it to make money, or they do it to impress people, and/or a mix of the above.

    In our case, I simply think that time is everyone's enemy here, not enough in the day to get things done.

    But, I am interested to see what you come up with since you have thrown the gauntlet down, so to speak [noparse]:)[/noparse]

    Some titles I would like to see are Berserk, Centipede, Venture, HACKER, RallyX, Scramble, any kind of fighting game, something zelda'esk, wolf3d ish, and or some 3d wire frame games like BattleZone

    Andre'


    Andre'
  • RedNifreRedNifre Posts: 84
    edited 2007-04-18 17:56
    To Paul Baker:
    Oh, didn't know that the Hydra was that new. That explains.

    To AndreL:
    Well, when I was asking where the games are I didn't mean "Come on you lazy people, I want to be entertained, so create games for me without getting paid for it!!!!". I basically meant "It will be weeks until I get a Hydra and I already read all the Book fragments, so I thought that looking at other peoples code might give me an insight on what awaits me. And later, when I have a Hydra, I can learn from those people by reading there code".
    Sorry if that came out wrong. [noparse]:)[/noparse]

    But I promise that I'll publish those 10 demos and all the games here at the forums as soon as I complete them!
    (Note: From a logical point of view this statement also holds true if I complete nothing at all wink.gif
  • AndreLAndreL Posts: 1,004
    edited 2007-04-18 20:55
    Well, we will just hold you to one game [noparse]:)[/noparse]

    Andre'
  • BamseBamse Posts: 561
    edited 2007-04-18 22:49
    I'll commit to one game as well... wink.gif

    Still reading and learning, great fun though...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Living on the planet Earth might be expensive but it includes a free trip around the sun every year...

    Experience level:
    [noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
    [noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
    [noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
    [noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
    [noparse][[/noparse] ] I dream in SX28 assembler...

    /Bamse
  • AndreLAndreL Posts: 1,004
    edited 2007-04-18 23:20
    Someone should take the femtobasic and see if you can merge in the HEL graphics engine, tile support, gamepads, etc., so it can be used for graphics programming. You might have to yank the tv/graphics drivers and make them much more optimized and into one driver to fit everything, but eventhough it would be horribly slow with double interpretation, SPIN I CODE, then Femto basic tokens, its still not bad compared to the final execution rate of a C64, Apple II etc. in BASIC, but the tile engine with sprites is a must to get anythnig done fast. You could deploy it as a binary for the hydra, or as source without the HEL driver, then assume they have the hydra book and can import the HEL engine from their own sources to build it. That we get around not deploying the source modules from the book.

    That I would like to see --

    Andre'
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2007-04-19 03:35
    Femtobasic currently sucks down a lot of memory resources just doing what it does currently. I've been giving a lot of thought to what would happen if you added a couple propeller chips, say one to do sound, and another to handle the HEL driver. (perhaps even expand it a little) and tie them back to something like Femtobasic for control. You would in sense have created a micro with it's own sound and video chips, much like the C64 which had the SID & VIC chips. You *might* even be able to do something clever like use a single line serial connection to send the data to each chip.

    Oldbitcollector

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    The comments and code above are proof that a million monkeys with a million propeller chips *could* write Shakespeare!
  • AndreLAndreL Posts: 1,004
    edited 2007-04-19 05:01
    That would be overkill, better to just re-write the basic in ASM in that case like our tiny basic which uses very little resources and is about 200x faster. Connecting graphics to that is easier. But, the interpreter itself is VERY complex since its in ASM and not easy to mess with.

    Andre'
Sign In or Register to comment.