Ever wonder why the tv-out of your favorite game console looks great and the tv-out of your pc's video card looks like ---meadow muffin---? The answer is overscanning. Tvs are designed to have some throw-away screen space due to thier roundness. Your video card, by default tries to squish the same pixels inside the visible area (so stuff like the start menu doesn't get cut-off) and down-sampling results, which results in a fussy pic oveall, nasty picture quality.
(Note when I say "tv-out" I mean either composite, svid or component, this will improve quality dramatically for all three).
1. Activating it.
Overscan is available on nearly every video video card, it's just usually not shown in the options due to how inflexible it is (we'll get to that later). Usually a simple tweak of the registry will get it working (do a google search for your card). A noteable exception is radeon cards.... the catalyst drivers have a "video mode" option for tvs, which is really overscan.
Your best picture will probably come from 720x480 overscanned (native ntsc) or 640x480 overscanned.
2. Tweaks to make it useable.
Assuming you figured how to set it, you'll notice that as-is the display it outputs is quite crisp, probably more-so than you thought possible with tv out. You'll also notice that, unfortunately, the display is quite unuseable as well.... so much of the screen is cut-off that you can't see the start menu as well as the edges of the desktop.
At the desktop level, there isn't much we can do about this, but at the emu software level, we can.
First you need to fix your front-end..... if it's not skinnable then you are sol, otherwise it is easy. Start adding a border to your background image in you favorite image editor. Keep trying your fe and tweaking the size/position of the border until your actual background image fills the over-scanned screen and the border you made is the part drawn off-screen. Now open up the skinner and adjust all the elements to fit in your useable background area. Fe developers should actually look into making this an option though. (I am).
Now what about mame? Well, it's slightly more complicated.
3. The great mame hack:
Ever notice how if mame has artwork turned on and a bezel is used it automatically skrinks the gameplay area? Yeah I think you are catching on.
First thing we do is make a "null" bezel. By "null" I mean a png that is completely transparent. Make it on the small size to save resources when you are playing mame. Next make a test folder for the game of your choice in your artwork folder, named after the rom of the game (we'll use arkanoid for our example).
place your null.png in there. Now we want to make a ".art" file, also named after the rom in that folder.
The art file should look something like this:
=========================================
file = null.png
layer = bezel
priority = -1
visible = 1
alpha = 255
brightness = .75
position = -.05,-.05,1.05,1.05
============================================
Notice the position... I've made the top/left corner -5% of the gameplay area and the bottom/right corner +%5 of the gameplay area. This means the gameplay area will be shrunk 10% to make room for our fake bezel, and thus the gameplay area is within the visible area of our over-scanned display again! If you want to turn it off, simply use the "artwork_crop" option.
Of course, your settings are probably going to be different, as different tvs/input methods have diferent amounts of overscan, bt you get the idea.
The bad news is you'll have to copy this folder for EVERY game you wish to play. Also that art file in the folder.... It has to be named after the rom or it doesn't work. This is easy enough to do with a batch file though do it's not too bad.
4. Limitations:
We'll I've shown you how to make this work with your fe and mame... unfortunately it is pretty impossible to do it with anything else.
The ideal solution would be for our video card drivers to be hacked/modified so that you can set the visible area lower than the screen resolution and have it centered (like you could do with older lcd panels). I know we have some guys in the forums that work for ati/nvidia so if you are listening any advice would be appreciated.