21 September 2021, 00:40 | #1 |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,604
|
Max OCS overscan on NTSC?
The question is only about the start and end scanline. Only vertical.
Black HRM falls short, and max values for DIW just say "$00-$ff". D'oh. Looking to add a note to this. In this, I need the help of US asm coders I think to make it right. First valid scanline in NTSC is $13 as per my sprite programming article. Last valid scanline should be 262 down from that, i.e. $119. (I.e. $118 is the last line where bitmap and sprite data can be displayed.) Is this a valid Copper list for NTSC max vertical overscan and if not, why not? Cheers. Code:
Copper: Copper: dc.w $1307,$fffe ;CWAIT VPOS 19 dc.w BPLCON0,$5200 ;display bitmap dc.w $ffdf,$fffe ;go beyond $f4... dc.w $18e1,$fffe dc.w COLOR00,$fff ;this should show on a ;good enough CRT and ;OCS/A1000 NTSC Denise? dc.w $ffff,$fffe ;end of copper list |
21 September 2021, 11:50 | #2 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,475
|
Total number of scanlines in NTSC is 262 for short frames and 263 for long frames.
So in interlace you have a total of 525 lines. In Amiga, long frames are normally used for progressive mode. The lines start counting from 0. The first visible is $14 (20), because $13 is used for first sprites DMA fetch (and it is still in vertical blank). The last 'usable' is $105 (261), because $106 (262) can only contain COLOR00 (excluding, if I'm not wrong, A1000 Agnus which can display it). This means that for a full vertical overscan you need to use: Code:
Copper: dc.w $008e,$1481 dc.w $0090,$06c1 dc.w BPLCON0,$5200 ;display bitmap dc.w $ffdf,$fffe dc.w $0607,$fffe dc.w COLOR00,$fff ;this show last line as white dc.w $ffff,$fffe ;end of copper list |
21 September 2021, 20:02 | #3 |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,604
|
Thx Ross, articles updated. I guess I was in a hurry, or I would have seen the other pages where HRM had the answers.
|
21 September 2021, 20:36 | #4 |
Registered User
Join Date: Oct 2017
Location: Sunderland, England
Posts: 2,702
|
@Photon
Just a small niggle regarding your article, it would read better if your copper list referenced the chip set registers. For example: Code:
dc.w $8e,$1b51 dc.w $90,$37d1 dc.w $92,$20 dc.w $94,$d8 dc.w $102,0 Code:
dc.w DIWSTRT,$1b51 dc.w DIWSTOP,$37d1 dc.w DDFSTRT,$20 dc.w DDFSTOP,$d8 dc.w BPLCON1,0 Great work and really nice site Graeme |
22 September 2021, 00:00 | #5 | |
Lemon. / Core Design
Join Date: Mar 2016
Location: Tier 5
Posts: 1,212
|
Quote:
Code:
dc.w DIWSTRT,$1b51 dc.w DIWSTOP,$37d1 dc.w DDFSTRT,$0020 dc.w DDFSTOP,$00d8 dc.w BPLCON1,$0000 |
|
22 September 2021, 11:01 | #6 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,475
|
Just some clarifications regarding the maximum overscan for PAL (the horizontal part is also valid for NTSC).
All the values that I report are seen from the Amiga side, that is the real pixels that it can actually emit as valid values outside the horizontal and vertical blanking. These are values relating to the hardwired modes in ECS and AGA cases, the only ones possible in the OCS case. The receiving device may or may not display them all, certainly no more. I rewrite it the same way I wrote the one for NTSC, so I can copy/paste Total number of scanlines in PAL is 312 for short frames and 313 for long frames. So in interlace you have a total of 625 lines. In Amiga, long frames are normally used for progressive mode. The lines start counting from 0. The first visible is $1a (26), because $19 (25) is used for first sprites DMA fetch (and it is still in vertical blank). The last 'usable' is $137 (311), because $138 (312) can only contain COLOR00. This allows a maximum of 286 vertical lines with valid data. For a full vertical overscan you need to use: Code:
dc.w DIWSTRT,$1a5c dc.w DIWSTOP,$38c8 (*) dc.w BPLCON0,$5200 ;display bitmap dc.w $ffdf,$fffe dc.w $3807,$fffe dc.w COLOR00,$fff ;this show last line as white dc.w $ffff,$fffe ;end of copper list (*) this would imply using values for DIWSTOP=$38d4 and $38d5 respectively but the Denise/Lisa counter can only reach the position h_stop=$1c7 (as the last counter matched position). This means that any greater value is valid because it does not 'close' the border; this is why I used the $38c8 value. Expect side effects regarding scrolling and sprites for those positions, to avoid them use a value of $xxc7. If you have followed me up to here I summarize the maximum lo-res resolutions: 376x286 in OCS (377x286 in ECS/AGA). |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
NTSC Compatible/f NTSC Version of Jimmy White's Whirlwind Snooker? | tpgb12 | request.Old Rare Games | 1 | 05 August 2023 16:23 |
Damaged Mousepointer scrolling right on LowRes Overscan OCS | PeterK | support.WinUAE | 3 | 15 October 2018 18:19 |
Issues running James Pond 2 OCS-ECS on NTSC A500 | grhmhome | support.Games | 4 | 09 February 2015 07:26 |
Overscan | john4p | support.Hardware | 17 | 15 April 2010 12:05 |
NTSC A500 Pal/NTSC mod pics | kipper2k | Hardware pics | 2 | 29 March 2009 07:56 |
|
|