Random splasch on start

Only if compiled for Cart
This commit is contained in:
Pecusx
2023-07-28 12:45:24 +02:00
parent 8a3cc57687
commit d60284a6ff
4 changed files with 60 additions and 61 deletions
+44 -58
View File
@@ -10,61 +10,55 @@
; --- dmsc LZSS player routine on zero page ; --- dmsc LZSS player routine on zero page
org $80 org $80
chn_copy .ds 9 /* chn_copy .ds 9
chn_pos .ds 9 chn_pos .ds 9
bptr .ds 2 bptr .ds 2
cur_pos .ds 1 cur_pos .ds 1
chn_bits .ds 1 chn_bits .ds 1
bit_data .ds 1 bit_data .ds 1 */
org $00 org $00
fcnt .ds 2 /* fcnt .ds 2
fadr .ds 2 fadr .ds 2
fhlp .ds 2 fhlp .ds 2
cloc .ds 1 cloc .ds 1
regA .ds 1 regA .ds 1
regX .ds 1 regX .ds 1
regY .ds 1 regY .ds 1 */
WIDTH = 40
HEIGHT = 30
; --- BASIC switch OFF ; --- BASIC switch OFF
org $2000\ mva #$ff portb\ rts\ ini $2000 org $2000\ mva #$ff portb\ rts\ ini $2000
; --- MAIN PROGRAM ; --- MAIN PROGRAM
org $2000 org $2000
ant dta $C2,a(scr) ant1 dta $C2,a(scr1)
dta $02,$82,$02,$02,$82,$02,$82,$02,$82,$02,$02,$02,$82,$02,$82,$82 dta $02,$82,$02,$02,$82,$02,$82,$02,$82,$02,$02,$02,$82,$02,$82,$82
dta $02,$02,$82,$02,$02,$82,$02,$02,$82,$82,$02,$82,$22 dta $02,$02,$82,$02,$02,$82,$02,$02,$82,$82,$02,$82,$22
;dta $42,a(verline) ;dta $42,a(verline)
dta $41,a(ant) dta $41,a(ant1)
;verline ;verline
; :37 dta d" " ; :37 dta d" "
; dta build ; dta build
scr ins "Scorch50.scr" scr1 ins "Scorch50.scr"
.ds 0*40 .ds 0*40
.ALIGN $0400 .ALIGN $0400
fnt ins "Scorch50.fnt" fnt1 ins "Scorch50.fnt"
ift USESPRITES
.ALIGN $0800 .ALIGN $0800
pmg .ds $0300 pmg1 .ds $0300
ift FADECHR = 0 SPRITES1
SPRITES
els
.ds $500
eif
eif
main
main1
lda SplashTypeFlag
bpl old_splash
rts
old_splash
jsr init_song jsr init_song
; ; copy system font to $a000 ; ; copy system font to $a000
@@ -82,10 +76,8 @@ main
; --- init PMG ; --- init PMG
ift USESPRITES mva >pmg1 pmbase ;missiles and players data address
mva >pmg pmbase ;missiles and players data address
mva #$03 GRACTL ;enable players and missiles mva #$03 GRACTL ;enable players and missiles
eif
lda:cmp:req $14 ;wait 1 frame lda:cmp:req $14 ;wait 1 frame
@@ -115,22 +107,23 @@ main
mva #$c0 nmien ;switch on NMI+DLI again mva #$c0 nmien ;switch on NMI+DLI again
_lp lda trig0 ; FIRE #0 ;_stp jmp _stp
beq stop _lp1 lda trig0 ; FIRE #0
beq stop1
lda trig1 ; FIRE #1 lda trig1 ; FIRE #1
beq stop beq stop1
lda consol ; START lda consol ; START
and #1 and #1
beq stop beq stop1
lda skctl lda skctl
and #$04 and #$04
bne _lp ;wait to press any key; here you can put any own routine bne _lp1 ;wait to press any key; here you can put any own routine
stop stop1
cli cli
vmain sysvbv,6 vmain sysvbv,6
@@ -180,14 +173,14 @@ c9 lda #$14
dli2 dli2
sta regA sta regA
lda >fnt+$400*$01 lda >fnt1+$400*$01
sta wsync ;line=24 sta wsync ;line=24
sta chbase sta chbase
DLINEW dli3 1 0 0 DLINEW dli3 1 0 0
dli3 dli3
sta regA sta regA
lda >fnt+$400*$02 lda >fnt1+$400*$02
sta wsync ;line=48 sta wsync ;line=48
sta chbase sta chbase
sta wsync ;line=49 sta wsync ;line=49
@@ -234,7 +227,7 @@ x13 lda #$A9
dli4 dli4
sta regA sta regA
lda >fnt+$400*$03 lda >fnt1+$400*$03
sta wsync ;line=80 sta wsync ;line=80
sta chbase sta chbase
DLINEW dli5 1 0 0 DLINEW dli5 1 0 0
@@ -242,7 +235,7 @@ dli4
dli5 dli5
sta regA sta regA
stx regX stx regX
lda >fnt+$400*$04 lda >fnt1+$400*$04
sta wsync ;line=112 sta wsync ;line=112
sta chbase sta chbase
sta wsync ;line=113 sta wsync ;line=113
@@ -288,7 +281,7 @@ dli6
sta regA sta regA
stx regX stx regX
sty regY sty regY
lda >fnt+$400*$05 lda >fnt1+$400*$05
sta wsync ;line=136 sta wsync ;line=136
sta chbase sta chbase
sta wsync ;line=137 sta wsync ;line=137
@@ -337,7 +330,7 @@ c14 lda #$04
dli7 dli7
sta regA sta regA
lda >fnt+$400*$06 lda >fnt1+$400*$06
sta wsync ;line=160 sta wsync ;line=160
sta chbase sta chbase
DLINEW dli8 1 0 0 DLINEW dli8 1 0 0
@@ -346,7 +339,7 @@ dli8
sta regA sta regA
stx regX stx regX
sty regY sty regY
lda >fnt+$400*$07 lda >fnt1+$400*$07
sta wsync ;line=184 sta wsync ;line=184
sta chbase sta chbase
sta wsync ;line=185 sta wsync ;line=185
@@ -438,7 +431,7 @@ dli9
sta regA sta regA
stx regX stx regX
sty regY sty regY
lda >fnt+$400*$08 lda >fnt1+$400*$08
c36 ldx #$0A c36 ldx #$0A
sta wsync ;line=216 sta wsync ;line=216
sta chbase sta chbase
@@ -482,7 +475,7 @@ c42 ldx #$00
sta wsync ;line=223 sta wsync ;line=223
sta colpf1 sta colpf1
stx colpf2 stx colpf2
lda >fnt+$400*$01 lda >fnt1+$400*$01
s18 ldx #$50 s18 ldx #$50
x30 ldy #$44 x30 ldy #$44
sta wsync ;line=224 sta wsync ;line=224
@@ -505,7 +498,7 @@ c45 lda #$0E
dli10 dli10
sta regA sta regA
lda >fnt+$400*$00 lda >fnt1+$400*$00
sta wsync ;line=232 sta wsync ;line=232
sta chbase sta chbase
;DLINEW dli11 1 0 0 ;DLINEW dli11 1 0 0
@@ -530,12 +523,7 @@ dli10
; --- ; ---
CHANGES = 1 dliv1 = $0200
FADECHR = 0
SCHR = 127
dliv = $0200
; --- ; ---
@@ -554,7 +542,7 @@ VBL
;sta nmist ;reset NMI flag ;sta nmist ;reset NMI flag
mwa #ant dlptr ;ANTIC address program mwa #ant1 dlptr ;ANTIC address program
mva #@dmactl(standard|dma|lineX1|players|missiles) dmactl ;set new screen width mva #@dmactl(standard|dma|lineX1|players|missiles) dmactl ;set new screen width
@@ -562,7 +550,7 @@ VBL
; Initial values ; Initial values
lda >fnt+$400*$00 lda >fnt1+$400*$00
sta chbase sta chbase
c0 lda #$00 c0 lda #$00
sta colbak sta colbak
@@ -611,29 +599,29 @@ x7 lda #$A6
c8 lda #$00 c8 lda #$00
sta colpf0 sta colpf0
mwa #DLI.dli_start dliv ;set the first address of DLI interrupt mwa #DLI.dli_start dliv1 ;set the first address of DLI interrupt
;this area is for yours routines ;this area is for yours routines
jsr play_frame jsr play_frame
quit
lda regA lda regA
ldx regX ldx regX
ldy regY ldy regY
jmp sysvbv jmp sysvbv
.endp .endp
music1
icl "..\splash_v2\lzss_player.asm" ; player (and data) for splash music ; icl "..\splash_v2\lzss_player.asm" ; player (and data) for splash music
; --- ; ---
ini main ini main1
; --- ; ---
opt l- opt l-
.MACRO SPRITES .MACRO SPRITES1
missiles missiles
.he 00 00 00 00 00 00 00 00 03 03 C3 03 03 03 03 03 .he 00 00 00 00 00 00 00 00 03 03 C3 03 03 03 03 03
.he 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 .he 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
@@ -721,12 +709,10 @@ player3
.he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .he 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.ENDM .ENDM
USESPRITES = 1
.MACRO DLINEW .MACRO DLINEW
mva <:1 dliv mva <:1 dliv1
ift [>?old_dli]<>[>:1] ift [>?old_dli]<>[>:1]
mva >:1 dliv+1 mva >:1 dliv1+1
eif eif
ift :2 ift :2
+10 -1
View File
@@ -32,6 +32,7 @@ zc .ds ZCOLORS
org $600 org $600
ManualLangFlag .ds 1 ManualLangFlag .ds 1
SplashTypeFlag .ds 1
* --- BASIC switch OFF * --- BASIC switch OFF
org $2000\ mva #$ff portb\ rts\ ini $2000 org $2000\ mva #$ff portb\ rts\ ini $2000
@@ -69,6 +70,13 @@ mother
dta d" Father Unknown of All Games " dta d" Father Unknown of All Games "
main main
.IF CART_VERSION
lda random
bmi new_splash
sta SplashTypeFlag
rts ; KAZ splash :)
new_splash
.ENDIF
mva #00 ManualLangFlag ; no manual page mva #00 ManualLangFlag ; no manual page
jsr init_song jsr init_song
@@ -159,7 +167,7 @@ s0 lda #$03
lda #$14 lda #$14
sta gtictl sta gtictl
; jmp stop
//-------------------- //--------------------
// EXIT // EXIT
//-------------------- //--------------------
@@ -259,6 +267,7 @@ _rts rts
byt3 brk byt3 brk
org $8000 ; fixed address of music routine and data
icl "lzss_player.asm" ; player (and data) for splash music icl "lzss_player.asm" ; player (and data) for splash music
;--- ;---
+6 -2
View File
@@ -13,6 +13,8 @@
;atari800 -5200 -cart ${outputFilePath} -cart-type 4 ;atari800 -5200 -cart ${outputFilePath} -cart-type 4
;atari800 -run ${outputFilePath} ;atari800 -run ${outputFilePath}
;--------------------------------------------------- ;---------------------------------------------------
.def CART_VERSION = 0
; if 1 - dual splash screen
.def XCORRECTION_FOR_PM = 0 .def XCORRECTION_FOR_PM = 0
; if 1 - active x position of tanks correction fo PMG ; if 1 - active x position of tanks correction fo PMG
.def FASTER_GRAF_PROCS = 1 .def FASTER_GRAF_PROCS = 1
@@ -159,8 +161,10 @@ FirstZpageVariable = $54
.IF TARGET = 800 .IF TARGET = 800
icl 'Atari/lib/ATARISYS.ASM' icl 'Atari/lib/ATARISYS.ASM'
icl 'Atari/lib/MACRO.ASM' icl 'Atari/lib/MACRO.ASM'
icl 'artwork/splash_v2/splash.asm' ; splash screen and musix icl 'artwork/splash_v2/splash.asm' ; new splash screen and musix
; icl 'artwork/splash_v1/splash.asm' ; splash screen and musix .IF CART_VERSION
icl 'artwork/splash_v1/splash.asm' ; old splash screen (plays music from new splash)
.ENDIF
; icl 'Atari/Manual/manual.asm' ; manuals display ; icl 'Atari/Manual/manual.asm' ; manuals display
.ELIF TARGET = 5200 .ELIF TARGET = 5200
OPT h-f+ ; no headers, single block --> cart bin file OPT h-f+ ; no headers, single block --> cart bin file
BIN
View File
Binary file not shown.