Jump to content
IGNORED

Viewable lines on NTSC?


Sdw

Recommended Posts

I am working on a small game, with versions both for PAL and NTSC.

Since I'm in PAL-land, that's what I use for real-HW testing.

Only using the "official" 192 lines of graphics leaves quite a lot of unused screen real estate on PAL, so I am trying to find a happy medium that shows at least some more lines on NTSC, but without losing too much on a normal TV.

Right now instead of the standard 3VSYNC+37+192+30 for NTSC I am now running 3VSYNC+33+209+17, which is showing OK in Stella.

Can someone who has developed and ran stuff on real consoles on NTSC TVs give any hint on how many lines you can see on an "average" TV?

Is 209 lines completely out of the question?

Link to comment
Share on other sites

Modern TVs are built to better specs than ones from the 70s when the VCS was released, so they can reliably show more picture. I've used a variety of sizes, up to 202 in Stay Frosty 2.

 

One thing you may consider is to create the PAL version as PAL60. That uses the PAL color palette with NTSC timing. One major benefit of this is you won't have to worry about objects moving at different speeds in PAL vs NTSC.

 

To make it easier to make 2 versions use constants in your project to denote PAL or NTSC, and also use constants for your color values. In Space Rocks I did this:

 

 

;----------------------------------------
; Constants 
;----------------------------------------
; COMPILE_VERSION
;       Set to NTSC or PAL to select display size and color constants
;----------------------------------------

NTSC            = 0
PAL             = 1
COMPILE_VERSION = NTSC
;COMPILE_VERSION = PAL

 IF COMPILE_VERSION = NTSC
 ; NTSC color values
GREY            = $00
YELLOW          = $10
ORANGE          = $20
RED             = $40
PURPLE          = $60
BLUE            = $80
CYAN            = $B0
GREEN           = $C0
WHITE           = $0F
 ELSE
 ; PAL color values
GREY            = $00
YELLOW          = $20
ORANGE          = $40
RED             = $60
PURPLE          = $C0
BLUE            = $D0
CYAN            = $70
GREEN           = $50
WHITE           = $0F
 ENDIF

Then anywhere I used color values I just added in the LUMA value like this:

MenuOptionTE:
    .byte GREEN + 8, BLUE + 8
    .byte GREEN +10, BLUE +10
    .byte GREEN +12, BLUE +12
    .byte GREEN +14, BLUE +14
    .byte GREEN +12, BLUE +12
    .byte GREEN +10, BLUE +10
    .byte GREEN + 8, BLUE + 8
Link to comment
Share on other sites

According to NTSC standard, at 60Hz there should be exactly 241.5 lines visible, but it depends on the TV settings. If the picture is not 100% correctly centered or displayed a bit too large, some lines will become invisible.

 

~220 lines should be save.

Link to comment
Share on other sites

Thank you for your input guys!

 

When it comes to PAL/NTSC, all my objects are using 16 bit coordinates, so I should be able to easily make the adjustments for 50/60Hz without going to PAL60.

 

I will go with my 209 line display for now, perhaps try to track down someone with a NTSC console and TV to test it for me.

Link to comment
Share on other sites

Your welcome!

 

Do note that increasing the viewable size of the NTSC display means you'll have that much less processing time per frame for game logic than the PAL version. This might pose a problem later on in development based on how complex your game becomes.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...