diff --git a/028.bs/levels/level11_foreground.tmx b/028.bs/levels/level11_foreground.tmx
index 6c842b8..78d7302 100644
--- a/028.bs/levels/level11_foreground.tmx
+++ b/028.bs/levels/level11_foreground.tmx
@@ -18,7 +18,7 @@
- eJztlUsOgzAMRMnRKIVCyycSahfc/yCARCQTxfGHFLHgbZBgPHbGArLs5ko8jLwmZ9ZYI+vhdO/tOilmwzzPIkW/Nd9YxoXZazX+0KMhPD4Hz1QkyETrwakbCY3LmJM13N0T0bfIfUzvQ+1LCzYXF/995ZxHm0W9PC+3rGugtV4d3IcV7NFRMrSwJ0ffEZrvyd8sCev5/Pl/jF1BQjuRUBE1Gs8U/fvAfWrWGCE/raf0PyHN8BXR/3sfRxkuPt9NOma/VBMK
+ eJztld0KgzAMhe2jTefU/biC6JW+/2uoYCErTfNjJ1743Qj15CQ9Ac2yizORG3nNjVljjayH0z2356iYDfM8ihT91nxjGRfmV6vxhx4N4fHaeaciQSZaD05dR2hcxpys4e7uiP6NnGN6H2pfWrC5uExePec+2izq5X25ZV0DrfXq4D6sYI+OkqGFPTn6D6HpD/5mSVjv588/MHYFCe1EwoOo0Xim6N8GzqlZY4T8tJ7S/4Q0wyqi//c+9vI9+XwX6ZgB5+gTDw==
diff --git a/028.bs/levels/level12_foreground.tmx b/028.bs/levels/level12_foreground.tmx
index bb1e3ad..605a6ee 100644
--- a/028.bs/levels/level12_foreground.tmx
+++ b/028.bs/levels/level12_foreground.tmx
@@ -18,7 +18,7 @@
- eJztVUsOhDAI1aON36rzceXC3v8exsw0IaRMobTqwrcxEXh8HmJR3Lg61vL7rEq//UG8d3Bxc8DvbFD9URiV/XDy1YlmtjJ59nxDYp1cD1Nm/TX8kjmH9h37SvxjoNXrieK5u3IkmkBN5mffZ22Ar7s5LbBbdI+k+ljg33piU9y5F8HhyxfLhXmlulO1hOZpkB1+Izn+Ef84F0a+d2RNnZDbCvNw+ClIdx7OsFdqlELjD8GhuV0Upxbaed3Ihw2MGxHn
+ eJztVUkOwzAIdJ7WxY3bdDvlUuf/36iixhJCJoCx1Rwyl0gBDzBg7NyOrSN2v++xy9sPxP+EdO7N+P0bVH0UbsZ6JPFOlTSLQp453rVyn1INQ+P+W/g1OnPzjn01/iWw9uuOzk8bvKdnJqew2GetA/BNO8cD+4T2kbY/UB+fOVtjzz0Ijly8Ui7MK90RXC6cngHZ4R1p8UascY6CeM/CnC5K7o8yjoSfgnbmoYa9sUc1evwiOLQzLOG0wqrXjnb4Au6/EfY=
diff --git a/028.bs/levels/level8_foreground.tmx b/028.bs/levels/level8_foreground.tmx
index 6c842b8..78d7302 100644
--- a/028.bs/levels/level8_foreground.tmx
+++ b/028.bs/levels/level8_foreground.tmx
@@ -18,7 +18,7 @@
- eJztlUsOgzAMRMnRKIVCyycSahfc/yCARCQTxfGHFLHgbZBgPHbGArLs5ko8jLwmZ9ZYI+vhdO/tOilmwzzPIkW/Nd9YxoXZazX+0KMhPD4Hz1QkyETrwakbCY3LmJM13N0T0bfIfUzvQ+1LCzYXF/995ZxHm0W9PC+3rGugtV4d3IcV7NFRMrSwJ0ffEZrvyd8sCev5/Pl/jF1BQjuRUBE1Gs8U/fvAfWrWGCE/raf0PyHN8BXR/3sfRxkuPt9NOma/VBMK
+ eJztld0KgzAMhe2jTefU/biC6JW+/2uoYCErTfNjJ1743Qj15CQ9Ac2yizORG3nNjVljjayH0z2356iYDfM8ihT91nxjGRfmV6vxhx4N4fHaeaciQSZaD05dR2hcxpys4e7uiP6NnGN6H2pfWrC5uExePec+2izq5X25ZV0DrfXq4D6sYI+OkqGFPTn6D6HpD/5mSVjv588/MHYFCe1EwoOo0Xim6N8GzqlZY4T8tJ7S/4Q0wyqi//c+9vI9+XwX6ZgB5+gTDw==
diff --git a/028.bs/macros.i b/028.bs/macros.i
index b751423..4743c8b 100644
--- a/028.bs/macros.i
+++ b/028.bs/macros.i
@@ -12,20 +12,26 @@ KillSound: macro
move.w #1,AUD3PER(a6)
move.w #2,AUD3LEN(a6) ; set the empty sound for the next sample to be played
move.l #emptySound,AUD3LCH(a6)
+ WaitScanLines 1
+ move.w #(DMAF_AUD3|DMAF_SETCLR),DMACON(a6)
+.\@skip:
+ endif
+ endm
+
+WaitScanLines: macro
+ if \1 != 0
lea $dff006,a0
- move.w #4,d2
+ move.w #\1-1,d2
.\@nTimes:
move.w (a0),d0
lsr.w #8,d0
.\@loop:
- move.l (a0),d1
+ move.w (a0),d1
lsr.w #8,d1
cmp.w d0,d1
beq .\@loop
dbra d2,.\@nTimes
-
- move.w #(DMAF_AUD3|DMAF_SETCLR),DMACON(a6)
-.\@skip:
+.\@done:
endif
endm
diff --git a/028.bs/music.s b/028.bs/music.s
index 77e7dc3..cc44360 100644
--- a/028.bs/music.s
+++ b/028.bs/music.s
@@ -5,6 +5,7 @@
StartMusic:
.wait: ; In case there is currently fade in progress
+ jsr WaitVerticalBlank
jsr PlayNextSound
cmp.w #0,P61_Master
beq .skip