summaryrefslogtreecommitdiff
path: root/macros/sound.asm
diff options
context:
space:
mode:
Diffstat (limited to 'macros/sound.asm')
-rw-r--r--macros/sound.asm264
1 files changed, 264 insertions, 0 deletions
diff --git a/macros/sound.asm b/macros/sound.asm
new file mode 100644
index 00000000..82ef6a31
--- /dev/null
+++ b/macros/sound.asm
@@ -0,0 +1,264 @@
+note: MACRO
+ dn (\1), (\2) - 1
+ ENDM
+
+sound: macro
+ note \1, \2
+ db \3 ; intensity
+ dw \4 ; frequency
+ endm
+
+noise: macro
+ note \1, \2 ; duration
+ db \3 ; intensity
+ db \4 ; frequency
+ endm
+
+musicheader: macro
+ ; number of tracks, which track, address
+ dbw ((\1 - 1) << 6) + (\2 - 1), \3
+ endm
+
+cry_header: macro
+ dw \1, \2, \3
+ endm
+
+ enum_start $d8
+ enum notetype_cmd
+octave: macro
+ db notetype_cmd - (\1)
+ endm
+
+notetype: macro ; d8
+ db notetype_cmd
+ db \1 ; note_length
+ if _NARG >= 2
+ db \2 ; intensity
+ endc
+ endm
+
+ enum forceoctave_cmd
+forceoctave: macro ; d9
+ db forceoctave_cmd
+ db \1 ; octave
+ endm
+
+ enum tempo_cmd
+tempo: macro ; da
+ db tempo_cmd
+ bigdw \1 ; tempo
+ endm
+
+ enum dutycycle_cmd
+dutycycle: macro ; db
+ db dutycycle_cmd
+ db \1 ; duty_cycle
+ endm
+
+ enum intensity_cmd
+intensity: macro ; dc
+ db intensity_cmd
+ db \1 ; intensity
+ endm
+
+ enum soundinput_cmd
+soundinput: macro ; dd
+ db soundinput_cmd
+ db \1 ; input
+ endm
+
+ enum unknownmusic0xde_cmd
+unknownmusic0xde: macro ; de
+ db unknownmusic0xde_cmd
+ db \1 ; unknown
+ endm
+
+ enum togglesfx_cmd
+togglesfx: macro ; df
+ db togglesfx_cmd
+ endm
+
+ enum unknownmusic0xe0_cmd
+unknownmusic0xe0: macro ; e0
+ db unknownmusic0xe0_cmd
+ db \1 ; unknown
+ ; db \2 ; unknown
+ dn \2, \3 ; octave, pitch
+ endm
+
+ enum vibrato_cmd
+vibrato: macro ; e1
+ db vibrato_cmd
+ db \1 ; delay
+ db \2 ; extent
+ endm
+
+ enum unknownmusic0xe2_cmd
+unknownmusic0xe2: macro ; e2
+ db unknownmusic0xe2_cmd
+ db \1 ; unknown
+ endm
+
+ enum togglenoise_cmd
+togglenoise: macro ; e3
+ db togglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum panning_cmd
+panning: macro ; e4
+ db panning_cmd
+ db \1 ; tracks
+ endm
+
+ enum volume_cmd
+volume: macro ; e5
+ db volume_cmd
+ db \1 ; volume
+ endm
+
+ enum tone_cmd
+tone: macro ; e6
+ db tone_cmd
+ bigdw \1 ; tone
+ endm
+
+ enum unknownmusic0xe7_cmd
+unknownmusic0xe7: macro ; e7
+ db unknownmusic0xe7_cmd
+ db \1 ; unknown
+ endm
+
+ enum unknownmusic0xe8_cmd
+unknownmusic0xe8: macro ; e8
+ db unknownmusic0xe8_cmd
+ db \1 ; unknown
+ endm
+
+ enum tempo_relative_cmd
+tempo_relative: macro ; e9
+ db tempo_relative_cmd
+ bigdw \1 ; value
+ endm
+
+ enum restartchannel_cmd
+restartchannel: macro ; ea
+ db restartchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum newsong_cmd
+newsong: macro ; eb
+ db newsong_cmd
+ bigdw \1 ; id
+ endm
+
+ enum sfxpriorityon_cmd
+sfxpriorityon: macro ; ec
+ db sfxpriorityon_cmd
+ endm
+
+ enum sfxpriorityoff_cmd
+sfxpriorityoff: macro ; ed
+ db sfxpriorityoff_cmd
+ endm
+
+ enum unknownmusic0xee_cmd
+unknownmusic0xee: macro ; ee
+ db unknownmusic0xee_cmd
+ dw \1 ; address
+ endm
+
+ enum stereopanning_cmd
+stereopanning: macro ; ef
+ db stereopanning_cmd
+ db \1 ; tracks
+ endm
+
+ enum sfxtogglenoise_cmd
+sfxtogglenoise: macro
+ db sfxtogglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum music0xf1_cmd
+music0xf1: macro
+ db music0xf1_cmd
+ endm
+
+ enum music0xf2_cmd
+music0xf2: macro
+ db music0xf2_cmd
+ endm
+
+ enum music0xf3_cmd
+music0xf3: macro
+ db music0xf3_cmd
+ endm
+
+ enum music0xf4_cmd
+music0xf4: macro
+ db music0xf4_cmd
+ endm
+
+ enum music0xf5_cmd
+music0xf5: macro
+ db music0xf5_cmd
+ endm
+
+ enum music0xf6_cmd
+music0xf6: macro
+ db music0xf6_cmd
+ endm
+
+ enum music0xf7_cmd
+music0xf7: macro
+ db music0xf7_cmd
+ endm
+
+ enum music0xf8_cmd
+music0xf8: macro
+ db music0xf8_cmd
+ endm
+
+ enum unknownmusic0xf9_cmd
+unknownmusic0xf9: macro
+ db unknownmusic0xf9_cmd
+ endm
+
+ enum setcondition_cmd
+setcondition: macro
+ db setcondition_cmd
+ db \1 ; condition
+ endm
+
+ enum jumpif_cmd
+jumpif: macro
+ db jumpif_cmd
+ db \1 ; condition
+ dw \2 ; address
+ endm
+
+ enum jumpchannel_cmd
+jumpchannel: macro
+ db jumpchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum loopchannel_cmd
+loopchannel: macro ; fd
+ db loopchannel_cmd
+ db \1 ; count
+ dw \2 ; address
+ endm
+
+ enum callchannel_cmd
+callchannel: macro ; fe
+ db callchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum endchannel_cmd
+endchannel: macro ; ff
+ db endchannel_cmd
+ endm