diff --git a/src/id/trace33.a b/src/id/trace33.a index e77fa67..dd5e53a 100755 --- a/src/id/trace33.a +++ b/src/id/trace33.a @@ -193,6 +193,22 @@ _Inspect1a dey bpl - ; +; Check for Micro Fun RWTS swapper (called from outside RWTS so +; we need to call it ourselves) ++ ldx jCallRWTS+2 + dex + txa + ldx #$61 + ldy #$0B + jsr CompareMemory + !byte $A9,$01 + !byte $8D,$00,$B9 + !byte $A9,$B5 + !byte $8D,$FC,$B8 + !byte $60 + bcs + + jsr $BC61 +; ; good to go ; + jmp ADStyle ; use this RWTS to read the disk diff --git a/src/mods/t00only.a b/src/mods/t00only.a index 2b9ac60..80f8d3d 100644 --- a/src/mods/t00only.a +++ b/src/mods/t00only.a @@ -91,6 +91,7 @@ AnalyzeT00 !source "../patchers/bb03.a" !source "../patchers/rwtsswap.a" !source "../patchers/rwtsswap2.a" + !source "../patchers/rwtsswapmicrofun.a" !source "../patchers/border.a" !source "../patchers/jmpae8e.a" !source "../patchers/jmpbbfe.a" @@ -106,6 +107,7 @@ AnalyzeT00 !source "../patchers/dos32.a" !source "../patchers/dos32dlm.a" !source "../patchers/microfun.a" + !source "../patchers/microfun2.a" !source "../patchers/panglosdos.a" !source "../patchers/rdos13.a" diff --git a/src/patchers/microfun2.a b/src/patchers/microfun2.a new file mode 100644 index 0000000..46d3f41 --- /dev/null +++ b/src/patchers/microfun2.a @@ -0,0 +1,24 @@ +;------------------------------- +; #MICROFUN2 +; RWTS jumps to $B6B8 to burn cycles during write +; +; tested on +; - Crown Of Arthain +;------------------------------- +!zone { + bit gMode ; nothing to do here in verify-only mode + bpl .exit + lda gIsRWTS ; if DOS 3.3-shaped RWTS + bne .exit + lda #$02 + ldx #$5E + ldy #$03 + jsr compare + !byte $4C,$B8,$B6 + bcs .exit + sta gDisplayBytes + ldy #$03 + jsr modify + !byte $20,$B8,$B8 +.exit +} diff --git a/src/patchers/rwtsswapmicrofun.a b/src/patchers/rwtsswapmicrofun.a new file mode 100644 index 0000000..db3a316 --- /dev/null +++ b/src/patchers/rwtsswapmicrofun.a @@ -0,0 +1,32 @@ +;------------------------------- +; #RWTSSWAPMICROFUN +; RWTS swappers at $BC56 and $BC61 +; +; Tested on +; - Crown of Arthain +;------------------------------- +!zone { + bit gMode ; nothing to do here in verify-only mode + bpl .exit + lda #$06 + ldx #$56 + ldy #$05 + jsr compare + !byte $A9,$00 + !byte $8D,$00,$B9 + bcs + + ldy #$01 + jsr modify + !byte $60 ++ + ldx #$61 + ldy #$05 + jsr compare + !byte $A9,$01 + !byte $8D,$00,$B9 + bcs .exit + ldy #$01 + jsr modify + !byte $60 +.exit +}