Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Productions > PAL/NTSC detect
2003-01-29 18:35
Dr. Jay
Account closed

Registered: Jan 2003
Posts: 32
PAL/NTSC detect

Just wanted to share a quick routine that detects PAL/NTSC WITHOUT using interrupts or latches.

;pal/NTSC detect - 0 = PAL, non-zero = NTSC

palntsc
sei ; disable interrupts
wait
lda $d012
bne wait ; wait for rasterline 0 or 256
wait1
lda $d011 ; Is rasterbeam in the area
bpl wait1 ; 0-255? if yes, wait
wait2
ldy #$00
synch1 lda $d012
cmp #$37 ; top PAL rasterline
bne synch1
lda $d012 ; if next is 0, then PAL
synch2 cmp $d012
beq synch2
lda $d012
cli ; enable interrupts
rts ; return
 
... 67 posts hidden. Click here to view all posts....
 
2010-10-02 09:36
Graham
Account closed

Registered: Dec 2002
Posts: 990
BCC should have been BMI
2010-10-02 10:05
Frantic

Registered: Mar 2003
Posts: 1647
I added TLR's and Graham's routines to codebase (the PAL/NTSC detect page) (and changed bcc to bmi).

//FTC
2010-10-02 12:13
Graham
Account closed

Registered: Dec 2002
Posts: 990
Slight improvement would be:

w0  LDA $D012
w1  CMP $D012
    BEQ w1
    BMI w0
    AND #$03

#$03 -> 312 rasterlines
#$02 -> 263 rasterlines
#$01 -> 262 rasterlines
2010-10-02 13:55
Moloch

Registered: Jan 2002
Posts: 2925
Ancient thread brought back to life, but certainly some excellent examples recently posted. Will work nicely for my NTSC/PAL detection needs, thanks!
2016-09-28 19:13
Sokrates

Registered: Jun 2014
Posts: 7
Enhanced version to differ between PAL and PAL-N. First count rasterlines, then count cycles.

    LDX #$00
w0  LDA $D012
w1  CMP $D012
    BEQ w1
    BMI w0
    AND #$03
    CMP #$03
    BNE detectionDone ; done for NTSC
    TAY
countCycles
    INX
    LDA $D012
    BPL countCycles
    CPX #$5E  ; VICE values: PAL-N=$6C PAL=$50
	      ; so choose middle value $5E for check 
    BCC isPAL
    INY ; is PAL-N
isPAL
    TYA
detectionDone
    ...

Results in the accumulator:
#$01: 262 rasterlines and 64 cycles per line [NTSC: 6567R56A VIC] (OLD NTSC)
#$02: 263 rasterlines and 65 cycles per line [NTSC: 6567R8 VIC]
#$03: 312 rasterlines and 63 cycles per line [PAL: 6569 VIC]
#$04: 312 rasterlines and 65 cycles per line [Drean PAL-N: 6572 VIC]
2016-09-28 21:09
Count Zero

Registered: Jan 2003
Posts: 1927
Saw your edit on codebase - thanks for that!

Wonder whenever some special fix becomes drean-only or such. Those few more cycles likely only add advantage on calculations for some games, hm?
2016-09-29 02:08
TWW

Registered: Jul 2009
Posts: 545
Another version:

    .pseudocommand VSync {
        bit $d011
        bpl *-3
        bit $d011
        bmi *-3
    }

    lda #$ff
    sta $dc04
    sta $dc05  // Latch #$ffff to Timer A
    :VSync
    ldx #%00011001
    stx $dc0e  // Start Timer A (One shot mode (Timer stops automatically when underflow))
    :VSync
    sec
    sbc $dc05  // Hibyte number of counter
    and #%00000011


A now contains the video system as follows:

#0 - NTSC1
#1 - DREAN
#2 - PAL
#3 - NTSC2

Edit: Rectified bug.
2016-09-29 19:58
Sokrates

Registered: Jun 2014
Posts: 7
Quote: Saw your edit on codebase - thanks for that!

Wonder whenever some special fix becomes drean-only or such. Those few more cycles likely only add advantage on calculations for some games, hm?


Does anyone know about games/demos using the extra cycles of the drean?

My interest was only to have stable rasterlines for all VIC types. Just to be complete.

@TWW: I found your webpage about this topic after you post :-)
2016-09-30 23:13
Peiselulli

Registered: Oct 2006
Posts: 81
The module version of Spike+Minestorm have a drean detection and support it, also Jars Revenge ...
2016-10-01 01:02
Fungus

Registered: Sep 2002
Posts: 680
already discussed here a couple years ago detecting pal, drean, ntsc or old ntsc
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
EALL/HT
GeirS
Codey/Second Dimension
psych
algorithm
Guinea_pig/Moonshine
Rebok/BOOM!/Tropyx
Guests online: 94
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Mojo  (9.6)
6 The Demo Coder  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Wonderland XIV  (9.6)
10 Comaland 100%  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Party Elk 2  (9.6)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.6)
5 Libertongo  (9.5)
6 Rainbow Connection  (9.5)
7 Onscreen 5k  (9.5)
8 Morph  (9.5)
9 Dawnfall V1.1  (9.5)
10 It's More Fun to Com..  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Nostalgia  (9.3)
5 Triad  (9.2)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.043 sec.