Overscan again

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Overscan again
by on (#49878)
Sorry I know there have been many talks about overscan, but not in a dedicated thread, mostly it came out as a side-subject in scrolling threads.

So far I know that every TV can hide some parts of the rendered picture, be it left, right, top, bottom or corners.
I want to make sure which is the safe area that we can use to display important things.
Oh first I first read the wiki about that.

Horizontal oversan :
Visible range will vary from 0-251 to 0-255 for both PAL and NTSC (my TV is about 0-251 I think)

Vertical oversan :
Visible range is always 0-239 for PAL, I don't know how it can vary on NTSC. Reading the wiki I would say it varies between 8-231 to 12-235.

Games sensible to overscan :
- Castlevania 3 requires that there is no left overscan at all to see the "S" of "score", "P" of "Player", and the "E" of "Enemy". Note that the "S" is slightly cropped off on my TV cause it's the coorner, and the screen is slightly oval.
- Castlevania 3 requires that top overscan doesn't go past line 12 to show the status bar proprely in vertical scrolling sections.
- Final Fantasy 3 requires that top overscan doesn't go past line 9 to show the menu border correctly
- NeSnake 2 requires that top overscan doesn't go past line 8 to display status bar (probably risky IMO)
- Final Fantasy 3 requires that bottom overscan doesn't start before line 230 to show the menu and battle menu border correctly
- Rad Racer 2 requires verscan doesn't start before line 230 to show fully the status bar
- Many games will look better if there is right overscan when scrolling (SMB3 for example)
- Super C will look better when scrolling verticaally if there is top overscan down to line 12 instaed of the usual 8.

Most other games I've played were not overscan sensitive at all (they would look fine even with a lot of pixel cropped at all sides).

So my main question : Can I use lines 224-231 to display some important status bar text ? Rad Racer 2 does, but I'd like to be 100% sure.

by on (#49879)
A GBA running PocketNES has overscan. It hides 8 pixels on the left and 8 on the right. In scaled mode, it appears to hide 16 pixels on the top and 11 on the bottom. A DS running nesDS in correct NTSC pixel aspect ratio (8:7, represented as $E000 in the GUI) doesn't hide anything on the left and right, but it hides a total of 21 lines on the top and bottom.

Here's even more evidence that TVs hide more on the top: My Philips DVD recorder chops 2 or 3 lines off the top of the picture and adds 2 or 3 blank lines at the bottom. Sometimes I can even see garbage colors from rewriting the palette in one of these blank lines. The script that I use to convert DVD+RW has to shift the picture down 5 DVD lines (average 2.5 lines per field) to get NES line 32 to show up on AVI lines 64 and 65.

So based on what I've seen on various TVs and emulators, I'm using lines 24-31 for the status bar and lines 224-228 for the minimap in my own engine.

If you make the status bar readable even if it's partly cut off, that should help. For example a horizontal health bar can still be read even if the overscan cuts off half of it. And menu borders don't always need to be visible in order to interact with what's inside the border. Can you post a screenshot of the game (or a paint program mock-up of the screen layout) so that we can recommend changes?

by on (#49898)
Yes there is a lot of overscan in PocketNES and nesDS if you don't want the graphics to be ugly distorted. Altough I don't design my game specifically for those (else I'd be writing a GBA/DS game).
Quote:

If you make the status bar readable even if it's partly cut off, that should help. For example a horizontal health bar can still be read even if the overscan cuts off half of it. And menu borders don't always need to be visible in order to interact with what's inside the border. Can you post a screenshot of the game (or a paint program mock-up of the screen layout) so that we can recommend changes?

Yes should help. Yes I can post a screenshot. Here you are how it looks currently :
Image
The status bar is at the top, and takes lines 16-39. However, when an boss comes up I want his lifebar to show as well and there is no room exept at lines 8-16 which can be overscan. So I think I'd move it at the bottom like that :
Image
That way looks better in my opinion as I have a large black band between the field and the status bar (note that the font would be shifted up 1 px too). Nothing is usually overscan before 230 (else the gameplay of Rad Racer 2 is altered), so in other words if a TV can run RR2 proprely then it will on my game.

Your idea to have some satus info at both at top & bottom looks very good, but it needs two split points which can get a little tricky without a MMC3.[/img]

by on (#49912)
It all depends on whether your TV cuts off the top or cuts off the bottom. My TVs always cut off the top, and left the entire bottom visible, including a little bit of Vblank.
Super Mario 3 played it safe, and stuck the status bar at scanline 192, leaving the bottom 16 scanlines black.

by on (#49918)
The first mock-up, as it would show up in PocketNES:
Image

The second mock-up, as it would show up in PocketNES:
Image

Move lives next to health, reduce "ATT" and "DEF" to sword and shield icons, and now the status bar is just 2 rows:
Image

by on (#49921)
Well I don't design the game specifically to be played on pocket NES.

And man you are really great at making status bars ! I may make it look like you say so I'm sure there is no overscan. I dedicate tepples doctor in status bars :wink:

Now I can trhow away my "UpdateBottomStatusBar" and "UpdataTopStatusBar" routines and rewrite a brand new "UploadStatusBar" :)
Altough I don't know if I'll do it because 2 lines looks a bit skinny. Since most TVs seems to show either lines 8-231, or lower than that, I should be safe placing attack and defense power arround lines 222-230