diff --git a/src/prelaunch/_FileInformation.txt b/src/prelaunch/_FileInformation.txt index dc6db68f4..d8b2180af 100644 --- a/src/prelaunch/_FileInformation.txt +++ b/src/prelaunch/_FileInformation.txt @@ -3,6 +3,7 @@ BERZAP.MB=Type(06),AuxType(0200),Access(C3) CAVRN.CHEAT=Type(06),AuxType(0200),Access(C3) CG.CHEAT=Type(06),AuxType(0300),Access(C3) +FLAK.MB=Type(06),AuxType(0200),Access(C3) KAMUNGAS.MB=Type(06),AuxType(0200),Access(C3) RESQ.RAIDERS.MB=Type(06),AuxType(0300),Access(C3) SITCRIT.CHEAT=Type(06),AuxType(BC00),Access(C3) diff --git a/src/prelaunch/flak.a b/src/prelaunch/flak.a index b32cb676d..7bcddb4bf 100644 --- a/src/prelaunch/flak.a +++ b/src/prelaunch/flak.a @@ -12,21 +12,14 @@ sta $6597 sta $6654 jsr $50C0 ; decompress - +DISABLE_ACCEL - jsr $800 ; title animation - +ENABLE_ACCEL - jsr $AAB3 ; decompress more - +READ_RAM2_NO_WRITE - lda MachineStatus - and #CHEATS_ENABLED - beq + - lda #$a5 - sta $1860 ; patch - don't decrease lives - sta $1E5C ; patch - don't increase lives -+ + +READ_RAM2_WRITE_RAM2 + +LOAD_FILE_AT flak_mb, $200 jsr DisableAccelerator - +READ_ROM_NO_WRITE - jmp $800 + jmp $200 + +flak_mb + !byte 17 + !text "PRELAUNCH/FLAK.MB" !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/flak.mb.a b/src/prelaunch/flak.mb.a new file mode 100644 index 000000000..295b50012 --- /dev/null +++ b/src/prelaunch/flak.mb.a @@ -0,0 +1,72 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/FLAK.MB",plain +*=$200 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +GET_MOCKINGBOARD_SLOT + php + pha + bcs yesmb1 + lda #$60 + sta $B95 + sta $BC1 + sta $BE2 + sta $BEE + sta $C0A + sta $C76 + sta $D00 + bcc nomb1 + +pages !byte 3 +yesmb1 + ldy #$99 +base1 ldx $B00,Y ;find #$C4s + cpx #$C4 + bne + +base2 sta $B00,Y ;Replace #$C4 with detected slot ++ iny + bne base1 + inc base1+2 + inc base2+2 + dec pages + bne base1 + +nomb1 + +DISABLE_ACCEL + jsr $800 ; title animation + +ENABLE_ACCEL + jsr $AAB3 ; decompress more + pla + plp + bcs yesmb2 + lda #$60 + sta $1E01 + sta $1E2D + bcc nomb2 + +yesmb2 + ldy #5 +- ldx $1E00,Y ;find #$C4s + cpx #$C4 + bne + + sta $1E00,Y ;Replace #$C4 with detected slot ++ iny + bne - + +nomb2 + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$a5 + sta $1860 ; patch - don't decrease lives + sta $1E5C ; patch - don't increase lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE + jmp $800