diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index d661977f1..1aa0c2629 100644 --- a/src/index/artwork.idx.a +++ b/src/index/artwork.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15432726 + !be24 15433238 !le16 5112 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index 054fd7ec8..cad9c6177 100644 --- a/src/index/attract.idx.a +++ b/src/index/attract.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15378117 + !be24 15378629 !le16 5695 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index 4d13ec0f7..645829914 100644 --- a/src/index/cache00.idx.a +++ b/src/index/cache00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15311290 + !be24 15311802 !le16 4033 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index 3d03cee79..cf72c021a 100644 --- a/src/index/cache01.idx.a +++ b/src/index/cache01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15325472 + !be24 15325984 !le16 4473 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index cd193cd55..0cc7d8b6f 100644 --- a/src/index/cache10.idx.a +++ b/src/index/cache10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15343575 + !be24 15344087 !le16 5830 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 0cd82ff23..b12cf876a 100644 --- a/src/index/cache11.idx.a +++ b/src/index/cache11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15364359 + !be24 15364871 !le16 6429 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index b3bdcee5b..1142d99be 100644 --- a/src/index/coverfade.idx.a +++ b/src/index/coverfade.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15437838 + !be24 15438350 !le16 410 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index 9a5d46d3c..4e6ddd47d 100644 --- a/src/index/credits.idx.a +++ b/src/index/credits.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15438592 + !be24 15439104 !le16 450 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 94cf7c1a6..421fe9f91 100644 --- a/src/index/decrunch.idx.a +++ b/src/index/decrunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15439042 + !be24 15439554 !le16 303 diff --git a/src/index/demo.idx.a b/src/index/demo.idx.a index 20c509de8..5b5d11000 100644 --- a/src/index/demo.idx.a +++ b/src/index/demo.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 12287811 + !be24 12288323 !le16 1652 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index 41660e144..99fac9128 100644 --- a/src/index/dfx.idx.a +++ b/src/index/dfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15386452 + !be24 15386964 !le16 1640 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index dc12b409c..6e62cc118 100644 --- a/src/index/dgr.fizzle.idx.a +++ b/src/index/dgr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15438324 + !be24 15438836 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index bfd8bdcf1..3a7f9aa5b 100644 --- a/src/index/dgr.idx.a +++ b/src/index/dgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15432667 + !be24 15433179 !le16 59 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index 19fbb50bf..221846e05 100644 --- a/src/index/dhgr.idx.a +++ b/src/index/dhgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15431123 + !be24 15431635 !le16 1426 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index a86ac3610..08e9510dd 100644 --- a/src/index/dtitle.idx.a +++ b/src/index/dtitle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15415357 + !be24 15415869 !le16 540 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index 91315ffc7..3f1065f4c 100644 --- a/src/index/fx.idx.a +++ b/src/index/fx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15383812 + !be24 15384324 !le16 2640 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index d703fbb5d..9e841e14e 100644 --- a/src/index/gamehelp.idx.a +++ b/src/index/gamehelp.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15388450 + !be24 15388962 !le16 7329 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index 0f1bfa6d2..a621f6b0f 100644 --- a/src/index/gr.fizzle.idx.a +++ b/src/index/gr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15438248 + !be24 15438760 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index 16232946a..4011799f8 100644 --- a/src/index/gr.idx.a +++ b/src/index/gr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15432549 + !be24 15433061 !le16 118 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index 201497c79..f84033e17 100644 --- a/src/index/helptext.idx.a +++ b/src/index/helptext.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15438391 + !be24 15438903 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index 479f6e8f7..8fbf3eeca 100644 --- a/src/index/hgr0.idx.a +++ b/src/index/hgr0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15415897 + !be24 15416409 !le16 4897 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index 451e96ed7..1a59dfc77 100644 --- a/src/index/hgr1.idx.a +++ b/src/index/hgr1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15420794 + !be24 15421306 !le16 1775 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index 467bda0d9..b68be1d30 100644 --- a/src/index/hgr2.idx.a +++ b/src/index/hgr2.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15422569 + !be24 15423081 !le16 1181 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index 6b6219a7c..a76197e8f 100644 --- a/src/index/hgr3.idx.a +++ b/src/index/hgr3.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15423750 + !be24 15424262 !le16 3421 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index 8f112bfdb..dd6436181 100644 --- a/src/index/hgr4.idx.a +++ b/src/index/hgr4.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15427171 + !be24 15427683 !le16 3359 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index af5cd1df2..5316968f3 100644 --- a/src/index/hgr5.idx.a +++ b/src/index/hgr5.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15430530 + !be24 15431042 !le16 479 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index 9fbda230b..922f4a57a 100644 --- a/src/index/hgr6.idx.a +++ b/src/index/hgr6.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15431009 + !be24 15431521 !le16 114 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index d0f34872e..8c5553838 100644 --- a/src/index/joystick.idx.a +++ b/src/index/joystick.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15439345 + !be24 15439857 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index 3f6ccdc1f..68099c47b 100644 --- a/src/index/miniattract0.idx.a +++ b/src/index/miniattract0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15401153 + !be24 15401665 !le16 4933 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index 555302dd7..34594cf41 100644 --- a/src/index/miniattract1.idx.a +++ b/src/index/miniattract1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15406086 + !be24 15406598 !le16 2400 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index 241758d26..aef4bf12a 100644 --- a/src/index/prelaunch.idx.a +++ b/src/index/prelaunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15370788 + !be24 15371300 !le16 7329 diff --git a/src/index/res.cover.idx.a b/src/index/res.cover.idx.a index 81565138c..820fdbca6 100644 --- a/src/index/res.cover.idx.a +++ b/src/index/res.cover.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 4141056 + !be24 4141568 !le16 8192 diff --git a/src/index/res.help.idx.a b/src/index/res.help.idx.a index 173c10bff..3f049d035 100644 --- a/src/index/res.help.idx.a +++ b/src/index/res.help.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 4157440 + !be24 4157952 !le16 8192 diff --git a/src/index/res.title.idx.a b/src/index/res.title.idx.a index 22afff3ba..2713f2539 100644 --- a/src/index/res.title.idx.a +++ b/src/index/res.title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 4149248 + !be24 4149760 !le16 8192 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index 1e2057fc2..7217e1658 100644 --- a/src/index/search00.idx.a +++ b/src/index/search00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15302045 + !be24 15302557 !le16 9245 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index 1da22880f..1fdf6ecc9 100644 --- a/src/index/search01.idx.a +++ b/src/index/search01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15315323 + !be24 15315835 !le16 10149 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index acab3ce86..2fea67a05 100644 --- a/src/index/search10.idx.a +++ b/src/index/search10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15329945 + !be24 15330457 !le16 13630 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 5961b3b41..f32090b18 100644 --- a/src/index/search11.idx.a +++ b/src/index/search11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15349405 + !be24 15349917 !le16 14954 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index 2be0d0c34..34b1419f1 100644 --- a/src/index/sfx.idx.a +++ b/src/index/sfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15388092 + !be24 15388604 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index 01db0bdca..b508baafc 100644 --- a/src/index/slideshow.idx.a +++ b/src/index/slideshow.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15395779 + !be24 15396291 !le16 5374 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index c5759dc8f..9f8213f4e 100644 --- a/src/index/title.idx.a +++ b/src/index/title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15408486 + !be24 15408998 !le16 6871 diff --git a/src/index/xsingle.idx.a b/src/index/xsingle.idx.a index 5801803a8..79d83f655 100644 --- a/src/index/xsingle.idx.a +++ b/src/index/xsingle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 15297841 + !be24 15298353 !le16 4204 diff --git a/src/prelaunch/flapple.bird.a b/src/prelaunch/flapple.bird.a index fcc8885ee..fe021bcd4 100644 --- a/src/prelaunch/flapple.bird.a +++ b/src/prelaunch/flapple.bird.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020, 2022 by Frank M., qkumba +;(c) 2020, 2022, 2023 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/FLAPPLE.BIRD",plain @@ -7,8 +7,7 @@ !source "src/prelaunch/common.a" - +READ_RAM2_NO_WRITE - jsr EnableAccelerator + +ENABLE_ACCEL lda #$60 sta $813 jsr $800 @@ -20,8 +19,27 @@ @good_vbl +DISABLE_ACCEL + lda $fbb3 + cmp #$6 + bne @not_mac + lda $fbc0 + cmp #$e0 + bne @not_mac + lda $fbdd + cmp #$02 + bne @not_mac + +READ_RAM2_WRITE_RAM2 + +LOAD_FILE_AT flapple_mac, $b000 + jsr $b000 + +READ_ROM_NO_WRITE + +@not_mac jmp $2000 +flapple_mac + !byte 21 + !text "PRELAUNCH/FLAPPLE.MAC" + !if * > $1C0 { !error "code is too large, ends at ", * } diff --git a/src/prelaunch/flapple.mac.a b/src/prelaunch/flapple.mac.a new file mode 100644 index 000000000..a3fa851d7 --- /dev/null +++ b/src/prelaunch/flapple.mac.a @@ -0,0 +1,290 @@ +;license:MIT +;(c) 2023 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/FLAPPLE.MAC",plain +*=$b000 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + lda #$CD ; disable palette switch + sta $26C9 + sta $270F + sta $2755 + sta $279B + sta $2AAB + sta $2B19 + + lda #$6c ; fix title screen + sta $00 + lda #$30 + sta $01 + ldx #$16 + ldy #$21 + lda #$11 + jsr @swap_palette + + lda #$18 + sta $00 + lda #$36 + sta $01 + ldx #6 + ldy #$18 + lda #$11 + jsr @swap_palette + + lda #$38 + sta $00 + lda #$37 + sta $01 + ldx #6 + ldy #6 + lda #$22 + jsr @swap_palette + + lda #$80 + sta $00 + lda #$37 + sta $01 + ldx #6 + ldy #$13 + lda #$22 + jsr @swap_palette + + lda #$64 + sta $00 + lda #$38 + sta $01 + ldx #6 + ldy #3 + lda #$11 + jsr @swap_palette + + lda #$88 + sta $00 + lda #$38 + sta $01 + ldx #3 + ldy #3 + lda #$11 + jsr @swap_palette + + lda #$ae ; fix high score + sta $00 + lda #$38 + sta $01 + ldx #2 + ldy #$3 + lda #$11 + jsr @swap_palette + + lda #$d2 ; fix high score + sta $00 + lda #$38 + sta $01 + ldx #2 + ldy #3 + lda #$11 + jsr @swap_palette + + ldx #$BD ; fix pipe + ldy #$3A + jsr @swap_palette2 + + ldx #$67 ; fix bird sprite + ldy #$47 + jsr @swap_palette1 + + ldx #$C1 ; fix bird sprite + ldy #$47 + jsr @swap_palette1 + + ldx #$1B ; fix bird sprite + ldy #$48 + jsr @swap_palette1 + + ldx #$93 ; fix bird sprite + ldy #$48 + jsr @swap_palette1 + + lda #$55 + sta $3BFC + sta $3D22 + sta $3DE7 + sta $3E4D + sta $3E7F + sta $40C4 + sta $41B6 + sta $4328 + lda #$E5 + sta $3C07 + sta $3C18 + sta $3D9F + sta $3E8E + sta $3EA3 + sta $4064 + sta $4196 + sta $41AB + sta $4386 + lda #$5E + sta $3C0D + sta $3DA5 + sta $3E94 + sta $406A + sta $419C + sta $438C + lda #$C5 + sta $3C1F + sta $3C30 + sta $3DAC + sta $3DBD + sta $3EAE + sta $3EC3 + sta $4075 + sta $408A + sta $4167 + sta $417C + sta $4357 + sta $436C + lda #$5C + sta $3C25 + sta $3C3B + sta $3DB2 + sta $3DC8 + sta $3EB4 + sta $3ED2 + sta $407B + sta $4099 + sta $416D + sta $418B + sta $435D + sta $437B + lda #$45 + sta $3C42 + sta $3DCF + sta $3DE0 + sta $3EDD + sta $40A4 + sta $40B9 + sta $4156 + sta $4337 + sta $434C + lda #$54 + sta $3C48 + sta $3DD5 + sta $3EE3 + sta $40AA + sta $415C + sta $433D + lda #$77 + sta $3C4F + sta $3D27 + sta $3E67 + sta $3EEE + sta $4147 + sta $49BF + sta $4AEA + lda #$EE + sta $3D0D + sta $3E52 + lda #$CC + sta $3D12 + sta $3E5A + lda #$44 + sta $3D1A + sta $3E62 + + lda #$27 + sta $2971 + lda #$4C + sta $29B8 + lda #<@callback + sta $29B9 + lda #>@callback + sta $29BA + + rts + +@callback + lda #$3f + jmp $fca8 + +@swap_palette2 + stx $00 + sty $01 + ldx #1 + ldy #$0f + bne + + +@swap_palette1 + stx $00 + sty $01 + ldx #4 + ldy #5 ++ lda #0 + +@swap_palette + sta @patch5 + 1 + pha + and #$f0 + sta @patch3 + 1 + pla + and #$0f + sta @patch4 + 1 + tya + sta @patch1 + 1 + asl + tay + dey + sty @patch2 + 1 +-- ldy #0 +- lda ($00), y +@patch5 + cmp #$d1 ; SMC + beq ++ + and #$f0 +@patch3 + cmp #$d1 ; SMC + beq + + lda ($00), y + lsr + lsr + lsr + lsr + eor ($00), y + and #$0f + eor ($00), y + asl ++ and #$f0 + sta $02 + lda ($00), y + and #$0f +@patch4 + cmp #$d1 ; SMC + beq + + lda ($00), y + lsr + lsr + lsr + lsr + lda ($00), y + rol + and #$0f ++ ora $02 + sta $02 + lda $02 + sta ($00), y +++ iny +@patch1 + cpy #$d1 ; SMC + bcc - + lda $00 +@patch2 + adc #$d1 ; SMC + sta $00 + bcc + + inc $01 ++ dex + bne -- + rts