diff options
Diffstat (limited to 'macros/sound.asm')
-rw-r--r-- | macros/sound.asm | 264 |
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 |