VU Meter after 10s. :)

This commit is contained in:
Pecusx
2024-03-01 14:16:26 +01:00
parent 2d1c50bf97
commit 75fd6c494a
8 changed files with 71 additions and 5 deletions
+10
View File
@@ -139,6 +139,16 @@
pla
tay
.endm
;-------------------------------------
.macro txy
txa
tay
.endm
;-------------------------------------
.macro tyx
tya
tax
.endm
;-------------------------------------
.macro pause
;waits :1 number (byte) of frames
+1 -1
View File
@@ -161,7 +161,7 @@ APPMHI EQU $0E ;APPL MEM HI LIMIT
;
POKMSK EQU $10 ;MASK POKEY IRQ
BRKKEY EQU $11 ;BREAK KEY FLAG
RTCLOK EQU $12 ;REAL TIME CLOCK
RTCLOK EQU $13 ;REAL TIME CLOCK (only 2 bytes without $12 !!!)
BUFADR EQU $15 ;INDIRECT BUFF ADDR
ICCOMT EQU $17 ;COMMAND FOR VECTOR
DSKFMS EQU $18 ;FMS POINTER
+2
View File
@@ -27,6 +27,8 @@ space = 0 ; space in screencodes
KeyRepeatSpeed = 8 ; (max 127 !!!)
FirstKeySpeed = 8 ; additional delay for first keypress
VuMeterTime = 2 ; Time of inactivity for VU Meter (1=5sec)
;character codes for symbols (tank, parachute, etc. )
; characters from tanks.fnt (graphics screen)
char_parachute = $02
+49
View File
@@ -1430,4 +1430,53 @@ FinishResultDisplay
jmp TypeLine4x4 ; jsr:rts
.endp
.IF VU_METER = 1
.proc VUMeter
; No VUMeter if key pressed
jsr GetKeyFast
cmp #@kbcode._none
bne EndMeter
; check timer
lda RTCLOK
cmp #VuMeterTime
bne EndMeter
; store all angles
ldx NumberOfPlayers
@ lda AngleTable,x
sta previousAngle,x
dex
bpl @-
; let's go!
Meter
jsr ClearTanks
ldx NumberOfPlayers
@ lda trackn_audc+2
:4 asl
sta AngleTable,x
dex
bpl @-
jsr drawtanks
jsr WaitOneFrame
jsr GetKeyFast
cmp #@kbcode._none
beq Meter
; restore all angles
jsr ClearTanks
ldx NumberOfPlayers
@ lda previousAngle,x
sta AngleTable,x
dex
bpl @-
jsr drawtanks
jsr drawtanknr
EndMeterAndReset
lda #0
sta RTCLOK+1
sta RTCLOK
EndMeter
rts
.endp
.ENDIF
.ENDIF
+3 -2
View File
@@ -30,7 +30,8 @@
.ifndef CART_VERSION
.def CART_VERSION = 0 ; if 1 - dual splash screen
.endif
.def METEORS = 1 ; if 1 - meteors on game
.def METEORS = 0 ; if 1 - meteors on game
.def VU_METER = 1 ; if 1 - VU Meter on game
.def XCORRECTION_FOR_PM = 0 ; if 1 - active x position of tanks correction fo PMG
.def FASTER_GRAF_PROCS = 1 ; if 1 - activates faster graphics routines
; (direct writes to screen memory - atari only :) )
@@ -40,7 +41,7 @@
;---------------------------------------------------
.macro build
dta d"1.46" ; number of this build (4 bytes)
dta d"1.47" ; number of this build (4 bytes)
.endm
.macro RMTSong
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+6 -2
View File
@@ -1277,11 +1277,15 @@ ContinueToCheckMaxForce2
; $FB - any key
; $f7 - shift
; $f3 - shift+key
.IF VU_METER = 1
jsr VUMeter.EndMeterAndReset
.ENDIF
notpressed
jsr CheckExitKeys ; Check for O, Esc or Start+Option keys
spl:rts ; exit if pressed 'Exit keys'
.IF VU_METER = 1
jsr VUMeter
.ENDIF
ldx TankNr ; for optimize
jsr GetKeyFast
and #%10111111 ; SHIFT elimination