Improve Tv-out Interface?


Epicenter posted on May 31 2006 at 04:43 PM said:
I don't doubt you could just implicitly set a higher resolution to run the program with and output this larger frame to the TV. But it would not display on the GP2X LCD without scaling, and that will put a drain on batteries since the whole display would need to be scaled down in realtime to 320x240 for LCD use. Switching back and forth between video modes and only using one display at a time would be the least battery-costly approach, I gather.
I demand Facts Watson!! *smokes some pot and Opium* (sheesh, required reading in our schools?)

Seriously I am very interested in this, I just want the cold hard facts, no more speculation and hearsay.
 
Last edited by a moderator:
nubie posted on May 30 2006 at 10:15 PM said:
On topic, we simply need a menu replacement that is scalable, it can be 640x480 full time and scaled while on the LCD, then on the TV it will be fine, 20-Odd pictures should be nothing to our scaler/raw ARM power, it can even Cache the scaled versions if necessary.

I am actually working on one of those, but I don't have a GP2X yet (gotta get the money). Would anyone like to see the concept art? I must admit it looks cool.
 
Last edited by a moderator:
This whole thread is making a "WHOOSH" sound as its contents fly above my head.
Translation: I don't understand any of this.

My only question is this: Can software be made to output the graphics in a way that DOESN'T make them look distorted? (ie. no double-sized pixels, etc.) In my head, which has been proved to be very cheaply made before, I see the GP2X outputting in 640x480 and using some sort of trick to make sure that the TV doesn't stretch this resolution. Maybe something like the C64 did, with the border. I wouldn't be bothered by the border if it meant I could play games in a non-distorted resolution.

If you answer, either explain this in very simple terms or just say "yes" or "no". My brains seems unwilling, today, to absorb intelligent and technical feedback.
 
Magnulus posted on Jul 24 2006 at 11:30 AM said:
My only question is this: Can software be made to output the graphics in a way that DOESN'T make them look distorted? (ie. no double-sized pixels, etc.) In my head, which has been proved to be very cheaply made before, I see the GP2X outputting in 640x480 and using some sort of trick to make sure that the TV doesn't stretch this resolution. Maybe something like the C64 did, with the border. I wouldn't be bothered by the border if it meant I could play games in a non-distorted resolution.

If you answer, either explain this in very simple terms or just say "yes" or "no". My brains seems unwilling, today, to absorb intelligent and technical feedback.
Yes.

To elaborate a bit more, by default the GP2X (and hence most programs) run in its native resolution of 320x240, this is purely because of the LCD. As soon as you request TV-out the TV chip outputs at 720x576 (or 720x480 for NTSC.) I've still got a bit of playing around to do to see how the TV chip works, but in SDL I get the MMSP2 to do the scaling to TV resolution and send that to the TV chip, but I think you can send the TV chip a lower resolution signal and let it upscale.
By taking control of the hardware you can change the resolution of the display bitmap to be anywhere between (theoretically) 2x1 right up to 1024x768 and set the scaler to convert this on the fly to either LCD or TV resolution.

Also, without accessing the hardware directly the TV-out doesn't actually stretch vertically, instead the MMSP2 sends the same bitmap to both odd and even frames.

As to counteracting TV overscan it is possible, I've got it working okay on the LCD but haven't tested it on the TV - it may need a bit of tweaking.
 
Last edited by a moderator:
Magnulus posted on Jul 24 2006 at 11:30 AM said:
My only question is this: Can software be made to output the graphics in a way that DOESN'T make them look distorted? (ie. no double-sized pixels, etc.) In my head, which has been proved to be very cheaply made before, I see the GP2X outputting in 640x480 and using some sort of trick to make sure that the TV doesn't stretch this resolution.
Actually double-sized pixels are just what you want on tv-out. A single pixel line on a tv can flicker really badly, and the worst culprit is supposed to be a single pixel vertical line on an odd pixel (don't ask me why, it's just something Sky talk about in one of their design documents). The reason most things look distorted on the 2x is because they aren't double-sized pixels. If you run something at 360x288 (pal) or 360x240 (ntsc) then it will look lovely.

And another tip from Sky for anyone wanting to get rid of overscan - the Sky recommended safe area for tv display is 592x480 starting at 64,48 (we're talking pal here, don't know what the recommended size is for ntsc). That still won't guarentee that it will remove overscan for everyone (my tv display is shifted left so it doesn't work completely for me), but Sky have done a fair bit more research into this than anyone here so we'd be foolish to ignore them ;).
 
Last edited by a moderator:
Holy crap, this has been one of the most confusing threads for me - and I know quite a bit about TVs (it's my job).

Okay, forget the double pixels, etc.

Back to the roots:

The gp2x does 320x240 output on TV Out. A TV has 720x480 (NTSC) or 720x576 (PAL).

Okay. So far, so good.
If you use TV Out, it only uses half the Res the TV has - making a very blocky picture.
And that's what the original author of this thread didn't like.
He wants a hires-menu which will look fine on TV.

Certainly possible, but somebody has to code it.

Some guys asked it this would be useful. Well, depends.

Yes: For File Managers, etc., as you could have more readable text (higher Res).
Yes: For MoviePlayer, Picture Viewer and eBook-Reader.
No: For emulators or games which don't have a higher resolution (most old emulators don't have)
Yes: For emulators where the original system res is higher than 320x240 (is there one...? MAME maybe...)
Yes: For homebrew games. You could create cool looking games in HiRes - and use lowres graphics, if you don't use TV Out. Thinking of ScummVM, Monkey 3 would be perfectly playable on TV.
Not sure: The menu. Yes, it would look better - but I'm not sure it's worth the work. I'm only using the menu for a few seconds a day - until I start a program, that is ;)

Okay, now, back to that flickering somebody was talking about:

Yes, a TV flickers if you have something on only one line.
Why? Well, that's easy:
Each frame on a TV consists of two fields.
First, Line 1, 3, 5, 7, 9, 11, 13, etc. gets drawn. That's the first field.
Than, Line 2, 4, 6, 8, 10, 12, etc. gets drawn. That's the second field.

TV (NTSC) has 30 frames per second, PAL has 25 frames per second.
As each frame has two fields, you have 60 (NTSC) or 50 (PAL) fields per seconds.

Using this effect, you get a very smooth TV picture, without any flickering, as you virtually see 50 (or 60) pictures per second - though these are only half pictures ;)

If you have something only on a single line on a TV, it starts flickering - because it only gets drawn 25 (30) times a second. If you use at least two lines (beneath each other, of course), it virtually gets drawn 50 (60) times a second.

That's also the reason for the scanlines on TV: If you have a fast movement, every second line is shifted (because of the movement) compared to the ones above and below.

So, why did they do that, you ask? Why is a frame on TV made up of two fields?
Easy: When the first TVs have been built, they weren't fast enough to draw a full picture in 1/50th (or 1/60th) second. So, they could've halfed the resolution (which would've looked ugly) - or use that trick: First, draw half of the picture, then the other half of it. So you have full resolution and it doesn't flicker too much.

PC Monitors (only tubes, of course) are fast enough, they don't need (nor use) fields anymore.

Geez, hope now some things become clearer.

Conclusion:
Highres would be cool for certain games or file explorers, but you need to be careful that the picture won't flicker :)
 
Back
Top