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_Fuel_Tank______ = 0 ;_61
price_Contact_Trigger = 0 ;_62 price_Contact_Trigger = 0 ;_62
price______________63 = 0 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 textbuffer
; 0123456789012345678901234567890123456789 ; 0123456789012345678901234567890123456789
dta d"Player: " dta d"Player: "
dta d"Energy: 99 Angle: <32> Force: 1000 " dta d"Energy: 99 Angle: <99> Force: 9999 "
dta d" Round: 50 Wind: <22> " dta d" Round: 99 Wind: <99> "
textbuffer2 textbuffer2
dta d"Player: ******** Cash: 00000 " dta d"Player: ******** Cash: 99999 "
dta d"----------------------------------------" dta d"----------------------------------------"
+70 -4
View File
@@ -40,12 +40,12 @@
.endm .endm
icl 'definitions.asm' icl 'definitions.asm'
icl 'artwork/sfx/rmt_feat.asm'
.zpvar xdraw .word = $80 ;variable X for plot .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 ydraw .word ;variable Y for plot (like in Atari Basic - Y=0 in upper right corner of the screen)
.zpvar xbyte .word .zpvar xbyte .word
.zpvar ybyte .word .zpvar ybyte .word
.zpvar CharCode .byte .zpvar CharCode .byte
.zpvar fontind .word .zpvar fontind .word
@@ -55,8 +55,7 @@
.zpvar xc .word .zpvar xc .word
.zpvar temp .word ;temporary word for the most embeded loops only .zpvar temp .word ;temporary word for the most embeded loops only
.zpvar temp2 .word ;same as above .zpvar temp2 .word ;same as above
.zpvar tempXROLLER .word ;same as above for XROLLER routine .zpvar tempXROLLER .word ;same as above for XROLLER routine (used also in result display routine)
;(used also in result display routine)
.zpvar xtempDRAW .word ;same as above for XDRAW routine .zpvar xtempDRAW .word ;same as above for XDRAW routine
.zpvar ytempDRAW .word ;same as above for XDRAW routine .zpvar ytempDRAW .word ;same as above for XDRAW routine
;--------------temps used in circle routine ;--------------temps used in circle routine
@@ -76,6 +75,22 @@
.zpvar modify .word .zpvar modify .word
.zpvar weaponPointer .word .zpvar weaponPointer .word
.zpvar dliCounter .byte .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
;------------------------------- ;-------------------------------
@@ -101,6 +116,7 @@ START
; Startup sequence ; Startup sequence
jsr Initialize jsr Initialize
VMAIN VBLinterrupt,6 ; jsr SetVBL
mwa #OptionsDL dlptrs mwa #OptionsDL dlptrs
lda dmactls lda dmactls
@@ -135,7 +151,6 @@ START
; for the round #1 shooting sequence is random ; for the round #1 shooting sequence is random
MainGameLoop MainGameLoop
VMAIN VBLinterrupt,6 ; jsr SetVBL
VDLI DLIinterrupt ; jsr SetDLI VDLI DLIinterrupt ; jsr SetDLI
jsr CallPurchaseForEveryTank jsr CallPurchaseForEveryTank
@@ -574,6 +589,9 @@ PlayerXdeath .proc
inc CurrentResult inc CurrentResult
.endp .endp
mva #sfx_death_beg sfx_effect
;RandomizeDeffensiveText ;RandomizeDeffensiveText
randomize talk.NumberOfOffensiveTexts (talk.NumberOfDeffensiveTexts+talk.NumberOfOffensiveTexts-1) randomize talk.NumberOfOffensiveTexts (talk.NumberOfDeffensiveTexts+talk.NumberOfOffensiveTexts-1)
sta TextNumberOff sta TextNumberOff
@@ -589,6 +607,7 @@ PlayerXdeath .proc
jsr DisplayOffensiveTextNr jsr DisplayOffensiveTextNr
; calculate position of the explosion (the post-death one) ; calculate position of the explosion (the post-death one)
ldx TankTempY ldx TankTempY
clc clc
@@ -626,6 +645,8 @@ MetodOfDeath
tay tay
lda weaponsOfDeath,y lda weaponsOfDeath,y
jsr ExplosionDirect jsr ExplosionDirect
mva #$15 sfx_effect
; jump to after explosion routines (soil fallout, etc.) ; jump to after explosion routines (soil fallout, etc.)
; After going through these routines we are back ; After going through these routines we are back
@@ -816,6 +837,19 @@ ClearResults
mva #1 CurrentRoundNr ;we start from round 1 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 rts
.endp .endp
@@ -835,7 +869,26 @@ DLIinterrupt .proc
VBLinterrupt .proc VBLinterrupt .proc
pha pha
phx
phy
mva #0 dliCounter 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 pla
jmp SYSVBV jmp SYSVBV
.endp .endp
@@ -1085,6 +1138,7 @@ getkey .proc; waits for pressing a key and returns pressed value in A
cmp #$ff cmp #$ff
beq checkJoyGetKey ; key not pressed, check Joy beq checkJoyGetKey ; key not pressed, check Joy
mva #sfx_key sfx_effect
lda kbcode lda kbcode
and #$3f ;CTRL and SHIFT ellimination and #$3f ;CTRL and SHIFT ellimination
rts rts
@@ -1151,7 +1205,19 @@ TankFont
;---------------------------------------------- ;----------------------------------------------
icl 'variables.asm' 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 TheEnd
.ECHO 'TheEnd:',TheEnd
.if TheEnd > PMGraph + $300 .if TheEnd > PMGraph + $300
.error memory conflict .error memory conflict
BIN
View File
Binary file not shown.
+2
View File
@@ -34,6 +34,8 @@ RoundNrDisplay
variablesStart ; zeroing starts here variablesStart ; zeroing starts here
;-------------- ;--------------
sfx_effect .ds 1
;--------------
noDeathCounter .ds 1 noDeathCounter .ds 1
;-------------- ;--------------
OptionsY .ds 1 ;vertical position of cursor on Options screen OptionsY .ds 1 ;vertical position of cursor on Options screen
+28 -2
View File
@@ -77,6 +77,7 @@ VOID
.endp .endp
; ------------------------ ; ------------------------
.proc babynuke .proc babynuke
mva #sfx_nuke sfx_effect
inc FallDown2 inc FallDown2
mva #25 ExplosionRadius mva #25 ExplosionRadius
jsr CalculateExplosionRange jsr CalculateExplosionRange
@@ -84,6 +85,7 @@ VOID
.endp .endp
; ------------------------ ; ------------------------
.proc nuke .proc nuke
mva #sfx_nuke sfx_effect
inc FallDown2 inc FallDown2
mva #31 ExplosionRadius mva #31 ExplosionRadius
jsr CalculateExplosionRange jsr CalculateExplosionRange
@@ -91,6 +93,7 @@ VOID
.endp .endp
; ------------------------ ; ------------------------
.proc leapfrog .proc leapfrog
mva #sfx_funky_hit sfx_effect
inc FallDown2 inc FallDown2
mva #17 ExplosionRadius mva #17 ExplosionRadius
jsr CalculateExplosionRange jsr CalculateExplosionRange
@@ -129,6 +132,7 @@ VOID
beq EndOfLeapping beq EndOfLeapping
mva #15 ExplosionRadius mva #15 ExplosionRadius
jsr CalculateExplosionRange0 jsr CalculateExplosionRange0
mva #sfx_funky_hit sfx_effect
jsr xmissile jsr xmissile
; soil must fall down now! there is no other way... ; soil must fall down now! there is no other way...
@@ -157,6 +161,7 @@ VOID
beq EndOfLeapping beq EndOfLeapping
mva #13 ExplosionRadius mva #13 ExplosionRadius
jsr CalculateExplosionRange0 jsr CalculateExplosionRange0
mva #sfx_funky_hit sfx_effect
jmp xmissile jmp xmissile
EndOfLeapping EndOfLeapping
rts rts
@@ -168,6 +173,7 @@ EndOfLeapping
.endp .endp
; ------------------------ ; ------------------------
.proc funkybomb ; .proc funkybomb ;
mva #sfx_funky_hit sfx_effect
mwa xtraj+1 xtrajfb mwa xtraj+1 xtrajfb
mwa ytraj+1 ytrajfb mwa ytraj+1 ytrajfb
inc FallDown2 inc FallDown2
@@ -220,6 +226,7 @@ DoNotEor
jsr CalculateExplosionRange jsr CalculateExplosionRange
lda HitFlag lda HitFlag
beq NoExplosionInFunkyBomb beq NoExplosionInFunkyBomb
mva #sfx_funky_hit sfx_effect
jsr xmissile jsr xmissile
NoExplosionInFunkyBomb NoExplosionInFunkyBomb
dec FunkyBombCounter dec FunkyBombCounter
@@ -232,12 +239,16 @@ NoExplosionInFunkyBomb
inc FallDown2 inc FallDown2
mva #31 ExplosionRadius mva #31 ExplosionRadius
jsr CalculateExplosionRange jsr CalculateExplosionRange
mva #sfx_nuke sfx_effect
jsr xmissile jsr xmissile
sbw xdraw #35 sbw xdraw #35
jsr CalculateExplosionRange jsr CalculateExplosionRange
mva #sfx_nuke sfx_effect
jsr xmissile jsr xmissile
adw xdraw #70 adw xdraw #70
jsr CalculateExplosionRange jsr CalculateExplosionRange
mva #sfx_nuke sfx_effect
jsr xmissile jsr xmissile
sbw xdraw #35 sbw xdraw #35
; ;
@@ -245,12 +256,14 @@ NoExplosionInFunkyBomb
;jsr CalculateExplosionRange ;jsr CalculateExplosionRange
cpw ydraw #screenHeight cpw ydraw #screenHeight
bcs NoUpperCircle bcs NoUpperCircle
mva #sfx_nuke sfx_effect
jsr xmissile jsr xmissile
NoUpperCircle NoUpperCircle
adb ydraw #70 adb ydraw #70
;jsr CalculateExplosionRange ;jsr CalculateExplosionRange
cpw ydraw #screenHeight cpw ydraw #screenHeight
bcs NoLowerCircle bcs NoLowerCircle
mva #sfx_nuke sfx_effect
jsr xmissile jsr xmissile
NoLowerCircle NoLowerCircle
rts rts
@@ -317,6 +330,7 @@ NoLowerCircle
.endp .endp
; ------------------------ ; ------------------------
.proc xdigger .proc xdigger
mva #sfx_digger sfx_effect
mwa xdraw digstartx mwa xdraw digstartx
mwa ydraw digstarty mwa ydraw digstarty
ldx diggery ldx diggery
@@ -431,6 +445,7 @@ DiggerCharacter
.endp .endp
; ------------------------ ; ------------------------
.proc babysandhog .proc babysandhog
mva #sfx_sandhog sfx_effect
mva #8 sandhogflag mva #8 sandhogflag
inc FallDown2 inc FallDown2
mva #13 DigLong mva #13 DigLong
@@ -439,6 +454,7 @@ DiggerCharacter
.endp .endp
; ------------------------ ; ------------------------
.proc sandhog .proc sandhog
mva #sfx_sandhog sfx_effect
mva #8 sandhogflag mva #8 sandhogflag
inc FallDown2 inc FallDown2
mva #13 DigLong mva #13 DigLong
@@ -447,6 +463,7 @@ DiggerCharacter
.endp .endp
; ------------------------ ; ------------------------
.proc heavysandhog .proc heavysandhog
mva #sfx_sandhog sfx_effect
mva #8 sandhogflag mva #8 sandhogflag
inc FallDown2 inc FallDown2
mva #13 DigLong mva #13 DigLong
@@ -490,6 +507,7 @@ DiggerCharacter
.endp .endp
; ------------------------ ; ------------------------
.proc riotblast .proc riotblast
mva #sfx_riot_blast sfx_effect
inc FallDown2 inc FallDown2
mva #61 ExplosionRadius mva #61 ExplosionRadius
jsr CalculateExplosionRange jsr CalculateExplosionRange
@@ -808,6 +826,8 @@ DirectionChecked
.proc ofdirt ; .proc ofdirt ;
; -------------------------------------------------- ; --------------------------------------------------
; makes dirt on xdraw,ydraw position and of ExplosionRadius height ; makes dirt on xdraw,ydraw position and of ExplosionRadius height
mva #sfx_dirt_char_s sfx_effect
mva #1 color mva #1 color
NoColor ; jump here with color=0 to clean dirt NoColor ; jump here with color=0 to clean dirt
mwa xdraw xcircle mwa xdraw xcircle
@@ -885,8 +905,7 @@ UpNotYet2
lda HowMuchToFall lda HowMuchToFall
cmp #1 cmp #1
beq HowMuchToFallRight3 beq HowMuchToFallRight3
.nowarn .NOWARN dew xdraw
dew xdraw
lda xdraw lda xdraw
bne RollinContinuesLiquid bne RollinContinuesLiquid
lda xdraw+1 lda xdraw+1
@@ -1021,6 +1040,9 @@ pressedUp
bne CheckingMaxForce bne CheckingMaxForce
inc EnergyTableH,x inc EnergyTableH,x
CheckingMaxForce CheckingMaxForce
mva #sfx_set_power_2 sfx_effect
lda MaxEnergyTableH,x lda MaxEnergyTableH,x
cmp EnergyTableH,x cmp EnergyTableH,x
bne FurtherCheckMaxForce bne FurtherCheckMaxForce
@@ -1048,6 +1070,8 @@ CTRLPressedUp
pressedDown pressedDown
mva #sfx_set_power_1 sfx_effect
ldx TankNr ldx TankNr
dec EnergyTableL,x dec EnergyTableL,x
lda EnergyTableL,x lda EnergyTableL,x
@@ -1063,6 +1087,8 @@ ForceGoesZero
jmp BeforeFire jmp BeforeFire
CTRLPressedDown CTRLPressedDown
mva #sfx_set_power_1 sfx_effect
ldx TankNr ldx TankNr
sec sec
lda EnergyTableL,x lda EnergyTableL,x