diff options
Diffstat (limited to 'macros/scripts/audio.asm')
-rw-r--r-- | macros/scripts/audio.asm | 265 |
1 files changed, 265 insertions, 0 deletions
diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm new file mode 100644 index 000000000..bac979a5f --- /dev/null +++ b/macros/scripts/audio.asm @@ -0,0 +1,265 @@ +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, track idx, address + dbw ((\1 - 1) << 6) + (\2 - 1), \3 + endm + +cry_header: macro + dw \1, \2, \3 + endm + +; MusicCommands indexes (see audio/engine.asm) + enum_start $d8 + + enum notetype_cmd +octave: macro + db notetype_cmd - (\1) + endm + +notetype: macro + db notetype_cmd + db \1 ; note_length + if _NARG >= 2 + db \2 ; intensity + endc + endm + + enum pitchoffset_cmd +pitchoffset: macro + db pitchoffset_cmd + dn \1, \2 - 1 ; octave, key + endm + + enum tempo_cmd +tempo: macro + db tempo_cmd + bigdw \1 ; tempo + endm + + enum dutycycle_cmd +dutycycle: macro + db dutycycle_cmd + db \1 ; duty_cycle + endm + + enum intensity_cmd +intensity: macro + db intensity_cmd + db \1 ; intensity + endm + + enum soundinput_cmd +soundinput: macro + db soundinput_cmd + db \1 ; input + endm + + enum sound_duty_cmd +sound_duty: macro + db sound_duty_cmd + db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence + endm + + enum togglesfx_cmd +togglesfx: macro + db togglesfx_cmd + endm + + enum slidepitchto_cmd +slidepitchto: macro + db slidepitchto_cmd + db \1 - 1 ; duration + dn \2, \3 ; octave, pitch + endm + + enum vibrato_cmd +vibrato: macro + db vibrato_cmd + db \1 ; delay + db \2 ; extent + endm + + enum unknownmusic0xe2_cmd +unknownmusic0xe2: macro + db unknownmusic0xe2_cmd + db \1 ; unknown + endm + + enum togglenoise_cmd +togglenoise: macro + db togglenoise_cmd + db \1 ; id + endm + + enum panning_cmd +panning: macro + db panning_cmd + db \1 ; tracks + endm + + enum volume_cmd +volume: macro + db volume_cmd + db \1 ; volume + endm + + enum tone_cmd +tone: macro + db tone_cmd + bigdw \1 ; tone + endm + + enum unknownmusic0xe7_cmd +unknownmusic0xe7: macro + db unknownmusic0xe7_cmd + db \1 ; unknown + endm + + enum unknownmusic0xe8_cmd +unknownmusic0xe8: macro + db unknownmusic0xe8_cmd + db \1 ; unknown + endm + + enum tempo_relative_cmd +tempo_relative: macro + db tempo_relative_cmd + bigdw \1 ; value + endm + + enum restartchannel_cmd +restartchannel: macro + db restartchannel_cmd + dw \1 ; address + endm + + enum newsong_cmd +newsong: macro + db newsong_cmd + bigdw \1 ; id + endm + + enum sfxpriorityon_cmd +sfxpriorityon: macro + db sfxpriorityon_cmd + endm + + enum sfxpriorityoff_cmd +sfxpriorityoff: macro + db sfxpriorityoff_cmd + endm + + enum unknownmusic0xee_cmd +unknownmusic0xee: macro + db unknownmusic0xee_cmd + dw \1 ; address + endm + + enum stereopanning_cmd +stereopanning: macro + 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 + db loopchannel_cmd + db \1 ; count + dw \2 ; address + endm + + enum callchannel_cmd +callchannel: macro + db callchannel_cmd + dw \1 ; address + endm + + enum endchannel_cmd +endchannel: macro + db endchannel_cmd + endm |