;title=Castlevania Harmony of Dissonance / Successor of Fate (Juste Theme Variation)
;
; SMW port by gocha
; requires addmusicM

; standard vcmds
"VCMD_PATCH=$da"
"VCMD_PANPOT=$db"
"VCMD_PAN_FADE=$dc"
"VCMD_VIBRATO_ON=$de"
"VCMD_VIBRATO_OFF=$df"
"VCMD_MASTER_VOL_FADE=$e1"
"VCMD_MASTER_VOLUME=$e0"
"VCMD_SET_TEMPO=$e2"
"VCMD_TEMPO_FADE=$e3"
"VCMD_GLOBAL_TRANSPOSE=$e4"
;"VCMD_PERVOICE_TRANSPOSE="
"VCMD_TREMOLO_ON=$e5"
"VCMD_TREMOLO_OFF=$e5 $00 $00 $00" ; $e6
"VCMD_VOLUME=$e7"
"VCMD_VOL_FADE=$e8"
"VCMD_SUBROUTINE=$e9"
"VCMD_VIBRATO_FADE=$ea"
"VCMD_PITCHENV_TO=$eb"
"VCMD_PITCHENV_FROM=$ec"
"VCMD_PITCHENV_OFF=$eb $00 $00 $00"
"VCMD_TUNING=$ee"
"VCMD_ECHO_ON=$ef"
"VCMD_ECHO_OFF=$f0"
"VCMD_ECHO_PARAM=$f1"
"VCMD_ECHO_VOL_FADE=$f2"
"VCMD_PITCH_SLIDE=$dd"
;"VCMD_PERC_PATCH_BASE="

; extra vcmds
"VCMD_ADSR=$ed"
"VCMD_SRCN=$f3" ; [addmusicM] $f3 / [Carol] $e5
"VCMD_LOOP_ALT=$e6"
"VCMD_YOSHI_SW=$f4 $00"
"VCMD_PORTAMENTO_LITE_SW=$f4 $02" ; [addmusicM] $f4 $02
"VCMD_PORTAMENTO_SW=$f4 $01"
"VCMD_PULSE_SW=$f4 $04"
"VCMD_PULSE_SPEED=$fa"
"VCMD_NOISE_FREQ=$f8"
"VCMD_ECHO_SW=$f4 $03"
"VCMD_ECHO_FIR=$f5"
"VCMD_65C816_WRITE=$f9"
"VCMD_65C816_COUNT_SW=$f4 $05"
"VCMD_DSP_WRITE=$f6"
"VCMD_ARAM_WRITE=$f7"

; envelopes
"NO_ADSR=VCMD_ADSR $7f $e0"
"ADSR_STRINGS_REG=VCMD_ADSR $7c $a2"
"ADSR_STRINGS_SLOW=VCMD_ADSR $75 $a2"
"ADSR_STRINGS_REL=VCMD_ADSR $7c $ba"

; tunings
"TUNING_NULL=VCMD_TUNING $00"

; patches
"PATCH_STRINGS=@1 ADSR_STRINGS_REG TUNING_NULL"
"PATCH_STRINGS_BASS=@4 ADSR_STRINGS_REG TUNING_NULL"

"INITIAL_OFFSET=r=1"

"ECHO_VOL=$48 $b8"

#0	t37
	w255
	VCMD_ECHO_OFF

	INITIAL_OFFSET
	VCMD_ECHO_PARAM $04 $70 $00
	VCMD_ECHO_FIR $62 $06 $0a $01 $ff $fe $00 $00
	VCMD_PORTAMENTO_LITE_SW

	VCMD_ECHO_ON $ff ECHO_VOL

	q7f

	PATCH_STRINGS
	VCMD_PANPOT $0b

	VCMD_PORTAMENTO_SW
	o5 c+16e16f16g16
	VCMD_PORTAMENTO_SW
	[
	g+2.
	VCMD_PORTAMENTO_SW
	g16d+16<a+16>c16
	VCMD_PORTAMENTO_SW
	f2.
	VCMD_PORTAMENTO_SW
	d+16c+16c16<g+16
	VCMD_PORTAMENTO_SW
	>c+16e16e16g+16>d+16c+16<g+4.
	ADSR_STRINGS_REL ^16 ADSR_STRINGS_REG
	b16>d+16g+16

	VCMD_PITCHENV_TO $00 $01 $03
	a4^16
	VCMD_PITCHENV_TO $00 $01 $01
	a48
	VCMD_PITCHENV_OFF
	g48f48e4^16^48f48g+48
	VCMD_PITCHENV_TO $00 $01 $01
	a4
	VCMD_PITCHENV_OFF
	<<
	ADSR_STRINGS_REL ^8 ADSR_STRINGS_REG
	e8^16g16g+16a+16>g8g+8f8c8
	ADSR_STRINGS_REL ^16 ADSR_STRINGS_REG
	c+16f16d+16f+16f8f+32g+32a+16g+16g+16f+16f+16f16c+16<g+16
	a+2^32
	ADSR_STRINGS_REL ^32 ADSR_STRINGS_REG
	a+16>c+16d+16f8d+16f16
	f4.e16d16e4...
	ADSR_STRINGS_REL ^32 ADSR_STRINGS_REG
	]2
	f2.e4
	t36
	d2^8..
	ADSR_STRINGS_REL ^32 ADSR_STRINGS_REG
	<f16g16a16a+16
	>c16d+16d+16g16>d16<g16>c16<g16a+16d+16a16d+16g16f16c16<g16
	b2>c2
	<a+2a2
	g1..
	ADSR_STRINGS_REL ^4 ADSR_STRINGS_REG

	/
	r2

