auto-slot or disable MB in Flak

This commit is contained in:
Peter Ferrie 2022-08-29 11:01:01 -07:00
parent e3beb989b8
commit 6ad74fb591
3 changed files with 80 additions and 14 deletions

View File

@ -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)

View File

@ -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 ", *

72
src/prelaunch/flak.mb.a Normal file
View File

@ -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