remove gPossibleD5D5F7 flag as it's causing false negatives [fixes Picture Perfect 1987]

This commit is contained in:
4am 2023-09-04 23:34:49 -04:00
parent 11f2ef57d6
commit 6bf634274f
7 changed files with 6 additions and 58 deletions

View File

@ -192,10 +192,6 @@ FIRSTFILTER
!byte FALSE ; 0=true, 1=false
; reset before each operation
; set in IDBootloader() after reading T00,S00
;gPossibleD5D5F7
!byte FALSE ; 0=true, 1=false
; reset before each operation
; set in IDBootloader() after reading T00,S00
;gIsOptimum
!byte FALSE ; 0=true, 1=false
; reset before each operation

View File

@ -158,8 +158,7 @@ gIsDavidDOS = gIsProtDOS-$01 ; byte
gIsEA = gIsDavidDOS-$01 ; byte
gPossibleGamco = gIsEA-$01 ; byte
gIsOptimum = gPossibleGamco-$01 ; byte
gPossibleD5D5F7 = gIsOptimum-$01 ; byte
gIs8b3 = gPossibleD5D5F7-$01 ; byte
gIs8b3 = gIsOptimum-$01 ; byte
gIsMilliken1 = gIs8b3-$01 ; byte
gAdventureInternational = gIsMilliken1-$01 ; byte
gIsLaureate = gAdventureInternational-$01 ; byte
@ -272,7 +271,6 @@ ConstructStandardDelivery = jConstructStandardDelivery
!warn "gPossibleGamco=",gPossibleGamco
!warn "gIsOptimum=",gIsOptimum
!warn "gMECCFastloadType=",gMECCFastloadType
!warn "gPossibleD5D5F7=",gPossibleD5D5F7
!warn "gIs8b3=",gIs8b3
!warn "gIsMilliken1=",gIsMilliken1
!warn "gAdventureInternational=",gAdventureInternational

View File

@ -1,33 +0,0 @@
;-------------------------------
; IDD5D5F7
; Identify specific version of DOS 3.3 bootloader
; shared by all disks that use the D5D5F7 check.
; Note: this detection pattern makes no logical
; sense; it just happens to be a useful filter for
; the D5D5F7 patcher to use later. It filters out
; about 2/3 of disks on which I've never seen a
; D5D5F7 protection check, so we can save time by
; not doing full-track searches on those disks.
;
; in: $0800..$08FF contains T00,S00
; IDDOS33 returned success
; A = 0
; out: A = 0
; Y preserved
; all other flags and registers clobbered
;-------------------------------
!macro IDD5D5F7 {
ldx #$08
cpx $08F2
beq @d5yes ; passport-test-suite/Trivia Fever (BB03 variant 3).woz [Z=1] matches
cpx $084C
bne @d5no
ldx $08B0
cpx #$B6
bne @d5no
ldx $08D0
cpx #$20
bne @d5no
@d5yes sta gPossibleD5D5F7 ; passport-test-suite/RoboMath.woz [Z=1] matches
@d5no
}

View File

@ -99,12 +99,6 @@ IDBootloader
bcs .notdos33
sta gIsBoot0 ; A = 0 (TRUE)
;
; Try to identify specific DOS 3.3-shaped bootloader
; that may imply a D5D5F7 whole-track protection.
; (in A=0; out A=0)
;
+IDD5D5F7
;
; Try to identify Diversi-DOS
; (in A=0; out A=0)
;

View File

@ -65,7 +65,6 @@ NonRelocatable
!source "id/quickdos.a"
!source "id/diversidos.a"
!source "id/prontodos.a"
!source "id/d5d5f7.a"
!source "id/laureate.a"
!source "id/micrograms.a"
!source "id/volumename.a"
@ -334,7 +333,7 @@ AnalyzeTrack
; only run these modules in crack mode
!source "patchers/universale7.a"
!source "patchers/c9ff.a"
!source "patchers/d5d5f7.a" ; gIsPascal || (gIsBoot0 && gPossibleD5D5F7) only
!source "patchers/d5d5f7.a" ; gIsPascal || gIsBoot0 only
!source "patchers/rwtsswapmecc.a" ; gMECCFastloadType || gPossibleMECCSwapper only
!source "patchers/meccdqc.a" ; gMECCFastloadType==1 && gT07 only
!source "patchers/rwtsswappenguin.a" ; T01 only

View File

@ -13,20 +13,14 @@
; RoboMath (Mindplay)
; NoteCard Maker (Pascal variant)
; Les Sports (DC Heath) - variant wrapped by PHA/PLAs
; Picture Perfect (1987) (Mindplay)
;-------------------------------
!zone {
;
; always run on Pascal disks
; only run on Pascal disks and DOS 3.3 disks
;
lda gIsPascal
;
; if DOS 3.3-shaped bootloader, only run if we found
; specific markers on T00,S00 earlier that are shared
; by all the samples I have that use this protection.
; (This filter is subject to revision if we find
; additional samples.)
;
and gPossibleD5D5F7
and gIsBoot0
bne .exit
ldy #$20
jsr SearchTrack

View File

@ -385,7 +385,7 @@ StringTableHigh ; must be kept in sync with constants in enid.a
.passport
!text "Passport ",$00
.header
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2023-09-03",$00
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2023-09-04",$00
.bar9
!text "_________",$00
.bar18