#1	VCMD_PORTAMENTO_LITE_SW
	INITIAL_OFFSET

	PATCH_STRINGS
	VCMD_PANPOT $0a
	q7e

	o4
	VCMD_PORTAMENTO_SW
	f16g16>c16<b16>
	VCMD_PORTAMENTO_SW
	[
	q7e
	c2.<
	VCMD_PORTAMENTO_SW
	a+16f16d+16g+16
	VCMD_PORTAMENTO_SW
	a+8a+4>c4.<a+4
	g+4^32
	ADSR_STRINGS_REL ^32 ADSR_STRINGS_REG
	g16a+16g+16b16a+16>c+16<b16>d+16c+16g16e16
	d4.^24
	VCMD_PORTAMENTO_SW
	g+24a+24>c2
	VCMD_PORTAMENTO_SW
	<q7dg+16q7cg+16q7dg+16q7cg+16q7dg+16q7cg+16q7dg+16q7cg+16
	>q7dc16q7cc16q7dc16q7cc16q7dc16q7cc16q7dc16q7cc16
	<q7da+16q7ca+16q7da+16q7ca+16q7da+16q7ca+16q7da+16q7ca+16
	>q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16
	q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16
	q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16
	<q7da+16q7ca+16q7da+16q7ca+16q7da+16q7ca+16q7da+16q7ca+16
	q7dg16q7cg16q7dg16q7cg16
	ADSR_STRINGS_REG
	VCMD_PORTAMENTO_SW
	q7e
	g24>c+24c24<a+24g24e24
	VCMD_PORTAMENTO_SW
	ADSR_STRINGS_REG
	]2
	q7e
	<a1
	g4.a4.d+4
	g1
	c16g16f16g16d+16g16d16g16c16g16<b16>g16c16g16d16g16
	d+2c2
	<g1..
	ADSR_STRINGS_REL ^4 ADSR_STRINGS_REG

#2	VCMD_PORTAMENTO_LITE_SW
	INITIAL_OFFSET

	PATCH_STRINGS
	VCMD_PANPOT $0a
	q7e

	o4
	VCMD_PORTAMENTO_SW
	f16g16f16e16
	VCMD_PORTAMENTO_SW
	[
	q7e
	d+2.
	VCMD_PORTAMENTO_SW
	a+16f16d+16g+16
	VCMD_PORTAMENTO_SW
	f+8f+4g+4.f+4
	e4^32
	ADSR_STRINGS_REL ^32 ADSR_STRINGS_REG
	d+16f+16e16g+16g16a+16g+16b16g+16>c16<a+16
	g+4.^24
	VCMD_PORTAMENTO_SW
	a+24>c24d2
	VCMD_PORTAMENTO_SW
	q7dd16q7cd16q7dd16q7cd16q7dd16q7cd16q7dd16q7cd16
	q7de16q7ce16q7de16q7ce16q7de16q7ce16q7de16q7ce16
	q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16q7dc+16q7cc+16
	q7df16q7cf16q7df16q7cf16q7da+16q7ca+16q7da+16q7ca+16
	q7df16q7cf16q7df16q7cf16q7df16q7cf16q7df16q7cf16q7df16q7cf16
	q7da+16q7ca+16q7da+16q7ca+16q7da+16q7ca+16
	<g4.g16g+16
	ADSR_STRINGS_REG
	VCMD_PORTAMENTO_SW
	q7e
	a+4^24g+24g24f24e24c24
	VCMD_PORTAMENTO_SW
	ADSR_STRINGS_REG
	]2
	q7e
	d2.c4
	<a+4.>d+4.<g4
	>d+2<a4a+4
	g2a2
	g2f+2
	<g1..
	ADSR_STRINGS_REL ^4 ADSR_STRINGS_REG

