From 054c5df5d76145ba40303dd4de7c304467e9b9c0 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 10 Aug 2022 18:39:37 +0200 Subject: [PATCH] New music file and Song change fixed! --- artwork/sfx/feat.txt | 41 + artwork/sfx/rmt_feat.a65 | 41 - artwork/sfx/rmt_feat.asm | 41 - artwork/sfx/rmtplayr.a65 | 2 +- artwork/sfx/rmtplayr_game.asm | 1335 ----------------- ...rial0h_stripped.rmt => scorch_trial0j.rmt} | Bin 3795 -> 4160 bytes ...ripped.rmt => scorch_trial0j_stripped.rmt} | Bin 3585 -> 3633 bytes scorch.asm | 10 +- scorch.xex | Bin 43506 -> 43520 bytes 9 files changed, 50 insertions(+), 1420 deletions(-) create mode 100644 artwork/sfx/feat.txt delete mode 100644 artwork/sfx/rmt_feat.a65 delete mode 100644 artwork/sfx/rmt_feat.asm delete mode 100644 artwork/sfx/rmtplayr_game.asm rename artwork/sfx/{scorch_trial0h_stripped.rmt => scorch_trial0j.rmt} (50%) rename artwork/sfx/{scorch_trial0h1_stripped.rmt => scorch_trial0j_stripped.rmt} (85%) diff --git a/artwork/sfx/feat.txt b/artwork/sfx/feat.txt new file mode 100644 index 0000000..71ffb18 --- /dev/null +++ b/artwork/sfx/feat.txt @@ -0,0 +1,41 @@ +STEREOMODE equ 0 +;* --------BEGIN-------- +;* C:\Atari\rmt\rmt128\aa.rmt +FEAT_SFX equ 1 +FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable +FEAT_NOSTARTINGSONGLINE equ 0 +FEAT_INSTRSPEED equ 1 +FEAT_CONSTANTSPEED equ 0 ;(19 times) +FEAT_COMMAND1 equ 1 ;(10 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 1 ;(13 times) +FEAT_FILTERG1L equ 1 ;(22 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 0 ;(0 times) +FEAT_AUDCTLMANUALSET equ 0 ;(0 times) +FEAT_VOLUMEMIN equ 0 ;(0 times) +FEAT_EFFECTVIBRATO equ 1 ;(2 times) +FEAT_EFFECTFSHIFT equ 0 ;(0 times) +;* --------END-------- diff --git a/artwork/sfx/rmt_feat.a65 b/artwork/sfx/rmt_feat.a65 deleted file mode 100644 index eafd077..0000000 --- a/artwork/sfx/rmt_feat.a65 +++ /dev/null @@ -1,41 +0,0 @@ -STEREOMODE equ 0 -;* --------BEGIN-------- -;* C:\Atari\rmt\rmt128\aaa.rmt -FEAT_SFX equ 1 -FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable -FEAT_NOSTARTINGSONGLINE equ 0 -FEAT_INSTRSPEED equ 1 -FEAT_CONSTANTSPEED equ 0 ;(18 times) -FEAT_COMMAND1 equ 1 ;(10 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 1 ;(2 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 1 ;(13 times) -FEAT_FILTERG1L equ 1 ;(22 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 0 ;(0 times) -FEAT_AUDCTLMANUALSET equ 0 ;(0 times) -FEAT_VOLUMEMIN equ 0 ;(0 times) -FEAT_EFFECTVIBRATO equ 1 ;(1 times) -FEAT_EFFECTFSHIFT equ 0 ;(0 times) -;* --------END-------- \ No newline at end of file diff --git a/artwork/sfx/rmt_feat.asm b/artwork/sfx/rmt_feat.asm deleted file mode 100644 index eafd077..0000000 --- a/artwork/sfx/rmt_feat.asm +++ /dev/null @@ -1,41 +0,0 @@ -STEREOMODE equ 0 -;* --------BEGIN-------- -;* C:\Atari\rmt\rmt128\aaa.rmt -FEAT_SFX equ 1 -FEAT_GLOBALVOLUMEFADE equ 0 ;RMTGLOBALVOLUMEFADE variable -FEAT_NOSTARTINGSONGLINE equ 0 -FEAT_INSTRSPEED equ 1 -FEAT_CONSTANTSPEED equ 0 ;(18 times) -FEAT_COMMAND1 equ 1 ;(10 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 1 ;(2 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 1 ;(13 times) -FEAT_FILTERG1L equ 1 ;(22 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 0 ;(0 times) -FEAT_AUDCTLMANUALSET equ 0 ;(0 times) -FEAT_VOLUMEMIN equ 0 ;(0 times) -FEAT_EFFECTVIBRATO equ 1 ;(1 times) -FEAT_EFFECTFSHIFT equ 0 ;(0 times) -;* --------END-------- \ No newline at end of file diff --git a/artwork/sfx/rmtplayr.a65 b/artwork/sfx/rmtplayr.a65 index 3992e17..2aeb590 100644 --- a/artwork/sfx/rmtplayr.a65 +++ b/artwork/sfx/rmtplayr.a65 @@ -31,7 +31,7 @@ TRACKS equ 4 ;* ;* RMT FEATures definitions file ;* For optimizations of RMT player routine to concrete RMT modul only! - icl "rmt_feat.a65" + icl "feat.txt" ;* ;* RMT ZeroPage addresses org RMT_Zero_Page_V diff --git a/artwork/sfx/rmtplayr_game.asm b/artwork/sfx/rmtplayr_game.asm deleted file mode 100644 index a92eeaa..0000000 --- a/artwork/sfx/rmtplayr_game.asm +++ /dev/null @@ -1,1335 +0,0 @@ -.echo * -;* -;* Raster Music Tracker, RMT Atari routine version 1.20090108 -;* (c) Radek Sterba, Raster/C.P.U., 2002 - 2009 -;* http://raster.atari.org -;* -;* Warnings: -;* -;* 1. RMT player routine needs 19 itself reserved bytes in zero page (no accessed -;* from any other routines) as well as cca 1KB of memory before the "PLAYER" -;* address for frequency tables and functionary variables. It's: -;* a) from PLAYER-$03c0 to PLAYER for stereo RMTplayer -;* b) from PLAYER-$0320 to PLAYER for mono RMTplayer -;* -;* 2. RMT player routine MUST (!!!) be compiled from the begin of the memory page. -;* i.e. "PLAYER" address can be $..00 only! -;* -;* 3. Because of RMTplayer provides a lot of effects, it spent a lot of CPU time. -;* - STEREOMODE equ 0 ;0 => compile RMTplayer for 4 tracks mono -;* ;1 => compile RMTplayer for 8 tracks stereo -;* ;2 => compile RMTplayer for 4 tracks stereo L1 R2 R3 L4 -;* ;3 => compile RMTplayer for 4 tracks stereo L1 L2 R3 R4 -;* -; IFT STEREOMODE==1 -;TRACKS equ 8 -; ELS -TRACKS equ 4 -; EIF -;* -PLAYER = * - IFT TRACKS>4 - org PLAYER-$400+$40 - ELS - org PLAYER-$400+$e0 - EIF -track_variables -trackn_db org *+TRACKS -trackn_hb org *+TRACKS -trackn_idx org *+TRACKS -trackn_pause org *+TRACKS -trackn_note org *+TRACKS -trackn_volume org *+TRACKS -trackn_distor org *+TRACKS -trackn_shiftfrq org *+TRACKS - IFT FEAT_PORTAMENTO -trackn_portafrqc org *+TRACKS -trackn_portafrqa org *+TRACKS -trackn_portaspeed org *+TRACKS -trackn_portaspeeda org *+TRACKS -trackn_portadepth org *+TRACKS - EIF -trackn_instrx2 org *+TRACKS -trackn_instrdb org *+TRACKS -trackn_instrhb org *+TRACKS -trackn_instridx org *+TRACKS -trackn_instrlen org *+TRACKS -trackn_instrlop org *+TRACKS -trackn_instrreachend org *+TRACKS -trackn_volumeslidedepth org *+TRACKS -trackn_volumeslidevalue org *+TRACKS - IFT FEAT_VOLUMEMIN -trackn_volumemin org *+TRACKS - EIF -FEAT_EFFECTS equ FEAT_EFFECTVIBRATO||FEAT_EFFECTFSHIFT - IFT FEAT_EFFECTS -trackn_effdelay org *+TRACKS - EIF - IFT FEAT_EFFECTVIBRATO -trackn_effvibratoa org *+TRACKS - EIF - IFT FEAT_EFFECTFSHIFT -trackn_effshift org *+TRACKS - EIF -trackn_tabletypespeed org *+TRACKS - IFT FEAT_TABLEMODE -trackn_tablemode org *+TRACKS - EIF -trackn_tablenote org *+TRACKS -trackn_tablea org *+TRACKS -trackn_tableend org *+TRACKS - IFT FEAT_TABLEGO -trackn_tablelop org *+TRACKS - EIF -trackn_tablespeeda org *+TRACKS - IFT FEAT_FILTER||FEAT_BASS16 -trackn_command org *+TRACKS - EIF - IFT FEAT_BASS16 -trackn_outnote org *+TRACKS - EIF - IFT FEAT_FILTER -trackn_filter org *+TRACKS - EIF -trackn_audf org *+TRACKS -trackn_audc org *+TRACKS - IFT FEAT_AUDCTLMANUALSET -trackn_audctl org *+TRACKS - EIF -v_aspeed org *+1 -track_endvariables - org PLAYER-$100-$140-$40+2 -INSTRPAR equ 12 -tabbeganddistor - dta frqtabpure-frqtab,$00 - dta frqtabpure-frqtab,$20 - dta frqtabpure-frqtab,$40 - dta frqtabbass1-frqtab,$c0 - dta frqtabpure-frqtab,$80 - dta frqtabpure-frqtab,$a0 - dta frqtabbass1-frqtab,$c0 - dta frqtabbass2-frqtab,$c0 - IFT FEAT_EFFECTVIBRATO -vibtabbeg dta 0,vib1-vib0,vib2-vib0,vib3-vib0 -vib0 dta 0 -vib1 dta 1,-1,-1,1 -vib2 dta 1,0,-1,-1,0,1 -vib3 dta 1,1,0,-1,-1,-1,-1,0,1,1 -vibtabnext - dta vib0-vib0+0 - dta vib1-vib0+1,vib1-vib0+2,vib1-vib0+3,vib1-vib0+0 - dta vib2-vib0+1,vib2-vib0+2,vib2-vib0+3,vib2-vib0+4,vib2-vib0+5,vib2-vib0+0 - dta vib3-vib0+1,vib3-vib0+2,vib3-vib0+3,vib3-vib0+4,vib3-vib0+5,vib3-vib0+6,vib3-vib0+7,vib3-vib0+8,vib3-vib0+9,vib3-vib0+0 - EIF - org PLAYER-$100-$140 - IFT FEAT_BASS16 -frqtabbasslo - dta $F2,$33,$96,$E2,$38,$8C,$00,$6A,$E8,$6A,$EF,$80,$08,$AE,$46,$E6 - dta $95,$41,$F6,$B0,$6E,$30,$F6,$BB,$84,$52,$22,$F4,$C8,$A0,$7A,$55 - dta $34,$14,$F5,$D8,$BD,$A4,$8D,$77,$60,$4E,$38,$27,$15,$06,$F7,$E8 - dta $DB,$CF,$C3,$B8,$AC,$A2,$9A,$90,$88,$7F,$78,$70,$6A,$64,$5E,$00 - EIF - org PLAYER-$100-$100 -frqtab - ERT [255 - ldy #0 - tya -ri0 sta track_variables,y - sta track_endvariables-$100,y - iny - bne ri0 - ELS - ldy #track_endvariables-track_variables - lda #0 -ri0 sta track_variables-1,y - dey - bne ri0 - EIF - ldy #4 - lda (ns),y - sta v_maxtracklen - iny - IFT FEAT_CONSTANTSPEED==0 - lda (ns),y - sta v_speed - EIF - IFT FEAT_INSTRSPEED==0 - iny - lda (ns),y - sta v_instrspeed - sta v_ainstrspeed - ELI FEAT_INSTRSPEED>1 - lda #FEAT_INSTRSPEED - sta v_ainstrspeed - EIF - ldy #8 -ri1 lda (ns),y - sta p_tis-8,y - iny - cpy #8+8 - bne ri1 - IFT FEAT_NOSTARTINGSONGLINE==0 - pla - pha - IFT TRACKS>4 - asl @ - asl @ - asl @ - clc - adc p_song - sta p_song - pla - php - and #$e0 - asl @ - rol @ - rol @ - rol @ - ELS - asl @ - asl @ - clc - adc p_song - sta p_song - pla - php - and #$c0 - asl @ - rol @ - rol @ - EIF - plp - adc p_song+1 - sta p_song+1 - EIF - jsr GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3 -rmt_silence - IFT STEREOMODE>0 - lda #0 - sta $d208 - sta $d218 - ldy #3 - sty $d20f - sty $d21f - ldy #8 -si1 sta $d200,y - sta $d210,y - dey - bpl si1 - ELS - lda #0 - sta $d208 - ldy #3 - sty $d20f - ldy #8 -si1 sta $d200,y - dey - bpl si1 - EIF - IFT FEAT_INSTRSPEED==0 - lda v_instrspeed - ELS - lda #FEAT_INSTRSPEED - EIF - rts -GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3 -GetSongLine - ldx #0 - stx v_abeat -nn0 -nn1 txa - tay - lda (p_song),y - cmp #$fe - bcs nn2 - tay - lda (p_trackslbstable),y - sta trackn_db,x - lda (p_trackshbstable),y -nn1a sta trackn_hb,x - lda #0 - sta trackn_idx,x - lda #1 -nn1a2 sta trackn_pause,x - lda #$80 - sta trackn_instrx2,x - inx -xtracks01 cpx #TRACKS - bne nn1 - lda p_song - clc -xtracks02 adc #TRACKS - sta p_song - bcc GetTrackLine - inc p_song+1 -nn1b - jmp GetTrackLine -nn2 - beq nn3 -nn2a - lda #0 - beq nn1a2 -nn3 - ldy #2 - lda (p_song),y - tax - iny - lda (p_song),y - sta p_song+1 - stx p_song - ldx #0 - beq nn0 -GetTrackLine -oo0 -oo0a - IFT FEAT_CONSTANTSPEED==0 - lda #$ff -v_speed equ *-1 - sta v_bspeed - EIF - ldx #-1 -oo1 - inx - dec trackn_pause,x - bne oo1x -oo1b - lda trackn_db,x - sta ns - lda trackn_hb,x - sta ns+1 -oo1i - ldy trackn_idx,x - inc trackn_idx,x - lda (ns),y - sta reg1 - and #$3f - cmp #61 - beq oo1a - bcs oo2 - sta trackn_note,x - IFT FEAT_BASS16 - sta trackn_outnote,x - EIF - iny - lda (ns),y - lsr @ - and #$3f*2 - sta trackn_instrx2,x -oo1a - lda #1 - sta trackn_pause,x - ldy trackn_idx,x - inc trackn_idx,x - lda (ns),y - lsr @ - ror reg1 - lsr @ - ror reg1 - lda reg1 - IFT FEAT_GLOBALVOLUMEFADE - sec - sbc #$00 -RMTGLOBALVOLUMEFADE equ *-1 - bcs voig - lda #0 -voig - EIF - and #$f0 - sta trackn_volume,x -oo1x -xtracks03sub1 cpx #TRACKS-1 - bne oo1 - IFT FEAT_CONSTANTSPEED==0 - lda #$ff -v_bspeed equ *-1 - sta v_speed - ELS - lda #FEAT_CONSTANTSPEED - EIF - sta v_aspeed - jmp InitOfNewSetInstrumentsOnly -oo2 - cmp #63 - beq oo63 - lda reg1 - and #$c0 - beq oo62_b - asl @ - rol @ - rol @ - sta trackn_pause,x - jmp oo1x -oo62_b - iny - lda (ns),y - sta trackn_pause,x - inc trackn_idx,x - jmp oo1x -oo63 - lda reg1 - IFT FEAT_CONSTANTSPEED==0 - bmi oo63_1X - iny - lda (ns),y - sta v_bspeed - inc trackn_idx,x - jmp oo1i -oo63_1X - EIF - cmp #255 - beq oo63_11 - iny - lda (ns),y - sta trackn_idx,x - jmp oo1i -oo63_11 - jmp GetSongLine -p2xrmtp3 jmp rmt_p3 -p2x0 dex - bmi p2xrmtp3 -InitOfNewSetInstrumentsOnly -p2x1 ldy trackn_instrx2,x - bmi p2x0 - IFT FEAT_SFX - jsr SetUpInstrumentY2 - jmp p2x0 -rmt_sfx - sta trackn_note,x - IFT FEAT_BASS16 - sta trackn_outnote,x - EIF - lda #$f0 ;* sfx note volume*16 -RMTSFXVOLUME equ *-1 ;* label for sfx note volume parameter overwriting - sta trackn_volume,x - EIF -SetUpInstrumentY2 - lda (p_instrstable),y - sta trackn_instrdb,x - sta nt - iny - lda (p_instrstable),y - sta trackn_instrhb,x - sta nt+1 - IFT FEAT_FILTER - lda #1 - sta trackn_filter,x - EIF - IFT FEAT_TABLEGO - IFT FEAT_FILTER - tay - ELS - ldy #1 - EIF - lda (nt),y - sta trackn_tablelop,x - iny - ELS - ldy #2 - EIF - lda (nt),y - sta trackn_instrlen,x - iny - lda (nt),y - sta trackn_instrlop,x - iny - lda (nt),y - sta trackn_tabletypespeed,x - IFT FEAT_TABLETYPE||FEAT_TABLEMODE - and #$3f - EIF - sta trackn_tablespeeda,x - IFT FEAT_TABLEMODE - lda (nt),y - and #$40 - sta trackn_tablemode,x - EIF - IFT FEAT_AUDCTLMANUALSET - iny - lda (nt),y - sta trackn_audctl,x - iny - ELS - ldy #6 - EIF - lda (nt),y - sta trackn_volumeslidedepth,x - IFT FEAT_VOLUMEMIN - iny - lda (nt),y - sta trackn_volumemin,x - IFT FEAT_EFFECTS - iny - EIF - ELS - IFT FEAT_EFFECTS - ldy #8 - EIF - EIF - IFT FEAT_EFFECTS - lda (nt),y - sta trackn_effdelay,x - IFT FEAT_EFFECTVIBRATO - iny - lda (nt),y - tay - lda vibtabbeg,y - sta trackn_effvibratoa,x - EIF - IFT FEAT_EFFECTFSHIFT - ldy #10 - lda (nt),y - sta trackn_effshift,x - EIF - EIF - lda #128 - sta trackn_volumeslidevalue,x - sta trackn_instrx2,x - asl @ - sta trackn_instrreachend,x - sta trackn_shiftfrq,x - tay - lda (nt),y - sta trackn_tableend,x - adc #0 - sta trackn_instridx,x - lda #INSTRPAR - sta trackn_tablea,x - tay - lda (nt),y - sta trackn_tablenote,x -xata_rtshere - IFT FEAT_SFX - rts - ELS - jmp p2x0 - EIF -rmt_play -rmt_p0 - jsr SetPokey -rmt_p1 - IFT FEAT_INSTRSPEED==0||FEAT_INSTRSPEED>1 - dec v_ainstrspeed - bne rmt_p3 - EIF - IFT FEAT_INSTRSPEED==0 - lda #$ff -v_instrspeed equ *-1 - sta v_ainstrspeed - ELI FEAT_INSTRSPEED>1 - lda #FEAT_INSTRSPEED - sta v_ainstrspeed - EIF -rmt_p2 - dec v_aspeed - bne rmt_p3 - inc v_abeat - lda #$ff -v_abeat equ *-1 - cmp #$ff -v_maxtracklen equ *-1 - beq p2o3 - jmp GetTrackLine -p2o3 - jmp GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3 -go_ppnext jmp ppnext -rmt_p3 - lda #>frqtab - sta nr+1 -xtracks05sub1 ldx #TRACKS-1 -pp1 - lda trackn_instrhb,x - beq go_ppnext - sta ns+1 - lda trackn_instrdb,x - sta ns - ldy trackn_instridx,x - lda (ns),y - sta reg1 - iny - lda (ns),y - sta reg2 - iny - lda (ns),y - sta reg3 - iny - tya - cmp trackn_instrlen,x - bcc pp2 - beq pp2 - lda #$80 - sta trackn_instrreachend,x -pp1b - lda trackn_instrlop,x -pp2 sta trackn_instridx,x - lda reg1 - IFT TRACKS>4 - cpx #4 - bcc pp2s - lsr @ - lsr @ - lsr @ - lsr @ -pp2s - EIF - and #$0f - ora trackn_volume,x - tay - lda volumetab,y - sta tmp - lda reg2 - and #$0e - tay - lda tabbeganddistor,y - sta nr - lda tmp - ora tabbeganddistor+1,y - sta trackn_audc,x -InstrumentsEffects - IFT FEAT_EFFECTS - lda trackn_effdelay,x - beq ei2 - cmp #1 - bne ei1 - lda trackn_shiftfrq,x - IFT FEAT_EFFECTFSHIFT - clc - adc trackn_effshift,x - EIF - IFT FEAT_EFFECTVIBRATO - clc - ldy trackn_effvibratoa,x - adc vib0,y - EIF - sta trackn_shiftfrq,x - IFT FEAT_EFFECTVIBRATO - lda vibtabnext,y - sta trackn_effvibratoa,x - EIF - jmp ei2 -ei1 - dec trackn_effdelay,x -ei2 - EIF - ldy trackn_tableend,x - cpy #INSTRPAR+1 - bcc ei3 - lda trackn_tablespeeda,x - bpl ei2f -ei2c - tya - cmp trackn_tablea,x - bne ei2c2 - IFT FEAT_TABLEGO - lda trackn_tablelop,x - ELS - lda #INSTRPAR - EIF - sta trackn_tablea,x - bne ei2a -ei2c2 - inc trackn_tablea,x -ei2a - lda trackn_instrdb,x - sta nt - lda trackn_instrhb,x - sta nt+1 - ldy trackn_tablea,x - lda (nt),y - IFT FEAT_TABLEMODE - ldy trackn_tablemode,x - beq ei2e - clc - adc trackn_tablenote,x -ei2e - EIF - sta trackn_tablenote,x - lda trackn_tabletypespeed,x - IFT FEAT_TABLETYPE||FEAT_TABLEMODE - and #$3f - EIF -ei2f - sec - sbc #1 - sta trackn_tablespeeda,x -ei3 - lda trackn_instrreachend,x - bpl ei4 - lda trackn_volume,x - beq ei4 - IFT FEAT_VOLUMEMIN - cmp trackn_volumemin,x - beq ei4 - bcc ei4 - EIF - tay - lda trackn_volumeslidevalue,x - clc - adc trackn_volumeslidedepth,x - sta trackn_volumeslidevalue,x - bcc ei4 - tya - sbc #16 - sta trackn_volume,x -ei4 - IFT FEAT_COMMAND2 - lda #0 - sta frqaddcmd2 - EIF - IFT FEAT_COMMAND1||FEAT_COMMAND2||FEAT_COMMAND3||FEAT_COMMAND4||FEAT_COMMAND5||FEAT_COMMAND6||FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - lda reg2 - IFT FEAT_FILTER||FEAT_BASS16 - sta trackn_command,x - EIF - and #$70 - IFT 1==[FEAT_COMMAND1+FEAT_COMMAND2+FEAT_COMMAND3+FEAT_COMMAND4+FEAT_COMMAND5+FEAT_COMMAND6+[FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY]] - beq cmd0 - ELS - lsr @ - lsr @ - sta jmx+1 -jmx bcc * - jmp cmd0 - nop - jmp cmd1 - IFT FEAT_COMMAND2||FEAT_COMMAND3||FEAT_COMMAND4||FEAT_COMMAND5||FEAT_COMMAND6||FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - nop - jmp cmd2 - EIF - IFT FEAT_COMMAND3||FEAT_COMMAND4||FEAT_COMMAND5||FEAT_COMMAND6||FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - nop - jmp cmd3 - EIF - IFT FEAT_COMMAND4||FEAT_COMMAND5||FEAT_COMMAND6||FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - nop - jmp cmd4 - EIF - IFT FEAT_COMMAND5||FEAT_COMMAND6||FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - nop - jmp cmd5 - EIF - IFT FEAT_COMMAND6||FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - nop - jmp cmd6 - EIF - IFT FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - nop - jmp cmd7 - EIF - EIF - ELS - IFT FEAT_FILTER||FEAT_BASS16 - lda reg2 - sta trackn_command,x - EIF - EIF -cmd1 - IFT FEAT_COMMAND1 - lda reg3 - jmp cmd0c - EIF -cmd2 - IFT FEAT_COMMAND2 - lda reg3 - sta frqaddcmd2 - lda trackn_note,x - jmp cmd0a - EIF -cmd3 - IFT FEAT_COMMAND3 - lda trackn_note,x - clc - adc reg3 - sta trackn_note,x - jmp cmd0a - EIF -cmd4 - IFT FEAT_COMMAND4 - lda trackn_shiftfrq,x - clc - adc reg3 - sta trackn_shiftfrq,x - lda trackn_note,x - jmp cmd0a - EIF -cmd5 - IFT FEAT_COMMAND5&&FEAT_PORTAMENTO - IFT FEAT_TABLETYPE - lda trackn_tabletypespeed,x - bpl cmd5a1 - ldy trackn_note,x - lda (nr),y - clc - adc trackn_tablenote,x - jmp cmd5ax - EIF -cmd5a1 - lda trackn_note,x - clc - adc trackn_tablenote,x - cmp #61 - bcc cmd5a2 - lda #63 -cmd5a2 - tay - lda (nr),y -cmd5ax - sta trackn_portafrqc,x - ldy reg3 - bne cmd5a - sta trackn_portafrqa,x -cmd5a - tya - lsr @ - lsr @ - lsr @ - lsr @ - sta trackn_portaspeed,x - sta trackn_portaspeeda,x - lda reg3 - and #$0f - sta trackn_portadepth,x - lda trackn_note,x - jmp cmd0a - ELI FEAT_COMMAND5 - lda trackn_note,x - jmp cmd0a - EIF -cmd6 - IFT FEAT_COMMAND6&&FEAT_FILTER - lda reg3 - clc - adc trackn_filter,x - sta trackn_filter,x - lda trackn_note,x - jmp cmd0a - ELI FEAT_COMMAND6 - lda trackn_note,x - jmp cmd0a - EIF -cmd7 - IFT FEAT_COMMAND7SETNOTE||FEAT_COMMAND7VOLUMEONLY - IFT FEAT_COMMAND7SETNOTE - lda reg3 - IFT FEAT_COMMAND7VOLUMEONLY - cmp #$80 - beq cmd7a - EIF - sta trackn_note,x - jmp cmd0a - EIF - IFT FEAT_COMMAND7VOLUMEONLY -cmd7a - lda trackn_audc,x - ora #$f0 - sta trackn_audc,x - lda trackn_note,x - jmp cmd0a - EIF - EIF -cmd0 - lda trackn_note,x - clc - adc reg3 -cmd0a - IFT FEAT_TABLETYPE - ldy trackn_tabletypespeed,x - bmi cmd0b - EIF - clc - adc trackn_tablenote,x - cmp #61 - bcc cmd0a1 - lda #0 - sta trackn_audc,x - lda #63 -cmd0a1 - IFT FEAT_BASS16 - sta trackn_outnote,x - EIF - tay - lda (nr),y - clc - adc trackn_shiftfrq,x - IFT FEAT_COMMAND2 - clc - adc frqaddcmd2 - EIF - IFT FEAT_TABLETYPE - jmp cmd0c -cmd0b - cmp #61 - bcc cmd0b1 - lda #0 - sta trackn_audc,x - lda #63 -cmd0b1 - tay - lda trackn_shiftfrq,x - clc - adc trackn_tablenote,x - clc - adc (nr),y - IFT FEAT_COMMAND2 - clc - adc frqaddcmd2 - EIF - EIF -cmd0c - sta trackn_audf,x -pp9 - IFT FEAT_PORTAMENTO - lda trackn_portaspeeda,x - beq pp10 - dec trackn_portaspeeda,x - bne pp10 - lda trackn_portaspeed,x - sta trackn_portaspeeda,x - lda trackn_portafrqa,x - cmp trackn_portafrqc,x - beq pp10 - bcs pps1 - adc trackn_portadepth,x - bcs pps8 - cmp trackn_portafrqc,x - bcs pps8 - jmp pps9 -pps1 - sbc trackn_portadepth,x - bcc pps8 - cmp trackn_portafrqc,x - bcs pps9 -pps8 - lda trackn_portafrqc,x -pps9 - sta trackn_portafrqa,x -pp10 - lda reg2 - and #$01 - beq pp11 - lda trackn_portafrqa,x - clc - adc trackn_shiftfrq,x - sta trackn_audf,x -pp11 - EIF -ppnext - dex - bmi rmt_p4 - jmp pp1 -rmt_p4 - IFT FEAT_AUDCTLMANUALSET - lda trackn_audctl+0 - ora trackn_audctl+1 - ora trackn_audctl+2 - ora trackn_audctl+3 - tax - ELS - ldx #0 - EIF -qq1 - stx v_audctl - IFT FEAT_FILTER - IFT FEAT_FILTERG0L - lda trackn_command+0 - bpl qq2 - lda trackn_audc+0 - and #$0f - beq qq2 - lda trackn_audf+0 - clc - adc trackn_filter+0 - sta trackn_audf+2 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2L - lda trackn_audc+2 - and #$10 - bne qq1a - EIF - lda #0 - sta trackn_audc+2 -qq1a - txa - ora #4 - tax - EIF -qq2 - IFT FEAT_FILTERG1L - lda trackn_command+1 - bpl qq3 - lda trackn_audc+1 - and #$0f - beq qq3 - lda trackn_audf+1 - clc - adc trackn_filter+1 - sta trackn_audf+3 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG3L - lda trackn_audc+3 - and #$10 - bne qq2a - EIF - lda #0 - sta trackn_audc+3 -qq2a - txa - ora #2 - tax - EIF -qq3 - IFT FEAT_FILTERG0L||FEAT_FILTERG1L - cpx v_audctl - bne qq5 - EIF - EIF - IFT FEAT_BASS16 - IFT FEAT_BASS16G1L - lda trackn_command+1 - and #$0e - cmp #6 - bne qq4 - lda trackn_audc+1 - and #$0f - beq qq4 - ldy trackn_outnote+1 - lda frqtabbasslo,y - sta trackn_audf+0 - lda frqtabbasshi,y - sta trackn_audf+1 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG0L - lda trackn_audc+0 - and #$10 - bne qq3a - EIF - lda #0 - sta trackn_audc+0 -qq3a - txa - ora #$50 - tax - EIF -qq4 - IFT FEAT_BASS16G3L - lda trackn_command+3 - and #$0e - cmp #6 - bne qq5 - lda trackn_audc+3 - and #$0f - beq qq5 - ldy trackn_outnote+3 - lda frqtabbasslo,y - sta trackn_audf+2 - lda frqtabbasshi,y - sta trackn_audf+3 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2L - lda trackn_audc+2 - and #$10 - bne qq4a - EIF - lda #0 - sta trackn_audc+2 -qq4a - txa - ora #$28 - tax - EIF - EIF -qq5 - stx v_audctl - IFT TRACKS>4 - IFT FEAT_AUDCTLMANUALSET - lda trackn_audctl+4 - ora trackn_audctl+5 - ora trackn_audctl+6 - ora trackn_audctl+7 - tax - ELS - ldx #0 - EIF - stx v_audctl2 - IFT FEAT_FILTER - IFT FEAT_FILTERG0R - lda trackn_command+0+4 - bpl qs2 - lda trackn_audc+0+4 - and #$0f - beq qs2 - lda trackn_audf+0+4 - clc - adc trackn_filter+0+4 - sta trackn_audf+2+4 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2R - lda trackn_audc+2+4 - and #$10 - bne qs1a - EIF - lda #0 - sta trackn_audc+2+4 -qs1a - txa - ora #4 - tax - EIF -qs2 - IFT FEAT_FILTERG1R - lda trackn_command+1+4 - bpl qs3 - lda trackn_audc+1+4 - and #$0f - beq qs3 - lda trackn_audf+1+4 - clc - adc trackn_filter+1+4 - sta trackn_audf+3+4 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG3R - lda trackn_audc+3+4 - and #$10 - bne qs2a - EIF - lda #0 - sta trackn_audc+3+4 -qs2a - txa - ora #2 - tax - EIF -qs3 - IFT FEAT_FILTERG0R||FEAT_FILTERG1R - cpx v_audctl2 - bne qs5 - EIF - EIF - IFT FEAT_BASS16 - IFT FEAT_BASS16G1R - lda trackn_command+1+4 - and #$0e - cmp #6 - bne qs4 - lda trackn_audc+1+4 - and #$0f - beq qs4 - ldy trackn_outnote+1+4 - lda frqtabbasslo,y - sta trackn_audf+0+4 - lda frqtabbasshi,y - sta trackn_audf+1+4 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG0R - lda trackn_audc+0+4 - and #$10 - bne qs3a - EIF - lda #0 - sta trackn_audc+0+4 -qs3a - txa - ora #$50 - tax - EIF -qs4 - IFT FEAT_BASS16G3R - lda trackn_command+3+4 - and #$0e - cmp #6 - bne qs5 - lda trackn_audc+3+4 - and #$0f - beq qs5 - ldy trackn_outnote+3+4 - lda frqtabbasslo,y - sta trackn_audf+2+4 - lda frqtabbasshi,y - sta trackn_audf+3+4 - IFT FEAT_COMMAND7VOLUMEONLY&&FEAT_VOLUMEONLYG2R - lda trackn_audc+2+4 - and #$10 - bne qs4a - EIF - lda #0 - sta trackn_audc+2+4 -qs4a - txa - ora #$28 - tax - EIF - EIF -qs5 - stx v_audctl2 - EIF -rmt_p5 - IFT FEAT_INSTRSPEED==0||FEAT_INSTRSPEED>1 - lda #$ff -v_ainstrspeed equ *-1 - ELS - lda #1 - EIF - rts -SetPokey - IFT STEREOMODE==1 ;* L1 L2 L3 L4 R1 R2 R3 R4 - ldy #$ff -v_audctl2 equ *-1 - lda trackn_audf+0+4 - ldx trackn_audf+0 -xstastx01 sta $d210 - stx $d200 - lda trackn_audc+0+4 - ldx trackn_audc+0 -xstastx02 sta $d211 - stx $d201 - lda trackn_audf+1+4 - ldx trackn_audf+1 -xstastx03 sta $d212 - stx $d202 - lda trackn_audc+1+4 - ldx trackn_audc+1 -xstastx04 sta $d213 - stx $d203 - lda trackn_audf+2+4 - ldx trackn_audf+2 -xstastx05 sta $d214 - stx $d204 - lda trackn_audc+2+4 - ldx trackn_audc+2 -xstastx06 sta $d215 - stx $d205 - lda trackn_audf+3+4 - ldx trackn_audf+3 -xstastx07 sta $d216 - stx $d206 - lda trackn_audc+3+4 - ldx trackn_audc+3 -xstastx08 sta $d217 - stx $d207 - lda #$ff -v_audctl equ *-1 -xstysta01 sty $d218 - sta $d208 - ELI STEREOMODE==0 ;* L1 L2 L3 L4 - ldy #$ff -v_audctl equ *-1 - lda trackn_audf+0 - ldx trackn_audc+0 - sta $d200 - stx $d201 - lda trackn_audf+1 - ldx trackn_audc+1 - sta $d200+2 - stx $d201+2 - lda trackn_audf+2 - ldx trackn_audc+2 - sta $d200+4 - stx $d201+4 - lda trackn_audf+3 - ldx trackn_audc+3 - sta $d200+6 - stx $d201+6 - sty $d208 - ELI STEREOMODE==2 ;* L1 R2 R3 L4 - ldy #$ff -v_audctl equ *-1 - lda trackn_audf+0 - ldx trackn_audc+0 - sta $d200 - stx $d201 - sta $d210 - lda trackn_audf+1 - ldx trackn_audc+1 - sta $d210+2 - stx $d211+2 - lda trackn_audf+2 - ldx trackn_audc+2 - sta $d210+4 - stx $d211+4 - sta $d200+4 - lda trackn_audf+3 - ldx trackn_audc+3 - sta $d200+6 - stx $d201+6 - sta $d210+6 - sty $d218 - sty $d208 - ELI STEREOMODE==3 ;* L1 L2 R3 R4 - ldy #$ff -v_audctl equ *-1 - lda trackn_audf+0 - ldx trackn_audc+0 - sta $d200 - stx $d201 - lda trackn_audf+1 - ldx trackn_audc+1 - sta $d200+2 - stx $d201+2 - lda trackn_audf+2 - ldx trackn_audc+2 - sta $d210+4 - stx $d211+4 - sta $d200+4 - lda trackn_audf+3 - ldx trackn_audc+3 - sta $d210+6 - stx $d211+6 - sta $d200+6 - sty $d218 - sty $d208 - EIF - rts -RMTPLAYEREND diff --git a/artwork/sfx/scorch_trial0h_stripped.rmt b/artwork/sfx/scorch_trial0j.rmt similarity index 50% rename from artwork/sfx/scorch_trial0h_stripped.rmt rename to artwork/sfx/scorch_trial0j.rmt index f2646c9d934ac5534733ad47c07d2be4caa7236f..b160dcbbb99e5be521e631d61cdff6954171d5a8 100644 GIT binary patch delta 911 zcmaJ-O=uHQ5T2x^zp+#=Dq4M3@c&@{h+gb&n%_1FTJ#{O@REI-EZMx>?vFJG8$F3d ziX|xMrH6_js3;YRNUFIa^1rmv2l#!8t?59U z9}DXzp?ebg>KdK|)YTYI%%frh>fBQEC*Rz=)>)r_u(9%`eN)Z+PoWYFP;_(m0{4Aq z23smq)y0{K>8Z-pM5T7r!Nk>C_DJ(85TZedD$J(@_yqXT8hxVL@H{0%bCVFQ?dV(3 zw^f_orUD&e9kz>VU^!Kp>F6nU{=&X)QQfjLy+1v0G;MHNWW+Xj4s7NS(->#gKasBG z@($Oqs<@mRz}*6aqGsEg&Ol+*$&(DrX}sQI>eMb$l0oN?9z*Q~Po@_$W#H7LdJz=O za!58$t=!r?lGhwSBdTE$)#Zg!#wcb8Y z1xB*E;VNKhhO^2AY@CtD+lp3RdzBznUB^@|SKAo(;STPJqZx2^4!=UDC1%x~4W?@$ zS(}k@WP-038Fxv6m9n~)Eg%=eaPZem(=E85Yh$jaklKcjp^n3>5{%&5<>(gitx;PGwl3WIeCyw>4%>pa9d47t6AtIiwRdZ*Sd-}O{? z?X};EJ9a|Au3fu!0|5gAh};7Odx2oz#!a8tm>3u)FJqVIe)V6ei$M^GUNLUIz94!f|L;cszx(}m>{t8$UGD#P zwI5lLJ(dSHItfz|(jEcOHQ{~cIu z$G-U`_c}(G|IGjY|6>T<_n(3BKLZmGvoQYu$DFwD|9^J2|Nl9;fiwq@=K9B$yN`$O fKQB=E|9?EK`&b2qgu!h7iTfsh@}Zuq@HbED73sT)she7^DT zMwv}zo0e=kw#jSrxy{^Lg0^hma(s*A)|jnDTNiJAx%K~6r){Cz3b!rW#sCBtw|(BG zwmowDwC$(1f7!0S!+A&Ej+r}l%LdjqGOXMy-@fyMxQ01Mp#XzVL(i-&XC8l3%zP-@gO% z>n8S1?yH*&BEX!w2_R8Bb_nPHf9C)H|1oUe`=5dFKLZmGvoQYu$9#D2|Nrc4|NnDx n18EK*&GnD%{9Ycu|GYru|NrqkpL~YbnCm-GmD2xz(#rb))`gfP delta 242 zcmV`6bbh4td#Ii`U%(Dr!P_(tQ#k3c-TD5Ssp|$6={k1^0Q?_rmq_zM6007Un@wOzl zSGSb6$hY#hCAdMjY`B-Wxf@S=e*mYu9fh~<6(%(R0000F07`y}n6k>@^dD#E5H(wo zk0P127. max time measured 2.5 s + bit RMT_blocked + bmi SkipRMTVBL ; ------- RMT ------- lda sfx_effect bmi lab2 @@ -1540,9 +1543,12 @@ noKey ; starting song line 0-255 to A reg bit noMusic spl:lda #song_silencio + mvx #$ff RMT_blocked ldx #MODUL ;hi byte of RMT module to Y reg - jmp RASTERMUSICTRACKER ;Init, :RTS + jsr RASTERMUSICTRACKER ;Init + mva #0 RMT_blocked + rts .endp ;---------------------------------------------- icl 'weapons.asm' @@ -1575,7 +1581,7 @@ PLAYER MODUL equ $b000 ;address of RMT module opt h- ;RMT module is standard Atari binary file already - ins "artwork/sfx/scorch_trial0h1_stripped.rmt" ;include music RMT module + ins "artwork/sfx/scorch_trial0j_stripped.rmt" ;include music RMT module opt h+ ; ; diff --git a/scorch.xex b/scorch.xex index 27b3f567e70d38f08fb07baa22e766353db9c86e..8d6588799fe2300106d02e5ea6ecf49f8685add8 100644 GIT binary patch delta 17019 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 IiQuOFA9u3ANB{r;