summaryrefslogtreecommitdiff
path: root/macros/scripts/audio.asm
diff options
context:
space:
mode:
Diffstat (limited to 'macros/scripts/audio.asm')
-rw-r--r--macros/scripts/audio.asm269
1 files changed, 269 insertions, 0 deletions
diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm
new file mode 100644
index 00000000..fc9e3397
--- /dev/null
+++ b/macros/scripts/audio.asm
@@ -0,0 +1,269 @@
+musicheader: MACRO
+ ; number of tracks, track idx, address
+ dbw ((\1 - 1) << 6) + (\2 - 1), \3
+ENDM
+
+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
+
+; MusicCommands indexes (see audio/engine.asm)
+ enum_start $d0, +8
+FIRST_MUSIC_CMD EQU __enum__
+
+ enum octave_cmd ; $d0
+octave: MACRO
+ db octave_cmd | 8 - (\1)
+ENDM
+
+__enumdir__ = +1
+
+ enum notetype_cmd ; $d8
+notetype: MACRO
+ db notetype_cmd
+ db \1 ; note_length
+if _NARG >= 2
+ db \2 ; intensity
+endc
+ENDM
+
+ enum pitchoffset_cmd ; $d9
+pitchoffset: MACRO
+ db pitchoffset_cmd
+ dn \1, \2 - 1 ; octave, key
+ENDM
+
+ enum tempo_cmd ; $da
+tempo: MACRO
+ db tempo_cmd
+ bigdw \1 ; tempo
+ENDM
+
+ enum dutycycle_cmd ; $db
+dutycycle: MACRO
+ db dutycycle_cmd
+ db \1 ; duty_cycle
+ENDM
+
+ enum intensity_cmd ; $dc
+intensity: MACRO
+ db intensity_cmd
+ db \1 ; intensity
+ENDM
+
+ enum soundinput_cmd ; $dd
+soundinput: MACRO
+ db soundinput_cmd
+ db \1 ; input
+ENDM
+
+ enum sound_duty_cmd ; $de
+sound_duty: MACRO
+ db sound_duty_cmd
+if _NARG == 4
+ db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
+else
+ db \1 ; LEGACY: Support for one-byte duty value
+endc
+ENDM
+
+ enum togglesfx_cmd ; $df
+togglesfx: MACRO
+ db togglesfx_cmd
+ENDM
+
+ enum slidepitchto_cmd ; $e0
+slidepitchto: MACRO
+ db slidepitchto_cmd
+ db \1 - 1 ; duration
+ dn \2, \3 ; octave, pitch
+ENDM
+
+ enum vibrato_cmd ; $e1
+vibrato: MACRO
+ db vibrato_cmd
+ db \1 ; delay
+ db \2 ; extent
+ENDM
+
+ enum unknownmusic0xe2_cmd ; $e2
+unknownmusic0xe2: MACRO
+ db unknownmusic0xe2_cmd
+ db \1 ; unknown
+ENDM
+
+ enum togglenoise_cmd ; $e3
+togglenoise: MACRO
+ db togglenoise_cmd
+ db \1 ; id
+ENDM
+
+ enum panning_cmd ; $e4
+panning: MACRO
+ db panning_cmd
+ db \1 ; tracks
+ENDM
+
+ enum volume_cmd ; $e5
+volume: MACRO
+ db volume_cmd
+ db \1 ; volume
+ENDM
+
+ enum tone_cmd ; $e6
+tone: MACRO
+ db tone_cmd
+ bigdw \1 ; tone
+ENDM
+
+ enum unknownmusic0xe7_cmd ; $e7
+unknownmusic0xe7: MACRO
+ db unknownmusic0xe7_cmd
+ db \1 ; unknown
+ENDM
+
+ enum unknownmusic0xe8_cmd ; $e8
+unknownmusic0xe8: MACRO
+ db unknownmusic0xe8_cmd
+ db \1 ; unknown
+ENDM
+
+ enum tempo_relative_cmd ; $e9
+tempo_relative: MACRO
+ db tempo_relative_cmd
+ bigdw \1 ; value
+ENDM
+
+ enum restartchannel_cmd ; $ea
+restartchannel: MACRO
+ db restartchannel_cmd
+ dw \1 ; address
+ENDM
+
+ enum newsong_cmd ; $eb
+newsong: MACRO
+ db newsong_cmd
+ bigdw \1 ; id
+ENDM
+
+ enum sfxpriorityon_cmd ; $ec
+sfxpriorityon: MACRO
+ db sfxpriorityon_cmd
+ENDM
+
+ enum sfxpriorityoff_cmd ; $ed
+sfxpriorityoff: MACRO
+ db sfxpriorityoff_cmd
+ENDM
+
+ enum unknownmusic0xee_cmd ; $ee
+unknownmusic0xee: MACRO
+ db unknownmusic0xee_cmd
+ dw \1 ; address
+ENDM
+
+ enum stereopanning_cmd ; $ef
+stereopanning: MACRO
+ db stereopanning_cmd
+ db \1 ; tracks
+ENDM
+
+ enum sfxtogglenoise_cmd ; $f0
+sfxtogglenoise: MACRO
+ db sfxtogglenoise_cmd
+ db \1 ; id
+ENDM
+
+ enum music0xf1_cmd ; $f1
+music0xf1: MACRO
+ db music0xf1_cmd
+ENDM
+
+ enum music0xf2_cmd ; $f2
+music0xf2: MACRO
+ db music0xf2_cmd
+ENDM
+
+ enum music0xf3_cmd ; $f3
+music0xf3: MACRO
+ db music0xf3_cmd
+ENDM
+
+ enum music0xf4_cmd ; $f4
+music0xf4: MACRO
+ db music0xf4_cmd
+ENDM
+
+ enum music0xf5_cmd ; $f5
+music0xf5: MACRO
+ db music0xf5_cmd
+ENDM
+
+ enum music0xf6_cmd ; $f6
+music0xf6: MACRO
+ db music0xf6_cmd
+ENDM
+
+ enum music0xf7_cmd ; $f7
+music0xf7: MACRO
+ db music0xf7_cmd
+ENDM
+
+ enum music0xf8_cmd ; $f8
+music0xf8: MACRO
+ db music0xf8_cmd
+ENDM
+
+ enum unknownmusic0xf9_cmd ; $f9
+unknownmusic0xf9: MACRO
+ db unknownmusic0xf9_cmd
+ENDM
+
+ enum setcondition_cmd ; $fa
+setcondition: MACRO
+ db setcondition_cmd
+ db \1 ; condition
+ENDM
+
+ enum jumpif_cmd ; $fb
+jumpif: MACRO
+ db jumpif_cmd
+ db \1 ; condition
+ dw \2 ; address
+ENDM
+
+ enum jumpchannel_cmd ; $fc
+jumpchannel: MACRO
+ db jumpchannel_cmd
+ dw \1 ; address
+ENDM
+
+ enum loopchannel_cmd ; $fd
+loopchannel: MACRO
+ db loopchannel_cmd
+ db \1 ; count
+ dw \2 ; address
+ENDM
+
+ enum callchannel_cmd ; $fe
+callchannel: MACRO
+ db callchannel_cmd
+ dw \1 ; address
+ENDM
+
+ enum endchannel_cmd ; $ff
+endchannel: MACRO
+ db endchannel_cmd
+ENDM