| |
Peiselulli
Registered: Oct 2006 Posts: 81 |
detecting pal, drean, ntsc or old ntsc
Hello,
I want to know if a test like this is reliable for the four different machine types PAL, NTSC, NTSC(old) and DREAN (ACME source code):
OLD_NTSC = 1
NTSC = 0
PAL = 2
DREAN = 3
!to "detect.prg",cbm
!cpu 6510
* = $0801
!by $0b,$08,$00,$00,$9e,$32,$30,$36,$31,$00,$00,$00
detect: sei
w0: lda $d012
w1: cmp $d012
beq w1
bmi w0
and #$03
cmp #$01
bne w2
lda #OLD_NTSC
bne detected ; unconditional
w2: cmp #$03
lda #$00
rol
beq detected ;ntsc
;check for drean or pal
ldx #$00
lda #$10
l inx
cmp $d012
bne l
lda #PAL
cpx #$70
bcc detected
;is a drean
lda #DREAN
detected:
tay
lax offset,y
l2: lda base_text,x
beq end
jsr $ffd2
inx
bne l2
end: lda #$0d
jmp $ffd2
base_text:
old_ntsc_text: !text "OLD "
ntsc_text: !text "NTSC",0
pal_text: !text "PAL",0
drean_text: !text "DREAN",0
offset:
!byte ntsc_text-base_text
!byte old_ntsc_text-base_text
!byte pal_text-base_text
!byte drean_text-base_text
|
|
... 63 posts hidden. Click here to view all posts.... |
| |
Knight Rider
Registered: Mar 2005 Posts: 131 |
Results submited by PM |
| |
hedning
Registered: Mar 2009 Posts: 4720 |
Yup. Sent 4 screenshots from 4 machines as well. |
| |
Frantic
Registered: Mar 2003 Posts: 1646 |
It is good to hear that you are sending lots of messages to each other. ;) Now I am also curious to hear if the routine seemed to work well or not? :) |
| |
hedning
Registered: Mar 2009 Posts: 4720 |
Quote: It is good to hear that you are sending lots of messages to each other. ;) Now I am also curious to hear if the routine seemed to work well or not? :)
I can send you a Pm too. :D |
| |
Frantic
Registered: Mar 2003 Posts: 1646 |
Thanks for the offer, but on careful consideration I have come to the conclusion that I am primarily interested to hear if the aforementioned routine seemed to work well or not. Does that constitute a type of information that you would be willing to share, publicly, in a forum discussion thread like the present one? |
| |
hedning
Registered: Mar 2009 Posts: 4720 |
Quote: Thanks for the offer, but on careful consideration I have come to the conclusion that I am primarily interested to hear if the aforementioned routine seemed to work well or not. Does that constitute a type of information that you would be willing to share, publicly, in a forum discussion thread like the present one?
Ah. No. I'll leave that to Copyfault. But I was was told my screenshots made him very happy. |
| |
Knight Rider
Registered: Mar 2005 Posts: 131 |
My videos produced the desired results on all 4 machines. |
| |
Copyfault
Registered: Dec 2001 Posts: 474 |
First of all: thanks to the testers!!! The routine behaves as it should on all tested real machines: in total 3 with new NTSC-VIC, one with old NTSC, two Drean-systems and two EU-PAL-systems (not counting my own system here).
So I think it's save to say the routine works. I just wrote up a (rather longish, sorry) explanation on codebase (-> yes, pswd has been found \o/).
Feel free to edit it or drop me a comment via pm if you think it should be changed/shortened/extended... |
| |
Knight Rider
Registered: Mar 2005 Posts: 131 |
I am sure the purists will argue that the SEI in the routine could lead to false results in some circumstances |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Really elegant! I might switch to that. Currently in Eye of the Beholder I use a timer and wait for a while, then check what raster line I'm on:
sei
lda #0
sta $d011
sta $dc0e
sta $dc0f
bit $d011
bpl *-3
bit $d011
bmi *-3
lda #$7f
sta $dc0d
bit $dc0d
lda #<(16384-1)
sta $dc04
lda #>(16384-1)
sta $dc05
lda #%10011001
bit $d011
bpl *-3
sta $dc0e
:lda $dc0d
beq :-
lda $d012
ldx #SYSTEM_PAL ;SYSTEM_UNKNOWN (default PAL and live with gfx glitches instead of total crash)
cmp #$cc
bne :+
ldx #SYSTEM_PAL
:
cmp #$f5
bne :+
ldx #SYSTEM_NTSC
:
cmp #$fa
bne :+
ldx #SYSTEM_NTSC_OLD
:
cmp #$c4
bne :+
ldx #SYSTEM_DREAN
:
stx system
|
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - Next |