aboutsummaryrefslogtreecommitdiff
path: root/music/soundeffects.gbasm
diff options
context:
space:
mode:
Diffstat (limited to 'music/soundeffects.gbasm')
-rw-r--r--music/soundeffects.gbasm34
1 files changed, 34 insertions, 0 deletions
diff --git a/music/soundeffects.gbasm b/music/soundeffects.gbasm
new file mode 100644
index 0000000..f320aaf
--- /dev/null
+++ b/music/soundeffects.gbasm
@@ -0,0 +1,34 @@
+Wait_Next_Frame:
+ POP DE
+ LD A, $saved_rom_bank
+ LD ($mem_sound_effect_pc), A
+ LD A, D
+ LD ($mem_sound_effect_pc+1), A
+ LD A, E
+ LD ($mem_sound_effect_pc+2), A
+ RET
+
+.MACRODEF RET_WAIT_NEXT_FRAME
+ CALL =Wait_Next_Frame
+.END
+
+Play_Sound_Effect:
+ LD A, ($mem_sound_effect_pc)
+ CP $ff
+ RET Z
+ .CHANGE_BANK_TO_A
+ LD A, ($mem_sound_effect_pc+1)
+ LD D, A
+ LD A, ($mem_sound_effect_pc+2)
+ LD E, A
+ PUSH DE
+ RET
+
+.MACRODEF SET_SOUND_EFFECT =addr
+ LD A, bank(=addr)
+ LD ($mem_sound_effect_pc), A
+ LD A, high(ptr(=addr))
+ LD ($mem_sound_effect_pc+1), A
+ LD A, low(ptr(=addr))
+ LD ($mem_sound_effect_pc+2), A
+.END