#3	VCMD_PORTAMENTO_LITE_SW
	INITIAL_OFFSET

	PATCH_STRINGS_BASS
	VCMD_PANPOT $09
	q7d

	o2c+16f16g+16g16
	f16r16f16r8f16f16f16r4r16>c16<f16g16
	g+16r16g+16r8.g+16g+16r8g+16r8g+16d+16g+16
	c+16r16c+16r16c+16r16c+16r16c+16r16c+16r16c+16r16c+16r16
	e16r16e16r16e16r16e16r16e16r16e16r16e16r16e16r16
	f16r16f16r16f16r16f16r16f16r16f16r16f16r16f16r16
	f+16r16f+16r16f+16r16f+16r16f+16r16f+16r16f+16r16f+16r16
	g16r16g16r16g16r16g16r16g16r16g16r16g16r16g16r16
	>c16r16c16r16c16r16c16r16c16r16c16r16c16r16c16r16
	<f16r16f16r8f16f16f16r4r16>c16<f16g16
	g+16r16g+16r8.g+16g+16r8g+16r8g+16d+16g+16
	c+16r16c+16r16c+16r16c+16r16c+16r16c+16r16c+16r16c+16r16
	e16r16e16r16e16r16e16r16e16r16e16r16e16r16e16r16
	f16r16f16r16f16r16f16r16f16r16f16r16f16r16f16r16
	f+16r16f+16r16f+16r16f+16r16f+16r16f+16r16f+16r16f+16r16
	g16r16g16r16g16r16g16r16g16r16g16r16g16r16g16r16
	>c16r16c16r16c16r16c16r16c16r16c16r16c16r16c16r16
	<d1
	d+2.a+4
	>c2.^16<a16g16f16
	e1
	f2d2
	<g1..
	ADSR_STRINGS_REL ^4 ADSR_STRINGS_REG

#4	VCMD_PORTAMENTO_LITE_SW
	INITIAL_OFFSET

	PATCH_STRINGS
	VCMD_PANPOT $0a
	q7d

	o3
	VCMD_PORTAMENTO_SW
	g+16r16>c16<b16>
	VCMD_PORTAMENTO_SW
	[
	c8
	ADSR_STRINGS_REL ^8^2 ADSR_STRINGS_REG
	<
	r4
	q7b
	a+8a+4>c4.<a+4
	g+4^32
	ADSR_STRINGS_REL ^32 ADSR_STRINGS_REG
	g16a+16g+16b16a+16>c+16<b16>d+16c+16g16e16
	d4.
	ADSR_STRINGS_REL ^8^2 ADSR_STRINGS_REG
	>
	<q7ag+16q79g+16q7ag+16q79g+16q7ag+16q79g+16q7ag+16q79g+16
	>q7ac16q79c16q7ac16q79c16q7ac16q79c16q7ac16q79c16
	<q7aa+16q79a+16q7aa+16q79a+16q7aa+16q79a+16q7aa+16q79a+16
	>q7ac+16q79c+16q7ac+16q79c+16q7ac+16q79c+16q7ac+16q79c+16
	q7ac+16q79c+16q7ac+16q79c+16q7ac+16q79c+16q7ac+16q79c+16
	q7ac+16q79c+16q7ac+16q79c+16q7ac+16q79c+16q7ac+16q79c+16
	<q7aa+16q79a+16q7aa+16q79a+16q7aa+16q79a+16q7aa+16q79a+16
	q7ag16q79g16q7ag16q79g16
	ADSR_STRINGS_REG
	VCMD_PORTAMENTO_SW
	q7b
	g24>c+24c24<a+24g24e24
	VCMD_PORTAMENTO_SW
	ADSR_STRINGS_REG
	]2
	ADSR_STRINGS_REL ^2 ADSR_STRINGS_REG
	r2
	r1r1r1
	o5
	ADSR_STRINGS_SLOW
	q77 a+2
	q79 a2
	q7b g1..
	ADSR_STRINGS_REL ^4 ADSR_STRINGS_REG
