diff options
author | Astatin <[email protected]> | 2025-08-19 15:57:51 +0200 |
---|---|---|
committer | Astatin <[email protected]> | 2025-08-19 15:57:51 +0200 |
commit | bbc5ab6ad02dbabcb79e1e83195288c0fb8cf1d1 (patch) | |
tree | 619cda5870860164fd8bddcb4e0ed741cf63ca49 /music | |
parent | c70b3cb2cab64d550a585dcfbc166bf30c0ea955 (diff) |
Add insect bite & frog grab sound effects + disallow 2 sound effects at once
Diffstat (limited to 'music')
-rw-r--r-- | music/soundeffects.gbasm | 28 | ||||
-rw-r--r-- | music/soundeffects/bite.gbasm | 70 | ||||
-rw-r--r-- | music/soundeffects/earcoptr.gbasm | 27 | ||||
-rw-r--r-- | music/soundeffects/freeze.gbasm | 56 | ||||
-rw-r--r-- | music/soundeffects/grab.gbasm | 23 | ||||
-rw-r--r-- | music/soundeffects/jump.gbasm | 19 | ||||
-rw-r--r-- | music/soundeffects/laser.gbasm | 19 |
7 files changed, 182 insertions, 60 deletions
diff --git a/music/soundeffects.gbasm b/music/soundeffects.gbasm index c164492..6bf4a15 100644 --- a/music/soundeffects.gbasm +++ b/music/soundeffects.gbasm @@ -24,6 +24,28 @@ Wait_Next_Frame: LD L, A .END +.MACRODEF CHANNEL_2_SOUND_EFFECT_LOOP =start =end + LD HL, =start + + $loop: + LD A, (HL+) + LD ($18), A + + LD A, (HL+) + LD ($19), A + + .RET_WAIT_NEXT_FRAME_SAVE_HL + + LD A, H + CP high(=end) + JR NZ, =$loop + LD A, L + CP low(=end) + JR NZ, =$loop + $end: +.END + + Play_Sound_Effect: LD A, ($mem_sound_effect_pc) CP $ff @@ -37,10 +59,16 @@ Play_Sound_Effect: RET .MACRODEF SET_SOUND_EFFECT =addr + PUSH AF + LD A, $mem_sound_flags + AND 0b00111110 + JR NZ =$end 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: + POP AF .END diff --git a/music/soundeffects/bite.gbasm b/music/soundeffects/bite.gbasm new file mode 100644 index 0000000..3ac67a3 --- /dev/null +++ b/music/soundeffects/bite.gbasm @@ -0,0 +1,70 @@ +_sound_effect_Bite_slide_data: +.DB $7d, $87, $77, $07, $71, $07, $6b, $07, $64, $07, $5e, $07, $56, $07, $4f, $07 +.DB $47, $07, $3f, $07, $36, $07, $2d, $07, $24, $07 +_sound_effect_Bite_slide_data.end: + +_sound_effect_Bite: + LD A, $mem_sound_flags + OR 0b00010100 + LD $mem_sound_flags, A + + LD A, $3f + LD ($20), A + LD A, $42 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + + LD A, $08 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + + LD A, $3f + LD ($20), A + LD A, $42 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + .RET_WAIT_NEXT_FRAME + + LD A, $08 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .RET_WAIT_NEXT_FRAME + + LD A, $3f + LD ($16), A + LD A, $a2 + LD ($17), A + + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Bite_slide_data, =_sound_effect_Bite_slide_data.end + + LD A, $08 + LD ($17), A + + LD A, $mem_sound_flags + AND 0b11000001 + LD $mem_sound_flags, A + LD A, $ff + LD ($mem_sound_effect_pc), A + RET diff --git a/music/soundeffects/earcoptr.gbasm b/music/soundeffects/earcoptr.gbasm index bbccb65..0c11168 100644 --- a/music/soundeffects/earcoptr.gbasm +++ b/music/soundeffects/earcoptr.gbasm @@ -13,44 +13,23 @@ _sound_effect_Earcoptr: LD A, $80 LD ($19), A - .MACRODEF EARCOPTER_SOUND_LOOP =start =end - LD HL, =start - - $loop: - LD A, (HL+) - LD ($18), A - - LD A, (HL+) - LD ($19), A - - .RET_WAIT_NEXT_FRAME_SAVE_HL - - LD A, H - CP high(=end) - JR NZ, =$loop - LD A, L - CP low(=end) - JR NZ, =$loop - $end: - .END - LD A, $3f LD ($16), A LD A, $82 LD ($17), A - .EARCOPTER_SOUND_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi LD A, $3f LD ($16), A LD A, $82 LD ($17), A - .EARCOPTER_SOUND_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.semi LD A, $3f LD ($16), A LD A, $82 LD ($17), A - .EARCOPTER_SOUND_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.end + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Earcoptr_slide_data, =_sound_effect_Earcoptr_slide_data.end LD A, $mem_sound_flags AND 0b11000001 diff --git a/music/soundeffects/freeze.gbasm b/music/soundeffects/freeze.gbasm new file mode 100644 index 0000000..5d4915f --- /dev/null +++ b/music/soundeffects/freeze.gbasm @@ -0,0 +1,56 @@ +_sound_effect_Freeze_slide_data: +.DB $c2, $87, $c1, $07, $c1, $07, $c1, $07, $c2, $07 +.semi: +.DB $c1, $07, $c1, $07, $c1, $07 +.DB $c2, $07, $c2, $07, $c1, $07, $c1, $07, $c1, $07, $c2, $07, $c1, $07, $c1, $07 +.DB $c1, $07, $c2, $07, $c1, $07, $c1, $07, $c1, $07, $c2, $07, $c2, $07, $c1, $07 +.DB $c1, $07, $c1, $07, $c2, $07, $c1, $07, $c1, $07, $c1, $07, $c2, $07, $c1, $07 +.DB $c1, $07, $c1, $07, $c2, $07 +.end: + +_sound_effect_Freeze: + LD A, $mem_sound_flags + OR 0b00010100 + LD $mem_sound_flags, A + + + LD A, $80 + LD ($19), A + LD A, $3f + LD ($16), A + LD A, $a3 + LD ($17), A + + LD A, $3f + LD ($20), A + LD A, $52 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Freeze_slide_data, =_sound_effect_Freeze_slide_data.semi + + LD A, $3f + LD ($16), A + LD A, $a3 + LD ($17), A + + LD A, $3f + LD ($20), A + LD A, $52 + LD ($21), A + LD A, $14 + LD ($22), A + LD A, $80 + LD ($23), A + + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Freeze_slide_data, =_sound_effect_Freeze_slide_data.end + + LD A, $mem_sound_flags + AND 0b11000001 + LD $mem_sound_flags, A + LD A, $ff + LD ($mem_sound_effect_pc), A + RET diff --git a/music/soundeffects/grab.gbasm b/music/soundeffects/grab.gbasm new file mode 100644 index 0000000..5145774 --- /dev/null +++ b/music/soundeffects/grab.gbasm @@ -0,0 +1,23 @@ +_sound_effect_Grab_slide_data: +.DB $a3, $86, $93, $06, $83, $06, $72, $06, $61, $06, $4e, $06, $3b, $06, $27, $06 +.DB $12, $06, $fc, $05, $e5, $05, $ce, $05, $b5, $05, $9b, $05, $80, $05, $63, $05 +.DB $46, $05 +_sound_effect_Grab_slide_data.end: + +_sound_effect_Grab: + LD A, $mem_sound_flags + SET 2, A + LD $mem_sound_flags, A + + LD A, $3f + LD ($16), A + LD A, $84 + LD ($17), A + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Grab_slide_data, =_sound_effect_Grab_slide_data.end + + LD A, $mem_sound_flags + AND 0b11000001 + LD $mem_sound_flags, A + LD A, $ff + LD ($mem_sound_effect_pc), A + RET diff --git a/music/soundeffects/jump.gbasm b/music/soundeffects/jump.gbasm index 7ae9a58..13c21c0 100644 --- a/music/soundeffects/jump.gbasm +++ b/music/soundeffects/jump.gbasm @@ -14,8 +14,6 @@ _sound_effect_Jump: SET 2, A LD $mem_sound_flags, A - LD HL, =_sound_effect_Jump_slide_data - LD A, $80 LD ($19), A LD A, $3f @@ -23,22 +21,7 @@ _sound_effect_Jump: LD A, $a2 LD ($17), A - .loop: - LD A, (HL+) - LD ($18), A - - LD A, (HL+) - LD ($19), A - - .RET_WAIT_NEXT_FRAME_SAVE_HL - - LD A, H - CP high(=_sound_effect_Jump_slide_data.end) - JR NZ, =.loop - LD A, L - CP low(=_sound_effect_Jump_slide_data.end) - JR NZ, =.loop - .end: + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Jump_slide_data =_sound_effect_Jump_slide_data.end LD A, $mem_sound_flags AND 0b11000001 diff --git a/music/soundeffects/laser.gbasm b/music/soundeffects/laser.gbasm index e73396b..b3c02a7 100644 --- a/music/soundeffects/laser.gbasm +++ b/music/soundeffects/laser.gbasm @@ -12,8 +12,6 @@ _sound_effect_Laser: SET 2, A LD $mem_sound_flags, A - LD HL, =_sound_effect_Laser_slide_data - LD A, $80 LD ($19), A LD A, $3f @@ -21,22 +19,7 @@ _sound_effect_Laser: LD A, $a2 LD ($17), A - .loop: - LD A, (HL+) - LD ($18), A - - LD A, (HL+) - LD ($19), A - - .RET_WAIT_NEXT_FRAME_SAVE_HL - - LD A, H - CP high(=_sound_effect_Laser_slide_data.end) - JR NZ, =.loop - LD A, L - CP low(=_sound_effect_Laser_slide_data.end) - JR NZ, =.loop - .end: + .CHANNEL_2_SOUND_EFFECT_LOOP =_sound_effect_Laser_slide_data, =_sound_effect_Laser_slide_data.end LD A, $mem_sound_flags AND 0b11000001 |