SFX: work in progress

This commit is contained in:
2022-05-08 01:10:33 -04:00
parent cd51be825d
commit 08964e2f68
9 changed files with 1538 additions and 42 deletions
+40
View File
@@ -0,0 +1,40 @@
;* --------BEGIN--------
;* Z:\home\pkalinowski\Seafile\atari\projects\scorch_src\artwork\sfx\scorch_trial07_stripped.rmt
FEAT_SFX equ 1
FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable
FEAT_NOSTARTINGSONGLINE equ 0
FEAT_INSTRSPEED equ 1
FEAT_CONSTANTSPEED equ 16 ;(0 times)
FEAT_COMMAND1 equ 1 ;(4 times)
FEAT_COMMAND2 equ 0 ;(0 times)
FEAT_COMMAND3 equ 0 ;(0 times)
FEAT_COMMAND4 equ 0 ;(0 times)
FEAT_COMMAND5 equ 0 ;(0 times)
FEAT_COMMAND6 equ 0 ;(0 times)
FEAT_COMMAND7SETNOTE equ 0 ;(0 times)
FEAT_COMMAND7VOLUMEONLY equ 0 ;(0 times)
FEAT_PORTAMENTO equ 0 ;(0 times)
FEAT_FILTER equ 1 ;(22 times)
FEAT_FILTERG0L equ 0 ;(0 times)
FEAT_FILTERG1L equ 0 ;(0 times)
FEAT_FILTERG0R equ 0 ;(0 times)
FEAT_FILTERG1R equ 0 ;(0 times)
FEAT_BASS16 equ 0 ;(0 times)
FEAT_BASS16G1L equ 0 ;(0 times)
FEAT_BASS16G3L equ 0 ;(0 times)
FEAT_BASS16G1R equ 0 ;(0 times)
FEAT_BASS16G3R equ 0 ;(0 times)
FEAT_VOLUMEONLYG0L equ 0 ;(0 times)
FEAT_VOLUMEONLYG2L equ 0 ;(0 times)
FEAT_VOLUMEONLYG3L equ 0 ;(0 times)
FEAT_VOLUMEONLYG0R equ 0 ;(0 times)
FEAT_VOLUMEONLYG2R equ 0 ;(0 times)
FEAT_VOLUMEONLYG3R equ 0 ;(0 times)
FEAT_TABLETYPE equ 0 ;(0 times)
FEAT_TABLEMODE equ 0 ;(0 times)
FEAT_TABLEGO equ 1 ;(1 times)
FEAT_AUDCTLMANUALSET equ 1 ;(4 times)
FEAT_VOLUMEMIN equ 0 ;(0 times)
FEAT_EFFECTVIBRATO equ 0 ;(0 times)
FEAT_EFFECTFSHIFT equ 1 ;(7 times)
;* --------END--------
File diff suppressed because it is too large Load Diff
Binary file not shown.
+26
View File
@@ -75,3 +75,29 @@ price_Auto_Defense___ = 0 ;_60
price_Fuel_Tank______ = 0 ;_61
price_Contact_Trigger = 0 ;_62
price______________63 = 0
;--------------------------------
; names of RMT instruments (sfx)
;--------------------------------
sfx_set_power_1 = $00
sfx_set_power_2 = $01
sfx_lightning = $02
sfx_dunno = $03
sfx_nuke = $04
sfx_hit = $05
sfx_death_beg = $06
sfx_plasma_1_2 = $07
sfx_plasma_2_2 = $08
sfx_napalm = $09
sfx_dirt_charge = $0a
sfx_missile_hit = $0b
sfx_funky_hit = $0c
sfx_shield_on = $0d
sfx_shield_off = $0e
sfx_parachute = $0f
sfx_smoke_cloud = $10
sfx_riot_blast = $11
sfx_sandhog = $12
sfx_dirt_char_s = $13
sfx_digger = $14
sfx_key = $15
+3 -3
View File
@@ -165,10 +165,10 @@ LastLine
textbuffer
; 0123456789012345678901234567890123456789
dta d"Player: "
dta d"Energy: 99 Angle: <32> Force: 1000 "
dta d" Round: 50 Wind: <22> "
dta d"Energy: 99 Angle: <99> Force: 9999 "
dta d" Round: 99 Wind: <99> "
textbuffer2
dta d"Player: ******** Cash: 00000 "
dta d"Player: ******** Cash: 99999 "
dta d"----------------------------------------"
+71 -5
View File
@@ -40,12 +40,12 @@
.endm
icl 'definitions.asm'
icl 'artwork/sfx/rmt_feat.asm'
.zpvar xdraw .word = $80 ;variable X for plot
.zpvar ydraw .word ;variable Y for plot (like in Atari Basic - Y=0 in upper right corner of the screen)
.zpvar xbyte .word
.zpvar ybyte .word
.zpvar CharCode .byte
.zpvar fontind .word
@@ -55,8 +55,7 @@
.zpvar xc .word
.zpvar temp .word ;temporary word for the most embeded loops only
.zpvar temp2 .word ;same as above
.zpvar tempXROLLER .word ;same as above for XROLLER routine
;(used also in result display routine)
.zpvar tempXROLLER .word ;same as above for XROLLER routine (used also in result display routine)
.zpvar xtempDRAW .word ;same as above for XDRAW routine
.zpvar ytempDRAW .word ;same as above for XDRAW routine
;--------------temps used in circle routine
@@ -76,8 +75,24 @@
.zpvar modify .word
.zpvar weaponPointer .word
.zpvar dliCounter .byte
;* RMT ZeroPage addresses
.zpvar p_tis .word
.zpvar p_trackslbstable .word
.zpvar p_trackshbstable .word
.zpvar p_song .word
.zpvar ns .word
.zpvar nr .word
.zpvar nt .word
.zpvar reg1 .byte
.zpvar reg2 .byte
.zpvar reg3 .byte
.zpvar tmp .byte
IFT FEAT_COMMAND2
.zpvar frqaddcmd2 .byte
EIF
p_instrstable = p_tis
displayposition = modify
displayposition = modify
;-------------------------------
icl 'lib/atari.hea'
@@ -101,6 +116,7 @@ START
; Startup sequence
jsr Initialize
VMAIN VBLinterrupt,6 ; jsr SetVBL
mwa #OptionsDL dlptrs
lda dmactls
@@ -135,7 +151,6 @@ START
; for the round #1 shooting sequence is random
MainGameLoop
VMAIN VBLinterrupt,6 ; jsr SetVBL
VDLI DLIinterrupt ; jsr SetDLI
jsr CallPurchaseForEveryTank
@@ -574,6 +589,9 @@ PlayerXdeath .proc
inc CurrentResult
.endp
mva #sfx_death_beg sfx_effect
;RandomizeDeffensiveText
randomize talk.NumberOfOffensiveTexts (talk.NumberOfDeffensiveTexts+talk.NumberOfOffensiveTexts-1)
sta TextNumberOff
@@ -589,6 +607,7 @@ PlayerXdeath .proc
jsr DisplayOffensiveTextNr
; calculate position of the explosion (the post-death one)
ldx TankTempY
clc
@@ -626,6 +645,8 @@ MetodOfDeath
tay
lda weaponsOfDeath,y
jsr ExplosionDirect
mva #$15 sfx_effect
; jump to after explosion routines (soil fallout, etc.)
; After going through these routines we are back
@@ -816,6 +837,19 @@ ClearResults
mva #1 CurrentRoundNr ;we start from round 1
; RMT INIT
lda #$f0 ;initial value
sta RMTSFXVOLUME ;sfx note volume * 16 (0,16,32,...,240)
;
lda #$ff ;initial value
sta sfx_effect
;
ldx #<MODUL ;low byte of RMT module to X reg
ldy #>MODUL ;hi byte of RMT module to Y reg
lda #0 ;starting song line 0-255 to A reg
jsr RASTERMUSICTRACKER ;Init
;
rts
.endp
@@ -835,7 +869,26 @@ DLIinterrupt .proc
VBLinterrupt .proc
pha
phx
phy
mva #0 dliCounter
lda sfx_effect
bmi lab2
asl @ ; * 2
tay ;Y = 2,4,..,16 instrument number * 2 (0,2,4,..,126)
ldx #0 ;X = 0 channel (0..3 or 0..7 for stereo module)
lda #0 ;A = 12 note (0..60)
jsr RASTERMUSICTRACKER+15 ;RMT_SFX start tone (It works only if FEAT_SFX is enabled !!!)
;
lda #$ff
sta sfx_effect ;reinit value
;
lab2
jsr RASTERMUSICTRACKER+3 ;1 play
ply
plx
pla
jmp SYSVBV
.endp
@@ -1085,6 +1138,7 @@ getkey .proc; waits for pressing a key and returns pressed value in A
cmp #$ff
beq checkJoyGetKey ; key not pressed, check Joy
mva #sfx_key sfx_effect
lda kbcode
and #$3f ;CTRL and SHIFT ellimination
rts
@@ -1151,7 +1205,19 @@ TankFont
;----------------------------------------------
icl 'variables.asm'
;----------------------------------------------
; reserved space for RMT player
.ds $0320
.align $100
.ECHO 'PLAYER: ',*
icl 'artwork/sfx/rmtplayr_game.asm'
opt h- ;RMT module is standard Atari binary file already
ins "artwork/sfx/scorch_trial07_stripped.rmt" ;include music RMT module
opt h+
;
;
MODUL equ $a000 ;address of RMT module
TheEnd
.ECHO 'TheEnd:',TheEnd
.if TheEnd > PMGraph + $300
.error memory conflict
BIN
View File
Binary file not shown.
+2
View File
@@ -34,6 +34,8 @@ RoundNrDisplay
variablesStart ; zeroing starts here
;--------------
sfx_effect .ds 1
;--------------
noDeathCounter .ds 1
;--------------
OptionsY .ds 1 ;vertical position of cursor on Options screen
+28 -2
View File
@@ -77,6 +77,7 @@ VOID
.endp
; ------------------------
.proc babynuke
mva #sfx_nuke sfx_effect
inc FallDown2
mva #25 ExplosionRadius
jsr CalculateExplosionRange
@@ -84,6 +85,7 @@ VOID
.endp
; ------------------------
.proc nuke
mva #sfx_nuke sfx_effect
inc FallDown2
mva #31 ExplosionRadius
jsr CalculateExplosionRange
@@ -91,6 +93,7 @@ VOID
.endp
; ------------------------
.proc leapfrog
mva #sfx_funky_hit sfx_effect
inc FallDown2
mva #17 ExplosionRadius
jsr CalculateExplosionRange
@@ -129,6 +132,7 @@ VOID
beq EndOfLeapping
mva #15 ExplosionRadius
jsr CalculateExplosionRange0
mva #sfx_funky_hit sfx_effect
jsr xmissile
; soil must fall down now! there is no other way...
@@ -157,6 +161,7 @@ VOID
beq EndOfLeapping
mva #13 ExplosionRadius
jsr CalculateExplosionRange0
mva #sfx_funky_hit sfx_effect
jmp xmissile
EndOfLeapping
rts
@@ -168,6 +173,7 @@ EndOfLeapping
.endp
; ------------------------
.proc funkybomb ;
mva #sfx_funky_hit sfx_effect
mwa xtraj+1 xtrajfb
mwa ytraj+1 ytrajfb
inc FallDown2
@@ -220,6 +226,7 @@ DoNotEor
jsr CalculateExplosionRange
lda HitFlag
beq NoExplosionInFunkyBomb
mva #sfx_funky_hit sfx_effect
jsr xmissile
NoExplosionInFunkyBomb
dec FunkyBombCounter
@@ -232,12 +239,16 @@ NoExplosionInFunkyBomb
inc FallDown2
mva #31 ExplosionRadius
jsr CalculateExplosionRange
mva #sfx_nuke sfx_effect
jsr xmissile
sbw xdraw #35
jsr CalculateExplosionRange
mva #sfx_nuke sfx_effect
jsr xmissile
adw xdraw #70
jsr CalculateExplosionRange
mva #sfx_nuke sfx_effect
jsr xmissile
sbw xdraw #35
;
@@ -245,12 +256,14 @@ NoExplosionInFunkyBomb
;jsr CalculateExplosionRange
cpw ydraw #screenHeight
bcs NoUpperCircle
mva #sfx_nuke sfx_effect
jsr xmissile
NoUpperCircle
adb ydraw #70
;jsr CalculateExplosionRange
cpw ydraw #screenHeight
bcs NoLowerCircle
mva #sfx_nuke sfx_effect
jsr xmissile
NoLowerCircle
rts
@@ -317,6 +330,7 @@ NoLowerCircle
.endp
; ------------------------
.proc xdigger
mva #sfx_digger sfx_effect
mwa xdraw digstartx
mwa ydraw digstarty
ldx diggery
@@ -431,6 +445,7 @@ DiggerCharacter
.endp
; ------------------------
.proc babysandhog
mva #sfx_sandhog sfx_effect
mva #8 sandhogflag
inc FallDown2
mva #13 DigLong
@@ -439,6 +454,7 @@ DiggerCharacter
.endp
; ------------------------
.proc sandhog
mva #sfx_sandhog sfx_effect
mva #8 sandhogflag
inc FallDown2
mva #13 DigLong
@@ -447,6 +463,7 @@ DiggerCharacter
.endp
; ------------------------
.proc heavysandhog
mva #sfx_sandhog sfx_effect
mva #8 sandhogflag
inc FallDown2
mva #13 DigLong
@@ -490,6 +507,7 @@ DiggerCharacter
.endp
; ------------------------
.proc riotblast
mva #sfx_riot_blast sfx_effect
inc FallDown2
mva #61 ExplosionRadius
jsr CalculateExplosionRange
@@ -808,6 +826,8 @@ DirectionChecked
.proc ofdirt ;
; --------------------------------------------------
; makes dirt on xdraw,ydraw position and of ExplosionRadius height
mva #sfx_dirt_char_s sfx_effect
mva #1 color
NoColor ; jump here with color=0 to clean dirt
mwa xdraw xcircle
@@ -885,8 +905,7 @@ UpNotYet2
lda HowMuchToFall
cmp #1
beq HowMuchToFallRight3
.nowarn
dew xdraw
.NOWARN dew xdraw
lda xdraw
bne RollinContinuesLiquid
lda xdraw+1
@@ -1021,6 +1040,9 @@ pressedUp
bne CheckingMaxForce
inc EnergyTableH,x
CheckingMaxForce
mva #sfx_set_power_2 sfx_effect
lda MaxEnergyTableH,x
cmp EnergyTableH,x
bne FurtherCheckMaxForce
@@ -1048,6 +1070,8 @@ CTRLPressedUp
pressedDown
mva #sfx_set_power_1 sfx_effect
ldx TankNr
dec EnergyTableL,x
lda EnergyTableL,x
@@ -1063,6 +1087,8 @@ ForceGoesZero
jmp BeforeFire
CTRLPressedDown
mva #sfx_set_power_1 sfx_effect
ldx TankNr
sec
lda EnergyTableL,x