;------------------------------- ; #BADEMU2 ; RWTS checks for timing bit by ; checking if data latch is still ; $D5 after waiting "too long" ; but this confuses legacy emulators ; (AppleWin, older versions of MAME) ; so we patch it for compatibility ; e.g. Dinosaur Days ;------------------------------- _bademu2 lda gIsRWTS ; if DOS 3.3 RWTS bne bademu2_exit lda #$03 ldx #$4F ldy #$11 jsr compare ; and T00,S03,$4F == !byte $BD,$8C,$C0,$10,$FB,$4A,$C9,$6A !byte $D0,$EF,$BD,$8C,$C0,$C9,$D5,$F0 !byte $12 bcs bademu2_exit lda #$03 ldx #$59 ldy #$02 jsr modify ; and set T00,S03,$59 = !byte $F0,05 bademu2_exit