mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-20 22:33:43 +02:00
SFX: work in progress
This commit is contained in:
@@ -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.
@@ -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
|
||||
|
||||
|
||||
+4
-4
@@ -120,7 +120,7 @@ NameAdr
|
||||
dta d" Human/Atari (difficulty level) "
|
||||
dta d" "
|
||||
NamesOfLevels
|
||||
dta d" HUMAN Moron Shooter "
|
||||
dta d" HUMAN Moron Shooter "
|
||||
dta d" Poolshark Toosser Chooser "
|
||||
dta d" Spoiler Cyborg Unknown "
|
||||
dta d" "
|
||||
@@ -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"----------------------------------------"
|
||||
|
||||
|
||||
|
||||
+102
-36
@@ -40,44 +40,59 @@
|
||||
.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
|
||||
.zpvar tanknr .byte
|
||||
.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
|
||||
.zpvar tanknr .byte
|
||||
.zpvar TankSequencePointer .byte
|
||||
.zpvar oldplot .word
|
||||
.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 xtempDRAW .word ;same as above for XDRAW routine
|
||||
.zpvar ytempDRAW .word ;same as above for XDRAW routine
|
||||
.zpvar oldplot .word
|
||||
.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 xtempDRAW .word ;same as above for XDRAW routine
|
||||
.zpvar ytempDRAW .word ;same as above for XDRAW routine
|
||||
;--------------temps used in circle routine
|
||||
.zpvar xi .word ;X (word) in draw routine
|
||||
.zpvar fx .byte ;circle drawing variables
|
||||
.zpvar yi .word ;Y (word) in draw routine
|
||||
.zpvar fy .byte
|
||||
.zpvar xk .word
|
||||
.zpvar fs .byte
|
||||
.zpvar yc .byte ;ycircle - temporary for circle
|
||||
.zpvar dx .word
|
||||
.zpvar tempor2 .byte
|
||||
.zpvar dy .word
|
||||
.zpvar dd .word
|
||||
.zpvar di .word
|
||||
.zpvar dp .word
|
||||
.zpvar modify .word
|
||||
.zpvar weaponPointer .word
|
||||
.zpvar dliCounter .byte
|
||||
.zpvar xi .word ;X (word) in draw routine
|
||||
.zpvar fx .byte ;circle drawing variables
|
||||
.zpvar yi .word ;Y (word) in draw routine
|
||||
.zpvar fy .byte
|
||||
.zpvar xk .word
|
||||
.zpvar fs .byte
|
||||
.zpvar yc .byte ;ycircle - temporary for circle
|
||||
.zpvar dx .word
|
||||
.zpvar tempor2 .byte
|
||||
.zpvar dy .word
|
||||
.zpvar dd .word
|
||||
.zpvar di .word
|
||||
.zpvar dp .word
|
||||
.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
|
||||
@@ -625,8 +644,10 @@ MetodOfDeath
|
||||
bcs MetodOfDeath
|
||||
tay
|
||||
lda weaponsOfDeath,y
|
||||
jsr ExplosionDirect
|
||||
jsr ExplosionDirect
|
||||
mva #$15 sfx_effect
|
||||
|
||||
|
||||
; jump to after explosion routines (soil fallout, etc.)
|
||||
; After going through these routines we are back
|
||||
; to checking if a tank exploded and maybe we have
|
||||
@@ -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
|
||||
@@ -1084,7 +1137,8 @@ getkey .proc; waits for pressing a key and returns pressed value in A
|
||||
lda SKSTAT
|
||||
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
Binary file not shown.
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user